Giter Club home page Giter Club logo

frozen-bubble's People

Contributors

csjewell avatar daxim avatar dod38fr avatar dsteinbrunner avatar froggs avatar gcottenc avatar kmx avatar nchiapol avatar odormond avatar stoecker avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

frozen-bubble's Issues

candy switching broken

@@ -5460,82 +5467,91 @@
[...]
my $candy_init = sub {

  •    if (defined($candy)) {
    
  •        erase_image_from($imgbin{menu_logo}, $logox, $logoy, $back_start);
    
  •        $candy = undef;
    
  •        $imgbin{menu_logo} = add_image('menu/fblogo.png');
    
  •    }
    
  •           # calulating positions and creating new surfaces for logo animations
    
    +# if (defined($candy)) {
    +# erase_image_from($imgbin{menu_logo}, $logox, $logoy, $back_start);
    +# $candy = undef;
    +# $imgbin{menu_logo} = add_image('menu/fblogo.png');
    +# }

why did you remove that? candy switching is probably broken now (git blame tells you it is from 411670e). don't remove stuff you don't understand, ask git blame to tell you :)

Create a working Games::FrozenBubble v1.0.0

Frozen Bubble has long been a poster child both Perl SDL, and yet it's never been installable from the CPAN.

This seems wrong, there's no real reason why it should be.

Port a late working version of FB1 into CPAN packaging format, and get it working. This will not only make a fun game available for everyone, but also act as a good Public Relations exercise, and prove that large popular games can be reliably distributed via the CPAN.

Repo: http://svn.ali.as/cpan/trunk/Games-FrozenBubble

style change

