Hello community, here is the log from the commit of package frozen-bubble checked in at Wed Oct 3 00:52:44 CEST 2007. -------- --- frozen-bubble/frozen-bubble.changes 2007-09-10 19:37:14.000000000 +0200 +++ /mounts/work_src_done/STABLE/frozen-bubble/frozen-bubble.changes 2007-09-30 21:11:56.618570000 +0200 @@ -1,0 +2,10 @@ +Sun Sep 30 21:11:24 CEST 2007 - sndirsch@suse.de + +- added -server subpackage and a lot of patches by Dirk Stoecker + +------------------------------------------------------------------- +Fri Sep 21 09:00:47 CEST 2007 - sndirsch@suse.de + +- make no use of %optipng macro on openSUSE 10.2 (Bug #326968) + +------------------------------------------------------------------- New: ---- dot_green.png dot_red.png enablechatbuttons.diff fb_config.diff fb_CVS_2007-02-21.diff fb_fixed_de_texts.diff fb_keys_de.diff fb_keys.diff fb_net_discover.pm fb_networking.diff fb-server fixchainreaction_graphicslevel0.diff fixgeolocprivate.diff fixoverlongchatmessage.diff othergamedefaults.diff otherlimits.diff showdropdown.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ frozen-bubble.spec ++++++ --- /var/tmp/diff_new_pack.Zs7273/_old 2007-10-03 00:52:29.000000000 +0200 +++ /var/tmp/diff_new_pack.Zs7273/_new 2007-10-03 00:52:29.000000000 +0200 @@ -11,7 +11,8 @@ # norootforbuild Name: frozen-bubble -BuildRequires: Mesa-devel SDL_Pango-devel SDL_image-devel SDL_perl pango-devel update-desktop-files +BuildRequires: Mesa-devel pango-devel +%if 0%{?suse_version} %if %suse_version > 1020 BuildRequires: optipng %endif @@ -20,21 +21,46 @@ %else BuildRequires: SDL-devel SDL_mixer %endif -URL: http://www.frozen-bubble.org/ +BuildRequires: SDL_Pango-devel SDL_image-devel SDL_perl update-desktop-files +%endif +%if 0%{?fedora_version} +Requires: perl-SDL >= 2.1.3 +BuildRequires: SDL_Pango-devel SDL_mixer-devel glib2-devel perl-SDL >= 2.1.3 +BuildRequires: gettext +%endif +Url: http://www.frozen-bubble.org/ License: GPL v2 or later Group: Amusements/Games/Action/Arcade Requires: perl = %{perl_version} Requires: SDL_perl Requires: CheckHardware -Autoreqprov: on +AutoReqProv: on Version: 2.1.0 -Release: 74 +Release: 80 Summary: Puzzle with Bubbles Source: %{name}-%{version}.tar.bz2 Source1: %name.desktop Source2: %name.png Source3: suse_frozen2.png +Source4: fb_net_discover.pm +Source5: fb-server +Source6: dot_red.png +Source7: dot_green.png +Patch0: fb_CVS_2007-02-21.diff +Patch1: fb_config.diff +Patch2: fb_fixed_de_texts.diff +Patch3: fb_keys.diff +Patch4: fb_networking.diff +Patch5: fb_keys_de.diff +Patch6: otherlimits.diff +Patch7: enablechatbuttons.diff +Patch8: fixgeolocprivate.diff +Patch9: fixoverlongchatmessage.diff +Patch10: othergamedefaults.diff +Patch11: showdropdown.diff +Patch12: fixchainreaction_graphicslevel0.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build +Requires: %{name}-server = %{version} %description Shoot up bubbles. Similar to the console game Puzzle-Bobble. @@ -45,8 +71,35 @@ -------- Guillaume Cottenceau <guillaume.cottenceau at free.fr> +%package server +Summary: Puzzle with Bubbles - Server +Group: Amusements/Games/Action/Arcade +AutoReqProv: on + +%description server +Server for frozen-bubble. + + + +Authors: +-------- + Guillaume Cottenceau <guillaume.cottenceau at free.fr> + %prep %setup +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 +%patch4 +%patch5 +%patch6 +%patch7 +%patch8 -p1 +%patch9 -p1 +%patch10 +%patch11 +%patch12 %build make OPTIMIZE="$RPM_OPT_FLAGS" PREFIX=/usr INSTALLDIRS=vendor DATADIR=/usr/share LIBDIR=%{_libdir} @@ -54,16 +107,25 @@ %install rm -rf $RPM_BUILD_ROOT make install DESTDIR=$RPM_BUILD_ROOT PREFIX=/usr DATADIR=/usr/share LIBDIR=%{_libdir} +%if 0%{?suse_version} %perl_process_packlist +%endif rm $RPM_BUILD_ROOT%{perl_vendorarch}/auto/fb_c_stuff/.packlist rm $RPM_BUILD_ROOT/var/adm/perl-modules/frozen-bubble +cp %{SOURCE4} $RPM_BUILD_ROOT%{perl_vendorarch} +mkdir -p $RPM_BUILD_ROOT/etc/init.d +cp %{SOURCE5} $RPM_BUILD_ROOT/etc/init.d +cp %{SOURCE6} %{SOURCE7} $RPM_BUILD_ROOT/usr/share/frozen-bubble/gfx/ mkdir -p $RPM_BUILD_ROOT/usr/share/pixmaps/ install -m 644 $RPM_SOURCE_DIR/%name.png $RPM_BUILD_ROOT/usr/share/pixmaps +%if 0%{?suse_version} %suse_update_desktop_file -i %name Game ArcadeGame +%endif chmod 644 $RPM_BUILD_ROOT/usr/share/man/man6/frozen-bubble.6 \ $RPM_BUILD_ROOT/usr/share/man/man6/frozen-bubble-editor.6 +mkdir -p $RPM_BUILD_ROOT/usr/sbin/ +ln -s /etc/init.d/fb-server $RPM_BUILD_ROOT/usr/sbin/rcfb-server %if %suse_version > 1020 - %optipng $RPM_BUILD_ROOT %endif @@ -79,17 +141,29 @@ %{perl_vendorarch}/fb_net.pm %{perl_vendorarch}/fb_stuff.pm %{perl_vendorarch}/fbsyms.pm +%{perl_vendorarch}/fb_net_discover.pm /usr/bin/frozen-bubble /usr/bin/frozen-bubble-editor -%{_libdir}/frozen-bubble/fb-server /usr/share/frozen-bubble/ %attr (644,root,root) %{_mandir}/man6/frozen-bubble.6.gz %attr (644,root,root) %{_mandir}/man6/frozen-bubble-editor.6.gz /usr/share/applications/%name.desktop /usr/share/locale/*/LC_MESSAGES/*.mo /usr/share/pixmaps/%name.png +%exclude /usr/share/frozen-bubble/gfx/gen +%files server +%defattr(-, root, root) +%doc AUTHORS COPYING README +%defattr(755, root, root) +%{_libdir}/frozen-bubble/fb-server +/etc/init.d/fb-server +/usr/sbin/rcfb-server %changelog +* 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 +- make no use of %%optipng macro on openSUSE 10.2 (Bug #326968) * Mon Sep 10 2007 - sndirsch@suse.de - make use of %%optipng macro (Bug #309087) * Mon Dec 18 2006 - sndirsch@suse.de ++++++ enablechatbuttons.diff ++++++ --- /usr/bin/frozen-bubble 2007-03-08 10:27:46.000000000 +0100 +++ frozen-bubble 2007-04-30 21:58:35.000000000 +0200 @@ -3742,6 +3742,10 @@ $no_echo or play_sound('typewriter'); } } + else + { + handle_whenever_events($params->{event}->key_sym); + } } } if ($action eq 'gettext') { ++++++ fb_config.diff ++++++ diff -ubr frozen-bubble-2.1.0/frozen-bubble frozen-bubble-2.1.0d/frozen-bubble --- frozen-bubble-2.1.0/frozen-bubble 2006-11-23 22:45:46.000000000 +0100 +++ frozen-bubble-2.1.0d/frozen-bubble 2007-01-17 08:58:28.000000000 +0100 @@ -44,7 +44,8 @@ %sticking_bubble $time %imgbin $TIME_HURRY_WARN $TIME_HURRY_MAX $TIMEOUT_PINGUIN_SLEEP $FREE_FALL_CONSTANT @joysticks $joysticksinfo $direct @PLAYERS @ALL_PLAYERS %levels $display_on_app_disabled $total_time $time_1pgame $time_netgame $fullscreen $rcfile %hiscorefiles $HISCORES $HISCORES_MPTRAIN $HISCORES_MPTRAIN_CHAINREACTION - $lev_number $playermalus $mptrainingdiff $loaded_levelset $direct_levelset $chainreaction %chains %img_mini $frame $sock $gameserver $mynick); + $lev_number $playermalus $mptrainingdiff $loaded_levelset $direct_levelset $chainreaction %chains %img_mini $frame $sock $gameserver $mynick + $mylatitude $mylongitude); use Getopt::Long; use Data::Dumper; @@ -1371,7 +1373,7 @@ $mixer->playing_music and $mixer->halt_music; $app->delay(10) while $mixer->playing_music; #- mikmod will segfault if we try to load a music while old one is still fading out } - $mixer_enabled = undef; + $mixer_enabled = 0; } } if ($mixer_enabled && $mixer && $keypressed eq $KEYS->{misc}{toggle_music}) { @@ -1412,7 +1414,7 @@ $event->pump; while ($event->poll != 0) { if ($event->type == SDL_QUIT) { - exit 0; + cleanup_and_exit(); } my $keypressed = extended_keypress($event); handle_whenever_events($keypressed); @@ -1426,7 +1428,7 @@ while (1) { while ($event->poll != 0) { if ($event->type == SDL_QUIT) { - exit 0; + cleanup_and_exit(); } my $keypressed = extended_keypress($event); if ($keypressed) { @@ -1499,7 +1501,7 @@ $event->pump; while ($event->poll != 0) { if ($event->type == SDL_QUIT) { - exit 0; + cleanup_and_exit(); } my $keypressed = extended_keypress($event); if ($keypressed) { @@ -1589,7 +1591,7 @@ } } if ($event->type == SDL_QUIT) { - exit 0; + cleanup_and_exit(); } } @@ -1840,7 +1842,7 @@ $event->pump; while ($event->poll != 0) { if ($event->type == SDL_QUIT) { - exit 0; + cleanup_and_exit(); } if ($event->type == SDL_KEYDOWN && $event->key_sym == SDLK_ESCAPE) { die 'new_game'; @@ -2418,7 +2420,7 @@ while ($event->poll != 0) { if ($event->type == SDL_QUIT || $event->type == SDL_KEYDOWN && $event->key_sym == SDLK_ESCAPE) { - exit 0; + cleanup_and_exit(); } } put_image($imgbin{loading_step}, 100 + $init_step*12, 10); @@ -2713,8 +2715,8 @@ print_step('] '); if ($mixer eq 'SOUND_DISABLED') { - $mixer_enabled = $mixer = undef; - } else { + $mixer_enabled = 0; $mixer = undef; + } elsif (!defined($mixer_enabled) || $mixer_enabled) { $mixer_enabled = init_sound(); } @@ -3806,7 +3806,6 @@ return 1; } -our ($mylatitude, $mylongitude); sub smg_choose_game() { my @actions = ({ name => t("Chat"), action => 'CHAT', selected => 1 }, { name => t("Create new game"), action => 'CREATE' }); @@ -4104,7 +4103,7 @@ $event->pump; while ($event->poll != 0) { if ($event->type == SDL_QUIT) { - exit 0; + cleanup_and_exit(); } my $k; if ($event->type == SDL_KEYDOWN) { @@ -4813,6 +4815,10 @@ $to_wait > 0 and fb_c_stuff::fbdelay($to_wait); } +sub cleanup_and_exit { + save_config(); + exit 0; +} #- ----------- menu stuff ------------------------------------------------- @@ -4842,7 +4848,11 @@ nextkey: } } - my $dump = Data::Dumper->Dump([$fullscreen, $graphics_level, $mynick, $KEYS_], [qw(fullscreen graphics_level mynick KEYS)]); + my $dump = Data::Dumper->Dump([$fullscreen, $graphics_level, + $mynick, $music_disabled, $mixer_enabled, $mylatitude, $mylongitude, + $KEYS_], + [qw(fullscreen graphics_level mynick music_disabled mixer_enabled + mylatitude mylongitude KEYS)]); $dump =~ s/'SDLK_(\w+)'/SDLK_$1/g; output($rcfile, $dump); } @@ -5118,13 +5128,13 @@ handle_whenever_events($keypressed); if ($keypressed eq SDLK_ESCAPE) { - exit 0; + cleanup_and_exit(); } $synchro_ticks = $app->ticks; #- avoid stopping candy $time_counter = 0; #- reset counter for demos } if ($event->type == SDL_QUIT) { - exit 0; + cleanup_and_exit(); } } @@ -5275,7 +5285,7 @@ $event->pump; while ($event->poll != 0) { if ($event->type == SDL_QUIT) { - exit 0; + cleanup_and_exit(); } if (extended_keypress($event)) { last blacken; ++++++ fb_CVS_2007-02-21.diff ++++++ ++++ 2842 lines (skipped) ++++++ fb_fixed_de_texts.diff ++++++ diff -ubr frozen-bubble-2.1.0/po/de.po frozen-bubble-2.1.0d/po/de.po --- frozen-bubble-2.1.0/po/de.po 2006-11-12 13:33:48.000000000 +0100 +++ frozen-bubble-2.1.0d/po/de.po 2007-01-16 21:18:06.000000000 +0100 @@ -202,7 +202,7 @@ #: ../frozen-bubble:3324 msgid "*** No server found, created server for local network game" -msgstr "*** Es konnte kein Server gefunden werden, Server für lokales Netzwerk Spiel " +msgstr "*** Es konnte kein Server gefunden werden, Server für lokales Netzwerkspiel " "wurde erstellt" #: ../frozen-bubble:3340 @@ -219,12 +219,12 @@ #: ../frozen-bubble:3354 msgid "*** Verify your network setup or retry later" -msgstr "*** Netzwerk Konfiguration überprüfen oder später nochmal probieren" +msgstr "*** Netzwerkkonfiguration überprüfen oder später nochmal probieren" #: ../frozen-bubble:3393 #, perl-format msgid "Available players: %s (playing: %s) Ping: %sms" -msgstr "Bereite Spieler: %s (davon spielen: %s) Ping: %sms" +msgstr "Bereite Spieler: %s (spielend: %s) Ping: %sms" #: ../frozen-bubble:3441 msgid "*** No available game server" @@ -232,7 +232,7 @@ #: ../frozen-bubble:3442 msgid "*** Please retry later or try a local network game (lan game)" -msgstr "*** Bitte später nochmal probieren oder ein lokales Netzwerk Spiel starten" +msgstr "*** Bitte später nochmal probieren oder ein lokales Netzwerkspiel starten" #: ../frozen-bubble:3448 msgid "*** Please choose a server" @@ -330,7 +330,7 @@ msgid "" "*** hostip.info doesn't know the geographical location of your IP address" msgstr "" -"*** hostip.info konnten keine geographischen Position zu deiner IP Adresse " +"*** hostip.info konnte keine geographische Position zu deiner IP Adresse " "ermitteln" #: ../frozen-bubble:3874 @@ -338,12 +338,12 @@ "*** If you want that your location appears on the map, fix your entry at " "http://hostip.info/" msgstr "" -"*** Wenn die geographischen Position auf der Karte angezeigt werden soll, " +"*** Soll Ihre Position auf der Karte erscheinen, " "muss der Eintrag auf http://hostip.info/ berichtigt werden" #: ../frozen-bubble:3881 msgid "*** hostip.info didn't reply within 5 seconds, giving up" -msgstr "*** hostip.info hat nicht innerhalb von 5 Sekundne geantwortet, Abbruch" +msgstr "*** hostip.info hat nicht innerhalb von 5 Sekunden geantwortet, Abbruch" #: ../frozen-bubble:3895 ../frozen-bubble:4125 ../frozen-bubble:4137 #: ../frozen-bubble:4171 ../frozen-bubble:4249 ../frozen-bubble:4369 @@ -468,7 +468,7 @@ msgid "" "*** Can't set a victories limit, as a player is using a too old version of " "Frozen-Bubble" -msgstr "Gewinnpunkte Limit kann nicht gestetzt werden, weil einer der Spieler eine zu alte Frozen-Bubble Version benutzt" +msgstr "Gewinnpunkte Limit kann nicht gesetzt werden, weil einer der Spieler eine zu alte Frozen-Bubble Version benutzt" #: ../frozen-bubble:4152 ../frozen-bubble:4365 ../frozen-bubble:4370 #, perl-format @@ -507,7 +507,7 @@ #, perl-format msgid "" "*** Victories limit reset, %s is using a too old version of Frozen-Bubble" -msgstr "*** Gewinnpunkte Limit zurückgesetzt, ,%s benutzt eine zu alte Version von Frozen-Bubble" +msgstr "*** Gewinnpunkte Limit zurückgesetzt, %s benutzt eine zu alte Version von Frozen-Bubble" #: ../frozen-bubble:4260 msgid "*** Game creator left the game..." ++++++ fb_keys_de.diff ++++++ --- po/de.po_ 2007-01-17 09:59:04.000000000 +0100 +++ po/de.po 2007-01-17 10:13:59.000000000 +0100 @@ -603,45 +603,55 @@ msgid "Please enter new keys:" msgstr "Bitte neue Tasten eingeben:" -#: ../frozen-bubble:4654 -msgid "Player 1; turn left?" -msgstr "Spieler 1; nach links?" - -#: ../frozen-bubble:4655 -msgid "Player 1; turn right?" -msgstr "Spieler 1; nach rechts?" - -#: ../frozen-bubble:4656 -msgid "Player 1; fire?" -msgstr "Spieler 1; schiessen?" - -#: ../frozen-bubble:4657 -msgid "Player 1; center?" -msgstr "Spieler 1; zentrieren?" - -#: ../frozen-bubble:4659 -msgid "Player 2; turn left?" -msgstr "Spieler 2; nach links?" - -#: ../frozen-bubble:4660 -msgid "Player 2; turn right?" -msgstr "Spieler 2; nach rechts?" - -#: ../frozen-bubble:4661 -msgid "Player 2; fire?" -msgstr "Spieler 2; schiessen?" - -#: ../frozen-bubble:4662 -msgid "Player 2; center?" -msgstr "Spieler 2; zentrieren?" - -#: ../frozen-bubble:4664 -msgid "Toggle fullscreen?" -msgstr "Auf Vollbild umschalten?" - -#: ../frozen-bubble:4665 -msgid "Chat (net/lan game)?" -msgstr "Chat (Internet/Netzwerk Spiel)?" +#: ../frozen-bubble:4893 +#, perl-format +msgid "Player 1; turn left (%s)?" +msgstr "Spieler 1; nach links (%s)?" + +#: ../frozen-bubble:4894 +#, perl-format +msgid "Player 1; turn right (%s)?" +msgstr "Spieler 1; nach rechts (%s)?" + +#: ../frozen-bubble:4895 +#, perl-format +msgid "Player 1; fire (%s)?" +msgstr "Spieler 1; schiessen (%s)?" + +#: ../frozen-bubble:4896 +#, perl-format +msgid "Player 1; center (%s)?" +msgstr "Spieler 1; zentrieren (%s)?" + +#: ../frozen-bubble:4898 +#, perl-format +msgid "Player 2; turn left (%s)?" +msgstr "Spieler 2; nach links (%s)?" + +#: ../frozen-bubble:4899 +#, perl-format +msgid "Player 2; turn right (%s)?" +msgstr "Spieler 2; nach rechts (%s)?" + +#: ../frozen-bubble:4900 +#, perl-format +msgid "Player 2; fire (%s)?" +msgstr "Spieler 2; schiessen (%s)?" + +#: ../frozen-bubble:4901 +#, perl-format +msgid "Player 2; center (%s)?" +msgstr "Spieler 2; zentrieren (%s)?" + +#: ../frozen-bubble:4903 +#, perl-format +msgid "Toggle fullscreen (%s)?" +msgstr "Vollbild (%s)?" + +#: ../frozen-bubble:4904 +#, perl-format +msgid "Chat in net game (%s)?" +msgstr "Chat im Netzspiel (%s)?" #: ../frozen-bubble:4667 msgid "Thanks!" ++++++ fb_keys.diff ++++++ --- frozen-bubble.orig 2007-01-17 09:40:10.000000000 +0100 +++ frozen-bubble 2007-01-17 09:40:19.000000000 +0100 @@ -4879,18 +4879,18 @@ my $change_keys = sub { ask_from({ intro => [ t("Please enter new keys:") ], entries => [ - { 'q' => t("Player 1; turn left?"), 'a' => $KEYS->{p1}{left}, f => 'ONE_CHAR' }, - { 'q' => t("Player 1; turn right?"), 'a' => $KEYS->{p1}{right}, f => 'ONE_CHAR' }, - { 'q' => t("Player 1; fire?"), 'a' => $KEYS->{p1}{fire}, f => 'ONE_CHAR' }, - { 'q' => t("Player 1; center?"), 'a' => $KEYS->{p1}{center}, f => 'ONE_CHAR' }, + { 'q' => t("Player 1; turn left (%s)?",keysym_to_char($KEYS->{p1}{left})), 'a' => $KEYS->{p1}{left}, f => 'ONE_CHAR' }, + { 'q' => t("Player 1; turn right (%s)?",keysym_to_char($KEYS->{p1}{right})), 'a' => $KEYS->{p1}{right}, f => 'ONE_CHAR' }, + { 'q' => t("Player 1; fire (%s)?",keysym_to_char($KEYS->{p1}{fire})), 'a' => $KEYS->{p1}{fire}, f => 'ONE_CHAR' }, + { 'q' => t("Player 1; center (%s)?",keysym_to_char($KEYS->{p1}{center})), 'a' => $KEYS->{p1}{center}, f => 'ONE_CHAR' }, { f => 'SPACE' }, - { 'q' => t("Player 2; turn left?"), 'a' => $KEYS->{p2}{left}, f => 'ONE_CHAR' }, - { 'q' => t("Player 2; turn right?"), 'a' => $KEYS->{p2}{right}, f => 'ONE_CHAR' }, - { 'q' => t("Player 2; fire?"), 'a' => $KEYS->{p2}{fire}, f => 'ONE_CHAR' }, - { 'q' => t("Player 2; center?"), 'a' => $KEYS->{p2}{center}, f => 'ONE_CHAR' }, + { 'q' => t("Player 2; turn left (%s)?",keysym_to_char($KEYS->{p2}{left})), 'a' => $KEYS->{p2}{left}, f => 'ONE_CHAR' }, + { 'q' => t("Player 2; turn right (%s)?",keysym_to_char($KEYS->{p2}{right})), 'a' => $KEYS->{p2}{right}, f => 'ONE_CHAR' }, + { 'q' => t("Player 2; fire (%s)?",keysym_to_char($KEYS->{p1}{fire})), 'a' => $KEYS->{p2}{fire}, f => 'ONE_CHAR' }, + { 'q' => t("Player 2; center (%s)?",keysym_to_char($KEYS->{p1}{center})), 'a' => $KEYS->{p2}{center}, f => 'ONE_CHAR' }, { f => 'SPACE' }, - { 'q' => t("Toggle fullscreen?"), 'a' => $KEYS->{misc}{fs}, f => 'ONE_CHAR' }, - { 'q' => t("Chat (net/lan game)?"), 'a' => $KEYS->{misc}{chat}, f => 'ONE_CHAR' }, + { 'q' => t("Toggle fullscreen (%s)?",keysym_to_char($KEYS->{misc}{fs})), 'a' => $KEYS->{misc}{fs}, f => 'ONE_CHAR' }, + { 'q' => t("Chat in net game (%s)?",keysym_to_char($KEYS->{misc}{chat})), 'a' => $KEYS->{misc}{chat}, f => 'ONE_CHAR' }, ], outro => t("Thanks!"), erase_background => $back_start ++++++ fb_networking.diff ++++++ --- 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 @@ use fb_stuff; use fb_net; +use fb_net_discover; use fbsyms; use FBLE; @@ -3503,6 +3504,7 @@ } my @sorted_servers; + my $offset = 0; 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 @@ $parts{$_}{xpos} = 640 - $parts{$_}{xpos} - $parts{$_}{width} foreach keys %parts; } my $y = $smg_starty; - foreach my $server (@sorted_servers) { + my @show_servers = @sorted_servers; + my $ofs = @show_servers-$max_lines; + $ofs = 0 if $ofs < 0; + $offset = $ofs if $offset > $ofs; + splice(@show_servers, 0, $offset) if $offset; + splice(@show_servers, 18) if $ofs-$offset; + foreach my $server (@show_servers) { if ($server->{selected}) { put_image($imgbin{highlight_server}, 6, $y-1); } exists $imgbin{flag}{$server->{language}} and put_image($imgbin{flag}{$server->{language}}, $parts{flag}{xpos}, $y); print_('netdialogs', $app, $parts{name}{xpos}, $y, $server->{name}, $parts{name}{width}, $is_rtl ? 'right' : 'left'); #- ASCII - my $details = t("Available players: %s (playing: %s) Ping: %sms", i18n_number($server->{players}), i18n_number($server->{playing}), i18n_number($server->{ping})); + my $details = t("Available players: %s (playing: %s) Ping: %sms", i18n_number($server->{free}), i18n_number($server->{playing}), i18n_number($server->{ping})); 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 @@ $app->flip(); }; - my @scanned_servers; + my @potential_servers; foreach my $server (@servers) { - if (!$server->{disabled}) { - my $ret = fb_net::connect($server->{host}, $server->{port}); - if (!$ret->{ping}) { - $server->{disabled} = $ret->{failure}; - } else { - ($server->{players}, undef, undef, $server->{playing}) = fb_net::list(); - } - put_in_hash($server, $ret); - fb_net::disconnect(); - push @scanned_servers, $server; - my ($down, $available) = partition { $_->{disabled} } @scanned_servers; - my $weightfunc = sub { my $base = $_[0]->{players} - $_[0]->{ping}/50; $_[0]->{playing} < 100 ? $base + $_[0]->{playing}/3 : $base - $_[0]->{playing}/3; }; - @sorted_servers = sort { $weightfunc->($b) <=> $weightfunc->($a) } @$available; - if (@sorted_servers > $max_lines) { - $#sorted_servers = $max_lines - 1; - last; - } else { - $redraw->(); - } + if(!$$server{disabled}) { + push(@potential_servers, $server); } - $event->pump; - while ($event->poll != 0) { - if ($event->type == SDL_QUIT) { - exit 0; - } - if ($event->type == SDL_KEYDOWN && $event->key_sym == SDLK_ESCAPE) { - return 0; - } - } - } - foreach (difference2(@servers, @sorted_servers)) { - $_->{disabled} = 1; #- disable slow servers if there are a lot of them - } - - if (@servers == 0 || every { $_->{disabled} } @servers) { - smg_add_status_msg(t("*** No available game server"), - 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; - smg_add_status_msg(t("*** Please choose a server")); $redraw->(); - - while (1) { + } + } $event->pump; while ($event->poll != 0) { if ($event->type == SDL_QUIT) { - exit 0; + cleanup_and_exit(); } + elsif($init) + { my $k = extended_keypress($event); if ($k) { if ($k eq SDLK_ESCAPE()) { @@ -3597,6 +3586,7 @@ && !$sorted_servers[$::i+1]->{disabled}) { $sorted_servers[$::i]->{selected} = 0; $sorted_servers[$::i+1]->{selected} = 1; + ++$offset if $::i+1 >= $offset+$max_lines; play_sound('menu_change'); goto done; } @@ -3610,6 +3600,7 @@ if ($sorted_servers[$::i]->{selected}) { $sorted_servers[$::i]->{selected} = 0; $sorted_servers[$::i-1]->{selected} = 1; + $offset = $::i-1 if $::i-1 < $offset; play_sound('menu_change'); } } @sorted_servers; @@ -3625,7 +3616,15 @@ } $redraw->(); } - fb_c_stuff::fbdelay($TARGET_ANIM_SPEED); + } + fb_c_stuff::fbdelay($TARGET_ANIM_SPEED) if $init; + } + + if (@servers == 0 || every { $_->{disabled} } @servers) { + smg_add_status_msg(t("*** No available game server"), + t("*** Please retry later or try a local network game (lan game)")); + grab_key(); + return 0; } ok_smg_choose_server: @@ -3634,6 +3633,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")); + $server->{selected} = 0; return smg_choose_server(@servers); } smg_add_status_msg(t("*** Connected to server '%s'", $server->{name})); @@ -4605,6 +4605,7 @@ $smg_status_message_offsetpage = 1; if ($gameserver) { my ($host, $port) = $gameserver =~ /(\S+):(\S+)/; + if(!$host) { $host = $gameserver; $port = 1511; } fb_net::connect($host, $port); if (!fb_net::isconnected()) { smg_add_status_msg(t("*** Cannot connect to specified gameserver, fallbacking to contacting master server")); ++++++ fixchainreaction_graphicslevel0.diff ++++++ --- frozen-bubble 2007-09-22 17:03:53.000000000 +0200 +++ /usr/bin/frozen-bubble 2007-09-11 19:25:44.000000000 +0200 @@ -786,7 +786,7 @@ } #- prepare falling bubbles - if ($graphics_level > 1) { + if ($graphics_level > 1 || $chainreaction) { my $max_cy_falling = fold_left { $::b->{cy} > $::a ? $::b->{cy} : $::a } 0, @falling; #- I have a fold_left in my prog! :-) my ($shift_on_same_line, $line) = (0, $max_cy_falling); foreach (sort { $b->{cy}*8 + $b->{cx} <=> $a->{cy}*8 + $a->{cx} } @falling) { #- sort bottom-to-up / right-to-left ++++++ fixgeolocprivate.diff ++++++ diff -ur frozen-bubble-2.1.0/frozen-bubble frozen-bubble-2.1.0d/frozen-bubble --- frozen-bubble-2.1.0/frozen-bubble 2007-08-01 11:19:07.000000000 +0200 +++ frozen-bubble-2.1.0d/frozen-bubble 2007-08-01 11:16:58.000000000 +0200 @@ -3859,7 +3859,7 @@ print_spot($_->[0], $_->[1], 'free') foreach @free_geolocs; print_spot($_->[0], $_->[1], 'playing') foreach @playing_geolocs; $back_selfspot = undef; - if ($mylatitude && $index_selfspot >= 0) { + if ($mylatitude && !$private && $index_selfspot >= 0) { print_spot($mylatitude, $mylongitude, 'free', $imgbin{netspot_self}[$index_selfspot], $back_selfspot); } @@ -3891,7 +3891,7 @@ smg_printstatus(); }; my $print_selfspot = sub { - if ($mylatitude) { + if ($mylatitude && !$private) { $index_selfspot >= 0 and print_spot($mylatitude, $mylongitude, 'free', $imgbin{netspot_self}[$index_selfspot], $back_selfspot); $index_selfspot++; if ($index_selfspot == @{$imgbin{netspot_self}}) { @@ -4001,8 +4001,8 @@ fb_net::send_and_receive('NICK', $mynick); - if ($pdata{gametype} eq 'net') { - if (!defined($mylatitude) && !$private) { + if ($pdata{gametype} eq 'net' && !$private) { + if (!defined($mylatitude)) { $erase->(); smg_add_status_msg(t("*** Please wait, retrieving your geographical location from http://hostip.info/...")); eval { ++++++ fixoverlongchatmessage.diff ++++++ diff -u frozen-bubble-2.1.0_orig/frozen-bubble frozen-bubble-2.1.0/frozen-bubble --- frozen-bubble-2.1.0_orig/frozen-bubble 2007-08-01 11:22:19.000000000 +0200 +++ frozen-bubble-2.1.0/frozen-bubble 2007-08-01 12:37:45.000000000 +0200 @@ -3061,6 +3061,11 @@ $TIME_HURRY_WARN = 250; $TIME_HURRY_MAX = 375; + foreach(@ALL_PLAYERS) + { + $pdata{current_chat_messages}{$_} = undef; + } + my $backgr; if (is_mp_game()) { $pdata{p1}{chatting} and cleanup_chatting(); ++++++ othergamedefaults.diff ++++++ --- /usr/bin/frozen-bubble 2007-08-01 12:47:21.000000000 +0200 +++ frozen-bubble 2007-08-12 18:53:07.000000000 +0200 @@ -4041,7 +4041,7 @@ my $relist; my $can_start = 0; my $joined_leader; - my $chain_reaction_state = t("disabled"); + my $chain_reaction_state = t("enabled"); my @victories_limits = ({ value => undef, text => t("none (unlimited)") }, { value => 1, @@ -4070,7 +4070,7 @@ text => i18n_number(50) }, { value => 100, text => i18n_number(100) }); - my $victories_limit_index = 0; + my $victories_limit_index = 3; my @history; my $history_position; $list->('first time'); ++++++ otherlimits.diff ++++++ --- frozen-bubble 2007-09-12 08:07:57.000000000 +0200 +++ frozen-bubble.orig 2007-09-12 08:10:02.000000000 +0200 @@ -4077,10 +4077,24 @@ my $chain_reaction_state = t("enabled"); my @victories_limits = ({ value => undef, text => t("none (unlimited)") }, + { value => 1, + text => i18n_number(1) }, + { value => 2, + text => i18n_number(2) }, { value => 3, text => i18n_number(3) }, + { value => 4, + text => i18n_number(4) }, + { value => 5, + text => i18n_number(5) }, { value => 6, text => i18n_number(6) }, + { value => 7, + text => i18n_number(7) }, + { value => 8, + text => i18n_number(8) }, + { value => 9, + text => i18n_number(9) }, { value => 10, text => i18n_number(10) }, { value => 20, @@ -4110,9 +4124,16 @@ if ($action eq 'inc') { $victories_limit_index++; $victories_limit_index == @victories_limits and $victories_limit_index = 0; - } else { + } elsif ($action eq 'dec') { $victories_limit_index--; $victories_limit_index == -1 and $victories_limit_index = @victories_limits - 1; + } else { + for (my $i = 0; $i <= $#victories_limits; ++$i) { + if((!$action && !$victories_limits[$i]{value}) || + ($action && $victories_limits[$i]{value} && $victories_limits[$i]{value} eq $action)) { + $victories_limit_index = $i; + } + } } $actions[2]{name} = t("Victories limit: %s", $victories_limits[$victories_limit_index]{text}); $redraw->(); @@ -4446,6 +4467,11 @@ } }); } else { + if ($curaction->()->{action} eq 'SWITCH_VICTORIES_LIMIT') { + my $utf8char = fb_c_stuff::utf8key(evt($event)); + $change_victories_limit->($utf8char) if defined $utf8char && $utf8char eq int($utf8char); + } + handle_whenever_events($k); } } ++++++ showdropdown.diff ++++++ --- ./frozen-bubble 2007-09-11 19:22:28.000000000 +0200 +++ frozen-bubble 2007-09-11 19:20:20.000000000 +0200 @@ -903,6 +903,37 @@ print_('ingame', $background, $mp_train_xpos, $mp_train_ypos, t("%s'%s"", i18n_number($m), i18n_number($s)), $imgbin{void_mp_training}->width, 'center'); } +sub handle_progress($) { + if(defined($pdata{$::p}{newrootlast})) + { + if($pdata{$::p}{newroot} != $pdata{$::p}{newrootlast}) + { + my $height = $imgbin{progress_red}->height+1; + my $xpos = $POS{$::p}{progress}{x}; + my $ypos = $POS{$::p}{progress}{y}; + put_image_to_background($imgbin{progress_green}, $xpos, $ypos + $pdata{$::p}{newrootlast}*$height); + put_image_to_background($imgbin{progress_red}, $xpos, $ypos + $pdata{$::p}{newroot}*$height); + $pdata{$::p}{newrootlast} = $pdata{$::p}{newroot}; + } + } + else + { + my $height = $imgbin{progress_red}->height+1; + my $xpos = $POS{$::p}{progress}{x}; + my $ypos = $POS{$::p}{progress}{y}; + $pdata{$::p}{newrootlast} = 0; + my $drect = SDL::Rect->new(-width => $imgbin{progress_red}->width, + -height => $height*(1+$TIME_APPEARS_NEW_ROOT), -x => $xpos, '-y' => $ypos); + push @update_rects, $drect; + + for(my $i = 0; $i <= $TIME_APPEARS_NEW_ROOT; ++$i) + { + put_image_to_background($imgbin{$i ? "progress_green" : "progress_red"}, + $xpos, $ypos + $i*$height); + } + } +} + sub handle_graphics($) { my ($fun) = @_; @@ -966,6 +997,8 @@ } } + handle_progress($::p); + #- chat message in mp if (is_mp_game() && $pdata{$::p}{chat_msg_delay}) { $pdata{$::p}{chat_msg_delay}--; @@ -2578,6 +2611,8 @@ $imgbin{back_paused} = add_image('back_paused.png'); push @{$imgbin{paused}}, add_image("pause_00$_.png") foreach '01'..'35'; $imgbin{lose} = add_image('lose_panel.png'); + $imgbin{progress_red} = add_image('dot_red.png'); + $imgbin{progress_green} = add_image('dot_green.png'); $imgbin{win_panel_1player} = add_image('win_panel_1player.png'); $imgbin{win_panel_p1_net} = add_image('win_panel_p1_net.png'); $imgbin{compressor_main} = add_image('compressor_main.png'); @@ -3130,6 +3165,11 @@ mp_train_print_time(); } + iter_players { + delete $pdata{$::p}{newrootlast}; + handle_progress($::p); + }; + is_1p_game() and print_compressor(); if (!$playdata) { --- c_stuff/lib/fb_stuff.pm 2007-09-11 17:20:44.000000000 +0200 +++ fb_stuff.pm 2007-09-11 17:50:23.000000000 +0200 @@ -45,7 +45,9 @@ next_bubble => { x => 112, 'y' => 440 }, on_top_next_relpos => { x => -3, 'y' => -3 }, hurry => { x => 10, 'y' => 265 }, - scores => { x => 74, 'y' => 103 } }, + scores => { x => 74, 'y' => 103 }, + progress => { x => 447, 'y' => 28}, + }, centerpanel => { x => 149, 'y' => 190 }, pause_clip => { x => 263, 'y' => 212 }, compressor_xpos => 318, @@ -62,6 +65,7 @@ scores => { x => 160, 'y' => 11 }, chatting => { x => 70, 'y' => 465 }, left => { x => 30, 'y' => 40 }, + progress => { x => 287, 'y' => 28 }, }, p1 => { left_limit => 354, right_limit => 610, top_limit => 40, 'initial_bubble_y' => 390, canon => { x => 432, 'y' => 356 }, @@ -73,6 +78,7 @@ malus => { x => 331, 'y' => 402 }, scores => { x => 480, 'y' => 11 }, chatting => { x => 390, 'y' => 442 }, + progress => { x => 345, 'y' => 28 }, }, centerpanel => { x => 153, 'y' => 190 }, ); @@ -89,6 +96,7 @@ scores => { x => 320, 'y' => 12 }, chatting => { x => 215, 'y' => 442 }, attackme => { x => 185, 'y' => 448 }, + progress => { x => 447, 'y' => 28 }, }, rp1 => { left_limit => 20, right_limit => 148, top_limit => 19, 'initial_bubble_y' => 192, canon => { x => 59, 'y' => 175 }, @@ -102,6 +111,7 @@ chatting => { x => 5, 'y' => 230 }, left => { x => 19, 'y' => 17 }, attack => { x => 25, 'y' => 213 }, + progress => { x => 149, 'y' => 28 }, }, rp2 => { left_limit => 492, right_limit => 620, top_limit => 19, 'initial_bubble_y' => 192, canon => { x => 531, 'y' => 175 }, @@ -115,6 +126,7 @@ chatting => { x => 460, 'y' => 230 }, left => { x => 491, 'y' => 17 }, attack => { x => 496, 'y' => 214 }, + progress => { x => 483, 'y' => 28 }, }, rp3 => { left_limit => 20, right_limit => 148, top_limit => 247, 'initial_bubble_y' => 420, canon => { x => 59, 'y' => 404 }, @@ -128,6 +141,7 @@ chatting => { x => 5, 'y' => 460 }, left => { x => 19, 'y' => 245 }, attack => { x => 24, 'y' => 442 }, + progress => { x => 149, 'y' => 258 }, }, rp4 => { left_limit => 492, right_limit => 620, top_limit => 247, 'initial_bubble_y' => 420, canon => { x => 531, 'y' => 404 }, @@ -141,6 +156,7 @@ chatting => { x => 460, 'y' => 460 }, left => { x => 491, 'y' => 245 }, attack => { x => 496, 'y' => 442 }, + progress => { x => 483, 'y' => 258 }, }, centerpanel => { x => 149, 'y' => 190 }, ); ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org