diff -Nru pangzero-1.4/Build.PL pangzero-1.4.1+git20121103/Build.PL --- pangzero-1.4/Build.PL 2012-02-21 21:24:42.000000000 +0000 +++ pangzero-1.4.1+git20121103/Build.PL 2012-02-21 21:32:09.000000000 +0000 @@ -24,7 +24,8 @@ }, meta_merge => { resources => { - repository => 'http://github.com/kthakore/pangzero' + bugtracker => 'http://github.com/kthakore/pangzero/issues', + repository => 'http://github.com/kthakore/pangzero' } }, share_dir => 'data', diff -Nru pangzero-1.4/ChangeLog pangzero-1.4.1+git20121103/ChangeLog --- pangzero-1.4/ChangeLog 2012-02-21 21:24:42.000000000 +0000 +++ pangzero-1.4.1+git20121103/ChangeLog 2012-03-13 13:57:32.000000000 +0000 @@ -1,7 +1,11 @@ -2012-01-31 09:43 FROGGS - * ChangeLog, VERSION, *.p[l/m]: Bumped version to 1.4, making pangzero - work with upstream release of SDL. Many fixes. - See http://cpansearch.perl.org/src/FROGGS/SDL-2.536/CHANGELOG + +2012-03-12 19:42 FROGGS + * 1.4.1, fix for SDL's Joystick API + +2012-02-21 22:27 kthakore, FROGGS + * ChangeLog, VERSION, *.p[l/m]: Bumped version to 1.4, making pangzero + work with upstream release of SDL. Many fixes. + See http://cpansearch.perl.org/src/FROGGS/SDL-2.536/CHANGELOG 2007-07-15 10:12 upi Binary files /tmp/OB2hby0V_R/pangzero-1.4/data/icon.bmp and /tmp/Bv5CAlbiKt/pangzero-1.4.1+git20121103/data/icon.bmp differ diff -Nru pangzero-1.4/debian/changelog pangzero-1.4.1+git20121103/debian/changelog --- pangzero-1.4/debian/changelog 2012-03-04 06:54:39.000000000 +0000 +++ pangzero-1.4.1+git20121103/debian/changelog 2014-10-03 12:37:42.000000000 +0000 @@ -1,3 +1,36 @@ +pangzero (1.4.1+git20121103-1) unstable; urgency=medium + + [ Markus Koschany ] + * Imported Upstream Git snapshot 1.4.1+git20121103. + - This version would not be possible without the help and patches from + Hans de Goede. Thank you! + - Fixes multiple serious bugs: (Closes: #692221) + + Windowed mode does not work. + + Sound and music not working. + + Use of uninitialized values in comparisons. (Closes: #414336) + + Widescreen mode crashes pangzero. (Closes: #748525). Thanks to Josh + Triplett for the report. + + and multiple other crashes. + * Declare compliance with Debian Policy 3.9.6. + * Add dpkg-dev (>= 1.17) to Build-Depends due to the use of + dpkg-parsechangelog -S option in debian/rules. + * Add myself to Uploaders. + * debian/rules: Add get-orig-source target. + * Remove Marco Rodrigues from Uploaders because he is inactive and his e-mail + address is invalid. (Closes: #694149) + * Add a comment in German to pangzero.desktop. + * wrap-and-sort -sa. + * Add libmodule-build-perl to Build-Depends-Indep to silence build warnings + because the Build module will be removed from the next major Perl release. + * Update 10_nowebpage.patch for new release. + * Update debian/copyright to copyright format 1.0. + + [ Barry deFreese ] + * Add Keywords entry to desktop file. + * Make VCS tags canonical. + + -- Markus Koschany Fri, 03 Oct 2014 14:34:37 +0200 + pangzero (1.4-1) unstable; urgency=low * Team upload. diff -Nru pangzero-1.4/debian/control pangzero-1.4.1+git20121103/debian/control --- pangzero-1.4/debian/control 2012-03-04 06:42:33.000000000 +0000 +++ pangzero-1.4.1+git20121103/debian/control 2014-10-03 12:37:42.000000000 +0000 @@ -5,18 +5,26 @@ Uploaders: Miriam Ruiz , Sam Hocevar , - Marco Rodrigues , - Barry deFreese -Build-Depends: debhelper (>= 9) -Build-Depends-Indep: autotools-dev, libsdl-perl (>= 2.536~) -Standards-Version: 3.9.3 -Vcs-Svn: svn://svn.debian.org/svn/pkg-games/packages/trunk/pangzero/ -Vcs-Browser: http://svn.debian.org/wsvn/pkg-games/packages/trunk/pangzero/?op=log + Barry deFreese , + Markus Koschany +Build-Depends: + debhelper (>= 9), + dpkg-dev (>= 1.17) +Build-Depends-Indep: + autotools-dev, + libsdl-perl (>= 2.536~), + libmodule-build-perl +Standards-Version: 3.9.6 +Vcs-Svn: svn://anonscm.debian.org/pkg-games/packages/trunk/pangzero/ +Vcs-Browser: http://anonscm.debian.org/viewvc/pkg-games/packages/trunk/pangzero/ Homepage: http://apocalypse.rulez.org/pangzero Package: pangzero Architecture: all -Depends: libsdl-perl (>= 2.536~), ${misc:Depends}, ${perl:Depends} +Depends: + libsdl-perl (>= 2.536~), + ${misc:Depends}, + ${perl:Depends} Description: action game that involves popping balloons with a harpoon Pang Zero is a clone and enhancement of Super Pang, a fast-paced action game that involves popping balloons with a harpoon. diff -Nru pangzero-1.4/debian/copyright pangzero-1.4.1+git20121103/debian/copyright --- pangzero-1.4/debian/copyright 2012-03-04 06:25:51.000000000 +0000 +++ pangzero-1.4.1+git20121103/debian/copyright 2014-10-03 12:37:42.000000000 +0000 @@ -1,31 +1,39 @@ -This package was debianized by Miriam Ruiz on -Thu, 7 Dec 2006 18:43:34 +0000. - -It was downloaded from http://sourceforge.net/projects/pangzero - -Upstream Authors: - Code and Graphics: UPi - Music: SAdam - Graphics: DaniGM - Graphics: Elio Blanca - -Copyright: Copyright (C) 2006 by UPi - -License: - - This package is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This package is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this package; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -The Debian packaging is Copyright (C) 2006, Miriam Ruiz and -is licensed under the GPL, see `/usr/share/common-licenses/GPL-2'. +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: Pang Zero +Source: https://github.com/kthakore/pangzero + +Files: * +Copyright: 2006-2012, Code and Graphics: UPi + Music: SAdam + Graphics: DaniGM + Graphics: Elio Blanca +License: GPL-2+ + +Files: debian/* +Copyright: 2006, Miriam Ruiz + 2007, Sam Hocevar (Debian packages) + 2007, Eddy Petrișor + 2007, Jon Dowland + 2007, Marco Rodrigues + 2009, Barry deFreese + 2012, Paul Wise + 2014, Markus Koschany +License: GPL-2+ + +License: GPL-2+ + This package is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + . + This package is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this package; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + . + On Debian systems, the complete text of the GNU General Public License version + 2 can be found in "/usr/share/common-licenses/GPL-2". diff -Nru pangzero-1.4/debian/pangzero.6 pangzero-1.4.1+git20121103/debian/pangzero.6 --- pangzero-1.4/debian/pangzero.6 2009-03-18 11:32:22.000000000 +0000 +++ pangzero-1.4.1+git20121103/debian/pangzero.6 2014-10-03 12:37:42.000000000 +0000 @@ -1,8 +1,8 @@ .\" .ig .\" Pang Zero manual page. -.\" +.\" .\" Miriam Ruiz , 2006. -.\" +.\" .\" This next line loads the www macro package so that the .URL macro can be used. .\" .. .\" .mso www.tmac @@ -32,7 +32,7 @@ . .SH "FILES" . -.TP +.TP .I ~/.pangzerorc This is where Pang Zero stores user data and game configuration. .SH "AUTHOR" diff -Nru pangzero-1.4/debian/pangzero.desktop pangzero-1.4.1+git20121103/debian/pangzero.desktop --- pangzero-1.4/debian/pangzero.desktop 2008-04-26 03:23:03.000000000 +0000 +++ pangzero-1.4.1+git20121103/debian/pangzero.desktop 2014-10-03 12:37:42.000000000 +0000 @@ -2,7 +2,9 @@ Name=Pang Zero GenericName=pangzero Comment=Pop balloons with your harpoon +Comment[de]=Lasse Ballons mit deiner Harpune platzen Type=Application +Keywords=game;entertainment; Exec=pangzero Icon=pangzero Terminal=false diff -Nru pangzero-1.4/debian/pangzero.install pangzero-1.4.1+git20121103/debian/pangzero.install --- pangzero-1.4/debian/pangzero.install 2012-03-04 05:55:01.000000000 +0000 +++ pangzero-1.4.1+git20121103/debian/pangzero.install 2014-10-03 12:37:42.000000000 +0000 @@ -1,2 +1,2 @@ -debian/pangzero.xpm usr/share/pixmaps debian/pangzero.desktop usr/share/applications +debian/pangzero.xpm usr/share/pixmaps diff -Nru pangzero-1.4/debian/patches/10_nowebpage.patch pangzero-1.4.1+git20121103/debian/patches/10_nowebpage.patch --- pangzero-1.4/debian/patches/10_nowebpage.patch 2012-03-04 06:01:02.000000000 +0000 +++ pangzero-1.4.1+git20121103/debian/patches/10_nowebpage.patch 2014-10-03 12:37:42.000000000 +0000 @@ -1,15 +1,20 @@ -Author: Paul Wise -Description: Default ShowWebsite so webpage not called on exit -Bug-Debian: http://bugs.debian.org/481998 -Last-Update: 2012-03-04 -Forwarded: no +From: Markus Koschany +Date: Tue, 23 Sep 2014 12:26:41 +0200 +Subject: 10_nowebpage + +--- + lib/Games/PangZero/Globals.pm | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/Games/PangZero/Globals.pm b/lib/Games/PangZero/Globals.pm +index 4f39fcd..5431157 100644 --- a/lib/Games/PangZero/Globals.pm +++ b/lib/Games/PangZero/Globals.pm -@@ -242,6 +242,6 @@ +@@ -243,6 +243,6 @@ $Games::PangZero::SeekerBallsEnabled = 1; $Games::PangZero::FullScreen = 1; $Games::PangZero::UnicodeMode = 0; $Games::PangZero::Slippery = 0; -$Games::PangZero::ShowWebsite = 0; -+$Games::PangZero::ShowWebsite = 1.4; ++$Games::PangZero::ShowWebsite = '1.4.1'; 1; diff -Nru pangzero-1.4/debian/rules pangzero-1.4.1+git20121103/debian/rules --- pangzero-1.4/debian/rules 2012-03-04 06:25:03.000000000 +0000 +++ pangzero-1.4.1+git20121103/debian/rules 2014-10-03 12:37:42.000000000 +0000 @@ -1,7 +1,30 @@ #!/usr/bin/make -f +PKD := $(abspath $(dir $(MAKEFILE_LIST))) +VER := $(shell dpkg-parsechangelog -l$(PKD)/changelog -SVersion | cut -d- -f1) +PKG := pangzero +UURL := https://github.com/kthakore/pangzero.git +COMMIT := 422ce004be3b32de4f301feb83c0731f18779aad + + %: dh $@ --parallel override_dh_auto_configure: dh_auto_configure -- --install_path script=/usr/games +.PHONY: get-orig-source +## http://wiki.debian.org/onlyjob/get-orig-source +get-orig-source: + @echo "# Cloning upstream git repository..." + git clone $(UURL) $(PKG)-$(VER) \ + || $(RM) -r $(PKG)-$(VER) + cd $(PKG)-$(VER) \ + && git checkout -b debiansource $(COMMIT) \ + && echo "# Setting times..." \ + && for F in $$(git ls-tree -r --name-only HEAD); \ + do touch --no-dereference -d "$$(git log -1 --format="%ai" -- $$F)" "$$F"; done \ + && $(RM) -r .git .git* + @echo "# Packing..." + find -L "$(PKG)-$(VER)" -xdev -type f -print | sort \ + | XZ_OPT="-6v" tar -caf "$(PKG)_$(VER)$(DTYPE).orig.tar.xz" -T- --owner=root --group=root --mode=a+rX \ + && $(RM) -r "$(PKG)-$(VER)" diff -Nru pangzero-1.4/lib/Games/PangZero/BonusDrop.pm pangzero-1.4.1+git20121103/lib/Games/PangZero/BonusDrop.pm --- pangzero-1.4/lib/Games/PangZero/BonusDrop.pm 2012-02-21 21:24:42.000000000 +0000 +++ pangzero-1.4.1+git20121103/lib/Games/PangZero/BonusDrop.pm 2012-10-29 16:07:50.000000000 +0000 @@ -7,7 +7,8 @@ use vars qw(@BonusDesc); @BonusDesc = ( - { 'weaponClass' => 'MachineGun', 'bonusDelay' => 1500, 'srcRect' => SDL::Rect->new( 0, 64, 32, 32), }, +# MachineGun is disabled for now as it is broken (seems like invisible bullets keep flying around) +# { 'weaponClass' => 'MachineGun', 'bonusDelay' => 1500, 'srcRect' => SDL::Rect->new( 0, 64, 32, 32), }, { 'weaponClass' => 'HalfCutter', 'bonusDelay' => 1000, 'srcRect' => SDL::Rect->new(32, 64, 32, 32), }, { 'weaponClass' => 'PowerWire', 'bonusDelay' => 3000, 'srcRect' => SDL::Rect->new(32, 96, 32, 32), }, { 'onCollectedSub' => \&OnCollectedSlowEffect, 'srcRect' => SDL::Rect->new(32, 0, 32, 32), }, diff -Nru pangzero-1.4/lib/Games/PangZero/ChallengeGame.pm pangzero-1.4.1+git20121103/lib/Games/PangZero/ChallengeGame.pm --- pangzero-1.4/lib/Games/PangZero/ChallengeGame.pm 2012-02-21 21:24:42.000000000 +0000 +++ pangzero-1.4.1+git20121103/lib/Games/PangZero/ChallengeGame.pm 2012-11-03 09:49:46.000000000 +0000 @@ -15,19 +15,6 @@ bless $self, $class; } -sub CreateLevelNumberSurface { - my ($level) = @_; - my ($surface, $w); - - $Games::PangZero::GlossyFont->use(); - $w = Games::PangZero::Graphics::TextWidth("Level $level"); - $surface = SDL::Surface->new(SDL_SWSURFACE(), $w+6, 48, 32); - SDLx::SFont::print_text( $surface, 3, 3, "Level $level" ); - - $Games::PangZero::ScoreFont->use(); - return $surface; -} - sub SetGameLevel { my ($self, $level) = @_; @@ -35,28 +22,15 @@ $self->SUPER::SetGameLevel($level); $level = $#Games::PangZero::ChallengeLevels if $level > $#Games::PangZero::ChallengeLevels; $self->{challenge} = $Games::PangZero::ChallengeLevels[$level]; + die unless $self->{challenge}; $self->SpawnChallenge(); - - my ($levelObject, $surface); - $levelObject = Games::PangZero::GameObject->new(); - $surface = CreateLevelNumberSurface($level + 1); - $levelObject->{surface} = $surface; - $levelObject->{w} = $surface->w(); - $levelObject->{h} = $surface->h(); - $levelObject->{x} = ($Games::PangZero::ScreenWidth - $levelObject->{w}) / 2; - $levelObject->{y} = ($Games::PangZero::ScreenHeight - $levelObject->{h}) / 2; - $levelObject->{draw} = sub { my $self = shift; SDL::Video::blit_surface($self->{surface}, - SDL::Rect->new(0, 0, $self->{surface}->w, $self->{surface}->h), - $Games::PangZero::App, $self->{rect} ); }; - $levelObject->{advance} = sub { my $self = shift; $self->Delete() if ++$self->{time} > 200; }; - push @Games::PangZero::GameObjects, $levelObject; } -sub AdvanceGameObjects { +sub AdvanceGame { my ($self) = @_; if ($self->{nextlevel}) { - Games::PangZero::PlaySound('level'); + Games::PangZero::Music::PlaySound('level'); $self->SetGameLevel($self->{level} + 1); delete $self->{nextlevel}; } @@ -64,7 +38,7 @@ $self->SpawnChallenge(); $self->{playerspawned} = 0; } - $self->SUPER::AdvanceGameObjects(); + $self->SUPER::AdvanceGame(); } sub SpawnChallenge { @@ -96,7 +70,7 @@ $x = $Games::PangZero::ScreenWidth * ($ballsSpawned * 2 + 1) / ($numBalls * 2) - $balldesc->{width} / 2; $x = $Games::PangZero::ScreenWidth - $balldesc->{width} if $x > $Games::PangZero::ScreenWidth - $balldesc->{width}; $hasBonus = (($balldesc->{width} >= 32) and ($self->Rand(1) < $Games::PangZero::DifficultyLevel->{bonusprobability})); - $ball = &Ball::Spawn($balldesc, $x, ($ballsSpawned % 2) ? 0 : 1, $hasBonus); + $ball = &Games::PangZero::Ball::Spawn($balldesc, $x, ($ballsSpawned % 2) ? 0 : 1, $hasBonus); if ($ball->{w} <= 32) { $ball->{ismagic} = $ball->{hasmagic} = 0; } diff -Nru pangzero-1.4/lib/Games/PangZero/Config.pm pangzero-1.4.1+git20121103/lib/Games/PangZero/Config.pm --- pangzero-1.4/lib/Games/PangZero/Config.pm 2012-02-21 21:24:42.000000000 +0000 +++ pangzero-1.4.1+git20121103/lib/Games/PangZero/Config.pm 2012-10-29 15:50:17.000000000 +0000 @@ -106,7 +106,10 @@ $pattern =~ s/\[/\\[/g; if ($text =~ /$pattern = (.+?)$/m) { $val = $1; - if($val =~ /^SDLK_\w+$/) { + if ($varname eq Games::PangZero::ShowWebsite) { + eval( "\$$varname = '$val'" ); + } + elsif($val =~ /^SDLK_\w+$/) { eval( "\$$varname = SDL::Events::$val()" ); } elsif($val =~ /^[\d\.]+$/) { diff -Nru pangzero-1.4/lib/Games/PangZero/DemoPlaybackGame.pm pangzero-1.4.1+git20121103/lib/Games/PangZero/DemoPlaybackGame.pm --- pangzero-1.4/lib/Games/PangZero/DemoPlaybackGame.pm 2012-02-21 21:24:42.000000000 +0000 +++ pangzero-1.4.1+git20121103/lib/Games/PangZero/DemoPlaybackGame.pm 2012-10-29 20:24:40.000000000 +0000 @@ -20,7 +20,7 @@ SDLx::SFont::print_text( $Games::PangZero::Background, $x, $y, "Press F to fast forward" ); SDLx::SFont::print_text( $Games::PangZero::App, $x, $y, "Press F to fast forward" ); } return; - SDL::Video::fill_rect($Games::PangZero::App, SDL::Rect->new(0, $y, $Games::PangZero::PhysicalScreenWidth, $Games::PangZero::PhysicalScreenHeight - $y), SDL::Color->new(0, 0, 0) ); + SDL::Video::fill_rect($Games::PangZero::App, SDL::Rect->new(0, $y, $Games::PangZero::PhysicalScreenWidth, $Games::PangZero::PhysicalScreenHeight - $y), SDL::Video::map_RGB($Games::PangZero::App->format(), 0, 0, 0)); SDLx::SFont::print_text( $Games::PangZero::App, $x, $y, $self->{recordpointer} ); } diff -Nru pangzero-1.4/lib/Games/PangZero/GameBase.pm pangzero-1.4.1+git20121103/lib/Games/PangZero/GameBase.pm --- pangzero-1.4/lib/Games/PangZero/GameBase.pm 2012-02-21 21:24:42.000000000 +0000 +++ pangzero-1.4.1+git20121103/lib/Games/PangZero/GameBase.pm 2012-11-03 14:28:35.000000000 +0000 @@ -2,6 +2,9 @@ package Games::PangZero::GameBase; ########################################################################## +use SDL; +use SDL::Video; + sub new { my ($class) = @_; my $self = { @@ -55,8 +58,8 @@ sub ResetGame { my $self = shift; @Games::PangZero::GameObjects = (); - %Guy::Guys = (); - %Harpoon::Harpoons = (); + %Games::PangZero::Guy::Guys = (); + %Games::PangZero::Harpoon::Harpoons = (); $Games::PangZero::GamePause = 0; %Games::PangZero::GameEvents = (); $self->SetBackground(0); @@ -65,7 +68,7 @@ sub CalculateAdvances { my $advance = Games::PangZero::GameTimer::GetAdvances(); while ($advance <= 0) { - $Games::PangZero::App->delay(3); # Wait 3ms = 0.3 game ticks + SDL::delay(3); # Wait 3ms = 0.3 game ticks $advance = Games::PangZero::GameTimer::GetAdvances(); } if ($advance > 5) { @@ -98,7 +101,7 @@ foreach $gameObject (@Games::PangZero::GameObjects) { $gameObject->Draw(); } - $Games::PangZero::App->sync(); + SDL::Video::flip($Games::PangZero::App); } sub DrawScoreBoard { diff -Nru pangzero-1.4/lib/Games/PangZero/GameObject.pm pangzero-1.4.1+git20121103/lib/Games/PangZero/GameObject.pm --- pangzero-1.4/lib/Games/PangZero/GameObject.pm 2012-02-21 21:24:42.000000000 +0000 +++ pangzero-1.4.1+git20121103/lib/Games/PangZero/GameObject.pm 2012-10-29 20:24:40.000000000 +0000 @@ -56,7 +56,7 @@ if ($self->{draw}) { $self->{draw}->($self); } else { - SDL::Video::fill_rect( $Games::PangZero::App, $self->{rect}, SDL::Color->new(0x80, 0, 0) ); + SDL::Video::fill_rect($Games::PangZero::App, $self->{rect}, SDL::Video::map_RGB($Games::PangZero::App->format(), 0x80, 0, 0)); } } diff -Nru pangzero-1.4/lib/Games/PangZero/Globals.pm pangzero-1.4.1+git20121103/lib/Games/PangZero/Globals.pm --- pangzero-1.4/lib/Games/PangZero/Globals.pm 2012-02-21 21:24:42.000000000 +0000 +++ pangzero-1.4.1+git20121103/lib/Games/PangZero/Globals.pm 2012-11-03 14:32:57.000000000 +0000 @@ -4,8 +4,9 @@ package Games::PangZero::Globals; use Games::PangZero::Config; +use SDL::Rect; -%Sounds = ( +%Games::PangZero::Sounds = ( 'pop' => 'pop.voc', 'shoot' => 'shoot.voc', 'death' => 'meow.voc', diff -Nru pangzero-1.4/lib/Games/PangZero/Graphics.pm pangzero-1.4.1+git20121103/lib/Games/PangZero/Graphics.pm --- pangzero-1.4/lib/Games/PangZero/Graphics.pm 2012-02-21 21:24:42.000000000 +0000 +++ pangzero-1.4.1+git20121103/lib/Games/PangZero/Graphics.pm 2012-11-03 14:28:35.000000000 +0000 @@ -23,7 +23,6 @@ use SDL::Joystick; use SDL::Mouse; use SDL::Image; -use SDLx::App; use SDLx::SFont; sub LoadSurfaces { @@ -221,7 +220,7 @@ sub LoadBackground { my $filename = shift; - SDL::Video::fill_rect($Games::PangZero::Background, SDL::Rect->new(0, 0, $Games::PangZero::PhysicalScreenWidth, $Games::PangZero::PhysicalScreenHeight), SDL::Color->new(0, 0, 0) ); + SDL::Video::fill_rect($Games::PangZero::Background, SDL::Rect->new(0, 0, $Games::PangZero::PhysicalScreenWidth, $Games::PangZero::PhysicalScreenHeight), SDL::Video::map_RGB($Games::PangZero::Background->format(), 0, 0, 0)); my $backgroundImage = SDL::Image::load("$Games::PangZero::DataDir/$filename"); my $dstrect = SDL::Rect->new($Games::PangZero::ScreenMargin, $Games::PangZero::ScreenMargin, 0, 0); my $srcrect = SDL::Rect->new(0, 0, $Games::PangZero::ScreenWidth, $Games::PangZero::ScreenHeight); @@ -255,7 +254,7 @@ # Conclusion: Any resolution where w in [800,900], h > 480 and r in [1.5, 1.8] is good my ($modes, $mode, @goodModes, $w, $h, $ratio); - $modes = SDL::ListModes( 0, SDL_HWSURFACE ); #add back fullscreen + $modes = SDL::Video::list_modes( 0, SDL_HWSURFACE ); #add back fullscreen foreach $mode (@{$modes}) { $w = $mode->w; $h = $mode->h; diff -Nru pangzero-1.4/lib/Games/PangZero/Guy.pm pangzero-1.4.1+git20121103/lib/Games/PangZero/Guy.pm --- pangzero-1.4/lib/Games/PangZero/Guy.pm 2012-02-21 21:24:42.000000000 +0000 +++ pangzero-1.4.1+git20121103/lib/Games/PangZero/Guy.pm 2012-10-29 15:54:46.000000000 +0000 @@ -226,7 +226,7 @@ if ($player->{score} >= $player->{scoreforbonuslife}) { ++$player->{lives}; $player->{scoreforbonuslife} += 200000; - Games::PangZero::PlaySound('bonuslife'); + Games::PangZero::Music::PlaySound('bonuslife'); } } diff -Nru pangzero-1.4/lib/Games/PangZero/Highscore.pm pangzero-1.4.1+git20121103/lib/Games/PangZero/Highscore.pm --- pangzero-1.4/lib/Games/PangZero/Highscore.pm 2012-02-21 21:24:42.000000000 +0000 +++ pangzero-1.4.1+git20121103/lib/Games/PangZero/Highscore.pm 2012-10-29 16:04:10.000000000 +0000 @@ -36,7 +36,7 @@ @Games::PangZero::UnsavedHighScores = (); my $newHighScore = &InputPlayerNames($table); if ($newHighScore) { - $Game->RunHighScore( $Games::PangZero::DifficultyLevelIndex, $table, 0 ); + $Games::PangZero::Game->RunHighScore( $Games::PangZero::DifficultyLevelIndex, $table, 0 ); } } @@ -97,16 +97,15 @@ while (1) { $Games::PangZero::LastUnicodeKey = 0; - $Game->MenuAdvance(); - last if $Game->{abortgame}; - if (%Events) { - my ($key) = %Events; - if ($key == SDLK_BACKSPACE) { + $Games::PangZero::Game->MenuAdvance(); + last if $Games::PangZero::Game->{abortgame}; + if (%Games::PangZero::Events) { + if ($Games::PangZero::MenuEvents{BACKSP}) { substr($name, -2, 1, ''); # Remove next to last char $nameMenuItem->SetText($name); - } elsif ($key == SDLK_RETURN) { + } elsif ($Games::PangZero::MenuEvents{BUTTON}) { last; - } elsif ($LastUnicodeKey < 127 and $Games::PangZero::LastUnicodeKey >= 32 and length($name) < 9) { + } elsif ($Games::PangZero::LastUnicodeKey < 127 and $Games::PangZero::LastUnicodeKey >= 32 and length($name) < 9) { substr($name, -1, 0, chr($Games::PangZero::LastUnicodeKey)); # Insert before last char $nameMenuItem->SetText($name); } diff -Nru pangzero-1.4/lib/Games/PangZero/Joystick.pm pangzero-1.4.1+git20121103/lib/Games/PangZero/Joystick.pm --- pangzero-1.4/lib/Games/PangZero/Joystick.pm 2012-02-21 21:24:42.000000000 +0000 +++ pangzero-1.4.1+git20121103/lib/Games/PangZero/Joystick.pm 2012-03-12 18:42:12.000000000 +0000 @@ -7,12 +7,12 @@ sub InitJoystick { my ($numJoysticks, $joystick, $numButtons, $i); - $numJoysticks = &SDL::Joystick::num_joysticks(); - for ($i = 0; $i < $numJoysticks; ++$i) { - print STDERR "Found joystick " , $i+1 , ": " , &SDL::Joystick::open($i), "\n"; - $joystick = &SDL::Joystick::open($i); + $numJoysticks = SDL::Joystick::num_joysticks(); + for ($i = 0; $i < $numJoysticks; $i++) { + print STDERR "Found joystick " , $i+1 , ": " , SDL::Joystick::name($i), "\n"; + $joystick = SDL::Joystick->new($i); next unless $joystick; - $numButtons = &SDL::Joystick::open($joystick); + $numButtons = SDL::Joystick::num_buttons($joystick); next unless $numButtons; push @Games::PangZero::Joysticks, $joystick; push @Games::PangZero::JoystickButtons, $numButtons; @@ -25,9 +25,8 @@ my ($i, $button, $buttonPressed); $i = 0; - foreach my $joystick (@Joysticks) { - ++$i; - my $axis = &SDL::Joystick::get_axis($joystick, 0); + foreach my $joystick (@Games::PangZero::Joysticks) { + my $axis = SDL::Joystick::get_axis($joystick, 0); if ($axis <= -10000) { $Games::PangZero::Events{"L$i"} = $Games::PangZero::MenuEvents{LEFT} = 1 unless $Games::PangZero::Keys{"L$i"}; $Games::PangZero::Keys{"L$i"} = 1; @@ -40,8 +39,9 @@ $Games::PangZero::Keys{"L$i"} = 0; $Games::PangZero::Keys{"R$i"} = 0; } + if ($readBothAxes) { - $axis = &SDL::Joystick::get_axis($joystick, 1); + $axis = SDL::Joystick::get_axis($joystick, 1); if ($axis <= -10000) { $Games::PangZero::Events{"U$i"} = $Games::PangZero::MenuEvents{UP} = 1 unless $Games::PangZero::Keys{"U$i"}; $Games::PangZero::Keys{"U$i"} = 1; @@ -55,16 +55,19 @@ $Games::PangZero::Keys{"U$i"} = 0; } } + $buttonPressed = 0; - for ($button = 0; $button < $JoystickButtons[$i-1]; ++$button) { - if (&SDL::Joystick::get_button($joystick, $button)) { - $buttonPressed = 1; last; + for ($button = 0; $button < $Games::PangZero::JoystickButtons[$i]; $button++) { + if (SDL::Joystick::get_button($joystick, $button)) { + $buttonPressed = 1; + last; } } if ($buttonPressed and not $Games::PangZero::Keys{"B$i"}) { $Games::PangZero::Events{"B$i"} = $Games::PangZero::MenuEvents{BUTTON} = 1; } $Games::PangZero::Keys{"B$i"} = $buttonPressed; + $i++; } } diff -Nru pangzero-1.4/lib/Games/PangZero/MachineGun.pm pangzero-1.4.1+git20121103/lib/Games/PangZero/MachineGun.pm --- pangzero-1.4/lib/Games/PangZero/MachineGun.pm 2012-02-21 21:24:42.000000000 +0000 +++ pangzero-1.4.1+git20121103/lib/Games/PangZero/MachineGun.pm 2012-10-29 16:07:50.000000000 +0000 @@ -39,7 +39,7 @@ --$self->{guy}->{harpoons} if $self->{index} == 1; delete $Harpoon::Harpoons{$self->{id}}; - $self->GameObject::Delete(); + $self->Games::PangZero::GameObject::Delete(); } sub Advance { diff -Nru pangzero-1.4/lib/Games/PangZero/MenuItem.pm pangzero-1.4.1+git20121103/lib/Games/PangZero/MenuItem.pm --- pangzero-1.4/lib/Games/PangZero/MenuItem.pm 2012-02-21 21:24:42.000000000 +0000 +++ pangzero-1.4.1+git20121103/lib/Games/PangZero/MenuItem.pm 2012-10-29 20:24:40.000000000 +0000 @@ -17,7 +17,7 @@ 'h' => 42, 'selected' => 0, 'filled' => 0, - 'fillcolor' => SDL::Color->new(0, 0, 128), + 'fillcolor' => SDL::Video::map_RGB($Games::PangZero::Background->format(), 0, 0, 128), 'parameter' => 0, 'tooltip' => [ @_[4 .. $#_] ], ); diff -Nru pangzero-1.4/lib/Games/PangZero/Menu.pm pangzero-1.4.1+git20121103/lib/Games/PangZero/Menu.pm --- pangzero-1.4/lib/Games/PangZero/Menu.pm 2012-02-21 21:24:42.000000000 +0000 +++ pangzero-1.4.1+git20121103/lib/Games/PangZero/Menu.pm 2012-11-03 15:31:26.000000000 +0000 @@ -33,7 +33,7 @@ $Games::PangZero::ScoreFont->use(); ($y, $yinc) = ($Games::PangZero::ScreenHeight + 35, 20); $rect = SDL::Rect->new(0, $y, $Games::PangZero::PhysicalScreenWidth, $Games::PangZero::PhysicalScreenHeight - $y ); - SDL::Video::fill_rect( $Games::PangZero::Background, $rect, SDL::Color->new(0,0,0) ); + SDL::Video::fill_rect($Games::PangZero::Background, $rect, SDL::Video::map_RGB($Games::PangZero::Background->format(), 0, 0, 0)); foreach (@lines) { SDLx::SFont::print_text( $Games::PangZero::Background, 10, $y, $_ ) if $y + $yinc < $Games::PangZero::PhysicalScreenHeight; @@ -134,7 +134,6 @@ $Games::PangZero::MenuFont->use(); $self->SetGameSpeed(); - foreach (@Games::PangZero::GameObjects) { $_->Clear(); } @Games::PangZero::GameObjects = @oldGameObjects; %Guy::Guys = %oldGuys; %Harpoon::Harpoons = %oldHarpoons; @@ -164,8 +163,8 @@ ); push @{$self->{menuItems}}, - Games::PangZero::MenuItem->new( 50, $baseY, "Back to main menu"), - Games::PangZero::MenuItem->new( 50, $baseY += 40, "Run Demo" ); + Games::PangZero::MenuItem->new( 50, $baseY, "Back to main menu"); +# Games::PangZero::MenuItem->new( 50, $baseY += 40, "Run Demo" ); $baseY = 110; $baseX = 50; @@ -188,18 +187,18 @@ last if $self->{abortgame}; $self->HandleUpDownKeys(); - if ($Games::PangZero::MenuEvents{LEFT} and $self->{currentItemIndex} > 1) { + if ($Games::PangZero::MenuEvents{LEFT} and $self->{currentItemIndex} >= 6 and $self->{currentItemIndex} <= 10) { $self->SetCurrentItemIndex($self->{currentItemIndex} - 5); } - if ($Games::PangZero::MenuEvents{RIGHT} and $self->{currentItemIndex} > 1) { + if ($Games::PangZero::MenuEvents{RIGHT} and $self->{currentItemIndex} >= 1 and $self->{currentItemIndex} <= 5) { $self->SetCurrentItemIndex($self->{currentItemIndex} + 5); } if ($Games::PangZero::MenuEvents{BUTTON}) { if (0 == $self->{currentItemIndex}) { last; - } elsif (1 == $self->{currentItemIndex}) { - $self->{result} = 'demo'; - last; +# } elsif (1 == $self->{currentItemIndex}) { +# $self->{result} = 'demo'; +# last; } else { $self->RunTutorial($self->{currentItem}->{challenge}); } @@ -438,9 +437,9 @@ } elsif ($self->{currentItemIndex} == 3) { $Games::PangZero::SoundEnabled = 1 - $Games::PangZero::SoundEnabled; $self->UpdateOptionsMenu(); } elsif ($self->{currentItemIndex} == 4) { - Games::PangZero::SetMusicEnabled(1 - $Games::PangZero::MusicEnabled); $self->UpdateOptionsMenu(); + Games::PangZero::Music::SetMusicEnabled(1 - $Games::PangZero::MusicEnabled); $self->UpdateOptionsMenu(); } elsif ($self->{currentItemIndex} == 6) { - $Games::PangZero::ShowWebsite = ($Games::PangZero::ShowWebsite eq $Games::PangZero::Version ? 0 : $Games::PangZero::VERSION); $self->UpdateOptionsMenu(); + $Games::PangZero::ShowWebsite = $Games::PangZero::ShowWebsite eq $Games::PangZero::VERSION ? 0 : $Games::PangZero::VERSION; $self->UpdateOptionsMenu(); } } } @@ -700,7 +699,7 @@ $self->{title} = Games::PangZero::MenuItem->new( 300, 60, "PANG ZERO" ); $self->{title}->{filled} = 1; - $self->{title}->{fillcolor} = SDL::Color->new(0, 128, 255); + $self->{title}->{fillcolor} = SDL::Video::map_RGB($Games::PangZero::Background->format(), 0, 128, 255); $self->{title}->Center(); push @Games::PangZero::GameObjects, ( diff -Nru pangzero-1.4/lib/Games/PangZero/Music.pm pangzero-1.4.1+git20121103/lib/Games/PangZero/Music.pm --- pangzero-1.4/lib/Games/PangZero/Music.pm 2012-02-21 21:24:42.000000000 +0000 +++ pangzero-1.4.1+git20121103/lib/Games/PangZero/Music.pm 2012-11-03 14:32:57.000000000 +0000 @@ -1,6 +1,6 @@ package Games::PangZero::Music; -use SDL::Mixer; +use SDL::Mixer ':init'; use SDL::Mixer::Samples; use SDL::Mixer::Channels; use SDL::Mixer::Music; @@ -15,6 +15,8 @@ } sub LoadSounds { + my $init_flags = SDL::Mixer::init( MIX_INIT_MP3 | MIX_INIT_OGG); + $Mixer = SDL::Mixer::open_audio( 22050, AUDIO_S16, 2, 1024 ) + 1; unless($Mixer) { warn SDL::get_error(); @@ -22,30 +24,35 @@ } my ($soundName, $fileName); - while (($soundName, $fileName) = each %Sounds) { - $Sounds{$soundName} = SDL::Mixer::Music::load_WAV("$Games::PangZero::DataDir/$fileName"); + while (($soundName, $fileName) = each %Games::PangZero::Sounds) { + $Sounds{$soundName} = SDL::Mixer::Samples::load_WAV("$Games::PangZero::DataDir/$fileName"); } - $Games::PangZero::music = LoadMusic("$Games::PangZero::DataDir/UPiPang.mp3"); - $Games::PangZero::music = LoadMusic("$Games::PangZero::DataDir/UPiPang.mid") unless $Games::PangZero::music; - SetMusicEnabled($MusicEnabled); + if (-f "$Games::PangZero::DataDir/UPiPang.mp3" && ($init_flags & MIX_INIT_MP3)) { + $Games::PangZero::music = LoadMusic("$Games::PangZero::DataDir/UPiPang.mp3"); + } elsif (-f "$Games::PangZero::DataDir/UPiPang.ogg" && ($init_flags & MIX_INIT_OGG)) { + $Games::PangZero::music = LoadMusic("$Games::PangZero::DataDir/UPiPang.ogg"); + } else { + $Games::PangZero::music = LoadMusic("$Games::PangZero::DataDir/UPiPang.mid"); + } + SetMusicEnabled($Games::PangZero::MusicEnabled); } sub PlaySound { - return unless $SoundEnabled; + return unless $Games::PangZero::SoundEnabled; my $sound = shift; $Mixer and $Sounds{$sound} and SDL::Mixer::Channels::play_channel( -1, $Sounds{$sound}, 0 ); } sub SetMusicEnabled { - return $MusicEnabled = 0 unless $Games::PangZero::music; + return $Games::PangZero::MusicEnabled = 0 unless $Games::PangZero::music; my $musicEnabled = shift; - $MusicEnabled = $musicEnabled ? 1 : 0; - if ( (not $MusicEnabled) and SDL::Mixer::Music::playing_music() ) { + $Games::PangZero::MusicEnabled = $musicEnabled ? 1 : 0; + if ( (not $musicEnabled) and SDL::Mixer::Music::playing_music() ) { SDL::Mixer::Music::halt_music(); } - if ($MusicEnabled and not SDL::Mixer::Music::playing_music()) { + if ($musicEnabled and not SDL::Mixer::Music::playing_music()) { SDL::Mixer::Music::play_music($Games::PangZero::music, -1); } } diff -Nru pangzero-1.4/lib/Games/PangZero/PanicGame.pm pangzero-1.4.1+git20121103/lib/Games/PangZero/PanicGame.pm --- pangzero-1.4/lib/Games/PangZero/PanicGame.pm 2012-02-21 21:24:42.000000000 +0000 +++ pangzero-1.4.1+git20121103/lib/Games/PangZero/PanicGame.pm 2012-10-29 20:43:09.000000000 +0000 @@ -126,7 +126,7 @@ my ($self, $x, $y) = @_; $self->{levelIndicatorRect} = SDL::Rect->new($x, $y, 140, $self->{scoreBoardHeight}) unless $self->{levelIndicatorRect}; - #SDL::Video::fill_rect( $Games::PangZero::App, $self->{levelIndicatorRect}, SDL::Color->new(0,0,0) ); + SDL::Video::fill_rect($Games::PangZero::App, $self->{levelIndicatorRect}, SDL::Video::map_RGB($Games::PangZero::App->format(), 0, 0, 0)); SDL::Video::blit_surface($Games::PangZero::LevelIndicatorSurface2, SDL::Rect->new($x, $y, $Games::PangZero::LevelIndicatorSurface2->w, $Games::PangZero::LevelIndicatorSurface2->h), $Games::PangZero::App, SDL::Rect->new($x, $y, 0, 0)); SDL::Video::blit_surface($Games::PangZero::LevelIndicatorSurface, SDL::Rect->new(0, 0, 130 * $self->{leveladvance} / 17, 30), $Games::PangZero::App, SDL::Rect->new($x, $y, 0, 0)); diff -Nru pangzero-1.4/lib/Games/PangZero/PlayableGameBase.pm pangzero-1.4.1+git20121103/lib/Games/PangZero/PlayableGameBase.pm --- pangzero-1.4/lib/Games/PangZero/PlayableGameBase.pm 2012-02-21 21:24:42.000000000 +0000 +++ pangzero-1.4.1+git20121103/lib/Games/PangZero/PlayableGameBase.pm 2012-11-03 14:28:35.000000000 +0000 @@ -6,6 +6,7 @@ use strict; use warnings; +use SDL::Video; sub new { my ($class) = @_; @@ -115,11 +116,11 @@ $self->DrawGame(); Games::PangZero::Music::PlaySound('death'); Games::PangZero::Graphics::RenderBorder($Games::PangZero::WhiteBorderSurface, $Games::PangZero::App); - $Games::PangZero::App->sync(); + SDL::Video::flip($Games::PangZero::App); $self->Delay(10); Games::PangZero::Graphics::RenderBorder($Games::PangZero::RedBorderSurface, $Games::PangZero::App); Games::PangZero::Graphics::RenderBorder($Games::PangZero::RedBorderSurface, $Games::PangZero::Background); - $Games::PangZero::App->sync(); + SDL::Video::flip($Games::PangZero::App); $self->Delay(90); @killedGuys = grep { $_->{justkilled}; } @Games::PangZero::GameObjects; @@ -261,7 +262,7 @@ sub DrawLevelIndicator { my ($self, $x, $y) = @_; $self->{levelIndicatorRect} = SDL::Rect->new($x, $y, 100, 32) unless $self->{levelIndicatorRect}; - SDL::Video::fill_rect($Games::PangZero::App, $self->{levelIndicatorRect}, SDL::Color->new(0, 0, 0) ); + SDL::Video::fill_rect($Games::PangZero::App, $self->{levelIndicatorRect}, SDL::Video::map_RGB($Games::PangZero::App->format(), 0, 0, 0)); SDLx::SFont::print_text( $Games::PangZero::App, $x, $y + 3, 'Level ' . ($self->{level}+1) ); } @@ -282,7 +283,7 @@ sub DrawScore { my ($self, $player, $x, $y, $livesY) = @_; - #SDL::Video::fill_rect( $Games::PangZero::App, $player->{scoreRect}, SDL::Color->new(0, 0, 0)); + SDL::Video::fill_rect($Games::PangZero::App, $player->{scoreRect}, SDL::Video::map_RGB($Games::PangZero::App->format(), 0, 0, 0)); $self->PrintNumber( $player, $x, $y, $player->{score}); $livesY = $self->{rowHeight} > 32 ? $y + 24 : $y + 16; @@ -372,7 +373,7 @@ $self->{superKillDelay} = 0; $self->{superKillGuy} = undef; - while (1) { + while (! $self->{abortgame}) { # Calculate advance (how many game updates to perform) my $advance = $self->CalculateAdvances(); @@ -381,8 +382,7 @@ %Games::PangZero::Events = (); Games::PangZero::HandleEvents(); - while ($advance--) { - return if $self->{abortgame}; + while ($advance-- && ! $self->{abortgame}) { $self->AdvanceGame(); } @@ -395,7 +395,7 @@ $Games::PangZero::App, SDL::Rect->new( ($Games::PangZero::PhysicalScreenWidth - $gameoverSurface->w) / 2, $Games::PangZero::PhysicalScreenHeight / 2 - 100, $gameoverSurface->w, $gameoverSurface->h)); - $Games::PangZero::App->sync(); + SDL::Video::flip($Games::PangZero::App); SDL::delay(1000); for (my $i=0; $i < 20; ++$i) { SDL::delay(100); @@ -408,6 +408,7 @@ } $self->DrawGame(); } + $self->SUPER::ResetGame(); } 1; diff -Nru pangzero-1.4/lib/Games/PangZero/PlaybackGame.pm pangzero-1.4.1+git20121103/lib/Games/PangZero/PlaybackGame.pm --- pangzero-1.4/lib/Games/PangZero/PlaybackGame.pm 2012-02-21 21:24:42.000000000 +0000 +++ pangzero-1.4.1+git20121103/lib/Games/PangZero/PlaybackGame.pm 2012-11-03 14:28:35.000000000 +0000 @@ -5,6 +5,7 @@ @ISA = qw(Games::PangZero::PanicGame); use strict; use warnings; +use SDL::Video; sub new { my ($class, $numGuys, $difficultyLevel, $record, $rand, $messages) = @_; @@ -98,7 +99,7 @@ SDLx::SFont::print_text( $Games::PangZero::App,$x, $y, substr($message, 0, $len) ); - $Games::PangZero::App->sync(); + SDL::Video::flip($Games::PangZero::App); last if $len > length($message) + 15; } SDL::Video::blit_surface($Games::PangZero::Background, SDL::Rect->new(0, $y, $Games::PangZero::PhysicalScreenWidth, $y, 40), $Games::PangZero::App, SDL::Rect->new(0, $y, $Games::PangZero::App->w, $Games::PangZero::App->h)); diff -Nru pangzero-1.4/lib/Games/PangZero/PowerWire.pm pangzero-1.4.1+git20121103/lib/Games/PangZero/PowerWire.pm --- pangzero-1.4/lib/Games/PangZero/PowerWire.pm 2012-02-21 21:24:42.000000000 +0000 +++ pangzero-1.4.1+git20121103/lib/Games/PangZero/PowerWire.pm 2012-10-29 19:18:05.000000000 +0000 @@ -7,12 +7,12 @@ use warnings; sub Create { - return PowerWire->new(@_); + return Games::PangZero::PowerWire->new(@_); } sub new { my $class = shift; - my $self = Harpoon->new(@_); + my $self = Games::PangZero::Harpoon->new(@_); %{$self} = ( %{$self}, 'topdelay' => 200, ); diff -Nru pangzero-1.4/lib/Games/PangZero/RecordGame.pm pangzero-1.4.1+git20121103/lib/Games/PangZero/RecordGame.pm --- pangzero-1.4/lib/Games/PangZero/RecordGame.pm 2012-02-21 21:24:42.000000000 +0000 +++ pangzero-1.4.1+git20121103/lib/Games/PangZero/RecordGame.pm 2012-11-03 14:28:35.000000000 +0000 @@ -5,6 +5,7 @@ @ISA = qw(Games::PangZero::PanicGame); use strict; use warnings; +use SDL; sub Rand { my $self = shift; @@ -38,7 +39,7 @@ while( not %Games::PangZero::Events ) { Games::PangZero::HandleEvents(); - $Games::PangZero::App->delay(100); + SDL::delay(100); } GameTimer::ResetTimer(); } diff -Nru pangzero-1.4/lib/Games/PangZero/TutorialGame.pm pangzero-1.4.1+git20121103/lib/Games/PangZero/TutorialGame.pm --- pangzero-1.4/lib/Games/PangZero/TutorialGame.pm 2012-02-21 21:24:42.000000000 +0000 +++ pangzero-1.4.1+git20121103/lib/Games/PangZero/TutorialGame.pm 2012-11-03 09:17:10.000000000 +0000 @@ -15,11 +15,11 @@ sub SetGameLevel { my ($self, $level) = @_; - $self->PlayableGameBase::SetGameLevel($level); + $self->Games::PangZero::PlayableGameBase::SetGameLevel($level); $self->SpawnChallenge(); } -sub AdvanceGameObjects { +sub AdvanceGame { my ($self) = @_; if ($self->{nextlevel}) { @@ -35,7 +35,7 @@ $self->{abortgame} = 1; } } - $self->SUPER::AdvanceGameObjects(); + $self->Games::PangZero::PlayableGameBase::AdvanceGame(); } 1; diff -Nru pangzero-1.4/lib/Games/PangZero/XmasBall.pm pangzero-1.4.1+git20121103/lib/Games/PangZero/XmasBall.pm --- pangzero-1.4/lib/Games/PangZero/XmasBall.pm 2012-02-21 21:24:42.000000000 +0000 +++ pangzero-1.4.1+git20121103/lib/Games/PangZero/XmasBall.pm 2012-10-29 16:05:41.000000000 +0000 @@ -13,7 +13,7 @@ sub Pop { my $self = shift; $self->SUPER::Pop(@_); - my $bonusdrop = BonusDrop->new($self); + my $bonusdrop = Games::PangZero::BonusDrop->new($self); my @collectedSubs = ( \&OnCollectedLife, \&OnCollectedScore, \&OnCollectedScore, \&OnCollectedInvulnerability, \&OnCollectedInvulnerability ); if ($Games::PangZero::Game->Rand(2 * scalar @collectedSubs) < scalar @collectedSubs) { $bonusdrop->{desc} = { 'srcRect' => SDL::Rect->new(0, 0, 32, 32), }; @@ -30,13 +30,13 @@ sub OnCollectedLife { my ($bonus, $guy) = @_; $guy->{player}->{lives}++; - Games::PangZero::PlaySound('bonuslife'); + Games::PangZero::Music::PlaySound('bonuslife'); } sub OnCollectedScore { my ($bonus, $guy) = @_; $guy->GiveScore(50000); - Games::PangZero::PlaySound('score'); + Games::PangZero::Music::PlaySound('score'); } sub OnCollectedInvulnerability { diff -Nru pangzero-1.4/lib/Games/PangZero.pm pangzero-1.4.1+git20121103/lib/Games/PangZero.pm --- pangzero-1.4/lib/Games/PangZero.pm 2012-02-21 21:24:42.000000000 +0000 +++ pangzero-1.4.1+git20121103/lib/Games/PangZero.pm 2012-11-03 20:27:30.000000000 +0000 @@ -1,7 +1,7 @@ package Games::PangZero; $Cheat = 0; -$VERSION = '1.4'; +$VERSION = '1.4.1'; $DataDir = ''; # Set it to a path to avoid autodetection (e.g. /opt/pangzero/data) =comment @@ -66,7 +66,7 @@ ' =cut -use SDL; +use SDL ':init'; use SDL::Surface; use SDL::Palette; use SDL::PixelFormat; @@ -80,7 +80,6 @@ use SDL::Joystick; use SDL::Mouse; use SDL::Image; -use SDLx::App; use SDLx::SFont; use Carp; @@ -212,6 +211,7 @@ $MenuEvents{LEFT} = 1 if $keypressed == SDLK_LEFT(); $MenuEvents{RIGHT} = 1 if $keypressed == SDLK_RIGHT(); $MenuEvents{BUTTON} = 1 if $keypressed == SDLK_RETURN(); + $MenuEvents{BACKSP} = 1 if $keypressed == SDLK_BACKSPACE; $LastUnicodeKey = $event->key_unicode() if $UnicodeMode; } } @@ -300,7 +300,7 @@ sub Initialize { - eval { SDL::init(SDL_INIT_EVERYTHING()); }; + eval { SDL::init(SDL_INIT_AUDIO | SDL_INIT_VIDEO | SDL_INIT_JOYSTICK) }; die "Unable to initialize SDL: $@" if $@; Games::PangZero::Config::FindDataDir(); @@ -310,21 +310,22 @@ if (Games::PangZero::Config::IsMicrosoftWindows()) { $sdlFlags = SDL_ANYFORMAT; } else { - $sdlFlags = SDL_HWSURFACE | SDL_HWACCEL | SDL_DOUBLEBUF | SDL_ANYFORMAT | SDL_FULLSCREEN; + if ($Games::PangZero::FullScreen) { + $sdlFlags = SDL_HWSURFACE | SDL_HWACCEL | SDL_DOUBLEBUF | SDL_ANYFORMAT | SDL_FULLSCREEN; + } else { + $sdlFlags = SDL_HWSURFACE | SDL_HWACCEL | SDL_DOUBLEBUF | SDL_ANYFORMAT; + } } ($PhysicalScreenWidth, $PhysicalScreenHeight) = Games::PangZero::Graphics::FindVideoMode(); - $App = SDLx::App->new( - flags => $sdlFlags, - title => "Pang Zero $VERSION", - icon => "$DataDir/icon.png", - width => $PhysicalScreenWidth, - height => $PhysicalScreenHeight, - fullscreen => $FullScreen, - delay => 20 - ); - + my $icon = SDL::Video::load_BMP("$DataDir/icon.bmp"); + SDL::Video::set_color_key($icon, SDL_SRCCOLORKEY, SDL::Color->new(0, 255, 0)); + SDL::Video::wm_set_icon($icon); + $App = SDL::Video::set_video_mode($PhysicalScreenWidth, + $PhysicalScreenHeight, + 32, $sdlFlags); + SDL::Video::wm_set_caption("Pang Zero $VERSION", "Pang Zero $VERSION"); SDL::Mouse::show_cursor(0); $Background = SDL::Surface->new( Games::PangZero::Config::IsMicrosoftWindows() ? SDL_SWSURFACE() : SDL_HWSURFACE(), $App->w, $App->h, 16); @@ -351,16 +352,7 @@ @Games::PangZero::Highscore::UnsavedHighScores = (); $Game->Run(); - bless $Game, 'Menu'; - $Game->{abortgame} = 0; - { - my @gameObjects = @GameObjects; - foreach (@gameObjects) { - $_->Delete() if ref $_ eq 'Games::PangZero::Guy'; - } - } - - SDL::Video::blit_surface($Background, SDL::Rect->new(0, 0, $App->w, $App->h), $App, SDL::Rect->new(0, 0, $App->w, $App->h)); + bless $Game, 'Games::PangZero::Menu'; $Games::PangZero::MenuFont->use(); Games::PangZero::Highscore::MergeUnsavedHighScores($menuResult eq 'challenge' ? 'Cha' : 'Pan'); @@ -382,28 +374,7 @@ sub ShowErrorMessage { my ($message) = @_; - - return if $ENV{PANGZERO_TEST}; - - $message = "Pang Zero $VERSION died:\n$message"; - if (Games::PangZero::Config::IsMicrosoftWindows()) { - eval( ' - use Win32; - Win32::MsgBox($message, MB_ICONEXCLAMATION, "Pang Zero error"); - ' ); - return; - } elsif ($ENV{'DISPLAY'}) { - $message =~ s/\"/\\"/g; - my @tryCommands = ( - "kdialog --msgbox \"$message\"", - "gmessage -center \"$message\"", - "xmessage -center \"$message\"", - ); - foreach (@tryCommands) { - `$_`; - return if $? == 0; - } - } + print "Pang Zero $VERSION died:\n$message\n"; } sub ShowWebPage { @@ -418,15 +389,14 @@ exit; } elsif ($ENV{'DISPLAY'}) { my @tryCommands = ( - "gnome-open $url", - "mozilla-firefox $url", - "firefox $url", - "mozilla $url", - "konqueror $url", + "which gnome-open > /dev/null 2>&1 && (gnome-open $url&)", + "which mozilla-firefox > /dev/null 2>&1 && (mozilla-firefox $url&)", + "which firefox > /dev/null 2>&1 && (firefox $url&)", + "which mozilla > /dev/null 2>&1 && (mozilla $url&)", + "which konqueror > /dev/null 2>&1 && (konqueror $url&)", ); foreach (@tryCommands) { - `$_`; - return if $? == 0; + return if system($_) == 0; } } else { print "Visit $url for more info about Pang Zero $Games::PangZero::VERSION\n"; diff -Nru pangzero-1.4/MANIFEST pangzero-1.4.1+git20121103/MANIFEST --- pangzero-1.4/MANIFEST 2012-02-21 21:24:42.000000000 +0000 +++ pangzero-1.4.1+git20121103/MANIFEST 1970-01-01 00:00:00.000000000 +0000 @@ -1,135 +0,0 @@ -AUTHORS -bin/pangzero -Build.PL -ChangeLog -COPYING -data/Balls-Bouncy16.png -data/Balls-Bouncy32.png -data/Balls-Bouncy64.png -data/Balls-Death64.png -data/Balls-EarthQ16.png -data/Balls-EarthQ32.png -data/Balls-EarthQ64.png -data/Balls-Fragile128.png -data/Balls-Fragile16.png -data/Balls-Fragile32.png -data/Balls-Fragile64.png -data/Balls-Fragile96.png -data/Balls-Red128.png -data/Balls-Red16.png -data/Balls-Red32.png -data/Balls-Red64.png -data/Balls-Red96.png -data/Balls-Seeker32.png -data/Balls-Seeker64.png -data/Balls-SuperClock64.png -data/Balls-SuperClock96.png -data/Balls-SuperStar64.png -data/Balls-SuperStar96.png -data/Balls-Upside128.png -data/Balls-Upside16.png -data/Balls-Upside32.png -data/Balls-Upside64.png -data/Balls-Upside96.png -data/Balls-Water16.png -data/Balls-Water32.png -data/Balls-Water64.png -data/Balls-Water96.png -data/Balls-XMAS128.png -data/bonus.png -data/border.png -data/brandybun3.png -data/desert2.png -data/font2.png -data/gameover.png -data/glossyfont.png -data/gun.voc -data/guy_danigm.png -data/guy_pix.png -data/guy_pux.png -data/guy_r2.png -data/guy_sonic.png -data/guyChristmas.png -data/harpoon.png -data/Hexa-16.png -data/Hexa-32.png -data/Hexa-64.png -data/icon.ico -data/icon.png -data/l1.jpg -data/l2.jpg -data/l3.jpg -data/l4.jpg -data/l5.jpg -data/l6.jpg -data/l7.jpg -data/l8.jpg -data/l9.jpg -data/level.png -data/level.voc -data/level_empty.png -data/magic.voc -data/meltdown.png -data/meow.voc -data/paused.png -data/pop.voc -data/pop3.voc -data/Quad.png -data/quake.voc -data/shoot.voc -data/super.voc -data/UPiPang.mid -data/UPiPang.mp3 -INSTALL -lib/Games/PangZero.pm -lib/Games/PangZero/Ball.pm -lib/Games/PangZero/BonusDrop.pm -lib/Games/PangZero/ChallengeGame.pm -lib/Games/PangZero/Config.pm -lib/Games/PangZero/DeadGuy.pm -lib/Games/PangZero/DeathBall.pm -lib/Games/PangZero/DemoGame.pm -lib/Games/PangZero/DemoPlaybackGame.pm -lib/Games/PangZero/DemoRecordGame.pm -lib/Games/PangZero/EarthquakeBall.pm -lib/Games/PangZero/FpsIndicator.pm -lib/Games/PangZero/FragileBall.pm -lib/Games/PangZero/GameBase.pm -lib/Games/PangZero/GameObject.pm -lib/Games/PangZero/GamePause.pm -lib/Games/PangZero/GameTimer.pm -lib/Games/PangZero/Globals.pm -lib/Games/PangZero/Graphics.pm -lib/Games/PangZero/Guy.pm -lib/Games/PangZero/HalfCutter.pm -lib/Games/PangZero/Harpoon.pm -lib/Games/PangZero/Hexa.pm -lib/Games/PangZero/Highscore.pm -lib/Games/PangZero/Joystick.pm -lib/Games/PangZero/MachineGun.pm -lib/Games/PangZero/Meltdown.pm -lib/Games/PangZero/Menu.pm -lib/Games/PangZero/MenuItem.pm -lib/Games/PangZero/Music.pm -lib/Games/PangZero/Palette.pm -lib/Games/PangZero/PanicGame.pm -lib/Games/PangZero/PlayableGameBase.pm -lib/Games/PangZero/PlaybackGame.pm -lib/Games/PangZero/Pop.pm -lib/Games/PangZero/PowerWire.pm -lib/Games/PangZero/RecordGame.pm -lib/Games/PangZero/SeekerBall.pm -lib/Games/PangZero/SlowEffect.pm -lib/Games/PangZero/SuperBall.pm -lib/Games/PangZero/TutorialGame.pm -lib/Games/PangZero/UpsideDownBall.pm -lib/Games/PangZero/WaterBall.pm -lib/Games/PangZero/XmasBall.pm -MANIFEST This list of files -NEWS -README -t/00-run.t -TODO -VERSION -META.yml -META.json diff -Nru pangzero-1.4/MANIFEST.SKIP pangzero-1.4.1+git20121103/MANIFEST.SKIP --- pangzero-1.4/MANIFEST.SKIP 1970-01-01 00:00:00.000000000 +0000 +++ pangzero-1.4.1+git20121103/MANIFEST.SKIP 2012-01-29 14:12:39.000000000 +0000 @@ -0,0 +1,15 @@ +#!include_default +# Avoid configuration metadata file +^MYMETA\. + +# Avoid Module::Build generated and utility files. +\bBuild$ +\bBuild.bat$ +\b_build +\bBuild.COM$ +\bBUILD.COM$ +\bbuild.com$ +^MANIFEST\.SKIP + +# Avoid archives of this distribution +\bGames-PangZero-[\d\.\_]+ diff -Nru pangzero-1.4/META.json pangzero-1.4.1+git20121103/META.json --- pangzero-1.4/META.json 2012-02-21 21:24:42.000000000 +0000 +++ pangzero-1.4.1+git20121103/META.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,222 +0,0 @@ -{ - "abstract" : "a fast-paced action game about popping balloons with a harpoon", - "author" : [ - "UPi ", - "SAdam ", - "DaniGM ", - "Elio Blanca " - ], - "dynamic_config" : 1, - "generated_by" : "Module::Build version 0.38, CPAN::Meta::Converter version 2.112150", - "license" : [ - "open_source" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "Games-PangZero", - "prereqs" : { - "configure" : { - "requires" : { - "Module::Build" : "0.38" - } - }, - "runtime" : { - "requires" : { - "File::ShareDir" : "1.00", - "File::Spec" : 0, - "SDL" : "2.536", - "Time::HiRes" : 0 - } - } - }, - "provides" : { - "Games::PangZero" : { - "file" : "lib/Games/PangZero.pm", - "version" : "1.4" - }, - "Games::PangZero::Ball" : { - "file" : "lib/Games/PangZero/Ball.pm", - "version" : 0 - }, - "Games::PangZero::BonusDrop" : { - "file" : "lib/Games/PangZero/BonusDrop.pm", - "version" : 0 - }, - "Games::PangZero::ChallengeGame" : { - "file" : "lib/Games/PangZero/ChallengeGame.pm", - "version" : 0 - }, - "Games::PangZero::Config" : { - "file" : "lib/Games/PangZero/Config.pm", - "version" : 0 - }, - "Games::PangZero::DeadGuy" : { - "file" : "lib/Games/PangZero/DeadGuy.pm", - "version" : 0 - }, - "Games::PangZero::DeathBall" : { - "file" : "lib/Games/PangZero/DeathBall.pm", - "version" : 0 - }, - "Games::PangZero::DemoGame" : { - "file" : "lib/Games/PangZero/DemoGame.pm", - "version" : 0 - }, - "Games::PangZero::DemoPlaybackGame" : { - "file" : "lib/Games/PangZero/DemoPlaybackGame.pm", - "version" : 0 - }, - "Games::PangZero::DemoRecordGame" : { - "file" : "lib/Games/PangZero/DemoRecordGame.pm", - "version" : 0 - }, - "Games::PangZero::EarthquakeBall" : { - "file" : "lib/Games/PangZero/EarthquakeBall.pm", - "version" : 0 - }, - "Games::PangZero::FpsIndicator" : { - "file" : "lib/Games/PangZero/FpsIndicator.pm", - "version" : 0 - }, - "Games::PangZero::FragileBall" : { - "file" : "lib/Games/PangZero/FragileBall.pm", - "version" : 0 - }, - "Games::PangZero::GameBase" : { - "file" : "lib/Games/PangZero/GameBase.pm", - "version" : 0 - }, - "Games::PangZero::GameObject" : { - "file" : "lib/Games/PangZero/GameObject.pm", - "version" : 0 - }, - "Games::PangZero::GamePause" : { - "file" : "lib/Games/PangZero/GamePause.pm", - "version" : 0 - }, - "Games::PangZero::GameTimer" : { - "file" : "lib/Games/PangZero/GameTimer.pm", - "version" : 0 - }, - "Games::PangZero::Globals" : { - "file" : "lib/Games/PangZero/Globals.pm", - "version" : 0 - }, - "Games::PangZero::Graphics" : { - "file" : "lib/Games/PangZero/Graphics.pm", - "version" : 0 - }, - "Games::PangZero::Guy" : { - "file" : "lib/Games/PangZero/Guy.pm", - "version" : 0 - }, - "Games::PangZero::HalfCutter" : { - "file" : "lib/Games/PangZero/HalfCutter.pm", - "version" : 0 - }, - "Games::PangZero::Harpoon" : { - "file" : "lib/Games/PangZero/Harpoon.pm", - "version" : 0 - }, - "Games::PangZero::Hexa" : { - "file" : "lib/Games/PangZero/Hexa.pm", - "version" : 0 - }, - "Games::PangZero::Highscore" : { - "file" : "lib/Games/PangZero/Highscore.pm", - "version" : 0 - }, - "Games::PangZero::Joystick" : { - "file" : "lib/Games/PangZero/Joystick.pm", - "version" : 0 - }, - "Games::PangZero::MachineGun" : { - "file" : "lib/Games/PangZero/MachineGun.pm", - "version" : 0 - }, - "Games::PangZero::Meltdown" : { - "file" : "lib/Games/PangZero/Meltdown.pm", - "version" : 0 - }, - "Games::PangZero::Menu" : { - "file" : "lib/Games/PangZero/Menu.pm", - "version" : 0 - }, - "Games::PangZero::MenuItem" : { - "file" : "lib/Games/PangZero/MenuItem.pm", - "version" : 0 - }, - "Games::PangZero::Music" : { - "file" : "lib/Games/PangZero/Music.pm", - "version" : 0 - }, - "Games::PangZero::Palette" : { - "file" : "lib/Games/PangZero/Palette.pm", - "version" : 0 - }, - "Games::PangZero::PanicGame" : { - "file" : "lib/Games/PangZero/PanicGame.pm", - "version" : 0 - }, - "Games::PangZero::PlayableGameBase" : { - "file" : "lib/Games/PangZero/PlayableGameBase.pm", - "version" : 0 - }, - "Games::PangZero::PlaybackGame" : { - "file" : "lib/Games/PangZero/PlaybackGame.pm", - "version" : 0 - }, - "Games::PangZero::Pop" : { - "file" : "lib/Games/PangZero/Pop.pm", - "version" : 0 - }, - "Games::PangZero::PowerWire" : { - "file" : "lib/Games/PangZero/PowerWire.pm", - "version" : 0 - }, - "Games::PangZero::RecordGame" : { - "file" : "lib/Games/PangZero/RecordGame.pm", - "version" : 0 - }, - "Games::PangZero::SeekerBall" : { - "file" : "lib/Games/PangZero/SeekerBall.pm", - "version" : 0 - }, - "Games::PangZero::SlowEffect" : { - "file" : "lib/Games/PangZero/SlowEffect.pm", - "version" : 0 - }, - "Games::PangZero::SuperBall" : { - "file" : "lib/Games/PangZero/SuperBall.pm", - "version" : 0 - }, - "Games::PangZero::TutorialGame" : { - "file" : "lib/Games/PangZero/TutorialGame.pm", - "version" : 0 - }, - "Games::PangZero::UpsideDownBall" : { - "file" : "lib/Games/PangZero/UpsideDownBall.pm", - "version" : 0 - }, - "Games::PangZero::WaterBall" : { - "file" : "lib/Games/PangZero/WaterBall.pm", - "version" : 0 - }, - "Games::PangZero::XmasBall" : { - "file" : "lib/Games/PangZero/XmasBall.pm", - "version" : 0 - } - }, - "release_status" : "stable", - "resources" : { - "license" : [ - "http://opensource.org/licenses/gpl-license.php" - ], - "repository" : { - "url" : "http://github.com/kthakore/pangzero" - } - }, - "version" : "1.4" -} diff -Nru pangzero-1.4/META.yml pangzero-1.4.1+git20121103/META.yml --- pangzero-1.4/META.yml 2012-02-21 21:24:42.000000000 +0000 +++ pangzero-1.4.1+git20121103/META.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,159 +0,0 @@ ---- -abstract: 'a fast-paced action game about popping balloons with a harpoon' -author: - - 'UPi ' - - 'SAdam ' - - 'DaniGM ' - - 'Elio Blanca ' -build_requires: {} -configure_requires: - Module::Build: 0.38 -dynamic_config: 1 -generated_by: 'Module::Build version 0.38, CPAN::Meta::Converter version 2.112150' -license: open_source -meta-spec: - url: http://module-build.sourceforge.net/META-spec-v1.4.html - version: 1.4 -name: Games-PangZero -provides: - Games::PangZero: - file: lib/Games/PangZero.pm - version: 1.4 - Games::PangZero::Ball: - file: lib/Games/PangZero/Ball.pm - version: 0 - Games::PangZero::BonusDrop: - file: lib/Games/PangZero/BonusDrop.pm - version: 0 - Games::PangZero::ChallengeGame: - file: lib/Games/PangZero/ChallengeGame.pm - version: 0 - Games::PangZero::Config: - file: lib/Games/PangZero/Config.pm - version: 0 - Games::PangZero::DeadGuy: - file: lib/Games/PangZero/DeadGuy.pm - version: 0 - Games::PangZero::DeathBall: - file: lib/Games/PangZero/DeathBall.pm - version: 0 - Games::PangZero::DemoGame: - file: lib/Games/PangZero/DemoGame.pm - version: 0 - Games::PangZero::DemoPlaybackGame: - file: lib/Games/PangZero/DemoPlaybackGame.pm - version: 0 - Games::PangZero::DemoRecordGame: - file: lib/Games/PangZero/DemoRecordGame.pm - version: 0 - Games::PangZero::EarthquakeBall: - file: lib/Games/PangZero/EarthquakeBall.pm - version: 0 - Games::PangZero::FpsIndicator: - file: lib/Games/PangZero/FpsIndicator.pm - version: 0 - Games::PangZero::FragileBall: - file: lib/Games/PangZero/FragileBall.pm - version: 0 - Games::PangZero::GameBase: - file: lib/Games/PangZero/GameBase.pm - version: 0 - Games::PangZero::GameObject: - file: lib/Games/PangZero/GameObject.pm - version: 0 - Games::PangZero::GamePause: - file: lib/Games/PangZero/GamePause.pm - version: 0 - Games::PangZero::GameTimer: - file: lib/Games/PangZero/GameTimer.pm - version: 0 - Games::PangZero::Globals: - file: lib/Games/PangZero/Globals.pm - version: 0 - Games::PangZero::Graphics: - file: lib/Games/PangZero/Graphics.pm - version: 0 - Games::PangZero::Guy: - file: lib/Games/PangZero/Guy.pm - version: 0 - Games::PangZero::HalfCutter: - file: lib/Games/PangZero/HalfCutter.pm - version: 0 - Games::PangZero::Harpoon: - file: lib/Games/PangZero/Harpoon.pm - version: 0 - Games::PangZero::Hexa: - file: lib/Games/PangZero/Hexa.pm - version: 0 - Games::PangZero::Highscore: - file: lib/Games/PangZero/Highscore.pm - version: 0 - Games::PangZero::Joystick: - file: lib/Games/PangZero/Joystick.pm - version: 0 - Games::PangZero::MachineGun: - file: lib/Games/PangZero/MachineGun.pm - version: 0 - Games::PangZero::Meltdown: - file: lib/Games/PangZero/Meltdown.pm - version: 0 - Games::PangZero::Menu: - file: lib/Games/PangZero/Menu.pm - version: 0 - Games::PangZero::MenuItem: - file: lib/Games/PangZero/MenuItem.pm - version: 0 - Games::PangZero::Music: - file: lib/Games/PangZero/Music.pm - version: 0 - Games::PangZero::Palette: - file: lib/Games/PangZero/Palette.pm - version: 0 - Games::PangZero::PanicGame: - file: lib/Games/PangZero/PanicGame.pm - version: 0 - Games::PangZero::PlayableGameBase: - file: lib/Games/PangZero/PlayableGameBase.pm - version: 0 - Games::PangZero::PlaybackGame: - file: lib/Games/PangZero/PlaybackGame.pm - version: 0 - Games::PangZero::Pop: - file: lib/Games/PangZero/Pop.pm - version: 0 - Games::PangZero::PowerWire: - file: lib/Games/PangZero/PowerWire.pm - version: 0 - Games::PangZero::RecordGame: - file: lib/Games/PangZero/RecordGame.pm - version: 0 - Games::PangZero::SeekerBall: - file: lib/Games/PangZero/SeekerBall.pm - version: 0 - Games::PangZero::SlowEffect: - file: lib/Games/PangZero/SlowEffect.pm - version: 0 - Games::PangZero::SuperBall: - file: lib/Games/PangZero/SuperBall.pm - version: 0 - Games::PangZero::TutorialGame: - file: lib/Games/PangZero/TutorialGame.pm - version: 0 - Games::PangZero::UpsideDownBall: - file: lib/Games/PangZero/UpsideDownBall.pm - version: 0 - Games::PangZero::WaterBall: - file: lib/Games/PangZero/WaterBall.pm - version: 0 - Games::PangZero::XmasBall: - file: lib/Games/PangZero/XmasBall.pm - version: 0 -requires: - File::ShareDir: 1.00 - File::Spec: 0 - SDL: 2.536 - Time::HiRes: 0 -resources: - license: http://opensource.org/licenses/gpl-license.php - repository: http://github.com/kthakore/pangzero -version: 1.4