@@ -4220,14 +4225,14 @@
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}}) {
    
  •        if ($back_selfspot and $index_selfspot == @{$imgbin{netspot_self}}) {
    

===> I used && everywhere for logical "and" expressions, we should stick to one style

proper README

README now contains project history, replace with notes prior to downloading/installation

eval('use')?

  •                   if( eval('use Compress::Bzip2; 1') ) {
    

isn't the perl idiom in such a case rather "eval { require Compress:Bzip2 };"?

server: MOTD, stats

from j0s3ph gmail.com: MOTD, some server stats (total number of
games played, uptime)

(imported from TODO file)

automatic demos broken

after some time idle in main menu, an automatic demo is normally shown; on console the following line is printed (probably some messup in the file or missing file or whatever):

Incorrect line number 1 in savegame.

RTL language specific broken

@@ -4659,32 +4664,32 @@
[...]
#- for RTL language, force beginning on the right, but non RTL content will appear wrongly so at least don't do for pure ASCII
if ($is_rtl && !is_only_ascii($text)) {

  •                            $text = "<U+202B><$mynick> $text";
    
  •                            $text = "?<$mynick> $text";
    

style change

  • defined($candy) or $candy_init->();
  • $candy_init->() unless defined $candy;

boo! bad bad style change

tests to avoid regressions

interesting tests coming to mind:

  • test with a couple of exotic languages including arabic (my mail includes a pointer to a change from kartik probably breaking proper arabic behaviour in chat)
  • all game types (regular 1P, 2P, MP training, LAN, and NET play)
  • game recording and replaying
  • game pausing (keyboard Pause key)
  • starting the game without a sound device attached (used to be a recurrent process blocker with some versions of SDL or/ sound libraries)
  • highscores in multiple combinations (regular game, MP training)
  • more and more tests in more weird cases!

Using SDL_SWSURFACE or SDL_ANYFORMAT for all surfaces

my $newlogosurface = SDL::Surface->new(SDL_SWSURFACE, $imgbin{menu_logo}->w * 1.1, $imgbin{menu_logo}->h * 1.1, 32, 0xFF000000, 0xFF0000, 0xFF00, 0xFF);
[...]
my $newlogosurface = SDL::Surface->new(SDL_ANYFORMAT, $imgbin{menu_logo}->w * 1.1, $imgbin{menu_logo}->h * 1.05, 32, 0xFF000000, 0xFF0000, 0xFF00, 0xFF);

we have to know what is the best for creating surfaces and use this for all.

print_spot implementation change question

@@ -4017,22 +4022,22 @@
}

sub save_back_spot {

  • my ($latitude, $longitude, $surface, $back) = @_;
  • my ($latitude, $longitude, $surface, $back_ref) = @_;
    my ($x, $y) = get_spot_location($latitude, $longitude);
  • $x -= $surface->width/2;
  • $y -= $surface->height/2;
  • $$back = SDL::Surface->new(-width => 20, -height => 20, -depth => 32, -Amask => '0 but true');
  • $app->blit(SDL::Rect->new('-x' => $x, '-y' => $y, -width =&gt; 20, -height =&gt; 20), $$back, undef);
  • add_default_rect($$back);
  • $x -= $surface->w/2;
  • $y -= $surface->h/2;
  • $$back_ref = SDL::Surface->new(20, 20, 32, 0, 0, 0, 0);
  • SDL::Video::blit_surface($app, SDL::Rect->new($x, $y, 20, 20), $$back_ref, SDL::Rect->new(0,0,$$back_ref->w,$$back_ref->h));
  • add_default_rect($$back_ref);
    }
    sub print_spot {
    my ($latitude, $longitude, $kind, $surface, $back) = @;
    $surface ||= $imgbin{"netspot
    $kind"};
    my ($x, $y) = get_spot_location($latitude, $longitude);
  • $x -= $surface->width/2;
  • $y -= $surface->height/2;
  • if ($back) {
  •    put_image($$back, $x, $y);
    
  • $x -= $surface->w/2;
  • $y -= $surface->h/2;
  • if ($back and ref $back ne 'SCALAR') {

===> is that last line change necessary? I don't see the point

  •    put_image($back, $x, $y);
     pop @update_rects;
    
    }
    put_image($surface, $x, $y);

"if 0" has a purpose

  • my $current_pos if 0; $current_pos ||= 1;
  • my $current_pos = 1; # selected menu entry (1..8)

removing "if 0" makes that value not kept accross subroutines calls anymore (if 0 == "static" in C language for example)

Windows cannot use Fcntl macro F_GETFL

Windows cannot use Fcntl macro F_GETFL

Your vendor has not defined Fcntl macro F_GETFL, used at
C:/strawberry/perl/site/lib/Games/FrozenBubble/Net.pm line 351.

ports authors contact info

+=head2 Fix your problems
+
+Most of the problems you can encounter with Frozen-Bubble don't require
+contacting us directly, and actually we can't fix most of them.
+
+First, please notice that we have developed this software on the
+GNU/Linux platform. There are ports to other operating systems, but we
+can't and don't want to support them. If you happen to be using
+Frozen-Bubble on FreeBSD, NetBSD, Windows or Mac OS X, please contact
+the authors of this "port" if you have trouble
+installing/running/whatever. Thank you.

That was created when we had really no connections with port authors. Now that you guys made the Windows etc ports, it might be worthwhile to list the contact info of these ports explicitely right after that section?

harmonise copyright statement

In most places, the FSF address is out of date. The copyright statement should look the same everywhere. Copy it from README @ f2065ce

Write an author test for this.

ever-building server sources

there's an issue in the build process. the server sources are built even if they're already built. for example, after a clean:

[gc@meuh /tmp/frozen-bubble] ./Build
i586-mandriva-linux-gnu-gcc -I/usr/lib/perl5/5.10.1/i386-linux-thread-multi/CORE -fPIC -g -Wall -Werror -pipe -Iserver -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -lglib-2.0 -c -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -fomit-frame-pointer -march=i586 -mtune=generic -fasynchronous-unwind-tables -o server/fb-server.o server/fb-server.c
i586-mandriva-linux-gnu-gcc -I/usr/lib/perl5/5.10.1/i386-linux-thread-multi/CORE -fPIC -g -Wall -Werror -pipe -Iserver -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -lglib-2.0 -c -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -fomit-frame-pointer -march=i586 -mtune=generic -fasynchronous-unwind-tables -o server/log.o server/log.c
i586-mandriva-linux-gnu-gcc -I/usr/lib/perl5/5.10.1/i386-linux-thread-multi/CORE -fPIC -g -Wall -Werror -pipe -Iserver -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -lglib-2.0 -c -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -fomit-frame-pointer -march=i586 -mtune=generic -fasynchronous-unwind-tables -o server/tools.o server/tools.c
i586-mandriva-linux-gnu-gcc -I/usr/lib/perl5/5.10.1/i386-linux-thread-multi/CORE -fPIC -g -Wall -Werror -pipe -Iserver -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -lglib-2.0 -c -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -fomit-frame-pointer -march=i586 -mtune=generic -fasynchronous-unwind-tables -o server/game.o server/game.c
i586-mandriva-linux-gnu-gcc -I/usr/lib/perl5/5.10.1/i386-linux-thread-multi/CORE -fPIC -g -Wall -Werror -pipe -Iserver -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -lglib-2.0 -c -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -fomit-frame-pointer -march=i586 -mtune=generic -fasynchronous-unwind-tables -o server/net.o server/net.c
i586-mandriva-linux-gnu-gcc -fstack-protector -L/usr/local/lib -o server/fb-server server/fb-server.o server/log.o server/tools.o server/game.o server/net.o -lglib-2.0
Building Games-FrozenBubble
i586-mandriva-linux-gnu-gcc -I/usr/lib/perl5/5.10.1/i386-linux-thread-multi/CORE -DXS_VERSION="2.202" -DVERSION="2.202" -fPIC -I/usr/include -c -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -fomit-frame-pointer -march=i586 -mtune=generic -fasynchronous-unwind-tables -o lib/Games/FrozenBubble/CStuff.o lib/Games/FrozenBubble/CStuff.c
ExtUtils::Mkbootstrap::Mkbootstrap('blib/arch/auto/Games/FrozenBubble/CStuff/CStuff.bs')
i586-mandriva-linux-gnu-gcc -shared -O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -fomit-frame-pointer -march=i586 -mtune=generic -fasynchronous-unwind-tables -L/usr/local/lib -o blib/arch/auto/Games/FrozenBubble/CStuff/CStuff.so lib/Games/FrozenBubble/CStuff.o -L/usr/lib -lSDL -lSDL_mixer -lSDL_Pango -L/usr/local/lib -L/usr/lib
[gc@meuh /tmp/frozen-bubble]
[gc@meuh /tmp/frozen-bubble]
[gc@meuh /tmp/frozen-bubble] ./Build
i586-mandriva-linux-gnu-gcc -I/usr/lib/perl5/5.10.1/i386-linux-thread-multi/CORE -fPIC -g -Wall -Werror -pipe -Iserver -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -lglib-2.0 -c -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -fomit-frame-pointer -march=i586 -mtune=generic -fasynchronous-unwind-tables -o server/fb-server.o server/fb-server.c
i586-mandriva-linux-gnu-gcc -I/usr/lib/perl5/5.10.1/i386-linux-thread-multi/CORE -fPIC -g -Wall -Werror -pipe -Iserver -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -lglib-2.0 -c -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -fomit-frame-pointer -march=i586 -mtune=generic -fasynchronous-unwind-tables -o server/log.o server/log.c
i586-mandriva-linux-gnu-gcc -I/usr/lib/perl5/5.10.1/i386-linux-thread-multi/CORE -fPIC -g -Wall -Werror -pipe -Iserver -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -lglib-2.0 -c -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -fomit-frame-pointer -march=i586 -mtune=generic -fasynchronous-unwind-tables -o server/tools.o server/tools.c
i586-mandriva-linux-gnu-gcc -I/usr/lib/perl5/5.10.1/i386-linux-thread-multi/CORE -fPIC -g -Wall -Werror -pipe -Iserver -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -lglib-2.0 -c -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -fomit-frame-pointer -march=i586 -mtune=generic -fasynchronous-unwind-tables -o server/game.o server/game.c
i586-mandriva-linux-gnu-gcc -I/usr/lib/perl5/5.10.1/i386-linux-thread-multi/CORE -fPIC -g -Wall -Werror -pipe -Iserver -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -lglib-2.0 -c -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -fomit-frame-pointer -march=i586 -mtune=generic -fasynchronous-unwind-tables -o server/net.o server/net.c
i586-mandriva-linux-gnu-gcc -fstack-protector -L/usr/local/lib -o server/fb-server server/fb-server.o server/log.o server/tools.o server/game.o server/net.o -lglib-2.0
Building Games-FrozenBubble
[gc@meuh /tmp/frozen-bubble]

overlook effect disabled

overlook effect (the whitish thing in the background of selected menu item from "Start 1-player game menu") is missing.

from source code:

commented out because otherwise we see only a white box instead of highlighted background image

if ($graphics_level > 1) {

$draw_overlook->();

SDL::Video::update_rects($app, @update_rects);

@update_rects = ();

}

here's how it looks like in 2.2.0:

http://zarb.org/~gc/t/overlook-fb-2.2.0.png

2p game chain reaction decision feedback missing

when starting a 2p game, there is a question "would you like to activate chain reaction". The input key typed by the enduser, used to be feedbacked (printed on screen) when game is loading, but is no longer.

Frozen Bubble 0.001_01 crash on entering multiplayer net game

Net Game -> Join Server -> Create Game -> wait for player -> Start game

rint_: main bin/frozen-bubble 4890 main::ANON 1 1538 Start game!
print_: main bin/frozen-bubble 4890 main::ANON 1 1538 Players in game: kthakore, somebody32, pAt2
print_: main bin/frozen-bubble 4219 main::smg_printstatus 1 1794 *** pAt2 joined the game!
print_: main bin/frozen-bubble 4219 main::smg_printstatus 1 1794 *** somebody32 joined the game!
print_: main bin/frozen-bubble 4219 main::smg_printstatus 1 1794 *** Game created - now you need to wait for players to join
print_: main bin/frozen-bubble 4219 main::smg_printstatus 1 1794 18:18 Gah my internet sux
print_: main bin/frozen-bubble 4219 main::smg_printstatus 1 1794 18:18 * xAngelx gives sam a pictal and amo

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb7ed78d0 (LWP 28700)]
0xb16c21a6 in Player_LoadGeneric_internal () from /usr/lib/libmikmod.so.2
(gdb) bt full
#0 0xb16c21a6 in Player_LoadGeneric_internal () from /usr/lib/libmikmod.so.2

No symbol table info available.
#1 0xb16c26bf in Player_LoadGeneric () from /usr/lib/libmikmod.so.2

No symbol table info available.
#2 0xb7b843f1 in MikMod_LoadSongRW ()

from /usr/local/share/perl/5.10.0/auto/share/dist/Alien-SDL/1.1_b85c4c18/lib/libSDL_mixer.so
No locals.
#3 0xb7b84438 in MOD_new_RW ()

from /usr/local/share/perl/5.10.0/auto/share/dist/Alien-SDL/1.1_b85c4c18/lib/libSDL_mixer.so
No locals.
#4 0xb7b8419a in MOD_new ()

from /usr/local/share/perl/5.10.0/auto/share/dist/Alien-SDL/1.1_b85c4c18/lib/libSDL_mixer.so
No locals.
#5 0xb7b80fab in Mix_LoadMUS ()

from /usr/local/share/perl/5.10.0/auto/share/dist/Alien-SDL/1.1_b85c4c18/lib/libSDL_mixer.so
No locals.
#6 0xb7b594eb in XS_SDL__Mixer__Music_load_MUS (my_perl=0x93ec008,

---Type to continue, or q to quit---
cv=0x98adbe8) at lib/SDL/Mixer/Music.xs:122
filename = 0x0
mixmusic =
sp =
ax =
#7 0x080b3c92 in Perl_pp_entersub ()

No symbol table info available.
#8 0x080b2069 in Perl_runops_standard ()

No symbol table info available.
#9 0x080b045c in perl_run ()

No symbol table info available.
#10 0x08063ebd in main ()

No symbol table info available.
(gdb)

desktop file

There's no free-desktop desktop file in Frozen Bubble's package. When this file is used, Frozen Bubble shows up in the menus of any
freedesktop compliant window manager (e.g KDE/GNOME). It would be nice to add one to the tarball. Since there's none, most distributions add its own. If there was a freedesktop file in the tarball, translations of the menu items would be centralized too.

Here's the one used in the Pardus package (for an example): http://svn.pardus.org.tr/pardus/devel/applications/games/frozen-bubble/files/frozen-bubble.desktop

Doruk Fisek

(imported from TODO file)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.