From 0f854712169334ee521aaf6d3da5c3702e4ec017 Mon Sep 17 00:00:00 2001 From: Dmitry Panin Date: Thu, 12 Dec 2013 02:20:14 +0400 Subject: [PATCH 001/104] Enabled automatic releases for each commit in master --- .travis.yml | 3 +++ upload-binaries.sh | 49 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/.travis.yml b/.travis.yml index 48acd7689..170ae4b2f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,7 @@ language: cpp +branches: + except: + - latest-master before_install: - export PSPDEV="$TRAVIS_BUILD_DIR/opt/pspsdk" - export PSPSDK="$PSPDEV/psp/sdk" diff --git a/upload-binaries.sh b/upload-binaries.sh index f688b8190..858d1acfa 100755 --- a/upload-binaries.sh +++ b/upload-binaries.sh @@ -29,3 +29,52 @@ if [ "$TRAVIS_BRANCH" == "alphas" ]; then echo -e "Done uploading\n" fi fi + +if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then +if [ "$TRAVIS_BRANCH" == "master" ]; then + + # get info about all releases + echo -e "Getting info about previous releases" + curl -X GET -H "Authorization: token ${GH_TOKEN}" \ + "https://api.github.com/repos/WagicProject/wagic/releases" > json.txt + + # extract info only about only "latest-release" tag + cat json.txt |jq 'map(select (.tag_name == "latest-master"))' > latest.txt + + # get id of release + ID_TO_DELETE=`cat latest.txt |jq '.[0].id'` + + # delete previous release + echo -e "Deleting release number ${ID_TO_DELETE}" + curl -X DELETE -H "Authorization: token ${GH_TOKEN}" \ + "https://api.github.com/repos/WagicProject/wagic/releases/${ID_TO_DELETE}" + + echo -e "Creating a release\n" + curl -X POST -H "Authorization: token ${GH_TOKEN}" \ + -d '{"tag_name": "latest-master", "target_commitish": "master", "name": "master-'${TRAVIS_BUILD_NUMBER}'", "body": "Automatic release based on latest commit to master branch generated by Travis CI", "draft": false, "prerelease": true}' "https://api.github.com/repos/WagicProject/wagic/releases" > json.txt + IDDI=`cat json.txt | jq '.id'` + + echo -e "Uploading Core resources\n" + curl -X POST -H "Authorization: token ${GH_TOKEN}" \ + -H "Accept: application/vnd.github.manifold-preview" \ + -H "Content-Type: application/zip" \ + --data-binary @core.zip \ + "https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-core-${TRAVIS_BUILD_NUMBER}.zip" + + echo -e "Uploading android package\n" + curl -X POST -H "Authorization: token ${GH_TOKEN}" \ + -H "Accept: application/vnd.github.manifold-preview" \ + -H "Content-Type: application/zip" \ + --data-binary @projects/mtg/Android/bin/Wagic-debug.apk \ + "https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-android-${TRAVIS_BUILD_NUMBER}.apk" + + echo -e "Uploading PSP package\n" + curl -X POST -H "Authorization: token ${GH_TOKEN}" \ + -H "Accept: application/vnd.github.manifold-preview" \ + -H "Content-Type: application/zip" \ + --data-binary @projects/mtg/psprelease.zip \ + "https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-psp-${TRAVIS_BUILD_NUMBER}.zip" + + echo -e "Done uploading\n" +fi +fi \ No newline at end of file From f21452feec052ea8daae3b16b979b826b3601059 Mon Sep 17 00:00:00 2001 From: Dmitry Panin Date: Wed, 11 Dec 2013 02:25:16 +0400 Subject: [PATCH 002/104] Fixed some Cards: Rune-Tail, Kitsune Ascendant Shifting Sky Flourishing Defenses (thanks to Shadowfireomega) --- projects/mtg/bin/Res/sets/primitives/mtg.txt | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/projects/mtg/bin/Res/sets/primitives/mtg.txt b/projects/mtg/bin/Res/sets/primitives/mtg.txt index f07510b44..9459016d2 100644 --- a/projects/mtg/bin/Res/sets/primitives/mtg.txt +++ b/projects/mtg/bin/Res/sets/primitives/mtg.txt @@ -31457,7 +31457,7 @@ toughness=2 [/card] [card] name=Flourishing Defenses -auto=@counteradded(-1/-1) from(creature|mybattlefield):may token(Elf Warrior,Creature elf warrior,1/1,green) +auto=@counteradded(-1/-1) from(creature):may token(Elf Warrior,Creature elf warrior,1/1,green) text=Whenever a -1/-1 counter is placed on a creature, you may put a 1/1 green Elf Warrior creature token onto the battlefield. mana={4}{G} type=Enchantment @@ -73586,7 +73586,7 @@ toughness=6 ###The 2 cards below should stay together (Flip Card)### [card] name=Rune-Tail, Kitsune Ascendant -auto=this(controllerlife >30) all(this) flip(Rune-Tail's Essence) +auto=this(controllerlife > 29) transforms((,newability[flip(Rune-Tail's Essence)])) text=When you have 30 or more life, flip Rune-Tail, Kitsune Ascendant. mana={2}{W} type=Legendary Creature @@ -78444,11 +78444,7 @@ toughness=2 [/card] [card] name=Shifting Sky -auto=choice name(choose white) all(this) transforms((,newability[lord(*[-land]) becomes(,white)])) forever -auto=choice name(choose blue) all(this) transforms((,newability[lord(*[-land]) becomes(,blue)])) forever -auto=choice name(choose black) all(this) transforms((,newability[lord(*[-land]) becomes(,black)])) forever -auto=choice name(choose red) all(this) transforms((,newability[lord(*[-land]) becomes(,red)])) forever -auto=choice name(choose green) all(this) transforms((,newability[lord(*[-land]) becomes(,green)])) forever +auto=chooseacolor lord(*[-land]) becomes(,chosencolor) chooseend text=As Shifting Sky enters the battlefield, choose a color. -- All nonland permanents are the chosen color. mana={2}{U} type=Enchantment From fd3cf574cf78aea0354a2e911e3077b8f7e96f17 Mon Sep 17 00:00:00 2001 From: Dmitry Panin Date: Thu, 12 Dec 2013 21:08:39 +0400 Subject: [PATCH 003/104] Remove previous tag "latest-master" before uploading new one --- upload-binaries.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/upload-binaries.sh b/upload-binaries.sh index 858d1acfa..e01376b31 100755 --- a/upload-binaries.sh +++ b/upload-binaries.sh @@ -49,6 +49,11 @@ if [ "$TRAVIS_BRANCH" == "master" ]; then curl -X DELETE -H "Authorization: token ${GH_TOKEN}" \ "https://api.github.com/repos/WagicProject/wagic/releases/${ID_TO_DELETE}" + # delete previous tag + curl -X DELETE -H "Authorization: token ${GH_TOKEN}" \ + "https://api.github.com/repos/WagicProject/wagic/git/refs/tags/latest-master" + + echo -e "Creating a release\n" curl -X POST -H "Authorization: token ${GH_TOKEN}" \ -d '{"tag_name": "latest-master", "target_commitish": "master", "name": "master-'${TRAVIS_BUILD_NUMBER}'", "body": "Automatic release based on latest commit to master branch generated by Travis CI", "draft": false, "prerelease": true}' "https://api.github.com/repos/WagicProject/wagic/releases" > json.txt From 89dcd6c71d7a17a71bace6fbe5c009aacdcc430e Mon Sep 17 00:00:00 2001 From: xawotihs Date: Thu, 12 Dec 2013 17:54:43 -0500 Subject: [PATCH 004/104] Added some windows cross compiling of the Qt flavor. --- .travis.yml | 3 ++- travis-script.sh | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 170ae4b2f..651eebae0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,8 +8,9 @@ before_install: - export PATH="$PATH:$PSPDEV/bin:$PSPSDK/bin" - export ANDROID="android-sdk-linux/tools/android" install: +- sudo add-apt-repository ppa:tobydox/mingw -y - sudo apt-get update -qq -- if [ `uname -m` = x86_64 ]; then sudo apt-get install -qq --force-yes libgd2-xpm ia32-libs ia32-libs-multiarch jq; fi +- if [ `uname -m` = x86_64 ]; then sudo apt-get install -qq --force-yes libgd2-xpm ia32-libs ia32-libs-multiarch jq mingw32-x mingw32-x-qt; fi - wget -O sdk.lzma http://sourceforge.net/projects/minpspw/files/SDK%20%2B%20devpak/pspsdk%200.11.2/minpspw_0.11.2-amd64.tar.lzma/download - tar -x --xz -f sdk.lzma - wget http://dl.google.com/android/ndk/android-ndk-r9-linux-x86_64.tar.bz2 -nv diff --git a/travis-script.sh b/travis-script.sh index db926b1c8..e4fe26680 100755 --- a/travis-script.sh +++ b/travis-script.sh @@ -42,6 +42,15 @@ cd .. qmake projects/mtg/wagic-qt.pro CONFIG+=console CONFIG+=debug DEFINES+=CAPTURE_STDERR make -j 8 +# we're cross-compiling a Qt Windows version here, +# PATH is only set here to prevent colision +export PATH="$PATH:/opt/mingw32/bin" +mkdir qt-win-cross +cd qt-win-cross +/opt/mingw32/bin/qmake ../projects/mtg/wagic-qt.pro CONFIG+=release CONFIG+=graphics +make -j 8 +cd .. + # we create resource package cd projects/mtg/bin/Res python createResourceZip.py From ec343806680e09e5b855437df3324524a92637aa Mon Sep 17 00:00:00 2001 From: xawotihs Date: Fri, 13 Dec 2013 00:12:32 +0100 Subject: [PATCH 005/104] Fixed mingw gcc package name --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 651eebae0..fe0cabfff 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,7 +10,7 @@ before_install: install: - sudo add-apt-repository ppa:tobydox/mingw -y - sudo apt-get update -qq -- if [ `uname -m` = x86_64 ]; then sudo apt-get install -qq --force-yes libgd2-xpm ia32-libs ia32-libs-multiarch jq mingw32-x mingw32-x-qt; fi +- if [ `uname -m` = x86_64 ]; then sudo apt-get install -qq --force-yes libgd2-xpm ia32-libs ia32-libs-multiarch jq mingw32-x-gcc mingw32-x-qt; fi - wget -O sdk.lzma http://sourceforge.net/projects/minpspw/files/SDK%20%2B%20devpak/pspsdk%200.11.2/minpspw_0.11.2-amd64.tar.lzma/download - tar -x --xz -f sdk.lzma - wget http://dl.google.com/android/ndk/android-ndk-r9-linux-x86_64.tar.bz2 -nv From 88095c67b805584a981dbd7d489c7c7117b4f803 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Fri, 13 Dec 2013 21:27:40 +0100 Subject: [PATCH 006/104] Fixed mingw32 compilation --- .travis.yml | 1 + JGE/src/JFileSystem.cpp | 4 ++++ projects/mtg/include/config.h | 2 +- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index fe0cabfff..13f48ff9c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,6 +11,7 @@ install: - sudo add-apt-repository ppa:tobydox/mingw -y - sudo apt-get update -qq - if [ `uname -m` = x86_64 ]; then sudo apt-get install -qq --force-yes libgd2-xpm ia32-libs ia32-libs-multiarch jq mingw32-x-gcc mingw32-x-qt; fi +- sudo ln -s /opt/mingw32/bin/moc /opt/mingw32/bin/i686-w64-mingw32-moc - wget -O sdk.lzma http://sourceforge.net/projects/minpspw/files/SDK%20%2B%20devpak/pspsdk%200.11.2/minpspw_0.11.2-amd64.tar.lzma/download - tar -x --xz -f sdk.lzma - wget http://dl.google.com/android/ndk/android-ndk-r9-linux-x86_64.tar.bz2 -nv diff --git a/JGE/src/JFileSystem.cpp b/JGE/src/JFileSystem.cpp index 63ee77244..03480ae1f 100644 --- a/JGE/src/JFileSystem.cpp +++ b/JGE/src/JFileSystem.cpp @@ -313,11 +313,15 @@ bool JFileSystem::readIntoString(const string & FilePath, string & target) int fileSize = GetFileSize(file); +#ifndef __MINGW32__ try { +#endif target.resize((std::string::size_type) fileSize); +#ifndef __MINGW32__ } catch (bad_alloc&) { return false; } +#endif if (fileSize) diff --git a/projects/mtg/include/config.h b/projects/mtg/include/config.h index ada8c7add..55dcb0e91 100644 --- a/projects/mtg/include/config.h +++ b/projects/mtg/include/config.h @@ -1,7 +1,7 @@ #ifndef _DEBUG_H_ #define _DEBUG_H_ -#if ((defined WIN32) || (defined WP8)) +#if ((defined WIN32) || (defined WP8)) && !defined(__MINGW32__) #define snprintf sprintf_s #endif From 1a4327a2e68a2c4351162a0a03d65996053e3ea4 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Fri, 13 Dec 2013 21:54:43 +0100 Subject: [PATCH 007/104] Fixed mingw32 build linking --- travis-script.sh | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/travis-script.sh b/travis-script.sh index e4fe26680..1dd651c46 100755 --- a/travis-script.sh +++ b/travis-script.sh @@ -45,11 +45,13 @@ make -j 8 # we're cross-compiling a Qt Windows version here, # PATH is only set here to prevent colision export PATH="$PATH:/opt/mingw32/bin" -mkdir qt-win-cross -cd qt-win-cross -/opt/mingw32/bin/qmake ../projects/mtg/wagic-qt.pro CONFIG+=release CONFIG+=graphics +mkdir build +cd build +mkdir win-cross +cd win-cross +/opt/mingw32/bin/qmake ../../projects/mtg/wagic-qt.pro CONFIG+=release CONFIG+=graphics make -j 8 -cd .. +cd ../.. # we create resource package cd projects/mtg/bin/Res From db60c38eda5366254d969ece999db5f43583da6f Mon Sep 17 00:00:00 2001 From: xawotihs Date: Fri, 13 Dec 2013 23:07:17 +0100 Subject: [PATCH 008/104] Added windows build --- travis-script.sh | 11 ++++++++++- upload-binaries.sh | 16 +++++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/travis-script.sh b/travis-script.sh index 1dd651c46..c7c82a2ea 100755 --- a/travis-script.sh +++ b/travis-script.sh @@ -51,6 +51,16 @@ mkdir win-cross cd win-cross /opt/mingw32/bin/qmake ../../projects/mtg/wagic-qt.pro CONFIG+=release CONFIG+=graphics make -j 8 +cd release +cp ../../../projects/mtg/bin/fmod.dll . +cp /opt/mingw32/bin/QtCore4.dll . +cp /opt/mingw32/bin/QtGui4.dll . +cp /opt/mingw32/bin/QtNetwork4.dll . +cp /opt/mingw32/bin/QtOpenGL4.dll . +cp ../../../projects/mtg/bin/zlib1.dll . +cp /opt/mingw32/bin/libpng15-15.dll . +cd .. +zip win-cross.zip -r release/ cd ../.. # we create resource package @@ -65,4 +75,3 @@ cd ../../../.. cd projects/mtg ../../wagic cd ../.. - diff --git a/upload-binaries.sh b/upload-binaries.sh index e01376b31..1259ecedb 100755 --- a/upload-binaries.sh +++ b/upload-binaries.sh @@ -26,6 +26,13 @@ if [ "$TRAVIS_BRANCH" == "alphas" ]; then --data-binary @projects/mtg/psprelease.zip \ "https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-psp-${TRAVIS_BUILD_NUMBER}.zip" + echo -e "Uploading Windows package\n" + curl -X POST -H "Authorization: token ${GH_TOKEN}" \ + -H "Accept: application/vnd.github.manifold-preview" \ + -H "Content-Type: application/zip" \ + --data-binary @build/win-cross.zip \ + "https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-windows-${TRAVIS_BUILD_NUMBER}.zip" + echo -e "Done uploading\n" fi fi @@ -80,6 +87,13 @@ if [ "$TRAVIS_BRANCH" == "master" ]; then --data-binary @projects/mtg/psprelease.zip \ "https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-psp-${TRAVIS_BUILD_NUMBER}.zip" + echo -e "Uploading Windows package\n" + curl -X POST -H "Authorization: token ${GH_TOKEN}" \ + -H "Accept: application/vnd.github.manifold-preview" \ + -H "Content-Type: application/zip" \ + --data-binary @build/win-cross.zip \ + "https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-windows-${TRAVIS_BUILD_NUMBER}.zip" + echo -e "Done uploading\n" fi -fi \ No newline at end of file +fi From 9e21751e123f8a6f17c43fb1b0ab4400e5285fb6 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Fri, 13 Dec 2013 22:54:40 +0100 Subject: [PATCH 009/104] Fixed windows build upload --- upload-binaries.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/upload-binaries.sh b/upload-binaries.sh index 1259ecedb..eb107faf6 100755 --- a/upload-binaries.sh +++ b/upload-binaries.sh @@ -30,7 +30,7 @@ if [ "$TRAVIS_BRANCH" == "alphas" ]; then curl -X POST -H "Authorization: token ${GH_TOKEN}" \ -H "Accept: application/vnd.github.manifold-preview" \ -H "Content-Type: application/zip" \ - --data-binary @build/win-cross.zip \ + --data-binary @build/win-cross/win-cross.zip \ "https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-windows-${TRAVIS_BUILD_NUMBER}.zip" echo -e "Done uploading\n" @@ -91,7 +91,7 @@ if [ "$TRAVIS_BRANCH" == "master" ]; then curl -X POST -H "Authorization: token ${GH_TOKEN}" \ -H "Accept: application/vnd.github.manifold-preview" \ -H "Content-Type: application/zip" \ - --data-binary @build/win-cross.zip \ + --data-binary @build/win-cross/win-cross.zip \ "https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-windows-${TRAVIS_BUILD_NUMBER}.zip" echo -e "Done uploading\n" From b12e15e4ff27d1865102b116fd296d3e031e6f26 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sat, 14 Dec 2013 11:55:12 +0100 Subject: [PATCH 010/104] Tries to arrange a bit the PSP binary package to make it more usual for users. --- travis-script.sh | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/travis-script.sh b/travis-script.sh index c7c82a2ea..696043da6 100755 --- a/travis-script.sh +++ b/travis-script.sh @@ -11,6 +11,14 @@ cd projects/mtg/ ant update > error.txt cd ../.. +# we create resource package +cd projects/mtg/bin/Res +python createResourceZip.py +# if we let the zip here, Wagic will use it in the testsuite +# and we'll get 51 failed test cases +mv core_*.zip ../../../../core.zip +cd ../../../.. + # we're building a PSP binary here cd JGE make -j 8 @@ -18,11 +26,16 @@ cd .. cd projects/mtg mkdir objs make -j 8 -mkdir psprelease -mv EBOOT.PBP psprelease/ -mv wagic.elf psprelease/ -mv wagic.prx psprelease/ -zip psprelease.zip -r psprelease/ +mkdir WTH +mv EBOOT.PBP WTH/ +mv ../../../JGE/exceptionHandler/prx/exception.prx WTH/ +mv ../../../core.zip WTH/ +cd WTH +unzip core.zip +mv core Res +rm core.zip +cd .. +zip psprelease.zip -r WTH/ cd ../.. # we're building an Android binary here @@ -63,14 +76,6 @@ cd .. zip win-cross.zip -r release/ cd ../.. -# we create resource package -cd projects/mtg/bin/Res -python createResourceZip.py -# if we let the zip here, Wagic will use it in the testsuite -# and we'll get 51 failed test cases -mv core_*.zip ../../../../core.zip -cd ../../../.. - # Now we run the testsuite (Res needs to be in the working directory) cd projects/mtg ../../wagic From 2381f0306c1f2137dbdee714d8d4bef7a7b8d1e1 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sat, 14 Dec 2013 12:06:51 +0100 Subject: [PATCH 011/104] Fixed paths --- travis-script.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/travis-script.sh b/travis-script.sh index 696043da6..570777369 100755 --- a/travis-script.sh +++ b/travis-script.sh @@ -28,8 +28,8 @@ mkdir objs make -j 8 mkdir WTH mv EBOOT.PBP WTH/ -mv ../../../JGE/exceptionHandler/prx/exception.prx WTH/ -mv ../../../core.zip WTH/ +mv ../../JGE/exceptionHandler/prx/exception.prx WTH/ +mv ../../core.zip WTH/ cd WTH unzip core.zip mv core Res From c7bae656970972e78082a35c6a57e8e2a4b49fe1 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sat, 14 Dec 2013 13:18:11 +0100 Subject: [PATCH 012/104] Fixed core unzip --- travis-script.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/travis-script.sh b/travis-script.sh index 570777369..599431ef5 100755 --- a/travis-script.sh +++ b/travis-script.sh @@ -27,14 +27,14 @@ cd projects/mtg mkdir objs make -j 8 mkdir WTH +mkdir WTH/Res mv EBOOT.PBP WTH/ mv ../../JGE/exceptionHandler/prx/exception.prx WTH/ -mv ../../core.zip WTH/ -cd WTH +cp ../../core.zip WTH/Res +cd WTH/Res unzip core.zip -mv core Res rm core.zip -cd .. +cd ../.. zip psprelease.zip -r WTH/ cd ../.. From 22b1c3b5d85899d3c1fa952afc0ed612cc2e43db Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sat, 14 Dec 2013 14:40:26 +0100 Subject: [PATCH 013/104] Fixed zip permission while rezipping PSP package --- travis-script.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/travis-script.sh b/travis-script.sh index 599431ef5..c1fdf5115 100755 --- a/travis-script.sh +++ b/travis-script.sh @@ -34,7 +34,9 @@ cp ../../core.zip WTH/Res cd WTH/Res unzip core.zip rm core.zip -cd ../.. +cd .. +chmod -R 775 Res +cd .. zip psprelease.zip -r WTH/ cd ../.. From 2e13f29945bdc73c3b74af72f53767e3df3e423e Mon Sep 17 00:00:00 2001 From: Xawotihs Date: Sat, 14 Dec 2013 19:13:26 +0100 Subject: [PATCH 014/104] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1ea3ee9bb..1ac0bfee0 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,6 @@ Wagic, the Homebrew, is a C++ game engine that allows to play card games against It is highly customizable and allows the player to tweak the rules / create their own cards, their own themes, etc... -Info, Downloads, and more at http://wololo.net +Info, downloads, discussions and more at http://wololo.net/forum/index.php -![alt text](http://wololo.net/wagic/wp-content/uploads/2009/10/shop.jpg "Screenshot") From 4765890d0a45e073e0931ed383c0e8872aee61b7 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sat, 14 Dec 2013 23:46:23 +0100 Subject: [PATCH 015/104] Fixed mouse input with retina display --- JGE/include/qt/corewrapper.h | 3 ++ JGE/src/qt/corewrapper.cpp | 56 ++++++++++++++++++------------------ 2 files changed, 31 insertions(+), 28 deletions(-) diff --git a/JGE/include/qt/corewrapper.h b/JGE/include/qt/corewrapper.h index 962f91bd4..3ea2fa686 100644 --- a/JGE/include/qt/corewrapper.h +++ b/JGE/include/qt/corewrapper.h @@ -136,6 +136,8 @@ signals: private slots: private: + int lastPosx(){ return m_lastPos.x()*devicePixelRatio();} + int lastPosy(){ return m_lastPos.y()*devicePixelRatio();} void timerEvent( QTimerEvent* ); void doAndEnqueue(JButton action) { m_engine->HoldKey_NoRepeat(action); @@ -154,6 +156,7 @@ private: int m_timerId; bool m_active; QRect m_viewPort; + QPoint m_lastPos; #ifdef QT_WIDGET #if (defined Q_WS_MAEMO_5) || (defined MEEGO_EDITION_HARMATTAN) || (defined Q_WS_ANDROID) int mMouseDownX; diff --git a/JGE/src/qt/corewrapper.cpp b/JGE/src/qt/corewrapper.cpp index 7a2313a58..e121fc479 100644 --- a/JGE/src/qt/corewrapper.cpp +++ b/JGE/src/qt/corewrapper.cpp @@ -418,29 +418,29 @@ void WagicCore::mousePressEvent(QMouseEvent *event) { if(event->button() == Qt::LeftButton) { - QPoint lastPos = event->pos(); + m_lastPos = event->pos(); // this is intended to convert window coordinate into game coordinate. // this is correct only if the game and window have the same aspect ratio, otherwise, it's just wrong int actualWidth = (int) JRenderer::GetInstance()->GetActualWidth(); int actualHeight = (int) JRenderer::GetInstance()->GetActualHeight(); - if (lastPos.y() >= m_viewPort.top() && - lastPos.y() <= m_viewPort.bottom() && - lastPos.x() <= m_viewPort.right() && - lastPos.x() >= m_viewPort.left()) { + if (lastPosy() >= m_viewPort.top() && + lastPosy() <= m_viewPort.bottom() && + lastPosx() <= m_viewPort.right() && + lastPosx() >= m_viewPort.left()) { m_engine->LeftClicked( - ((lastPos.x()-m_viewPort.left())*SCREEN_WIDTH)/actualWidth, - ((lastPos.y()-m_viewPort.top())*SCREEN_HEIGHT)/actualHeight); + ((lastPosx()-m_viewPort.left())*SCREEN_WIDTH)/actualWidth, + ((lastPosy()-m_viewPort.top())*SCREEN_HEIGHT)/actualHeight); #if (!defined Q_WS_MAEMO_5) && (!defined MEEGO_EDITION_HARMATTAN) && (!defined Q_WS_ANDROID) m_engine->HoldKey_NoRepeat(JGE_BTN_OK); #else - mMouseDownX = lastPos.x(); - mMouseDownY = lastPos.y(); + mMouseDownX = lastPosx(); + mMouseDownY = lastPosy(); mLastFingerDownTime = g_startTimer.elapsed(); #endif - } else if(lastPos.y()HoldKey_NoRepeat(JGE_BTN_MENU); - } else if(lastPos.y()>m_viewPort.bottom()) { + } else if(lastPosy()>m_viewPort.bottom()) { m_engine->HoldKey_NoRepeat(JGE_BTN_NEXT); } event->accept(); @@ -465,33 +465,33 @@ void WagicCore::mouseReleaseEvent(QMouseEvent *event) { if(event->button() == Qt::LeftButton) { - QPoint lastPos = event->pos(); + m_lastPos = event->pos(); - if (lastPos.y() >= m_viewPort.top() && - lastPos.y() <= m_viewPort.bottom() && - lastPos.x() <= m_viewPort.right() && - lastPos.x() >= m_viewPort.left()) { + if (lastPosy() >= m_viewPort.top() && + lastPosy() <= m_viewPort.bottom() && + lastPosx() <= m_viewPort.right() && + lastPosx() >= m_viewPort.left()) { #if (defined Q_WS_MAEMO_5) || (defined MEEGO_EDITION_HARMATTAN) || (defined Q_WS_ANDROID) if(g_startTimer.elapsed() - mLastFingerDownTime <= kTapEventTimeout ) { - if(abs(mMouseDownX - lastPos.x()) < kHitzonePliancy && - abs(mMouseDownY - lastPos.y()) < kHitzonePliancy) + if(abs(mMouseDownX - lastPosx()) < kHitzonePliancy && + abs(mMouseDownY - lastPosy()) < kHitzonePliancy) { m_engine->HoldKey_NoRepeat(JGE_BTN_OK); } } else if (g_startTimer.elapsed() - mLastFingerDownTime >= kSwipeEventMinDuration) { // Let's swipe - m_engine->Scroll(lastPos.x()-mMouseDownX, lastPos.y()-mMouseDownY); + m_engine->Scroll(lastPosx()-mMouseDownX, lastPosy()-mMouseDownY); } #else //#if (!defined Q_WS_MAEMO_5) && (!defined MEEGO_EDITION_HARMATTAN) m_engine->ReleaseKey(JGE_BTN_OK); #endif m_engine->ReleaseKey(JGE_BTN_MENU); - } else if(lastPos.y() < m_viewPort.top()) { + } else if(lastPosy() < m_viewPort.top()) { m_engine->ReleaseKey(JGE_BTN_MENU); - } else if(lastPos.y() > m_viewPort.bottom()) { + } else if(lastPosy() > m_viewPort.bottom()) { m_engine->ReleaseKey(JGE_BTN_NEXT); } event->accept(); @@ -517,15 +517,15 @@ void WagicCore::mouseMoveEvent(QMouseEvent *event) int actualWidth = (int) JRenderer::GetInstance()->GetActualWidth(); int actualHeight = (int) JRenderer::GetInstance()->GetActualHeight(); - QPoint lastPos = event->pos(); + m_lastPos = event->pos(); - if (lastPos.y() >= m_viewPort.top() && - lastPos.y() <= m_viewPort.bottom() && - lastPos.x() <= m_viewPort.right() && - lastPos.x() >= m_viewPort.left()) { + if (lastPosy() >= m_viewPort.top() && + lastPosy() <= m_viewPort.bottom() && + lastPosx() <= m_viewPort.right() && + lastPosx() >= m_viewPort.left()) { m_engine->LeftClicked( - ((lastPos.x()-m_viewPort.left())*SCREEN_WIDTH)/actualWidth, - ((lastPos.y()-m_viewPort.top())*SCREEN_HEIGHT)/actualHeight); + ((lastPosx()-m_viewPort.left())*SCREEN_WIDTH)/actualWidth, + ((lastPosy()-m_viewPort.top())*SCREEN_HEIGHT)/actualHeight); event->accept(); } else { super::mouseMoveEvent(event); From 95805ea38724c180e245adf08138daf4b912d8e8 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sun, 15 Dec 2013 00:26:04 +0100 Subject: [PATCH 016/104] Fixed QT mingw cross compile with QT4.8 --- JGE/include/qt/corewrapper.h | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/JGE/include/qt/corewrapper.h b/JGE/include/qt/corewrapper.h index 3ea2fa686..cd019c6a7 100644 --- a/JGE/include/qt/corewrapper.h +++ b/JGE/include/qt/corewrapper.h @@ -136,8 +136,20 @@ signals: private slots: private: - int lastPosx(){ return m_lastPos.x()*devicePixelRatio();} - int lastPosy(){ return m_lastPos.y()*devicePixelRatio();} + int lastPosx(){ +#if QT_VERSION >= 0x050000 + return m_lastPos.x()*devicePixelRatio(); +#else + return m_lastPos.x(); +#endif + } + int lastPosy(){ +#if QT_VERSION >= 0x050000 + return m_lastPos.y()*devicePixelRatio(); +#else + return m_lastPos.y(); +#endif + } void timerEvent( QTimerEvent* ); void doAndEnqueue(JButton action) { m_engine->HoldKey_NoRepeat(action); From db9f18a64410b4fa852ec3c0cad6f65547de2cf3 Mon Sep 17 00:00:00 2001 From: Dmitry Panin Date: Sun, 15 Dec 2013 22:39:08 +0400 Subject: [PATCH 017/104] Added _cards.dat for M14 (taken from forum) --- projects/mtg/bin/Res/sets/M14/_cards.dat | 1259 ++++++++++++++++++++++ 1 file changed, 1259 insertions(+) create mode 100644 projects/mtg/bin/Res/sets/M14/_cards.dat diff --git a/projects/mtg/bin/Res/sets/M14/_cards.dat b/projects/mtg/bin/Res/sets/M14/_cards.dat new file mode 100644 index 000000000..22aa81f0e --- /dev/null +++ b/projects/mtg/bin/Res/sets/M14/_cards.dat @@ -0,0 +1,1259 @@ +[meta] +author=Wagic Team +name=Magic 2014 +year=2013 +[/meta] +[card] +primitive=Academy Raider +id=370735 +rarity=C +[/card] +[card] +primitive=Accorder's Shield +id=370581 +rarity=C +[/card] +[card] +primitive=Accursed Spirit +id=370811 +rarity=C +[/card] +[card] +primitive=Act of Treason +id=370618 +rarity=C +[/card] +[card] +primitive=Advocate of the Beast +id=370738 +rarity=C +[/card] +[card] +primitive=Air Servant +id=370688 +rarity=C +[/card] +[card] +primitive=Ajani, Caller of the Pride +id=370680 +rarity=M +[/card] +[card] +primitive=Ajani's Chosen +id=370750 +rarity=R +[/card] +[card] +primitive=Altar's Reap +id=370677 +rarity=C +[/card] +[card] +primitive=Angelic Accord +id=370612 +rarity=U +[/card] +[card] +primitive=Angelic Wall +id=370789 +rarity=C +[/card] +[card] +primitive=Archaeomancer +id=370753 +rarity=C +[/card] +[card] +primitive=Archangel of Thune +id=370627 +rarity=M +[/card] +[card] +primitive=Armored Cancrix +id=370632 +rarity=C +[/card] +[card] +primitive=Artificer's Hex +id=370634 +rarity=U +[/card] +[card] +primitive=Auramancer +id=370793 +rarity=C +[/card] +[card] +primitive=Awaken the Ancient +id=370613 +rarity=R +[/card] +[card] +primitive=Banisher Priest +id=370624 +rarity=U +[/card] +[card] +primitive=Barrage of Expendables +id=370822 +rarity=U +[/card] +[card] +primitive=Battle Sliver +id=370639 +rarity=U +[/card] +[card] +primitive=Blessing +id=370819 +rarity=U +[/card] +[card] +primitive=Blightcaster +id=370761 +rarity=U +[/card] +[card] +primitive=Blood Bairn +id=370698 +rarity=C +[/card] +[card] +primitive=Blur Sliver +id=370593 +rarity=U +[/card] +[card] +primitive=Bogbrew Witch +id=370758 +rarity=R +[/card] +[card] +primitive=Bonescythe Sliver +id=370801 +rarity=R +[/card] +[card] +primitive=Bramblecrush +id=370642 +rarity=U +[/card] +[card] +primitive=Brave the Elements +id=370816 +rarity=U +[/card] +[card] +primitive=Briarpack Alpha +id=370739 +rarity=U +[/card] +[card] +primitive=Brindle Boar +id=370778 +rarity=C +[/card] +[card] +primitive=Bubbling Cauldron +id=370661 +rarity=R +[/card] +[card] +primitive=Burning Earth +id=370696 +rarity=R +[/card] +[card] +primitive=Cancel +id=370755 +rarity=C +[/card] +[card] +primitive=Canyon Minotaur +id=370757 +rarity=C +[/card] +[card] +primitive=Capashen Knight +id=370821 +rarity=C +[/card] +[card] +primitive=Celestial Flare +id=370666 +rarity=C +[/card] +[card] +primitive=Chandra, Pyromaster +id=370637 +rarity=M +[/card] +[card] +primitive=Chandra's Outrage +id=370659 +rarity=C +[/card] +[card] +primitive=Chandra's Phoenix +id=370691 +rarity=R +[/card] +[card] +primitive=Charging Griffin +id=370768 +rarity=C +[/card] +[card] +primitive=Child of Night +id=370823 +rarity=C +[/card] +[card] +primitive=Claustrophobia +id=370653 +rarity=C +[/card] +[card] +primitive=Clone +id=370622 +rarity=R +[/card] +[card] +primitive=Colossal Whale +id=370685 +rarity=R +[/card] +[card] +primitive=Congregate +id=370804 +rarity=U +[/card] +[card] +primitive=Coral Merfolk +id=370667 +rarity=C +[/card] +[card] +primitive=Corpse Hauler +id=370800 +rarity=C +[/card] +[card] +primitive=Corrupt +id=370630 +rarity=U +[/card] +[card] +primitive=Cyclops Tyrant +id=370585 +rarity=C +[/card] +[card] +primitive=Dark Favor +id=370782 +rarity=C +[/card] +[card] +primitive=Dark Prophecy +id=370596 +rarity=R +[/card] +[card] +primitive=Darksteel Forge +id=370734 +rarity=R +[/card] +[card] +primitive=Darksteel Ingot +id=370675 +rarity=U +[/card] +[card] +primitive=Dawnstrike Paladin +id=370721 +rarity=C +[/card] +[card] +primitive=Deadly Recluse +id=370582 +rarity=C +[/card] +[card] +primitive=Deathgaze Cockatrice +id=370775 +rarity=C +[/card] +[card] +primitive=Demolish +id=370621 +rarity=C +[/card] +[card] +primitive=Devout Invocation +id=370726 +rarity=M +[/card] +[card] +primitive=Diabolic Tutor +id=370732 +rarity=U +[/card] +[card] +primitive=Dismiss into Dream +id=370796 +rarity=R +[/card] +[card] +primitive=Disperse +id=370818 +rarity=C +[/card] +[card] +primitive=Divination +id=370616 +rarity=C +[/card] +[card] +primitive=Divine Favor +id=370748 +rarity=C +[/card] +[card] +primitive=Domestication +id=370783 +rarity=R +[/card] +[card] +primitive=Doom Blade +id=370609 +rarity=C +[/card] +[card] +primitive=Door of Destinies +id=370699 +rarity=R +[/card] +[card] +primitive=Dragon Egg +id=370660 +rarity=U +[/card] +[card] +primitive=Dragon Hatchling +id=370717 +rarity=C +[/card] +[card] +primitive=Duress +id=370577 +rarity=C +[/card] +[card] +primitive=Elite Arcanist +id=370747 +rarity=R +[/card] +[card] +primitive=Elixir of Immortality +id=370681 +rarity=U +[/card] +[card] +primitive=Elvish Mystic +id=370744 +rarity=C +[/card] +[card] +primitive=Encroaching Wastes +id=370769 +rarity=U +[/card] +[card] +primitive=Enlarge +id=370797 +rarity=U +[/card] +[card] +primitive=Essence Scatter +id=370694 +rarity=C +[/card] +[card] +primitive=Festering Newt +id=370772 +rarity=C +[/card] +[card] +primitive=Fiendslayer Paladin +id=370786 +rarity=R +[/card] +[card] +primitive=Fireshrieker +id=370715 +rarity=U +[/card] +[card] +primitive=Flames of the Firebrand +id=370824 +rarity=U +[/card] +[card] +primitive=Fleshpulper Giant +id=370741 +rarity=U +[/card] +[card] +primitive=Fog +id=370633 +rarity=C +[/card] +[card] +primitive=Forest +id=370598 +rarity=C +[/card] +[card] +primitive=Forest +id=370729 +rarity=C +[/card] +[card] +primitive=Forest +id=370756 +rarity=C +[/card] +[card] +primitive=Forest +id=370771 +rarity=C +[/card] +[card] +primitive=Fortify +id=370712 +rarity=U +[/card] +[card] +primitive=Frost Breath +id=370678 +rarity=C +[/card] +[card] +primitive=Galerider Sliver +id=370590 +rarity=R +[/card] +[card] +primitive=Garruk, Caller of Beasts +id=370687 +rarity=M +[/card] +[card] +primitive=Garruk's Horde +id=370684 +rarity=R +[/card] +[card] +primitive=Giant Growth +id=370788 +rarity=C +[/card] +[card] +primitive=Giant Spider +id=370781 +rarity=C +[/card] +[card] +primitive=Gladecover Scout +id=370716 +rarity=C +[/card] +[card] +primitive=Glimpse the Future +id=370774 +rarity=U +[/card] +[card] +primitive=Gnawing Zombie +id=370682 +rarity=U +[/card] +[card] +primitive=Goblin Diplomats +id=370674 +rarity=R +[/card] +[card] +primitive=Goblin Shortcutter +id=370610 +rarity=C +[/card] +[card] +primitive=Griffin Sentinel +id=370792 +rarity=C +[/card] +[card] +primitive=Grim Return +id=370776 +rarity=R +[/card] +[card] +primitive=Groundshaker Sliver +id=370626 +rarity=C +[/card] +[card] +primitive=Guardian of the Ages +id=370603 +rarity=R +[/card] +[card] +primitive=Haunted Plate Mail +id=370594 +rarity=R +[/card] +[card] +primitive=Hive Stirrings +id=370817 +rarity=C +[/card] +[card] +primitive=Howl of the Night Pack +id=370718 +rarity=U +[/card] +[card] +primitive=Hunt the Weak +id=370743 +rarity=C +[/card] +[card] +primitive=Illusionary Armor +id=370701 +rarity=U +[/card] +[card] +primitive=Imposing Sovereign +id=370770 +rarity=R +[/card] +[card] +primitive=Indestructibility +id=370673 +rarity=R +[/card] +[card] +primitive=Into the Wilds +id=370579 +rarity=R +[/card] +[card] +primitive=Island +id=370608 +rarity=C +[/card] +[card] +primitive=Island +id=370611 +rarity=C +[/card] +[card] +primitive=Island +id=370647 +rarity=C +[/card] +[card] +primitive=Island +id=370773 +rarity=C +[/card] +[card] +primitive=Jace, Memory Adept +id=370728 +rarity=M +[/card] +[card] +primitive=Jace's Mindseeker +id=370638 +rarity=R +[/card] +[card] +primitive=Kalonian Hydra +id=370766 +rarity=R +[/card] +[card] +primitive=Kalonian Tusker +id=370700 +rarity=U +[/card] +[card] +primitive=Lava Axe +id=370595 +rarity= +[/card] +[card] +primitive=Lay of the Land +id=370767 +rarity=C +[/card] +[card] +primitive=Lifebane Zombie +id=370723 +rarity=R +[/card] +[card] +primitive=Lightning Talons +id=370795 +rarity=C +[/card] +[card] +primitive=Liliana of the Dark Realms +id=370658 +rarity=M +[/card] +[card] +primitive=Liliana's Reaver +id=370740 +rarity=R +[/card] +[card] +primitive=Zombie Token +id=-339967 +rarity=T +[/card] +[card] +primitive=Liturgy of Blood +id=370652 +rarity=C +[/card] +[card] +primitive=Manaweft Sliver +id=370599 +rarity=U +[/card] +[card] +primitive=Marauding Maulhorn +id=370648 +rarity=C +[/card] +[card] +primitive=Mark of the Vampire +id=370787 +rarity=C +[/card] +[card] +primitive=Master of Diversion +id=370708 +rarity=C +[/card] +[card] +primitive=Megantic Sliver +id=370794 +rarity=R +[/card] +[card] +primitive=Merfolk Spy +id=370762 +rarity=C +[/card] +[card] +primitive=Messenger Drake +id=370807 +rarity=C +[/card] +[card] +primitive=Millstone +id=370737 +rarity=R +[/card] +[card] +primitive=Mind Rot +id=370711 +rarity=C +[/card] +[card] +primitive=Mindsparker +id=370695 +rarity=R +[/card] +[card] +primitive=Minotaur Abomination +id=370683 +rarity=C +[/card] +[card] +primitive=Molten Birth +id=370604 +rarity=U +[/card] +[card] +primitive=Mountain +id=370583 +rarity=C +[/card] +[card] +primitive=Mountain +id=370588 +rarity=C +[/card] +[card] +primitive=Mountain +id=370591 +rarity=C +[/card] +[card] +primitive=Mountain +id=370725 +rarity=C +[/card] +[card] +primitive=Mutavault +id=370733 +rarity=R +[/card] +[card] +primitive=Naturalize +id=370802 +rarity=C +[/card] +[card] +primitive=Negate +id=370719 +rarity=C +[/card] +[card] +primitive=Nephalia Seakite +id=370760 +rarity=C +[/card] +[card] +primitive=Nightmare +id=370689 +rarity=R +[/card] +[card] +primitive=Nightwing Shade +id=370705 +rarity=U +[/card] +[card] +primitive=Oath of the Ancient Wood +id=370763 +rarity=R +[/card] +[card] +primitive=Ogre Battledriver +id=370662 +rarity=R +[/card] +[card] +primitive=Opportunity +id=370751 +rarity=U +[/card] +[card] +primitive=Pacifism +id=370812 +rarity=C +[/card] +[card] +primitive=Path of Bravery +id=370798 +rarity=R +[/card] +[card] +primitive=Pay No Heed +id=370742 +rarity=C +[/card] +[card] +primitive=Phantom Warrior +id=370650 +rarity=U +[/card] +[card] +primitive=Pillarfield Ox +id=370765 +rarity=C +[/card] +[card] +primitive=Pitchburn Devils +id=370649 +rarity=C +[/card] +[card] +primitive=Plains +id=370615 +rarity=C +[/card] +[card] +primitive=Plains +id=370669 +rarity=C +[/card] +[card] +primitive=Plains +id=370679 +rarity=C +[/card] +[card] +primitive=Plains +id=370754 +rarity=C +[/card] +[card] +primitive=Planar Cleansing +id=370808 +rarity=R +[/card] +[card] +primitive=Plummet +id=370601 +rarity=C +[/card] +[card] +primitive=Predatory Sliver +id=370745 +rarity=C +[/card] +[card] +primitive=Primeval Bounty +id=370656 +rarity=M +[/card] +[card] +primitive=Pyromancer's Guantlet +id=370686 +rarity=R +[/card] +[card] +primitive=Quag Sickness +id=370714 +rarity=U +[/card] +[card] +primitive=Quicken +id=370644 +rarity=R +[/card] +[card] +primitive=Ranger's Guile +id=370803 +rarity=C +[/card] +[card] +primitive=Ratchet Bomb +id=370623 +rarity=C +[/card] +[card] +primitive=Regathan Firecat +id=370805 +rarity=C +[/card] +[card] +primitive=Ring of Three Wishes +id=370580 +rarity=M +[/card] +[card] +primitive=Rise of the Dark Realms +id=370636 +rarity=M +[/card] +[card] +primitive=Rod of Ruin +id=370668 +rarity=U +[/card] +[card] +primitive=Rootwalla +id=370693 +rarity=C +[/card] +[card] +primitive=Rumbling Baloth +id=370764 +rarity=C +[/card] +[card] +primitive=Sanguine Bond +id=370671 +rarity=R +[/card] +[card] +primitive=Savage Summoning +id=370710 +rarity=R +[/card] +[card] +primitive=Scavenging Ooze +id=370629 +rarity=R +[/card] +[card] +primitive=Scourge of Valkas +id=370584 +rarity=R +[/card] +[card] +primitive=Scroll Thief +id=370651 +rarity=C +[/card] +[card] +primitive=Seacoast Drake +id=370617 +rarity=C +[/card] +[card] +primitive=Seismic Stomp +id=370713 +rarity=C +[/card] +[card] +primitive=Sengir Vampire +id=370724 +rarity=U +[/card] +[card] +primitive=Sensory Deprivation +id=370780 +rarity=C +[/card] +[card] +primitive=Sentinel Sliver +id=370813 +rarity=C +[/card] +[card] +primitive=Seraph of the Sword +id=370620 +rarity=R +[/card] +[card] +primitive=Serra Angel +id=370602 +rarity=U +[/card] +[card] +primitive=Shadowborn Apostle +id=370746 +rarity=C +[/card] +[card] +primitive=Shadowborn Demon +id=370655 +rarity=M +[/card] +[card] +primitive=Shimmering Grotto +id=370631 +rarity=C +[/card] +[card] +primitive=Shivan Dragon +id=370825 +rarity=R +[/card] +[card] +primitive=Shiv's Embrace +id=370707 +rarity=U +[/card] +[card] +primitive=Shock +id=370654 +rarity=C +[/card] +[card] +primitive=Show of Valor +id=370779 +rarity=C +[/card] +[card] +primitive=Shrivel +id=370722 +rarity=C +[/card] +[card] +primitive=Siege Mastodon +id=370704 +rarity=C +[/card] +[card] +primitive=Silence +id=370578 +rarity=R +[/card] +[card] +primitive=Sliver Construct +id=370643 +rarity=C +[/card] +[card] +primitive=Smelt +id=370784 +rarity=C +[/card] +[card] +primitive=Solemn Offering +id=370730 +rarity=C +[/card] +[card] +primitive=Soulmender +id=370587 +rarity=C +[/card] +[card] +primitive=Spell Blast +id=370645 +rarity=U +[/card] +[card] +primitive=Sporemound +id=370605 +rarity=C +[/card] +[card] +primitive=Staff of the Death Magus +id=370586 +rarity=U +[/card] +[card] +primitive=Staff of the Flame Magus +id=370625 +rarity=U +[/card] +[card] +primitive=Staff of the Mind Magus +id=370676 +[/card] +[card] +primitive=Staff of the Wild Magus +id=370592 +rarity=U +[/card] +[card] +primitive=Staff of the Sun Magus +id=370635 +rarity=U +[/card] +[card] +primitive=Steelform Sliver +id=370597 +rarity=U +[/card] +[card] +primitive=Stonehorn Chanter +id=370777 +rarity=U +[/card] +[card] +primitive=Striking Sliver +id=370589 +rarity=C +[/card] +[card] +primitive=Strionic Resonator +id=370670 +rarity=R +[/card] +[card] +primitive=Suntail Hawk +id=370720 +rarity=C +[/card] +[card] +primitive=Swamp +id=370703 +rarity=C +[/card] +[card] +primitive=Swamp +id=370727 +rarity=C +[/card] +[card] +primitive=Swamp +id=370731 +rarity=C +[/card] +[card] +primitive=Swamp +id=370785 +rarity=C +[/card] +[card] +primitive=Syphon Sliver +id=370752 +rarity=R +[/card] +[card] +primitive=Tenacious Dead +id=370606 +rarity=U +[/card] +[card] +primitive=Thorncaster Sliver +id=370820 +rarity=R +[/card] +[card] +primitive=Thunder Strike +id=370607 +rarity=U +[/card] +[card] +primitive=Tidebinder Mage +id=370736 +rarity=R +[/card] +[card] +primitive=Time Ebb +id=370641 +rarity=R +[/card] +[card] +primitive=Tome Scour +id=370706 +rarity=C +[/card] +[card] +primitive=Trading Post +id=370646 +rarity=R +[/card] +[card] +primitive=Trained Condor +id=370692 +rarity=C +[/card] +[card] +primitive=Traumatize +id=370663 +rarity=R +[/card] +[card] +primitive=Trollhide +id=370664 +rarity=C +[/card] +[card] +primitive=Undead Minotaur +id=370702 +rarity=C +[/card] +[card] +primitive=Vampire Warlord +id=370709 +rarity=U +[/card] +[card] +primitive=Vastwood Hydra +id=370749 +rarity=R +[/card] +[card] +primitive=Verdant Haven +id=370657 +rarity=C +[/card] +[card] +primitive=Vial of Poison +id=370640 +rarity=U +[/card] +[card] +primitive=Vile Rebirth +id=370799 +rarity=C +[/card] +[card] +primitive=Volcanic Geyser +id=370614 +rarity=U +[/card] +[card] +primitive=Voracious Wurm +id=370814 +rarity=U +[/card] +[card] +primitive=Wall of Frost +id=370690 +rarity=U +[/card] +[card] +primitive=Wall of Swords +id=370697 +rarity=U +[/card] +[card] +primitive=Warden of Evos Isle +id=370815 +rarity=U +[/card] +[card] +primitive=Water Servant +id=370809 +rarity=U +[/card] +[card] +primitive=Wild Guess +id=370791 +rarity=C +[/card] +[card] +primitive=Wild Ricochet +id=370790 +rarity=R +[/card] +[card] +primitive=Windreader Sphinx +id=370810 +rarity=U +[/card] +[card] +primitive=Windstorm +id=370628 +rarity=U +[/card] +[card] +primitive=Witchstalker +id=370806 +rarity=R +[/card] +[card] +primitive=Woodborn Behemoth +id=370665 +rarity=U +[/card] +[card] +primitive=Wring Flesh +id=370759 +rarity=C +[/card] +[card] +primitive=Xathrid Necromancer +id=370619 +rarity=R +[/card] +[card] +primitive=Zombie Token +id=-339968 +rarity=T +[/card] +[card] +primitive=Young Pyromancer +id=370600 +rarity=U +[/card] +[card] +primitive=Zephyr Charge +id=370672 +rarity=C +[/card] \ No newline at end of file From b180c3d1a7889aa71951071ef4fdeddcb461e005 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Mon, 16 Dec 2013 22:11:28 +0100 Subject: [PATCH 018/104] Fixed Qt5 mingw32 build --- projects/mtg/wagic.pri | 1 + 1 file changed, 1 insertion(+) diff --git a/projects/mtg/wagic.pri b/projects/mtg/wagic.pri index d797e9ebe..2473d3952 100644 --- a/projects/mtg/wagic.pri +++ b/projects/mtg/wagic.pri @@ -27,6 +27,7 @@ windows{ # INCLUDEPATH += /usr/i686-w64-mingw32/sys-root/mingw/include/c++ LIBS += -L/usr/i686-w64-mingw32/sys-root/mingw/lib LIBS += -lwsock32 + DEFINES += FORCE_GL2 } *-msvc* { INCLUDEPATH += extra From 8eb664f93dae60ab4d5caf7673ee1356f3f2ce46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Snoen?= Date: Wed, 18 Dec 2013 05:50:30 +0100 Subject: [PATCH 019/104] Fixed grammatical then/than error. --- projects/mtg/src/AIHints.cpp | 2 +- projects/mtg/src/AIPlayerBaka.cpp | 4 ++-- projects/mtg/src/Credits.cpp | 2 +- projects/mtg/src/GameStateDuel.cpp | 2 +- projects/mtg/src/MTGRules.cpp | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/projects/mtg/src/AIHints.cpp b/projects/mtg/src/AIHints.cpp index c8dae463f..0482a77d7 100644 --- a/projects/mtg/src/AIHints.cpp +++ b/projects/mtg/src/AIHints.cpp @@ -314,7 +314,7 @@ bool AIHints::canWeCombo(GameObserver* observer,MTGCardInstance * card,AIPlayerB int comboPartsRestriction = 0; if(gotCombo) - return gotCombo;//because more then one might be possible at any time. + return gotCombo;//because more than one might be possible at any time. if (hints[i]->hold.size()) { for(unsigned int hPart = 0; hPart < hints[i]->hold.size(); hPart++) diff --git a/projects/mtg/src/AIPlayerBaka.cpp b/projects/mtg/src/AIPlayerBaka.cpp index 3368812d0..b126eb040 100644 --- a/projects/mtg/src/AIPlayerBaka.cpp +++ b/projects/mtg/src/AIPlayerBaka.cpp @@ -445,7 +445,7 @@ int OrderedAIAction::getEfficiency() } if ((drawer->getNumCards() >= p->game->library->nb_cards && (Targetable*)p == drawer->getTarget()) || (p->game->hand->nb_cards > 10 && (Targetable*)p == drawer->getTarget())) { - //if the amount im drawing will mill me to death or i have more then 10 cards in hand, eff is 0; + //if the amount im drawing will mill me to death or i have more than 10 cards in hand, eff is 0; efficiency = 0; } break; @@ -853,7 +853,7 @@ ManaCost * AIPlayerBaka::getPotentialMana(MTGCardInstance * target) if (card == target) used[card] = true; //http://code.google.com/p/wagic/issues/detail?id=76 if (!used[card] && amp->isReactingToClick(card) && amp->output->getConvertedCost() == 1) - {//ai can't use cards which produce more then 1 converted while using the old pMana method. + {//ai can't use cards which produce more than 1 converted while using the old pMana method. result->add(amp->output); used[card] = true; } diff --git a/projects/mtg/src/Credits.cpp b/projects/mtg/src/Credits.cpp index 1e07fcb49..64c4a609e 100644 --- a/projects/mtg/src/Credits.cpp +++ b/projects/mtg/src/Credits.cpp @@ -386,7 +386,7 @@ void Credits::computeTournament(GameObserver* g, GameApp * _app,bool tournament, } if (mGamesWon>mGamesPlayed*0.80 && mGamesWondidWin()) { - //the following section will be called only in a classic or demo gamemode and if a tournament or match with more then one game is activ + //the following section will be called only in a classic or demo gamemode and if a tournament or match with more than one game is activ if ( (mParent->gameType == GAME_TYPE_CLASSIC || mParent->gameType == GAME_TYPE_DEMO)&& mParent->players[1] == PLAYER_TYPE_CPU && (tournament->isTournament() || tournament->getGamesToPlay()>1 )) { setGamePhase(DUEL_STATE_SHOW_SCORE); diff --git a/projects/mtg/src/MTGRules.cpp b/projects/mtg/src/MTGRules.cpp index c804a2ed5..0c6e9ec10 100644 --- a/projects/mtg/src/MTGRules.cpp +++ b/projects/mtg/src/MTGRules.cpp @@ -146,7 +146,7 @@ int MTGEventBonus::receiveEvent(WEvent * event) } //////bonus for having a LOT of specific type. //not else'd becuase it is possible for a card to contain - //more then one of the types, and for more then one to trigger. + //more than one of the types, and for more than one to trigger. if(e->card->hasType(Subtypes::TYPE_ARTIFACT)) toys[currentPlayer->getId()]++; if(e->card->isCreature()) From d4e0296d2b29a44be9579cc24d63f58b6035c7bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Snoen?= Date: Wed, 18 Dec 2013 09:37:20 +0100 Subject: [PATCH 020/104] Fixed wrong rarity on millstone in M14 --- projects/mtg/bin/Res/sets/M14/_cards.dat | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/mtg/bin/Res/sets/M14/_cards.dat b/projects/mtg/bin/Res/sets/M14/_cards.dat index 22aa81f0e..c2c52c8be 100644 --- a/projects/mtg/bin/Res/sets/M14/_cards.dat +++ b/projects/mtg/bin/Res/sets/M14/_cards.dat @@ -666,7 +666,7 @@ rarity=C [card] primitive=Millstone id=370737 -rarity=R +rarity=U [/card] [card] primitive=Mind Rot @@ -1256,4 +1256,4 @@ rarity=U primitive=Zephyr Charge id=370672 rarity=C -[/card] \ No newline at end of file +[/card] From caec886e2276f4ec2ab811eb3be102bb6f5490c6 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Fri, 20 Dec 2013 00:24:08 +0100 Subject: [PATCH 021/104] Fixed issues found by XCode. --- JGE/include/JAnimator.h | 1 - JGE/include/JDistortionMesh.h | 1 - .../Default-568h@2x.png | Bin 0 -> 18594 bytes projects/mtg/include/GameStateAwards.h | 1 - projects/mtg/include/GuiPlay.h | 1 - projects/mtg/include/SimplePopup.h | 1 - projects/mtg/include/WResource_Fwd.h | 8 ++++---- projects/mtg/src/AllAbilities.cpp | 5 ----- projects/mtg/src/GuiPlay.cpp | 2 +- projects/mtg/src/MTGAbility.cpp | 2 -- projects/mtg/src/SimplePopup.cpp | 2 +- projects/mtg/wagic.pri | 10 +++++----- 12 files changed, 11 insertions(+), 23 deletions(-) create mode 100644 projects/build-wagic-qt-iphonesimulator_clang_Qt_5_2_0_for_iOS-Debug/Default-568h@2x.png diff --git a/JGE/include/JAnimator.h b/JGE/include/JAnimator.h index 794c6ce50..a525e3b88 100644 --- a/JGE/include/JAnimator.h +++ b/JGE/include/JAnimator.h @@ -297,7 +297,6 @@ public: private: float mTimer; float mFrameTime; - JAnimator* mAnimator; vector mObjects; }; diff --git a/JGE/include/JDistortionMesh.h b/JGE/include/JDistortionMesh.h index 10939a83e..171446a91 100644 --- a/JGE/include/JDistortionMesh.h +++ b/JGE/include/JDistortionMesh.h @@ -37,7 +37,6 @@ private: float mTexY; float mTexWidth; float mTexHeight; - JTexture* mTexture; JQuad* mQuad; diff --git a/projects/build-wagic-qt-iphonesimulator_clang_Qt_5_2_0_for_iOS-Debug/Default-568h@2x.png b/projects/build-wagic-qt-iphonesimulator_clang_Qt_5_2_0_for_iOS-Debug/Default-568h@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0891b7aabfcf3422423b109c8beed2bab838c607 GIT binary patch literal 18594 zcmeI4X;f257Jx&9fS`ixvS;&$x8J@slQFSel)6zJN=?13FB7H(lQjRkSy8x_-S~tvu2gzn1oS+dLcF#eqtq$ z%tf9TTvX?`)R@}3uBI;jzS-=ZR-Td&MHaS&;!0?Ni*#$#`n*~CcQK)Q9vAQ~TUpnI!j)a2biYK^R)M~A5wUDZhx?ULMX z3x1P&qt=trOY6P2U67L=m=U?F|5#Uj(eCueNTZaHs_ceWiHeET+j+tp3Jt9g(ekqP z2WOvfR{qV+9r+o4J5?qK>7;;^+I7tGv-i)es$X_D=EoKF+S?zsyj^oRFElP}c}JT< zd8SUs-?O?}2YD#ngKbnHgzHBcboxK_2r9l(?eNCl-pEzkJm}fY?WC*jnS?VBE4EpY zO$fEejz6fU;W2Kl>JeQBZBl-%Irg`obSlg*@4QB;Dd1H7^Oi5wvt4d{RZ!8Og?^aE z)k0$1g+V3fd(gdQ3d&q2q-FL*uy#}|bc^=VhFsl0jBgUGJ+-s3U8MK9A!YJJMxpci z5hJ%|{DwV48fZn0{n5l$N_KcSb#NKE4plB`9I6Zt=Z!~-zw0{9tg$L&Ju1F0X)Cy8 zKF;(&lJ>x)Jw(=;p~sF(Sd9VWGwFE2rnyS9!f^DZ8+aCLq zQ};>lcJ1GDLqjm6Hd>|Eabno@P`~Bn(~6^aD_#yoEH(a?Nm1S<;S+hSxI5d16^<1lEM3NPFi zkqPrpL)+ zgnseFikg`gJVBha1&7C4;O6>h=dt~`ND+;Zd?W(4v2JIb7Pt>Td42%M-Ju-XAH#Pns762L}K3 zDhvsRqN0Ni(1UrishD2YvV?4*h2iFj$+&N||Fn$4n|^NSU+o?~jq`0jVQt8T9l{7b zXiwwODFh2V!Q6sqP9S>WH$oOf$N~=d0-bqTlD61!=`&0eAP-F>XN?*|gtOXX{ zQVTWyYo4ZK0GAw!GHf|pz9`D;-bbb*5LBX*{bnz|+)$@&P9|ORM2o?95{;ejvo&r- zq8cBhTN6nn)7~W>54U)%-F_-b?YKdfk5I8MHcuzBD5)!;yv#Z&R&^y=@=>VTIMy#r zX&U<=BsPkdqcMe<_}2+>H%XKyrr5ZR8_KVe>ZqYN z^=^~TFD};;rHJ$U;{~w^hYojl4hRI@SH$^K{YEo=sg)WY87r!*7blQK&qnpDo0`Vn zkl)9u9g=mCh&ZCJS(L4yN3k0kQ zuvg$h2KEEk51T+O0JQ+r0`R>g{jvqM0Mr6d3qUOZwE!?PI7HY@CE|dr sfw?Q;rAv?G4&^^8-z_>&sWXMxvD*gPOU4CBe-*@OtE+wfmVJNyHv)PfH~;_u literal 0 HcmV?d00001 diff --git a/projects/mtg/include/GameStateAwards.h b/projects/mtg/include/GameStateAwards.h index cb614895c..64cc741a6 100644 --- a/projects/mtg/include/GameStateAwards.h +++ b/projects/mtg/include/GameStateAwards.h @@ -17,7 +17,6 @@ private: WSrcCards * setSrc; SimpleMenu * menu; bool showMenu; - bool showAlt; bool saveMe; int mState; int mDetailItem; diff --git a/projects/mtg/include/GuiPlay.h b/projects/mtg/include/GuiPlay.h index 4eadc959a..c900b30ba 100644 --- a/projects/mtg/include/GuiPlay.h +++ b/projects/mtg/include/GuiPlay.h @@ -47,7 +47,6 @@ protected: { static const float HEIGHT; unsigned attackers; - unsigned blockers; unsigned currentAttacker; float height; diff --git a/projects/mtg/include/SimplePopup.h b/projects/mtg/include/SimplePopup.h index 154710e92..d61d7cc47 100644 --- a/projects/mtg/include/SimplePopup.h +++ b/projects/mtg/include/SimplePopup.h @@ -20,7 +20,6 @@ class SimplePopup: public JGuiController private: float mWidth, mX, mY; int mMaxLines; - int mFontId; DeckMetaData * mDeckInformation; string mTitle; WFont *mTextFont; diff --git a/projects/mtg/include/WResource_Fwd.h b/projects/mtg/include/WResource_Fwd.h index 139c08e01..c03b0b752 100644 --- a/projects/mtg/include/WResource_Fwd.h +++ b/projects/mtg/include/WResource_Fwd.h @@ -1,12 +1,12 @@ #ifndef WRESOURCE_FWD_H #define WRESOURCE_FWD_H -#ifndef WP8 -#include -typedef boost::shared_ptr JQuadPtr; -#else +#if (__cplusplus > 199711L) #include typedef std::shared_ptr JQuadPtr; +#else +#include +typedef boost::shared_ptr JQuadPtr; #endif #endif diff --git a/projects/mtg/src/AllAbilities.cpp b/projects/mtg/src/AllAbilities.cpp index adb9d2862..92fa9600e 100644 --- a/projects/mtg/src/AllAbilities.cpp +++ b/projects/mtg/src/AllAbilities.cpp @@ -1994,28 +1994,23 @@ int AADynamic::resolve() break; case DYNAMIC_ABILITY_WHO_ITSELF: source = ((MTGCardInstance *) _target); - _target = _target; break; case DYNAMIC_ABILITY_WHO_TARGETCONTROLLER: - _target = _target; secondaryTarget = ((MTGCardInstance *) _target)->controller(); break; case DYNAMIC_ABILITY_WHO_TARGETOPPONENT: - _target = _target; secondaryTarget = ((MTGCardInstance *) _target)->controller()->opponent(); break; case DYNAMIC_ABILITY_WHO_TOSOURCE: tosrc = true; break; case DYNAMIC_ABILITY_WHO_SOURCECONTROLLER: - _target = _target; secondaryTarget = ((MTGCardInstance *) OriginalSrc)->controller(); break; case DYNAMIC_ABILITY_WHO_SOURCEOPPONENT: secondaryTarget = OriginalSrc->controller()->opponent(); break; default: - _target = _target; break; } if(amountsource == DYNAMIC_MYSELF_AMOUNT) diff --git a/projects/mtg/src/GuiPlay.cpp b/projects/mtg/src/GuiPlay.cpp index 183bd581f..0ab99501d 100644 --- a/projects/mtg/src/GuiPlay.cpp +++ b/projects/mtg/src/GuiPlay.cpp @@ -103,7 +103,7 @@ inline float GuiPlay::VertStack::nextX() } GuiPlay::BattleField::BattleField() : - attackers(0), blockers(0), height(0.0), red(0), colorFlow(0) + attackers(0), height(0.0), red(0), colorFlow(0) { } const float GuiPlay::BattleField::HEIGHT = 80.0f; diff --git a/projects/mtg/src/MTGAbility.cpp b/projects/mtg/src/MTGAbility.cpp index 4d9cd985c..ca1a4b5ab 100644 --- a/projects/mtg/src/MTGAbility.cpp +++ b/projects/mtg/src/MTGAbility.cpp @@ -4276,8 +4276,6 @@ void AbilityFactory::addAbilities(int _id, Spell * spell) if (card->hasType(Subtypes::TYPE_INSTANT) || card->hasType(Subtypes::TYPE_SORCERY)) { MTGPlayerCards * zones = card->owner->game; - if(card->getCurrentZone()) - card->currentZone->owner->game;//grab it from where ever it is. MTGPlayerCards * Endzones = card->owner->game;//put them in thier owners respective zones as per rules. if (card->basicAbilities[(int)Constants::EXILEDEATH]) { diff --git a/projects/mtg/src/SimplePopup.cpp b/projects/mtg/src/SimplePopup.cpp index b994d9c61..e8cccf5e4 100644 --- a/projects/mtg/src/SimplePopup.cpp +++ b/projects/mtg/src/SimplePopup.cpp @@ -15,7 +15,7 @@ #include SimplePopup::SimplePopup(int id, JGuiListener* listener, const int fontId, const char * _title, DeckMetaData* deckMetaData, MTGAllCards * collection, float cancelX, float cancelY) : - JGuiController(JGE::GetInstance(), id, listener), mFontId(fontId), mCollection(collection) + JGuiController(JGE::GetInstance(), id, listener), mCollection(collection) { mX = 19; mY = 66; diff --git a/projects/mtg/wagic.pri b/projects/mtg/wagic.pri index d797e9ebe..46ade1a36 100644 --- a/projects/mtg/wagic.pri +++ b/projects/mtg/wagic.pri @@ -4,11 +4,11 @@ TEMPLATE = app #!macx:CONFIG += precompile_header unix|macx:QMAKE_CXXFLAGS += -Wno-unused-parameter -unix:!macx:QMAKE_CXXFLAGS += -Wno-unused-but-set-parameter -unix:!macx:QMAKE_CXXFLAGS += -Wno-unused-but-set-variable -unix|macx:QMAKE_CXXFLAGS += -Wno-unused-value -unix:!macx:QMAKE_CXXFLAGS += -Wno-unused-local-typedefs -unix:!macx:!maemo5:!symbian:QMAKE_CXXFLAGS += -Werror +unix:!*macx*:QMAKE_CXXFLAGS += -Wno-unused-but-set-parameter +unix:!*macx*:QMAKE_CXXFLAGS += -Wno-unused-but-set-variable +unix|*macx*:QMAKE_CXXFLAGS += -Wno-unused-value +unix:!*macx*:QMAKE_CXXFLAGS += -Wno-unused-local-typedefs +unix:!*macx*:!maemo5:!symbian:QMAKE_CXXFLAGS += -Werror windows:DEFINES += _CRT_SECURE_NO_WARNINGS unix|macx:DEFINES += LINUX From 9630bcd56b30fefb1beecb5ab48776546babdd0e Mon Sep 17 00:00:00 2001 From: xawotihs Date: Fri, 20 Dec 2013 12:37:25 +0100 Subject: [PATCH 022/104] Removed file wrongly added. --- .../Default-568h@2x.png | Bin 18594 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 projects/build-wagic-qt-iphonesimulator_clang_Qt_5_2_0_for_iOS-Debug/Default-568h@2x.png diff --git a/projects/build-wagic-qt-iphonesimulator_clang_Qt_5_2_0_for_iOS-Debug/Default-568h@2x.png b/projects/build-wagic-qt-iphonesimulator_clang_Qt_5_2_0_for_iOS-Debug/Default-568h@2x.png deleted file mode 100644 index 0891b7aabfcf3422423b109c8beed2bab838c607..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18594 zcmeI4X;f257Jx&9fS`ixvS;&$x8J@slQFSel)6zJN=?13FB7H(lQjRkSy8x_-S~tvu2gzn1oS+dLcF#eqtq$ z%tf9TTvX?`)R@}3uBI;jzS-=ZR-Td&MHaS&;!0?Ni*#$#`n*~CcQK)Q9vAQ~TUpnI!j)a2biYK^R)M~A5wUDZhx?ULMX z3x1P&qt=trOY6P2U67L=m=U?F|5#Uj(eCueNTZaHs_ceWiHeET+j+tp3Jt9g(ekqP z2WOvfR{qV+9r+o4J5?qK>7;;^+I7tGv-i)es$X_D=EoKF+S?zsyj^oRFElP}c}JT< zd8SUs-?O?}2YD#ngKbnHgzHBcboxK_2r9l(?eNCl-pEzkJm}fY?WC*jnS?VBE4EpY zO$fEejz6fU;W2Kl>JeQBZBl-%Irg`obSlg*@4QB;Dd1H7^Oi5wvt4d{RZ!8Og?^aE z)k0$1g+V3fd(gdQ3d&q2q-FL*uy#}|bc^=VhFsl0jBgUGJ+-s3U8MK9A!YJJMxpci z5hJ%|{DwV48fZn0{n5l$N_KcSb#NKE4plB`9I6Zt=Z!~-zw0{9tg$L&Ju1F0X)Cy8 zKF;(&lJ>x)Jw(=;p~sF(Sd9VWGwFE2rnyS9!f^DZ8+aCLq zQ};>lcJ1GDLqjm6Hd>|Eabno@P`~Bn(~6^aD_#yoEH(a?Nm1S<;S+hSxI5d16^<1lEM3NPFi zkqPrpL)+ zgnseFikg`gJVBha1&7C4;O6>h=dt~`ND+;Zd?W(4v2JIb7Pt>Td42%M-Ju-XAH#Pns762L}K3 zDhvsRqN0Ni(1UrishD2YvV?4*h2iFj$+&N||Fn$4n|^NSU+o?~jq`0jVQt8T9l{7b zXiwwODFh2V!Q6sqP9S>WH$oOf$N~=d0-bqTlD61!=`&0eAP-F>XN?*|gtOXX{ zQVTWyYo4ZK0GAw!GHf|pz9`D;-bbb*5LBX*{bnz|+)$@&P9|ORM2o?95{;ejvo&r- zq8cBhTN6nn)7~W>54U)%-F_-b?YKdfk5I8MHcuzBD5)!;yv#Z&R&^y=@=>VTIMy#r zX&U<=BsPkdqcMe<_}2+>H%XKyrr5ZR8_KVe>ZqYN z^=^~TFD};;rHJ$U;{~w^hYojl4hRI@SH$^K{YEo=sg)WY87r!*7blQK&qnpDo0`Vn zkl)9u9g=mCh&ZCJS(L4yN3k0kQ zuvg$h2KEEk51T+O0JQ+r0`R>g{jvqM0Mr6d3qUOZwE!?PI7HY@CE|dr sfw?Q;rAv?G4&^^8-z_>&sWXMxvD*gPOU4CBe-*@OtE+wfmVJNyHv)PfH~;_u From 0df408793ab8d05e40658c978674bc650137e152 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Fri, 20 Dec 2013 14:09:30 +0100 Subject: [PATCH 023/104] Tries to fix android sdk installation in Travis --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 13f48ff9c..8795d203e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,7 +19,7 @@ install: - tar --absolute-names -jxf android-ndk-r9-linux-x86_64.tar.bz2 - tar -zxf android-sdk_r22-linux.tgz - $ANDROID list sdk -a -- echo yes | $ANDROID update sdk -a --filter 1,2,4,18 --no-ui --force > log.txt +- echo yes | $ANDROID update sdk -a --filter 1,2,5,19 --no-ui --force > log.txt - sudo pip install pyjavaproperties script: ./travis-script.sh env: From da31371d8685917ab724c4d92e05236a599bd290 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Fri, 20 Dec 2013 18:39:02 +0100 Subject: [PATCH 024/104] Include c++11 threading --- JGE/include/Threading.h | 104 ++++++++++++++++++++++++++++++++++------ 1 file changed, 89 insertions(+), 15 deletions(-) diff --git a/JGE/include/Threading.h b/JGE/include/Threading.h index 2c0667ce7..73036a27d 100644 --- a/JGE/include/Threading.h +++ b/JGE/include/Threading.h @@ -1,7 +1,7 @@ #ifndef THREADING_H #define THREADING_H -#if !defined(PSP) && !defined(QT_CONFIG) +#if !defined(PSP) && !defined(QT_CONFIG) && !(__cplusplus > 199711L) #include #ifdef WIN32 @@ -14,7 +14,7 @@ #endif #include -#elif !defined(QT_CONFIG) +#elif defined(PSP) #include #include @@ -26,7 +26,7 @@ namespace boost { /** - ** PSP specific variant of a boost mutex & scoped_lock + ** PSP specific variant of a boost mutex & scoped_lock */ template @@ -60,7 +60,7 @@ namespace boost { sceKernelDeleteSema(mID); } - + void lock() { int result = sceKernelWaitSema(mID, 1, 0); @@ -142,7 +142,7 @@ namespace boost } } - + int mID; int mThreadID; volatile int mRecursionCount; @@ -164,7 +164,7 @@ namespace boost /** - ** Emulating boost::thread configuration glue, with some shortcuts + ** Emulating boost::thread configuration glue, with some shortcuts ** This detail namespace is a distillation of boost's thread.hpp, thread_data.hpp. */ namespace detail @@ -212,13 +212,13 @@ namespace boost ** ** The intent of its usage is this form only: ** mWorkerThread = boost::thread(ThreadProc, this); - ** where ThreadProc is a static member function of the 'this' class,eg: - ** static void FOO::ThreadProc(void* inParam) - ** { - ** FOO* instance = reinterpret_cast(inParam); - ** // now you have class instance data available... - ** } - ** + ** where ThreadProc is a static member function of the 'this' class,eg: + ** static void FOO::ThreadProc(void* inParam) + ** { + ** FOO* instance = reinterpret_cast(inParam); + ** // now you have class instance data available... + ** } + ** ** Any other variant of a thread proc with more than one param is unimplemented. */ class thread @@ -227,7 +227,7 @@ namespace boost ** Helper class for sceKernelStartThread, which passes args by value, not by reference ** We use this struct to wrap any pointers that we want to pass to the worker thread. */ - struct CallbackData + struct CallbackData { CallbackData(detail::thread_data_ptr inThreadInfo) : mThreadInfo(inThreadInfo) @@ -307,7 +307,7 @@ namespace boost } } -#elif defined(QT_CONFIG) +#elif defined(QT_CONFIG) && (__cplusplus <= 199711L) #include #include @@ -537,6 +537,80 @@ namespace boost } } +#elif (__cplusplus > 199711L) + +#include +#include + +namespace boost +{ + typedef std::thread thread; + + template + struct unique_lock + { + unique_lock(Mutex& inMutex) : mMutex(&inMutex) + { + mMutex->lock(); + } + + ~unique_lock() + { + mMutex->unlock(); + } + + Mutex* mMutex; + }; + + class mutex + { + public: + + typedef unique_lock scoped_lock; + + mutex() + : mQMutex() + { + } + + ~mutex() + { + } + + void lock() + { + mQMutex.lock(); + } + + void unlock() + { + mQMutex.unlock(); + } + + std::mutex mQMutex; + + private: + mutex(mutex const&); + mutex& operator=(mutex const&); + }; + + namespace posix_time + { + typedef unsigned int milliseconds; + } + + /** + ** boost's platform neutral sleep call. + */ + namespace this_thread + { + inline void sleep(boost::posix_time::milliseconds const& time) + { + std::this_thread::sleep_for(std::chrono::milliseconds(time)); + } + } +} + #endif #endif // THREADING_H From 20e878a102345019c4b634cddb8db474389db825 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Snoen?= Date: Sat, 21 Dec 2013 11:05:15 +0100 Subject: [PATCH 025/104] Made damager keyword work. Fixed Executioner's Swing in mtg.txt --- projects/mtg/bin/Res/sets/primitives/mtg.txt | 4 ++-- projects/mtg/include/CardDescriptor.h | 1 + projects/mtg/include/MTGCardInstance.h | 1 + projects/mtg/src/CardDescriptor.cpp | 7 +++++++ projects/mtg/src/CardGui.cpp | 8 ++++++++ projects/mtg/src/Damage.cpp | 4 +++- projects/mtg/src/GameObserver.cpp | 1 + projects/mtg/src/MTGCardInstance.cpp | 1 + projects/mtg/src/TargetChooser.cpp | 8 ++++++++ 9 files changed, 32 insertions(+), 3 deletions(-) diff --git a/projects/mtg/bin/Res/sets/primitives/mtg.txt b/projects/mtg/bin/Res/sets/primitives/mtg.txt index 9459016d2..111c47de8 100644 --- a/projects/mtg/bin/Res/sets/primitives/mtg.txt +++ b/projects/mtg/bin/Res/sets/primitives/mtg.txt @@ -28204,7 +28204,7 @@ subtype=Equipment [card] name=Executioner's Swing text=Target creature that dealt damage this turn gets -5/-5 until end of turn. -target=creature[damaged] +target=creature[damager] auto=-5/-5 ueot mana={W}{B} type=Instant @@ -104298,4 +104298,4 @@ type=Land Creature subtype=Forest Dryad power=1 toughness=1 -[/card] \ No newline at end of file +[/card] diff --git a/projects/mtg/include/CardDescriptor.h b/projects/mtg/include/CardDescriptor.h index 704e3d55f..fbe58f4db 100644 --- a/projects/mtg/include/CardDescriptor.h +++ b/projects/mtg/include/CardDescriptor.h @@ -64,6 +64,7 @@ class CardDescriptor: public MTGCardInstance string compareName; int CDopponentDamaged; int CDcontrollerDamaged; + int CDdamager; }; #endif diff --git a/projects/mtg/include/MTGCardInstance.h b/projects/mtg/include/MTGCardInstance.h index ab708e5db..82053bcf1 100644 --- a/projects/mtg/include/MTGCardInstance.h +++ b/projects/mtg/include/MTGCardInstance.h @@ -65,6 +65,7 @@ public: bool wasDealtDamage; bool damageToOpponent; bool damageToController; + bool damageToCreature; bool mPropertiesChangedSinceLastUpdate; int reduxamount; int flanked; diff --git a/projects/mtg/src/CardDescriptor.cpp b/projects/mtg/src/CardDescriptor.cpp index f304e356d..5901069a1 100644 --- a/projects/mtg/src/CardDescriptor.cpp +++ b/projects/mtg/src/CardDescriptor.cpp @@ -23,6 +23,7 @@ CardDescriptor::CardDescriptor() colorComparisonMode = COMPARISON_NONE; CDopponentDamaged = 0; CDcontrollerDamaged = 0; + CDdamager = 0; } int CardDescriptor::init() @@ -226,6 +227,12 @@ MTGCardInstance * CardDescriptor::match(MTGCardInstance * card) { match = NULL; } + + if ((CDdamager == -1 && (card->damageToOpponent || card->damageToController || card->damageToCreature)) || (CDdamager == 1 && !(card->damageToOpponent || card->damageToController || card->damageToCreature))) + { + match = NULL; + } + if(CDopponentDamaged == -1 || CDopponentDamaged == 1) { Player * p = card->controller()->opponent();//controller()->opponent(); diff --git a/projects/mtg/src/CardGui.cpp b/projects/mtg/src/CardGui.cpp index 859a6d936..87f883a90 100644 --- a/projects/mtg/src/CardGui.cpp +++ b/projects/mtg/src/CardGui.cpp @@ -1224,6 +1224,14 @@ bool CardGui::FilterCard(MTGCard * _card,string filter) cd.CDcontrollerDamaged = 1; } } + //creature dealt damage to anything + else if (attribute.find("damager") != string::npos){ + if (minus){ + cd.CDdamager = -1; + } else { + cd.CDdamager = 1; + } + } else if (attribute.find("multicolor") != string::npos) { //card is multicolored? diff --git a/projects/mtg/src/Damage.cpp b/projects/mtg/src/Damage.cpp index 394294ad9..74c55ab02 100644 --- a/projects/mtg/src/Damage.cpp +++ b/projects/mtg/src/Damage.cpp @@ -192,8 +192,10 @@ int Damage::resolve() //return the left over amount after effects have been applied to them. a = target->dealDamage(damage); target->damageCount += damage;//the amount must be the actual damage so i changed this from 1 to damage, this fixes pdcount and odcount - if (target->type_as_damageable == Damageable::DAMAGEABLE_MTGCARDINSTANCE) + if (target->type_as_damageable == Damageable::DAMAGEABLE_MTGCARDINSTANCE){ ((MTGCardInstance*)target)->wasDealtDamage = true; + ((MTGCardInstance*)source)->damageToCreature = true; + } if (target->type_as_damageable == Damageable::DAMAGEABLE_PLAYER) { if(target == source->controller()) diff --git a/projects/mtg/src/GameObserver.cpp b/projects/mtg/src/GameObserver.cpp index ed01c26d5..303d6beff 100644 --- a/projects/mtg/src/GameObserver.cpp +++ b/projects/mtg/src/GameObserver.cpp @@ -795,6 +795,7 @@ void GameObserver::gameStateBasedEffects() c->wasDealtDamage = false; c->damageToController = false; c->damageToOpponent = false; + c->damageToCreature = false; c->isAttacking = NULL; } for (int t = 0; t < nbcards; t++) diff --git a/projects/mtg/src/MTGCardInstance.cpp b/projects/mtg/src/MTGCardInstance.cpp index e70320ae4..b957afa0c 100644 --- a/projects/mtg/src/MTGCardInstance.cpp +++ b/projects/mtg/src/MTGCardInstance.cpp @@ -158,6 +158,7 @@ void MTGCardInstance::initMTGCI() auras = 0; damageToOpponent = false; damageToController = false; + damageToCreature = false; wasDealtDamage = false; isDualWielding = false; suspended = false; diff --git a/projects/mtg/src/TargetChooser.cpp b/projects/mtg/src/TargetChooser.cpp index 2e73f23e4..fba54658c 100644 --- a/projects/mtg/src/TargetChooser.cpp +++ b/projects/mtg/src/TargetChooser.cpp @@ -485,6 +485,14 @@ TargetChooser * TargetChooserFactory::createTargetChooser(string s, MTGCardInsta cd->CDcontrollerDamaged = 1; } } + //creature dealt damage to anything + else if (attribute.find("damager") != string::npos){ + if (minus){ + cd->CDdamager = -1; + } else { + cd->CDdamager = 1; + } + } else if (attribute.find("multicolor") != string::npos) { //card is multicolored? From 642f5bb5157be8eab99e41a7cc1339e78dd1fb60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Snoen?= Date: Sat, 21 Dec 2013 11:18:18 +0100 Subject: [PATCH 026/104] Fixed indentation mistakes --- projects/mtg/src/CardDescriptor.cpp | 2 +- projects/mtg/src/Damage.cpp | 4 ++-- projects/mtg/src/GameObserver.cpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/projects/mtg/src/CardDescriptor.cpp b/projects/mtg/src/CardDescriptor.cpp index 5901069a1..a35596891 100644 --- a/projects/mtg/src/CardDescriptor.cpp +++ b/projects/mtg/src/CardDescriptor.cpp @@ -229,7 +229,7 @@ MTGCardInstance * CardDescriptor::match(MTGCardInstance * card) } if ((CDdamager == -1 && (card->damageToOpponent || card->damageToController || card->damageToCreature)) || (CDdamager == 1 && !(card->damageToOpponent || card->damageToController || card->damageToCreature))) - { + { match = NULL; } diff --git a/projects/mtg/src/Damage.cpp b/projects/mtg/src/Damage.cpp index 74c55ab02..6626c4df8 100644 --- a/projects/mtg/src/Damage.cpp +++ b/projects/mtg/src/Damage.cpp @@ -194,8 +194,8 @@ int Damage::resolve() target->damageCount += damage;//the amount must be the actual damage so i changed this from 1 to damage, this fixes pdcount and odcount if (target->type_as_damageable == Damageable::DAMAGEABLE_MTGCARDINSTANCE){ ((MTGCardInstance*)target)->wasDealtDamage = true; - ((MTGCardInstance*)source)->damageToCreature = true; - } + ((MTGCardInstance*)source)->damageToCreature = true; + } if (target->type_as_damageable == Damageable::DAMAGEABLE_PLAYER) { if(target == source->controller()) diff --git a/projects/mtg/src/GameObserver.cpp b/projects/mtg/src/GameObserver.cpp index 303d6beff..80fb9a0f4 100644 --- a/projects/mtg/src/GameObserver.cpp +++ b/projects/mtg/src/GameObserver.cpp @@ -795,7 +795,7 @@ void GameObserver::gameStateBasedEffects() c->wasDealtDamage = false; c->damageToController = false; c->damageToOpponent = false; - c->damageToCreature = false; + c->damageToCreature = false; c->isAttacking = NULL; } for (int t = 0; t < nbcards; t++) From 60219411f6574744a562026aaf874e22215a7865 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Snoen?= Date: Sat, 21 Dec 2013 14:33:44 +0100 Subject: [PATCH 027/104] Coding style compliance --- projects/mtg/src/CardDescriptor.cpp | 3 ++- projects/mtg/src/CardGui.cpp | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/projects/mtg/src/CardDescriptor.cpp b/projects/mtg/src/CardDescriptor.cpp index a35596891..789ea16da 100644 --- a/projects/mtg/src/CardDescriptor.cpp +++ b/projects/mtg/src/CardDescriptor.cpp @@ -228,7 +228,8 @@ MTGCardInstance * CardDescriptor::match(MTGCardInstance * card) match = NULL; } - if ((CDdamager == -1 && (card->damageToOpponent || card->damageToController || card->damageToCreature)) || (CDdamager == 1 && !(card->damageToOpponent || card->damageToController || card->damageToCreature))) + if ((CDdamager == -1 && (card->damageToOpponent || card->damageToController || card->damageToCreature)) + || (CDdamager == 1 && !(card->damageToOpponent || card->damageToController || card->damageToCreature))) { match = NULL; } diff --git a/projects/mtg/src/CardGui.cpp b/projects/mtg/src/CardGui.cpp index 87f883a90..589d54eb8 100644 --- a/projects/mtg/src/CardGui.cpp +++ b/projects/mtg/src/CardGui.cpp @@ -1225,7 +1225,8 @@ bool CardGui::FilterCard(MTGCard * _card,string filter) } } //creature dealt damage to anything - else if (attribute.find("damager") != string::npos){ + else if (attribute.find("damager") != string::npos) + { if (minus){ cd.CDdamager = -1; } else { From 928ca3497a484ebd7142880099f6f712a094733d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Snoen?= Date: Sat, 21 Dec 2013 19:31:32 +0100 Subject: [PATCH 028/104] More code compliance. New tests. --- .../mtg/bin/Res/test/executioners_swing.txt | 42 +++++++++++++++++++ .../mtg/bin/Res/test/executioners_swing2.txt | 42 +++++++++++++++++++ .../mtg/bin/Res/test/executioners_swing3.txt | 34 +++++++++++++++ projects/mtg/src/CardGui.cpp | 7 +++- projects/mtg/src/TargetChooser.cpp | 10 +++-- 5 files changed, 130 insertions(+), 5 deletions(-) create mode 100644 projects/mtg/bin/Res/test/executioners_swing.txt create mode 100644 projects/mtg/bin/Res/test/executioners_swing2.txt create mode 100644 projects/mtg/bin/Res/test/executioners_swing3.txt diff --git a/projects/mtg/bin/Res/test/executioners_swing.txt b/projects/mtg/bin/Res/test/executioners_swing.txt new file mode 100644 index 000000000..baabe2c48 --- /dev/null +++ b/projects/mtg/bin/Res/test/executioners_swing.txt @@ -0,0 +1,42 @@ +#NAME: Executioner's Swing +#DESC: Checks targetability +#DESC: Test that can target creature that damaged creature this turn + +[INIT] +combatattackers + +[PLAYER1] +inplay:Grizzly Bears + +[PLAYER2] +inplay:Flying Men,Swamp,Plains +hand:Executioner's Swing + +[DO] +Grizzly Bears +next +Flying Men +next +next +next + +# second main +# kill bear +yes +Swamp +Plains +Executioner's Swing +Grizzly Bears +endinterruption + +[ASSERT] +secondmain + +[PLAYER1] +graveyard:Grizzly Bears + +[PLAYER2] +graveyard:Executioner's Swing,Flying Men +inplay:Plains,Swamp + +[END] diff --git a/projects/mtg/bin/Res/test/executioners_swing2.txt b/projects/mtg/bin/Res/test/executioners_swing2.txt new file mode 100644 index 000000000..cb484e8d7 --- /dev/null +++ b/projects/mtg/bin/Res/test/executioners_swing2.txt @@ -0,0 +1,42 @@ +#NAME: Executioner's Swing +#DESC: Checks targetability +#DESC: Test that can target creature that damaged player + +[INIT] +combatattackers + +[PLAYER1] +inplay:Grizzly Bears + +[PLAYER2] +inplay:Swamp,Plains +hand:Executioner's Swing + +[DO] +Grizzly Bears +next +next +next +next + +# second main +# kill bear +yes +Swamp +Plains +Executioner's Swing +Grizzly Bears +endinterruption + +[ASSERT] +secondmain + +[PLAYER1] +graveyard:Grizzly Bears + +[PLAYER2] +graveyard:Executioner's Swing +inplay:Plains,Swamp +life:18 + +[END] diff --git a/projects/mtg/bin/Res/test/executioners_swing3.txt b/projects/mtg/bin/Res/test/executioners_swing3.txt new file mode 100644 index 000000000..433164fed --- /dev/null +++ b/projects/mtg/bin/Res/test/executioners_swing3.txt @@ -0,0 +1,34 @@ +#NAME: Executioner's Swing +#DESC: Checks targetability +#DESC: Prove that can't target passive creature + +[INIT] +secondmain + +[PLAYER1] +inplay:Grizzly Bears + +[PLAYER2] +manapool:{B}{W} +hand:Executioner's Swing + +[DO] +# attempt to kill bear +yes +Swamp +Plains +Executioner's Swing +Grizzly Bears +endinterruption + +[ASSERT] +secondmain + +[PLAYER1] +inplay:Grizzly Bears + +[PLAYER2] +hand:Executioner's Swing +manapool:{W}{B} + +[END] diff --git a/projects/mtg/src/CardGui.cpp b/projects/mtg/src/CardGui.cpp index 589d54eb8..0b5b9d44a 100644 --- a/projects/mtg/src/CardGui.cpp +++ b/projects/mtg/src/CardGui.cpp @@ -1227,9 +1227,12 @@ bool CardGui::FilterCard(MTGCard * _card,string filter) //creature dealt damage to anything else if (attribute.find("damager") != string::npos) { - if (minus){ + if (minus) + { cd.CDdamager = -1; - } else { + } + else + { cd.CDdamager = 1; } } diff --git a/projects/mtg/src/TargetChooser.cpp b/projects/mtg/src/TargetChooser.cpp index fba54658c..e69f29702 100644 --- a/projects/mtg/src/TargetChooser.cpp +++ b/projects/mtg/src/TargetChooser.cpp @@ -486,10 +486,14 @@ TargetChooser * TargetChooserFactory::createTargetChooser(string s, MTGCardInsta } } //creature dealt damage to anything - else if (attribute.find("damager") != string::npos){ - if (minus){ + else if (attribute.find("damager") != string::npos) + { + if (minus) + { cd->CDdamager = -1; - } else { + } + else + { cd->CDdamager = 1; } } From b09db0c60fcb07e12f20fcb07fd7664af75475fb Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sun, 22 Dec 2013 21:26:06 +0100 Subject: [PATCH 029/104] Removed c++11 warning. --- JGE/src/zipFS/zstream.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/JGE/src/zipFS/zstream.h b/JGE/src/zipFS/zstream.h index 2f5d9b9f9..0e8b3bf19 100644 --- a/JGE/src/zipFS/zstream.h +++ b/JGE/src/zipFS/zstream.h @@ -106,6 +106,7 @@ public: virtual int overflow(int c = EOF); virtual int underflow(); virtual int sync(); + using std::streambuf::setbuf; virtual std::streambuf * setbuf(char * pr, int nLength); virtual std::streampos seekoff(std::streamoff, std::ios::seekdir, std::ios::openmode); @@ -131,6 +132,7 @@ public: virtual int overflow(int c = EOF); virtual int underflow(); virtual int sync(); + using std::streambuf::setbuf; virtual std::streambuf * setbuf(char * pr, int nLength); virtual std::streampos seekoff(std::streamoff, std::ios::seekdir, std::ios::openmode); From 43fe67d7d802d4263ceea676b955887c01319946 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Tue, 31 Dec 2013 18:38:30 +0100 Subject: [PATCH 030/104] Adds executioners_swing tests in _tests.txt --- projects/mtg/bin/Res/test/_tests.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/projects/mtg/bin/Res/test/_tests.txt b/projects/mtg/bin/Res/test/_tests.txt index 3e351b82e..8262bf086 100644 --- a/projects/mtg/bin/Res/test/_tests.txt +++ b/projects/mtg/bin/Res/test/_tests.txt @@ -308,6 +308,9 @@ evil_presence3.txt evil_presence_i647.txt evil_presence_i647_2.txt exaltedsourcekilled.txt +executioners_swing.txt +executioners_swing2.txt +executioners_swing3.txt explore.txt Faceless_Butcher.txt fading.txt From 8e327a27df6e588e8589a89e5f6e876350974815 Mon Sep 17 00:00:00 2001 From: Dmitry Panin Date: Sat, 4 Jan 2014 10:03:19 -0800 Subject: [PATCH 031/104] Fixed formatting --- projects/mtg/src/AllAbilities.cpp | 7 ++++--- projects/mtg/src/CardDescriptor.cpp | 12 ++++++++---- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/projects/mtg/src/AllAbilities.cpp b/projects/mtg/src/AllAbilities.cpp index 92fa9600e..8e12392c0 100644 --- a/projects/mtg/src/AllAbilities.cpp +++ b/projects/mtg/src/AllAbilities.cpp @@ -4723,14 +4723,15 @@ void AVanishing::Update(float dt) int AVanishing::resolve() { - return 1; } const string AVanishing::getMenuText() { -if(counterName.find("fade") != string::npos) -return "Fading"; + if (counterName.find("fade") != string::npos) + { + return "Fading"; + } return "Vanishing"; } diff --git a/projects/mtg/src/CardDescriptor.cpp b/projects/mtg/src/CardDescriptor.cpp index 789ea16da..c6ae1e7a7 100644 --- a/projects/mtg/src/CardDescriptor.cpp +++ b/projects/mtg/src/CardDescriptor.cpp @@ -237,13 +237,17 @@ MTGCardInstance * CardDescriptor::match(MTGCardInstance * card) if(CDopponentDamaged == -1 || CDopponentDamaged == 1) { Player * p = card->controller()->opponent();//controller()->opponent(); - if ((CDopponentDamaged == -1 && card->damageToOpponent && card->controller() == p) || (CDopponentDamaged == 1 && !card->damageToOpponent && card->controller() == p) - || (CDopponentDamaged == -1 && card->damageToController && card->controller() == p->opponent()) || (CDopponentDamaged == 1 && !card->damageToController && card->controller() == p->opponent())) + if ((CDopponentDamaged == -1 && card->damageToOpponent && card->controller() == p) + || (CDopponentDamaged == 1 && !card->damageToOpponent && card->controller() == p) + || (CDopponentDamaged == -1 && card->damageToController && card->controller() == p->opponent()) + || (CDopponentDamaged == 1 && !card->damageToController && card->controller() == p->opponent())) { match = NULL; } - if ((CDcontrollerDamaged == -1 && card->damageToController && card->controller() == p) || (CDcontrollerDamaged == 1 && !card->damageToController && card->controller() == p) - || (CDcontrollerDamaged == -1 && card->damageToOpponent && card->controller() == p->opponent()) || (CDcontrollerDamaged == 1 && !card->damageToOpponent && card->controller() == p->opponent())) + if ((CDcontrollerDamaged == -1 && card->damageToController && card->controller() == p) + || (CDcontrollerDamaged == 1 && !card->damageToController && card->controller() == p) + || (CDcontrollerDamaged == -1 && card->damageToOpponent && card->controller() == p->opponent()) + || (CDcontrollerDamaged == 1 && !card->damageToOpponent && card->controller() == p->opponent())) { match = NULL; } From d9816c7ad0ae3d5629fa0d0be489be2fe3f8e3af Mon Sep 17 00:00:00 2001 From: Dmitry Panin Date: Sat, 4 Jan 2014 18:11:40 -0800 Subject: [PATCH 032/104] Fixed issue with multiple basic abilities in TargetChooser E.g. card create[trample;haste] wasn't handled properly --- projects/mtg/src/CardDescriptor.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/mtg/src/CardDescriptor.cpp b/projects/mtg/src/CardDescriptor.cpp index c6ae1e7a7..97ff6b530 100644 --- a/projects/mtg/src/CardDescriptor.cpp +++ b/projects/mtg/src/CardDescriptor.cpp @@ -192,8 +192,8 @@ MTGCardInstance * CardDescriptor::match(MTGCardInstance * card) } //Abilities - BasicAbilitiesSet set = basicAbilities & card->basicAbilities; - if (set != basicAbilities) + BasicAbilitiesSet possibleSet = basicAbilities & card->basicAbilities; + if (possibleSet.none()) return NULL; BasicAbilitiesSet excludedSet = mAbilityExclusions & card->basicAbilities; From 9526e22118875dd3799169cc32284327dcf131a9 Mon Sep 17 00:00:00 2001 From: Dmitry Panin Date: Sat, 4 Jan 2014 18:14:15 -0800 Subject: [PATCH 033/104] Fixed grave pact --- projects/mtg/bin/Res/sets/primitives/mtg.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/mtg/bin/Res/sets/primitives/mtg.txt b/projects/mtg/bin/Res/sets/primitives/mtg.txt index 111c47de8..de89aceea 100644 --- a/projects/mtg/bin/Res/sets/primitives/mtg.txt +++ b/projects/mtg/bin/Res/sets/primitives/mtg.txt @@ -37166,7 +37166,7 @@ type=Sorcery [/card] [card] name=Grave Pact -auto=@movedTo(creature|mygraveyard) from(mybattlefield):ability$!name(sacrifice) notatarget(creature|mybattlefield) sacrifice!$ opponent +auto=@movedTo(creature|graveyard) from(mybattlefield):ability$!name(sacrifice) notatarget(creature|mybattlefield) sacrifice!$ opponent text=Whenever a creature you control dies, each other player sacrifices a creature. mana={1}{B}{B}{B} type=Enchantment From dec1caa43c02dcfc8f2e0d0f1b73e24f2ca54b1e Mon Sep 17 00:00:00 2001 From: Dmitry Panin Date: Sat, 4 Jan 2014 18:40:59 -0800 Subject: [PATCH 034/104] Revert "Fixed issue with multiple basic abilities in TargetChooser" This reverts commit d9816c7ad0ae3d5629fa0d0be489be2fe3f8e3af. --- projects/mtg/src/CardDescriptor.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/mtg/src/CardDescriptor.cpp b/projects/mtg/src/CardDescriptor.cpp index 97ff6b530..c6ae1e7a7 100644 --- a/projects/mtg/src/CardDescriptor.cpp +++ b/projects/mtg/src/CardDescriptor.cpp @@ -192,8 +192,8 @@ MTGCardInstance * CardDescriptor::match(MTGCardInstance * card) } //Abilities - BasicAbilitiesSet possibleSet = basicAbilities & card->basicAbilities; - if (possibleSet.none()) + BasicAbilitiesSet set = basicAbilities & card->basicAbilities; + if (set != basicAbilities) return NULL; BasicAbilitiesSet excludedSet = mAbilityExclusions & card->basicAbilities; From c483c20c81544540eb697e9dc77ecdab2e7bd38a Mon Sep 17 00:00:00 2001 From: Rolzad73 Date: Wed, 8 Jan 2014 11:14:47 -0500 Subject: [PATCH 035/104] attempt to make android tools fetching for TravisCI explicit and futureproof --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 8795d203e..09965b870 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,8 +18,8 @@ install: - wget http://dl.google.com/android/android-sdk_r22-linux.tgz -nv - tar --absolute-names -jxf android-ndk-r9-linux-x86_64.tar.bz2 - tar -zxf android-sdk_r22-linux.tgz -- $ANDROID list sdk -a -- echo yes | $ANDROID update sdk -a --filter 1,2,5,19 --no-ui --force > log.txt +- $ANDROID list sdk --extended -a +- echo yes | $ANDROID update sdk -a --filter "tools","platform-tools","build-tools-18.1.1","android-10" --no-ui --force > log.txt - sudo pip install pyjavaproperties script: ./travis-script.sh env: From 083cebcc7e1e4372f23da538cc03241e13914edf Mon Sep 17 00:00:00 2001 From: Rolzad73 Date: Thu, 9 Jan 2014 14:46:58 -0500 Subject: [PATCH 036/104] updated credits text --- projects/mtg/src/GameStateOptions.cpp | 29 ++++++++++++++++----------- 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/projects/mtg/src/GameStateOptions.cpp b/projects/mtg/src/GameStateOptions.cpp index 981eee505..16decd052 100644 --- a/projects/mtg/src/GameStateOptions.cpp +++ b/projects/mtg/src/GameStateOptions.cpp @@ -215,34 +215,39 @@ void GameStateOptions::Render() const char * const CreditsText[] = { "Wagic, The Homebrew?! by Wololo", "", - "updates, new cards, and more on http://wololo.net/wagic", + "Updates, new cards, and more on http://wololo.net/wagic", "Many thanks to the people who help this project", "", "", - "Art: Ilya B, Julio, Jeck, J, Kaioshin, Lakeesha", + "Art:", + "Ilya B, Julio, Jeck, J, Kaioshin, Lakeesha", "Check themeinfo.txt for the full credits of each theme!", "", "Dev Team:", - "Abrasax, Almosthumane, Daddy32, DJardin, Dr.Solomat,", - "J, Jeck, kevlahnota, Leungclj, linshier, Mootpoint, Mnguyen,", - "Psyringe, Salmelo, Superhiro, Wololo, Yeshua, Zethfox", + "Abrasax, Almosthumane, Daddy32, DJardin, Dr.Solomat, J, Jeck,", + "kevlahnota, Leungclj, linshier, Mootpoint, Mnguyen, Psyringe,", + "Rolzad73, Salmelo, Superhiro, Wololo, Yeshua, Zethfox", "", "Music by Celestial Aeon Project, http://www.jamendo.com", "", - "Deck Builders: Abrasax, AzureKnight, colarchon", - "Excessum, Hehotfarv, Jeremy, Jog1118, JonyAS", - "Lachaux, Link17, Muddobbers, Nakano, Niegen", - "Kaioshin, Psyringe, r1c47, Superhiro, Szei", - "Thanatos02, Whismer, Wololo", + "Deck Builders:", + "Abrasax, AzureKnight, colarchon, Excessum, Hehotfarv,", + "Jeremy, Jog1118, JonyAS, Lachaux, Link17, Muddobbers,", + "Nakano, Niegen, Kaioshin, Psyringe, r1c47, Superhiro,", + "Szei, Thanatos02, Whismer, Wololo", "", "Thanks also go to Dr.Watson, Orine, Raphael, Sakya, Tyranid", "for their help.", "", "Thanks to everyone who contributes code/content on the forums!", "", - "Developed with the JGE++ Library (http://code.google.com/p/wagic)", + "", + "Source:", + "http://code.google.com/p/wagic (2009-2013)", + "https://github.com/WagicProject/wagic (2013- )", + "", + "Developed with the JGE++ Library", "SFX From www.soundsnap.com", - "", "", "This work is not related to or endorsed by Wizards of the Coast, Inc", From e40921cf131e052efe0ba1bec07dbe87b0c9ca66 Mon Sep 17 00:00:00 2001 From: Rolzad73 Date: Thu, 9 Jan 2014 14:57:06 -0500 Subject: [PATCH 037/104] update android build tools version --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 09965b870..ee8290632 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,7 +19,7 @@ install: - tar --absolute-names -jxf android-ndk-r9-linux-x86_64.tar.bz2 - tar -zxf android-sdk_r22-linux.tgz - $ANDROID list sdk --extended -a -- echo yes | $ANDROID update sdk -a --filter "tools","platform-tools","build-tools-18.1.1","android-10" --no-ui --force > log.txt +- echo yes | $ANDROID update sdk -a --filter "tools","platform-tools","build-tools-19.0.1","android-10" --no-ui --force > log.txt - sudo pip install pyjavaproperties script: ./travis-script.sh env: From 25955303e7542a4c71f19e41a6e470771503e0ce Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sun, 12 Jan 2014 22:16:35 +0100 Subject: [PATCH 038/104] Adds a Downloader component to JGE able to download and cache files. --- JGE/include/Downloader.h | 128 ++++++++++++++++ JGE/include/JFileSystem.h | 3 +- JGE/src/Downloader.cpp | 298 ++++++++++++++++++++++++++++++++++++++ JGE/src/JFileSystem.cpp | 8 +- JGE/src/Qtmain.cpp | 26 ++-- projects/mtg/wagic.pri | 2 + 6 files changed, 452 insertions(+), 13 deletions(-) create mode 100644 JGE/include/Downloader.h create mode 100644 JGE/src/Downloader.cpp diff --git a/JGE/include/Downloader.h b/JGE/include/Downloader.h new file mode 100644 index 000000000..f03a6f998 --- /dev/null +++ b/JGE/include/Downloader.h @@ -0,0 +1,128 @@ +#ifndef DOWNLOADER_H +#define DOWNLOADER_H + +//------------------------------------------------------------------------------------- +// +// This class handles download of remote resources (any kind of file) +// All the resources are stored locally in the userPath +// For every resources, the downloader verifies if the resource was modifed +// on the server before downloading the update. The Downloader maintains a catalogue +// of resource downloaded to be able to check if they need to be updated. +// +// The interface can be used completly synchronously by the application and some +// context or message loop is needed in the implementation of this interface +// +// Note that the Downloader could in theory by implemented on top of JNetwork. +// +//------------------------------------------------------------------------------------- +#include +#include +#include +#include +#include +#include "Threading.h" +#ifdef QT_CONFIG +#include +#include +#include +#include +#endif + +using namespace std; + +class DownloadRequest + #ifdef QT_CONFIG + : public QObject + #endif +{ +#ifdef QT_CONFIG + Q_OBJECT + +private slots: +#endif + void fileDownloaded(); + void downloadProgress(qint64 bytesReceived, qint64 bytesTotal); + +#ifdef QT_CONFIG +signals: + void percentChanged(int percent); + void statusChanged(int); +#endif + +public: + typedef enum { + NOT_PRESENT, + DOWNLOADING, + DOWNLOADED, + DOWNLOAD_ERROR + } DownloadStatus; + +protected: + string mLocalPath; + string mRemoteResourceURL; + // previous one is the original, next one can change after redirection + string mRequestedRemoteResourceURL; + string mETag; + DownloadStatus mDownloadStatus; + bool mUpgradeAvailable; + uint64_t mTotalSize; + uint64_t mCurrentSize; + ofstream mFile; +#ifdef QT_CONFIG + QNetworkReply* mNetworkReply; + static QNetworkAccessManager networkAccessManager; +#endif + + +public: + DownloadRequest(string localPath="", + string remoteResourceURL="", + string ETag = "", + DownloadStatus downloadStatus=NOT_PRESENT, + uint64_t totalSize = 0, + uint64_t currentSize = 0); + ~DownloadRequest(); + static bool NetworkIsAccessible(); + + string getTempLocalPath() const { return (mLocalPath+".tmp"); }; + string getLocalPath() const { return mLocalPath; }; + string getRemoteResource() const { return mRemoteResourceURL; }; + string getETag() const { return mETag; }; + void startGet(); + void startHead(); + DownloadStatus getDownloadStatus() const { return mDownloadStatus; }; + bool upgradeAvailable() const { return mUpgradeAvailable; }; + void getSizes(uint64_t& totalSize, uint64_t¤tSize) { + totalSize = mTotalSize; + currentSize = mCurrentSize; + }; + + friend ostream& operator<<(ostream& out, const DownloadRequest& d); + friend istream& operator>>(istream&, DownloadRequest&); + friend class Downloader; +}; + + +class Downloader +{ +protected: + Downloader(string globalRemoteURL="", string localCacheRecords=""); + virtual ~Downloader(); + static Downloader* mInstance; + string mGlobalRemoteURL; + string mLocalCacheRecords; + boost::mutex mMutex; + map mRequestMap; + +public: + static Downloader* GetInstance(); + static void Release(); + + void Update(); + DownloadRequest* Get(string localPath, string remoteResourceURL=""); + + friend ostream& operator<<(ostream& out, const Downloader& d); + friend istream& operator>>(istream&, Downloader&); +}; + +#endif // DOWNLOADER_H diff --git a/JGE/include/JFileSystem.h b/JGE/include/JFileSystem.h index 6c658a8b3..25cdc7551 100644 --- a/JGE/include/JFileSystem.h +++ b/JGE/include/JFileSystem.h @@ -128,6 +128,7 @@ public: bool readIntoString(const string & FilePath, string & target); bool openForWrite(ofstream & File, const string & FilePath, ios_base::openmode mode = ios_base::out ); bool Rename(string from, string to); + bool Remove(string aFile); //Returns true if strFilename exists somewhere in the fileSystem bool FileExists(const string& strFilename); @@ -163,4 +164,4 @@ protected: -#endif \ No newline at end of file +#endif diff --git a/JGE/src/Downloader.cpp b/JGE/src/Downloader.cpp new file mode 100644 index 000000000..624c1b1e0 --- /dev/null +++ b/JGE/src/Downloader.cpp @@ -0,0 +1,298 @@ +#include "DebugRoutines.h" +#include "JFileSystem.h" +#include "Downloader.h" + +#define RECORDS_DEFAULT_FILE "cache/records.txt" + +#ifdef QT_CONFIG +QNetworkAccessManager DownloadRequest::networkAccessManager; +#endif + +DownloadRequest::DownloadRequest(string localPath, + string remoteResourceURL, + string ETag, + DownloadStatus downloadStatus, + uint64_t totalSize, + uint64_t currentSize): + mLocalPath(localPath), + mRemoteResourceURL(remoteResourceURL), + mRequestedRemoteResourceURL(remoteResourceURL), + mETag(ETag), + mDownloadStatus(downloadStatus), + mUpgradeAvailable(false), + mTotalSize(totalSize), + mCurrentSize(currentSize) +{ +} + +DownloadRequest::~DownloadRequest() +{ +} + +void DownloadRequest::startHead() +{ +#ifdef QT_CONFIG + QNetworkRequest request(QUrl(QString(mRequestedRemoteResourceURL.c_str()))); + request.setRawHeader("If-None-Match", "e42fe0b592d2b34965e2e92742b0d9c7");//mETag.c_str()); + mNetworkReply = networkAccessManager.head(request); + connect(mNetworkReply, SIGNAL(finished()), SLOT(fileDownloaded())); +#endif +} + +void DownloadRequest::startGet() +{ +#ifdef QT_CONFIG + mNetworkReply = networkAccessManager.get(QNetworkRequest(QUrl(QString(mRequestedRemoteResourceURL.c_str())))); +#endif + mFile.close(); + JFileSystem::GetInstance()->Remove(getTempLocalPath()); + JFileSystem::GetInstance()->openForWrite(mFile, getTempLocalPath()); +#ifdef QT_CONFIG + connect(mNetworkReply, SIGNAL(downloadProgress(qint64, qint64)), + SLOT(downloadProgress(qint64, qint64))); + connect(mNetworkReply, SIGNAL(finished()), SLOT(fileDownloaded())); +#endif +} + +void DownloadRequest::fileDownloaded() +{ + do { + QByteArray eTagByteArray = mNetworkReply->rawHeader("ETag"); + if(!eTagByteArray.isEmpty()) { + string oldETag = mETag; + mETag = QString(eTagByteArray).toStdString(); + if(oldETag!="" && oldETag != mETag) + mUpgradeAvailable = true; + } + + // let's check some error + if(mNetworkReply->error() != QNetworkReply::NoError) { + DebugTrace(mNetworkReply->errorString().toStdString()); + mDownloadStatus = DownloadRequest::DOWNLOAD_ERROR; + mFile.close(); + JFileSystem::GetInstance()->Remove(getTempLocalPath()); + break; + } + + // check if we're getting redirected + QVariant redirectionTarget = mNetworkReply->attribute(QNetworkRequest::RedirectionTargetAttribute); + if (!redirectionTarget.isNull()) { + QUrl newUrl = QUrl(mRequestedRemoteResourceURL.c_str()).resolved(redirectionTarget.toUrl()); + DebugTrace(string("Redirect to ")+ newUrl.toString().toStdString()); + + mRequestedRemoteResourceURL = newUrl.toString().toStdString(); + mNetworkReply->deleteLater(); + if(mFile.is_open()) + startGet(); + else + startHead(); + return; + } + + if(mFile.is_open()) + { + QByteArray byteArray = mNetworkReply->readAll(); + mFile.write(byteArray.constData(), byteArray.size()); + mFile.close(); + if(!JFileSystem::GetInstance()->Rename(getTempLocalPath(), mLocalPath)) { + mDownloadStatus = DownloadRequest::DOWNLOAD_ERROR; + break; + } + } + mDownloadStatus = DownloadRequest::DOWNLOADED; + } while(0); + + Downloader::GetInstance()->Update(); + mNetworkReply->deleteLater(); + + emit statusChanged((int)mDownloadStatus); +} + +void DownloadRequest::downloadProgress(qint64 bytesReceived, qint64 bytesTotal) +{ + QByteArray byteArray = mNetworkReply->readAll(); + mFile.write(byteArray.constData(), byteArray.size()); + mCurrentSize = bytesReceived; + mTotalSize = bytesTotal; + int percent = 0; + if(bytesTotal) + percent = (bytesReceived/bytesTotal)*100; + emit percentChanged(percent); +} + +Downloader* Downloader::mInstance = 0; + +Downloader::Downloader(string globalRemoteURL, string localcacheRecords): + mGlobalRemoteURL(globalRemoteURL), + mLocalCacheRecords(localcacheRecords) +{ + JFileSystem::GetInstance()->MakeDir("cache"); + + izfstream downloadRecords; + if(mLocalCacheRecords.empty()) + mLocalCacheRecords = RECORDS_DEFAULT_FILE; + if(JFileSystem::GetInstance()->openForRead(downloadRecords, mLocalCacheRecords)) + {// File exists, let's read it. + downloadRecords >> (*this); + } + JFileSystem::GetInstance()->CloseFile(); +} + +Downloader::~Downloader() +{ + map::iterator ite; + for(ite = mRequestMap.begin(); ite != mRequestMap.end(); ite++) + { + delete (*ite).second; + } + mRequestMap.erase(mRequestMap.begin(), mRequestMap.end()); +} + +Downloader* Downloader::GetInstance() +{ + if(!mInstance) + { + mInstance = new Downloader(); + } + return mInstance; +} + +void Downloader::Release() +{ + if(mInstance) + { + delete mInstance; + mInstance = 0; + } +} + +bool DownloadRequest::NetworkIsAccessible() +{ + bool result = false; + +#ifdef QT_CONFIG + networkAccessManager.setNetworkAccessible(QNetworkAccessManager::Accessible); + result = networkAccessManager.networkAccessible(); +#endif + + return result; +} + +DownloadRequest* Downloader::Get(string localPath, string remoteResourceURL) +{ + map::iterator ite = mRequestMap.find(localPath); + if(ite == mRequestMap.end()) + { // request does not exist, let's create it + DownloadRequest* request = new DownloadRequest(localPath, remoteResourceURL); + std::pair::iterator,bool> ret; + ret = mRequestMap.insert ( std::pair(localPath, request) ); + if (ret.second==false) { + DebugTrace("Downloader::Get Error inserting request in Map"); + return 0; + } + ite = ret.first; + } + + // Now, we can check the server + if((*ite).second->getDownloadStatus() == DownloadRequest::NOT_PRESENT || + (*ite).second->upgradeAvailable()) + { // File is not here or an update is available, let's get it + (*ite).second->startGet(); + (*ite).second->mDownloadStatus = DownloadRequest::DOWNLOADING; + } + else if ((*ite).second->getDownloadStatus() == DownloadRequest::DOWNLOADED) + { // File is here, let's check if there is some update without blocking the playback + (*ite).second->startHead(); + } + + return (*ite).second; +} + +void Downloader::Update() +{ + ofstream downloadRecords; + if(JFileSystem::GetInstance()->openForWrite(downloadRecords, mLocalCacheRecords)) + { + downloadRecords << (*this); + } + downloadRecords.close(); +} + +ostream& operator<<(ostream& out, const DownloadRequest& d) +{ +// HEAD request fails, so this line erase cache record after upgrade check :( +// if(d.getDownloadStatus() == DownloadRequest::DOWNLOADED) + { + out << "localPath=" << d.mLocalPath << endl; + out << "remoteResource=" << d.mRemoteResourceURL << endl; + out << "ETag=" << d.mETag << endl; + out << "upgradeAvailable=" << d.mUpgradeAvailable <>(istream& in, DownloadRequest& d) +{ + string s; + + while(std::getline(in, s)) + { + size_t limiter = s.find("="); + string areaS; + if (limiter != string::npos) + { + areaS = s.substr(0, limiter); + if (areaS.compare("localPath") == 0) + { + d.mLocalPath = s.substr(limiter + 1); + } + else if (areaS.compare("remoteResource") == 0) + { + d.mRemoteResourceURL = s.substr(limiter + 1); + d.mRequestedRemoteResourceURL = d.mRemoteResourceURL; + } + else if (areaS.compare("ETag") == 0) + { + d.mETag = s.substr(limiter + 1); + d.mDownloadStatus = DownloadRequest::DOWNLOADED; + } + else if (areaS.compare("upgradeAvailable") == 0) + { + d.mUpgradeAvailable = (bool)atoi(s.substr(limiter + 1).c_str()); + break; + } + } + } + + return in; +} + +ostream& operator<<(ostream& out, const Downloader& d) +{ + map::const_iterator ite; + for(ite = d.mRequestMap.begin(); ite != d.mRequestMap.end(); ite++) + { + out << (*(*ite).second) << endl; + } + return out; +} + +istream& operator>>(istream& in, Downloader& d) +{ + while(!in.eof()) + { + DownloadRequest* downloadRequest = new DownloadRequest(); + in >> (*downloadRequest); + + if(!downloadRequest->getLocalPath().empty() && + !downloadRequest->getRemoteResource().empty() && + !downloadRequest->getETag().empty()) { + d.mRequestMap[downloadRequest->getLocalPath()] = downloadRequest; + } else { + delete downloadRequest; + } + } + return in; +} + diff --git a/JGE/src/JFileSystem.cpp b/JGE/src/JFileSystem.cpp index 03480ae1f..7d190c562 100644 --- a/JGE/src/JFileSystem.cpp +++ b/JGE/src/JFileSystem.cpp @@ -557,7 +557,13 @@ bool JFileSystem::Rename(string _from, string _to) string from = mUserFSPath + _from; string to = mUserFSPath + _to; std::remove(to.c_str()); - return rename(from.c_str(), to.c_str()) ? true: false; + return (rename(from.c_str(), to.c_str()) == 0); +} + +bool JFileSystem::Remove(string aFile) +{ + string toRemove = mUserFSPath + aFile; + return (std::remove(toRemove.c_str()) == 0); } int JFileSystem::GetFileSize(izfstream & file) diff --git a/JGE/src/Qtmain.cpp b/JGE/src/Qtmain.cpp index f21d6bdb7..38a2b1d31 100644 --- a/JGE/src/Qtmain.cpp +++ b/JGE/src/Qtmain.cpp @@ -9,11 +9,11 @@ #include #include "qmlapplicationviewer.h" #endif //QT_WIDGET -#include "filedownloader.h" +#include "Downloader.h" #include "GameApp.h" #include "corewrapper.h" -QWidget* g_glwidget = NULL; +WagicCore* g_glwidget = NULL; static const struct { LocalKeySym keysym; JButton keycode; } gDefaultBindings[] = { @@ -69,18 +69,22 @@ int main(int argc, char* argv[]) #endif //QT_WIDGET - if(argc >= 2 && string(argv[1]) == "testsuite") - { - int result = 0; - result += WagicCore::runTestSuite(); - return result; - } - app->setApplicationName(WagicCore::getApplicationName()); - FileDownloader fileDownloader(USERDIR, WAGIC_RESOURCE_NAME); + Downloader*downloader = Downloader::GetInstance(); + DownloadRequest* downloadRequest = downloader->Get( + "core.zip", + "https://github.com/WagicProject/wagic/releases/download/latest-master/Wagic-core-288.zip" + ); #ifdef QT_WIDGET g_glwidget = new WagicCore(); - g_glwidget->connect(&fileDownloader, SIGNAL(finished(int)), SLOT(start(int))); + if(downloadRequest->getDownloadStatus() == DownloadRequest::DOWNLOADED) + { + g_glwidget->start(0); + } + else + { + g_glwidget->connect(downloadRequest, SIGNAL(statusChanged(int)), SLOT(start(int))); + } #else qmlRegisterType("CustomComponents", 1, 0, "WagicCore"); diff --git a/projects/mtg/wagic.pri b/projects/mtg/wagic.pri index 88733dbac..7ed0465dc 100644 --- a/projects/mtg/wagic.pri +++ b/projects/mtg/wagic.pri @@ -283,6 +283,7 @@ HEADERS += \ # JGE, could probably be moved outside SOURCES += \ + ../../JGE/src/Downloader.cpp\ ../../JGE/src/Encoding.cpp\ ../../JGE/src/JAnimator.cpp\ ../../JGE/src/JApp.cpp\ @@ -320,6 +321,7 @@ SOURCES += \ ../../JGE/src/zipFS/zstream.cpp HEADERS += \ + ../../JGE/include/Downloader.h\ ../../JGE/include/Threading.h\ ../../JGE/include/decoder_prx.h\ ../../JGE/include/DebugRoutines.h\ From 0c4b09891bfe7142bb6cb48a853046dc727c3d75 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sun, 12 Jan 2014 22:40:45 +0100 Subject: [PATCH 039/104] Removed hardcoded testing values and used 32 bits file size instead of 64 bits. --- JGE/include/Downloader.h | 10 +++++----- JGE/src/Downloader.cpp | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/JGE/include/Downloader.h b/JGE/include/Downloader.h index f03a6f998..3b7ea66d5 100644 --- a/JGE/include/Downloader.h +++ b/JGE/include/Downloader.h @@ -65,8 +65,8 @@ protected: string mETag; DownloadStatus mDownloadStatus; bool mUpgradeAvailable; - uint64_t mTotalSize; - uint64_t mCurrentSize; + uint32_t mTotalSize; + uint32_t mCurrentSize; ofstream mFile; #ifdef QT_CONFIG QNetworkReply* mNetworkReply; @@ -79,8 +79,8 @@ public: string remoteResourceURL="", string ETag = "", DownloadStatus downloadStatus=NOT_PRESENT, - uint64_t totalSize = 0, - uint64_t currentSize = 0); + uint32_t totalSize = 0, + uint32_t currentSize = 0); ~DownloadRequest(); static bool NetworkIsAccessible(); @@ -92,7 +92,7 @@ public: void startHead(); DownloadStatus getDownloadStatus() const { return mDownloadStatus; }; bool upgradeAvailable() const { return mUpgradeAvailable; }; - void getSizes(uint64_t& totalSize, uint64_t¤tSize) { + void getSizes(uint32_t& totalSize, uint32_t¤tSize) { totalSize = mTotalSize; currentSize = mCurrentSize; }; diff --git a/JGE/src/Downloader.cpp b/JGE/src/Downloader.cpp index 624c1b1e0..4cb92534a 100644 --- a/JGE/src/Downloader.cpp +++ b/JGE/src/Downloader.cpp @@ -12,8 +12,8 @@ DownloadRequest::DownloadRequest(string localPath, string remoteResourceURL, string ETag, DownloadStatus downloadStatus, - uint64_t totalSize, - uint64_t currentSize): + uint32_t totalSize, + uint32_t currentSize): mLocalPath(localPath), mRemoteResourceURL(remoteResourceURL), mRequestedRemoteResourceURL(remoteResourceURL), @@ -33,7 +33,7 @@ void DownloadRequest::startHead() { #ifdef QT_CONFIG QNetworkRequest request(QUrl(QString(mRequestedRemoteResourceURL.c_str()))); - request.setRawHeader("If-None-Match", "e42fe0b592d2b34965e2e92742b0d9c7");//mETag.c_str()); + request.setRawHeader("If-None-Match", mETag.c_str()); mNetworkReply = networkAccessManager.head(request); connect(mNetworkReply, SIGNAL(finished()), SLOT(fileDownloaded())); #endif From 1d33de59a95bac775c1e99f4773ba4e64fe476f8 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sun, 12 Jan 2014 22:56:53 +0100 Subject: [PATCH 040/104] Fixed compilation issue --- JGE/include/Downloader.h | 10 +++++----- JGE/src/Downloader.cpp | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/JGE/include/Downloader.h b/JGE/include/Downloader.h index 3b7ea66d5..96c643ae2 100644 --- a/JGE/include/Downloader.h +++ b/JGE/include/Downloader.h @@ -65,8 +65,8 @@ protected: string mETag; DownloadStatus mDownloadStatus; bool mUpgradeAvailable; - uint32_t mTotalSize; - uint32_t mCurrentSize; + size_t mTotalSize; + size_t mCurrentSize; ofstream mFile; #ifdef QT_CONFIG QNetworkReply* mNetworkReply; @@ -79,8 +79,8 @@ public: string remoteResourceURL="", string ETag = "", DownloadStatus downloadStatus=NOT_PRESENT, - uint32_t totalSize = 0, - uint32_t currentSize = 0); + size_t totalSize = 0, + size_t currentSize = 0); ~DownloadRequest(); static bool NetworkIsAccessible(); @@ -92,7 +92,7 @@ public: void startHead(); DownloadStatus getDownloadStatus() const { return mDownloadStatus; }; bool upgradeAvailable() const { return mUpgradeAvailable; }; - void getSizes(uint32_t& totalSize, uint32_t¤tSize) { + void getSizes(size_t& totalSize, size_t¤tSize) { totalSize = mTotalSize; currentSize = mCurrentSize; }; diff --git a/JGE/src/Downloader.cpp b/JGE/src/Downloader.cpp index 4cb92534a..e1ba9eb26 100644 --- a/JGE/src/Downloader.cpp +++ b/JGE/src/Downloader.cpp @@ -12,8 +12,8 @@ DownloadRequest::DownloadRequest(string localPath, string remoteResourceURL, string ETag, DownloadStatus downloadStatus, - uint32_t totalSize, - uint32_t currentSize): + size_t totalSize, + size_t currentSize): mLocalPath(localPath), mRemoteResourceURL(remoteResourceURL), mRequestedRemoteResourceURL(remoteResourceURL), From f97d9805ddbb504752934f681667574db0e37b20 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Fri, 17 Jan 2014 21:50:10 +0100 Subject: [PATCH 041/104] Removed build number in released filename and added computation of resource URL based on release name. --- JGE/src/Qtmain.cpp | 9 ++++++--- projects/mtg/build.xml | 3 ++- travis-script.sh | 10 ++++++++++ upload-binaries.sh | 16 ++++++++-------- 4 files changed, 26 insertions(+), 12 deletions(-) diff --git a/JGE/src/Qtmain.cpp b/JGE/src/Qtmain.cpp index 38a2b1d31..2b0f22cbd 100644 --- a/JGE/src/Qtmain.cpp +++ b/JGE/src/Qtmain.cpp @@ -70,14 +70,17 @@ int main(int argc, char* argv[]) #endif //QT_WIDGET app->setApplicationName(WagicCore::getApplicationName()); + DownloadRequest* downloadRequest = NULL; +#ifdef WAGIC_RESOURCE_URL Downloader*downloader = Downloader::GetInstance(); - DownloadRequest* downloadRequest = downloader->Get( + downloadRequest = downloader->Get( "core.zip", - "https://github.com/WagicProject/wagic/releases/download/latest-master/Wagic-core-288.zip" + WAGIC_RESOURCE_URL ); +#endif #ifdef QT_WIDGET g_glwidget = new WagicCore(); - if(downloadRequest->getDownloadStatus() == DownloadRequest::DOWNLOADED) + if(!downloadRequest || downloadRequest->getDownloadStatus() == DownloadRequest::DOWNLOADED) { g_glwidget->start(0); } diff --git a/projects/mtg/build.xml b/projects/mtg/build.xml index b568ca50a..c3e140bd3 100644 --- a/projects/mtg/build.xml +++ b/projects/mtg/build.xml @@ -3,7 +3,7 @@ - + @@ -91,6 +91,7 @@ Author: Michael Nguyen #define WAGIC_VERSION_STRING VERSION_STRINGIFY(WAGIC_VERSION) #define WAGIC_CORE_VERSION_STRING "core_" VERSION_STRINGIFY(WAGIC_RESOURCE_VERSION) #define WAGIC_RESOURCE_NAME WAGIC_CORE_VERSION_STRING ".zip" +#define WAGIC_RESOURCE_URL "https://github.com/WagicProject/wagic/releases/download/${env.RELEASE_NAME}/Wagic-core.zip" #endif diff --git a/travis-script.sh b/travis-script.sh index c1fdf5115..bea868019 100755 --- a/travis-script.sh +++ b/travis-script.sh @@ -5,6 +5,16 @@ echo PSPDEV = $PSPDEV echo psp-config = `psp-config --psp-prefix` echo ls = `ls` echo pwd = `pwd` +# computing potential release name +if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then +if [ "$TRAVIS_BRANCH" == "alphas" ]; then + RELEASE_NAME = "alpha-${TRAVIS_BUILD_NUMBER}" +else if [ "$TRAVIS_BRANCH" == "master" ]; then + RELEASE_NAME = "latest-master" +fi +fi +fi + # updating versions with the TRAVIS build numbers cd projects/mtg/ diff --git a/upload-binaries.sh b/upload-binaries.sh index eb107faf6..a558ccbb9 100755 --- a/upload-binaries.sh +++ b/upload-binaries.sh @@ -10,28 +10,28 @@ if [ "$TRAVIS_BRANCH" == "alphas" ]; then -H "Accept: application/vnd.github.manifold-preview" \ -H "Content-Type: application/zip" \ --data-binary @core.zip \ - "https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-core-${TRAVIS_BUILD_NUMBER}.zip" + "https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-core.zip" echo -e "Uploading android package\n" curl -X POST -H "Authorization: token ${GH_TOKEN}" \ -H "Accept: application/vnd.github.manifold-preview" \ -H "Content-Type: application/zip" \ --data-binary @projects/mtg/Android/bin/Wagic-debug.apk \ - "https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-android-${TRAVIS_BUILD_NUMBER}.apk" + "https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-android.apk" echo -e "Uploading PSP package\n" curl -X POST -H "Authorization: token ${GH_TOKEN}" \ -H "Accept: application/vnd.github.manifold-preview" \ -H "Content-Type: application/zip" \ --data-binary @projects/mtg/psprelease.zip \ - "https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-psp-${TRAVIS_BUILD_NUMBER}.zip" + "https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-psp.zip" echo -e "Uploading Windows package\n" curl -X POST -H "Authorization: token ${GH_TOKEN}" \ -H "Accept: application/vnd.github.manifold-preview" \ -H "Content-Type: application/zip" \ --data-binary @build/win-cross/win-cross.zip \ - "https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-windows-${TRAVIS_BUILD_NUMBER}.zip" + "https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-windows.zip" echo -e "Done uploading\n" fi @@ -71,28 +71,28 @@ if [ "$TRAVIS_BRANCH" == "master" ]; then -H "Accept: application/vnd.github.manifold-preview" \ -H "Content-Type: application/zip" \ --data-binary @core.zip \ - "https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-core-${TRAVIS_BUILD_NUMBER}.zip" + "https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-core.zip" echo -e "Uploading android package\n" curl -X POST -H "Authorization: token ${GH_TOKEN}" \ -H "Accept: application/vnd.github.manifold-preview" \ -H "Content-Type: application/zip" \ --data-binary @projects/mtg/Android/bin/Wagic-debug.apk \ - "https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-android-${TRAVIS_BUILD_NUMBER}.apk" + "https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-android.apk" echo -e "Uploading PSP package\n" curl -X POST -H "Authorization: token ${GH_TOKEN}" \ -H "Accept: application/vnd.github.manifold-preview" \ -H "Content-Type: application/zip" \ --data-binary @projects/mtg/psprelease.zip \ - "https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-psp-${TRAVIS_BUILD_NUMBER}.zip" + "https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-psp.zip" echo -e "Uploading Windows package\n" curl -X POST -H "Authorization: token ${GH_TOKEN}" \ -H "Accept: application/vnd.github.manifold-preview" \ -H "Content-Type: application/zip" \ --data-binary @build/win-cross/win-cross.zip \ - "https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-windows-${TRAVIS_BUILD_NUMBER}.zip" + "https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-windows.zip" echo -e "Done uploading\n" fi From c3583ade01ae3c76677bf97a0d683219cafa3f67 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Fri, 17 Jan 2014 23:25:48 +0100 Subject: [PATCH 042/104] Updated resource name and URL for android project --- JGE/src/SDLmain.cpp | 14 +++++++++++++- .../Android/src/org/libsdl/app/SDLActivity.java | 8 +++++--- projects/mtg/build.xml | 4 ++-- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/JGE/src/SDLmain.cpp b/JGE/src/SDLmain.cpp index d3323890d..69de84a35 100644 --- a/JGE/src/SDLmain.cpp +++ b/JGE/src/SDLmain.cpp @@ -78,7 +78,19 @@ extern "C" void Java_org_libsdl_app_SDLActivity_nativeResume( { if (!g_engine) return; - g_engine->Resume(); + g_engine->Resume(); +} + +extern "C" jstring Java_org_libsdl_app_SDLActivity_getResourceName( + JNIEnv* env, jclass cls) +{ + return env->NewStringUTF (WAGIC_RESOURCE_NAME); +} + +extern "C" jstring Java_org_libsdl_app_SDLActivity_getResourceUrl( + JNIEnv* env, jclass cls) +{ + return env->NewStringUTF (WAGIC_RESOURCE_URL); } #endif diff --git a/projects/mtg/Android/src/org/libsdl/app/SDLActivity.java b/projects/mtg/Android/src/org/libsdl/app/SDLActivity.java index 0891808c8..847475a48 100644 --- a/projects/mtg/Android/src/org/libsdl/app/SDLActivity.java +++ b/projects/mtg/Android/src/org/libsdl/app/SDLActivity.java @@ -80,7 +80,6 @@ public class SDLActivity extends Activity implements OnKeyListener public Boolean mErrorHappened = false; public final static String RES_FOLDER = Environment.getExternalStorageDirectory().getPath() + "/Wagic/Res/"; public static String RES_FILENAME = "core_0184.zip"; - public static final String RES_URL = "http://wagic.googlecode.com/files/"; public String systemFolder = Environment.getExternalStorageDirectory().getPath() + "/Wagic/Res/"; private String userFolder; @@ -307,7 +306,7 @@ public class SDLActivity extends Activity implements OnKeyListener private void startDownload() { - String url = RES_URL + RES_FILENAME; + String url = getResourceUrl(); if (!checkStorageState()) { Log.e(TAG, "Error in initializing storage space."); @@ -437,7 +436,7 @@ public class SDLActivity extends Activity implements OnKeyListener mContext = this.getApplicationContext(); // get the current version of the app to set the core filename String versionCodeString = getApplicationCode(); - RES_FILENAME = "core_" + versionCodeString + ".zip"; + RES_FILENAME = getResourceName(); StorageOptions.determineStorageOptions(); checkStorageLocationPreference(); @@ -525,6 +524,9 @@ public class SDLActivity extends Activity implements OnKeyListener } // C functions we call + public static native String getResourceUrl(); + public static native String getResourceName(); + public static native void nativeInit(); public static native void nativeQuit(); diff --git a/projects/mtg/build.xml b/projects/mtg/build.xml index c3e140bd3..8100c8ca2 100644 --- a/projects/mtg/build.xml +++ b/projects/mtg/build.xml @@ -90,8 +90,8 @@ Author: Michael Nguyen #define WAGIC_RESOURCE_VERSION VERSION_FILE(WAGIC_VERSION_MAJOR, WAGIC_VERSION_MEDIUM, WAGIC_VERSION_MINOR) #define WAGIC_VERSION_STRING VERSION_STRINGIFY(WAGIC_VERSION) #define WAGIC_CORE_VERSION_STRING "core_" VERSION_STRINGIFY(WAGIC_RESOURCE_VERSION) -#define WAGIC_RESOURCE_NAME WAGIC_CORE_VERSION_STRING ".zip" -#define WAGIC_RESOURCE_URL "https://github.com/WagicProject/wagic/releases/download/${env.RELEASE_NAME}/Wagic-core.zip" +#define WAGIC_RESOURCE_NAME "Wagic-core.zip" +#define WAGIC_RESOURCE_URL "https://github.com/WagicProject/wagic/releases/download/${env.RELEASE_NAME}/" WAGIC_RESOURCE_NAME #endif From 042fb7b3768d89959bb9a361ab1c153accbc0c7e Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sat, 18 Jan 2014 11:18:27 +0100 Subject: [PATCH 043/104] Tries to fix Android compilation --- JGE/src/SDLmain.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/JGE/src/SDLmain.cpp b/JGE/src/SDLmain.cpp index 69de84a35..bf09628fd 100644 --- a/JGE/src/SDLmain.cpp +++ b/JGE/src/SDLmain.cpp @@ -81,6 +81,7 @@ extern "C" void Java_org_libsdl_app_SDLActivity_nativeResume( g_engine->Resume(); } +#include "Wagic_Version.h" extern "C" jstring Java_org_libsdl_app_SDLActivity_getResourceName( JNIEnv* env, jclass cls) { From 7a9f989104ef6bd2e7047e7f08cbf65f5eed6a94 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sat, 18 Jan 2014 12:46:27 +0100 Subject: [PATCH 044/104] Adds some URL error log --- projects/mtg/Android/src/org/libsdl/app/SDLActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/mtg/Android/src/org/libsdl/app/SDLActivity.java b/projects/mtg/Android/src/org/libsdl/app/SDLActivity.java index 847475a48..6634ad255 100644 --- a/projects/mtg/Android/src/org/libsdl/app/SDLActivity.java +++ b/projects/mtg/Android/src/org/libsdl/app/SDLActivity.java @@ -767,7 +767,7 @@ public class SDLActivity extends Activity implements OnKeyListener input.close(); } catch (Exception e) { - String errorMessage = "An error happened while downloading the resources. It could be that our server is temporarily down, that your device is not connected to a network, or that we cannot write to " + mSingleton.getSystemStorageLocation() + ". Please check your phone settings and try again. For more help please go to http://wagic.net"; + String errorMessage = "An error happened while downloading the resources at " + aurl +" . It could be that our server is temporarily down, that your device is not connected to a network, or that we cannot write to " + mSingleton.getSystemStorageLocation() + ". Please check your phone settings and try again. For more help please go to http://wagic.net"; mSingleton.downloadError(errorMessage); Log.e(TAG1, errorMessage); Log.e(TAG1, e.getMessage()); From 77aeb2d0ac2207473c8f8c00715a9463f3e7be13 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sat, 18 Jan 2014 13:29:50 +0100 Subject: [PATCH 045/104] Fixed release name --- projects/mtg/Android/src/org/libsdl/app/SDLActivity.java | 2 +- projects/mtg/build.xml | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/projects/mtg/Android/src/org/libsdl/app/SDLActivity.java b/projects/mtg/Android/src/org/libsdl/app/SDLActivity.java index 6634ad255..847475a48 100644 --- a/projects/mtg/Android/src/org/libsdl/app/SDLActivity.java +++ b/projects/mtg/Android/src/org/libsdl/app/SDLActivity.java @@ -767,7 +767,7 @@ public class SDLActivity extends Activity implements OnKeyListener input.close(); } catch (Exception e) { - String errorMessage = "An error happened while downloading the resources at " + aurl +" . It could be that our server is temporarily down, that your device is not connected to a network, or that we cannot write to " + mSingleton.getSystemStorageLocation() + ". Please check your phone settings and try again. For more help please go to http://wagic.net"; + String errorMessage = "An error happened while downloading the resources. It could be that our server is temporarily down, that your device is not connected to a network, or that we cannot write to " + mSingleton.getSystemStorageLocation() + ". Please check your phone settings and try again. For more help please go to http://wagic.net"; mSingleton.downloadError(errorMessage); Log.e(TAG1, errorMessage); Log.e(TAG1, e.getMessage()); diff --git a/projects/mtg/build.xml b/projects/mtg/build.xml index 8100c8ca2..ffda4c559 100644 --- a/projects/mtg/build.xml +++ b/projects/mtg/build.xml @@ -91,7 +91,8 @@ Author: Michael Nguyen #define WAGIC_VERSION_STRING VERSION_STRINGIFY(WAGIC_VERSION) #define WAGIC_CORE_VERSION_STRING "core_" VERSION_STRINGIFY(WAGIC_RESOURCE_VERSION) #define WAGIC_RESOURCE_NAME "Wagic-core.zip" -#define WAGIC_RESOURCE_URL "https://github.com/WagicProject/wagic/releases/download/${env.RELEASE_NAME}/" WAGIC_RESOURCE_NAME +#define WAGIC_RELEASE_NAME ${env.RELEASE_NAME} +#define WAGIC_RESOURCE_URL "https://github.com/WagicProject/wagic/releases/download/" WAGIC_RELEASE_NAME "/" "WAGIC_RESOURCE_NAME #endif From 7ecf67c176e152635b1a9c97b30fdd6cb4a53bce Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sat, 18 Jan 2014 13:37:43 +0100 Subject: [PATCH 046/104] And again --- projects/mtg/build.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/mtg/build.xml b/projects/mtg/build.xml index ffda4c559..a178670b6 100644 --- a/projects/mtg/build.xml +++ b/projects/mtg/build.xml @@ -92,7 +92,7 @@ Author: Michael Nguyen #define WAGIC_CORE_VERSION_STRING "core_" VERSION_STRINGIFY(WAGIC_RESOURCE_VERSION) #define WAGIC_RESOURCE_NAME "Wagic-core.zip" #define WAGIC_RELEASE_NAME ${env.RELEASE_NAME} -#define WAGIC_RESOURCE_URL "https://github.com/WagicProject/wagic/releases/download/" WAGIC_RELEASE_NAME "/" "WAGIC_RESOURCE_NAME +#define WAGIC_RESOURCE_URL "https://github.com/WagicProject/wagic/releases/download/" WAGIC_RELEASE_NAME "/" WAGIC_RESOURCE_NAME #endif From 6b7a49506cf71a7dea0e3969e7b3920edc85853e Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sat, 18 Jan 2014 14:23:26 +0100 Subject: [PATCH 047/104] Should fix the stringifying issue --- projects/mtg/build.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/mtg/build.xml b/projects/mtg/build.xml index a178670b6..81210aa41 100644 --- a/projects/mtg/build.xml +++ b/projects/mtg/build.xml @@ -91,7 +91,7 @@ Author: Michael Nguyen #define WAGIC_VERSION_STRING VERSION_STRINGIFY(WAGIC_VERSION) #define WAGIC_CORE_VERSION_STRING "core_" VERSION_STRINGIFY(WAGIC_RESOURCE_VERSION) #define WAGIC_RESOURCE_NAME "Wagic-core.zip" -#define WAGIC_RELEASE_NAME ${env.RELEASE_NAME} +#define WAGIC_RELEASE_NAME "${env.RELEASE_NAME}" #define WAGIC_RESOURCE_URL "https://github.com/WagicProject/wagic/releases/download/" WAGIC_RELEASE_NAME "/" WAGIC_RESOURCE_NAME #endif From aad54fd98db28d3d15d65a6831184df090bcb784 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sat, 18 Jan 2014 14:57:23 +0100 Subject: [PATCH 048/104] Adds debug in build script --- travis-script.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/travis-script.sh b/travis-script.sh index bea868019..e2d1a66d4 100755 --- a/travis-script.sh +++ b/travis-script.sh @@ -15,6 +15,8 @@ fi fi fi +echo "RELEASE_NAME = "$RELEASE_NAME + # updating versions with the TRAVIS build numbers cd projects/mtg/ From cd4a9801822145e9cafd9210134ebd1ed91201a5 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sat, 18 Jan 2014 15:26:09 +0100 Subject: [PATCH 049/104] More debug --- travis-script.sh | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/travis-script.sh b/travis-script.sh index e2d1a66d4..72df39744 100755 --- a/travis-script.sh +++ b/travis-script.sh @@ -6,16 +6,19 @@ echo psp-config = `psp-config --psp-prefix` echo ls = `ls` echo pwd = `pwd` # computing potential release name +echo TRAVIS_PULL_REQUEST = $TRAVIS_PULL_REQUEST +echo TRAVIS_BRANCH = $TRAVIS_BRANCH + if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then if [ "$TRAVIS_BRANCH" == "alphas" ]; then - RELEASE_NAME = "alpha-${TRAVIS_BUILD_NUMBER}" + export RELEASE_NAME="alpha-${TRAVIS_BUILD_NUMBER}" else if [ "$TRAVIS_BRANCH" == "master" ]; then - RELEASE_NAME = "latest-master" + export RELEASE_NAME="latest-master" fi fi fi -echo "RELEASE_NAME = "$RELEASE_NAME +echo RELEASE_NAME = $RELEASE_NAME # updating versions with the TRAVIS build numbers From 6e6a0fd5c20a98a98a965c10b339b3cb92c4d934 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sat, 18 Jan 2014 16:00:14 +0100 Subject: [PATCH 050/104] OMG I so hate shells --- travis-script.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/travis-script.sh b/travis-script.sh index 72df39744..244d7c19a 100755 --- a/travis-script.sh +++ b/travis-script.sh @@ -9,10 +9,10 @@ echo pwd = `pwd` echo TRAVIS_PULL_REQUEST = $TRAVIS_PULL_REQUEST echo TRAVIS_BRANCH = $TRAVIS_BRANCH -if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then -if [ "$TRAVIS_BRANCH" == "alphas" ]; then +if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then +if [ "$TRAVIS_BRANCH" = "alphas" ]; then export RELEASE_NAME="alpha-${TRAVIS_BUILD_NUMBER}" -else if [ "$TRAVIS_BRANCH" == "master" ]; then +else if [ "$TRAVIS_BRANCH" = "master" ]; then export RELEASE_NAME="latest-master" fi fi From 30d92eb68ca5397ae4e6d91c862dd0bb33994f44 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sat, 18 Jan 2014 22:50:16 +0100 Subject: [PATCH 051/104] Should fix issue #497 with the broken freezing the game. --- projects/mtg/src/AllAbilities.cpp | 3 ++- projects/mtg/wagic.pri | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/projects/mtg/src/AllAbilities.cpp b/projects/mtg/src/AllAbilities.cpp index 8e12392c0..26cd01faa 100644 --- a/projects/mtg/src/AllAbilities.cpp +++ b/projects/mtg/src/AllAbilities.cpp @@ -5704,7 +5704,8 @@ void ATutorialMessage::Update(float dt) mElapsed += dt; - IconButtonsController::Update(dt); + if(!mUserCloseRequest) + IconButtonsController::Update(dt); if (mIsImage) return; diff --git a/projects/mtg/wagic.pri b/projects/mtg/wagic.pri index 7ed0465dc..85ea223a2 100644 --- a/projects/mtg/wagic.pri +++ b/projects/mtg/wagic.pri @@ -41,8 +41,8 @@ INCLUDEPATH += ../../Boost INCLUDEPATH += include unix:!symbian:LIBS += -lz -win32:LIBS += ../../JGE/Dependencies/lib/fmodvc.lib -win32:LIBS += ../../JGE/Dependencies/lib/zlibd.lib +windows:LIBS += ../../JGE/Dependencies/lib/fmodvc.lib +windows:LIBS += ../../JGE/Dependencies/lib/zlibd.lib PRECOMPILED_HEADER = include/PrecompiledHeader.h #DEFINES += TRACK_OBJECT_USAGE From 03d4f8ffa14da5ebe74fb44ba37748150a13d132 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sun, 26 Jan 2014 23:56:15 +0100 Subject: [PATCH 052/104] Added Qt Multimedia support in order to replace Phonon. Currently does not work on Mac. --- JGE/include/JSoundSystem.h | 238 +++++++++++++++++++------------------ JGE/src/pc/JSfx.cpp | 201 +++++++++++++++++++------------ projects/mtg/wagic-qt.pro | 3 +- projects/mtg/wagic.pri | 1 - 4 files changed, 252 insertions(+), 191 deletions(-) diff --git a/JGE/include/JSoundSystem.h b/JGE/include/JSoundSystem.h index 93fe4f1e3..7c7dc79b8 100644 --- a/JGE/include/JSoundSystem.h +++ b/JGE/include/JSoundSystem.h @@ -23,28 +23,32 @@ #include "SLES/OpenSLES_Android.h" #elif defined USE_PHONON - #include - #include +#include +#include #elif defined WIN32 - #include +#include #define WITH_FMOD #elif defined (PSP) - #include - #include - #include - #include - #include - #include - #include - #include - #include +#include +#include +#include +#include +#include +#include +#include +#include +#include - #include "JAudio.h" - #include "JMP3.h" +#include "JAudio.h" +#include "JMP3.h" +#elif defined QT_CONFIG +#include "QMediaPlayer" +#include "QMediaPlaylist" +#include "QSoundEffect" #endif #ifdef WITH_FMOD - #include "../Dependencies/include/fmod.h" +#include "../Dependencies/include/fmod.h" #endif //------------------------------------------------------------------------------------------------ @@ -67,7 +71,7 @@ public: #ifdef USE_PHONON Phonon::AudioOutput* mOutput; Phonon::MediaObject* mMediaObject; - public slots: +public slots: void seekAtTheBegining(); #elif defined (PSP) JMP3* mTrack; @@ -82,6 +86,10 @@ public: SLPlayItf playInterface; SLSeekItf seekInterface; SLVolumeItf musicVolumeInterface; +#elif defined QT_CONFIG + QMediaPlaylist* playlist; + QMediaPlayer* player; + string fullpath; #else void* mTrack; #endif //WITH_FMOD @@ -92,13 +100,15 @@ public: //------------------------------------------------------------------------------------------------ class JSample { - public: +public: JSample(); ~JSample(); unsigned long fileSize(); - -#if defined (PSP) +#ifdef QT_CONFIG + QSoundEffect effect; + void* mSample; +#elif defined (PSP) WAVDATA *mSample; #elif defined (IOS) std::string filename; @@ -133,126 +143,128 @@ class JSoundSystem public: - ////////////////////////////////////////////////////////////////////////// - /// Get the singleton instance - /// - ////////////////////////////////////////////////////////////////////////// - static JSoundSystem* GetInstance(); + ////////////////////////////////////////////////////////////////////////// + /// Get the singleton instance + /// + ////////////////////////////////////////////////////////////////////////// + static JSoundSystem* GetInstance(); - static void Destroy(); + static void Destroy(); - ////////////////////////////////////////////////////////////////////////// - /// Load music. - /// - /// @note MP3 is the only supported format for the moment. - /// - /// @param filename - Name of the music file. - /// - ////////////////////////////////////////////////////////////////////////// - JMusic *LoadMusic(const char *fileName); + ////////////////////////////////////////////////////////////////////////// + /// Load music. + /// + /// @note MP3 is the only supported format for the moment. + /// + /// @param filename - Name of the music file. + /// + ////////////////////////////////////////////////////////////////////////// + JMusic *LoadMusic(const char *fileName); - ////////////////////////////////////////////////////////////////////////// - /// Delete music from memory. - /// - /// @param music - Music to be deleted. - /// - ////////////////////////////////////////////////////////////////////////// - //void FreeMusic(JMusic *music); + ////////////////////////////////////////////////////////////////////////// + /// Delete music from memory. + /// + /// @param music - Music to be deleted. + /// + ////////////////////////////////////////////////////////////////////////// + //void FreeMusic(JMusic *music); - ////////////////////////////////////////////////////////////////////////// - /// Play music. - /// - /// @param music - Music to be played. - /// @param looping - Play the music in a loop. - /// - ////////////////////////////////////////////////////////////////////////// - void PlayMusic(JMusic *music, bool looping = false); + ////////////////////////////////////////////////////////////////////////// + /// Play music. + /// + /// @param music - Music to be played. + /// @param looping - Play the music in a loop. + /// + ////////////////////////////////////////////////////////////////////////// + void PlayMusic(JMusic *music, bool looping = false); - ////////////////////////////////////////////////////////////////////////// - /// Stop playing. - /// - /// @param music - Music to be stopped. - /// - ////////////////////////////////////////////////////////////////////////// - void StopMusic(JMusic *music); + ////////////////////////////////////////////////////////////////////////// + /// Stop playing. + /// + /// @param music - Music to be stopped. + /// + ////////////////////////////////////////////////////////////////////////// + void StopMusic(JMusic *music); - ////////////////////////////////////////////////////////////////////////// - /// Resume playing. - /// - /// @param music - Music to be resumed. - /// - ////////////////////////////////////////////////////////////////////////// - void ResumeMusic(JMusic *music); + ////////////////////////////////////////////////////////////////////////// + /// Resume playing. + /// + /// @param music - Music to be resumed. + /// + ////////////////////////////////////////////////////////////////////////// + void ResumeMusic(JMusic *music); - ////////////////////////////////////////////////////////////////////////// - /// Pause playing. - /// - /// @param music - Music to be paused. - /// - ////////////////////////////////////////////////////////////////////////// - void PauseMusic(JMusic *music); + ////////////////////////////////////////////////////////////////////////// + /// Pause playing. + /// + /// @param music - Music to be paused. + /// + ////////////////////////////////////////////////////////////////////////// + void PauseMusic(JMusic *music); - ////////////////////////////////////////////////////////////////////////// - /// Load sound effect. - /// - /// @note WAV sound effect only. - /// - /// @param fileName - Sound effect for loading. - /// - ////////////////////////////////////////////////////////////////////////// - JSample *LoadSample(const char *fileName); + ////////////////////////////////////////////////////////////////////////// + /// Load sound effect. + /// + /// @note WAV sound effect only. + /// + /// @param fileName - Sound effect for loading. + /// + ////////////////////////////////////////////////////////////////////////// + JSample *LoadSample(const char *fileName); - ////////////////////////////////////////////////////////////////////////// - /// Delete sound effect from memory. - /// - /// @param sample - Sound to be deleted. - /// - ////////////////////////////////////////////////////////////////////////// - //void FreeSample(JSample *sample); + ////////////////////////////////////////////////////////////////////////// + /// Delete sound effect from memory. + /// + /// @param sample - Sound to be deleted. + /// + ////////////////////////////////////////////////////////////////////////// + //void FreeSample(JSample *sample); - ////////////////////////////////////////////////////////////////////////// - /// Play sound effect. - /// - /// @param sample - Sound for playing. - /// - ////////////////////////////////////////////////////////////////////////// - void PlaySample(JSample *sample); + ////////////////////////////////////////////////////////////////////////// + /// Play sound effect. + /// + /// @param sample - Sound for playing. + /// + ////////////////////////////////////////////////////////////////////////// + void PlaySample(JSample *sample); - ////////////////////////////////////////////////////////////////////////// - /// Set volume for audio playback. - /// - /// @param volume - New volume. - /// - ////////////////////////////////////////////////////////////////////////// - void SetVolume(int volume); + ////////////////////////////////////////////////////////////////////////// + /// Set volume for audio playback. + /// + /// @param volume - New volume. + /// + ////////////////////////////////////////////////////////////////////////// + void SetVolume(int volume); - void SetMusicVolume(int volume); + void SetMusicVolume(int volume); - void SetSfxVolume(int volume); + void SetSfxVolume(int volume); - int mChannel; + int mChannel; protected: - JSoundSystem(); - ~JSoundSystem(); + JSoundSystem(); + ~JSoundSystem(); - void InitSoundSystem(); - void DestroySoundSystem(); + void InitSoundSystem(); + void DestroySoundSystem(); private: - - JMusic *mCurrentMusic; +#ifdef PSP + JMusic *mCurrentMusic; JSample *mCurrentSample; +#endif - int mVolume; - int mMusicVolume; - int mSampleVolume; + int mVolume; + int mMusicVolume; + int mSampleVolume; - static JSoundSystem* mInstance; + static JSoundSystem* mInstance; }; #endif + diff --git a/JGE/src/pc/JSfx.cpp b/JGE/src/pc/JSfx.cpp index 4977bc831..faa4fa71c 100644 --- a/JGE/src/pc/JSfx.cpp +++ b/JGE/src/pc/JSfx.cpp @@ -22,6 +22,8 @@ JMusic::JMusic() #ifdef USE_PHONON : mOutput(0), mMediaObject(0) +#elif defined QT_CONFIG + : playlist(0), player(0) #endif { } @@ -40,7 +42,12 @@ int JMusic::getPlayTime(){ JMusic::~JMusic() { -#ifdef USE_PHONON +#ifdef QT_CONFIG + if(player) + delete player; + if(playlist) + delete playlist; +#elif defined USE_PHONON if(mOutput) delete mOutput; if(mMediaObject) @@ -144,65 +151,88 @@ void JSoundSystem::DestroySoundSystem() JMusic *JSoundSystem::LoadMusic(const char *fileName) { -#ifdef USE_PHONON - JMusic* music = new JMusic(); - if (music) - { - music->mOutput = new Phonon::AudioOutput(Phonon::GameCategory, 0); - music->mMediaObject = new Phonon::MediaObject(0); - string fullpath = JFileSystem::GetInstance()->GetResourceFile(fileName); - music->mMediaObject->setCurrentSource(QString(fullpath.c_str())); - Phonon::Path mediapath = Phonon::createPath(music->mMediaObject, music->mOutput); - Q_ASSERT(mediapath.isValid()); - } - return music; -#elif (defined WITH_FMOD) - JMusic* music = new JMusic(); - if (music) + JMusic* music = NULL; +#ifdef QT_CONFIG + music = new JMusic(); + if (music) { - JFileSystem* fileSystem = JFileSystem::GetInstance(); - if (fileSystem->OpenFile(fileName)) - { - int size = fileSystem->GetFileSize(); - char *buffer = new char[size]; - fileSystem->ReadFile(buffer, size); - music->mTrack = FSOUND_Sample_Load(FSOUND_UNMANAGED, buffer, FSOUND_LOADMEMORY, 0, size); - - delete[] buffer; - fileSystem->CloseFile(); - } + music->player = new QMediaPlayer; + music->player->setVolume(100); + music->playlist = new QMediaPlaylist; + music->fullpath = JFileSystem::GetInstance()->GetResourceFile(fileName); + music->playlist->addMedia(QUrl(music->fullpath.c_str())); + music->playlist->setCurrentIndex(0); + } +#elif defined USE_PHONON + music = new JMusic(); + if (music) + { + music->mOutput = new Phonon::AudioOutput(Phonon::GameCategory, 0); + music->mMediaObject = new Phonon::MediaObject(0); + string fullpath = JFileSystem::GetInstance()->GetResourceFile(fileName); + music->mMediaObject->setCurrentSource(QString(fullpath.c_str())); + Phonon::Path mediapath = Phonon::createPath(music->mMediaObject, music->mOutput); + Q_ASSERT(mediapath.isValid()); + } +#elif (defined WITH_FMOD) + music = new JMusic(); + if (music) + { + JFileSystem* fileSystem = JFileSystem::GetInstance(); + if (fileSystem->OpenFile(fileName)) + { + int size = fileSystem->GetFileSize(); + char *buffer = new char[size]; + fileSystem->ReadFile(buffer, size); + music->mTrack = FSOUND_Sample_Load(FSOUND_UNMANAGED, buffer, FSOUND_LOADMEMORY, 0, size); + + delete[] buffer; + fileSystem->CloseFile(); + } } - return music; #else cerr << fileName << endl; - return NULL; #endif + return music; } void JSoundSystem::PlayMusic(JMusic *music, bool looping) { -#ifdef USE_PHONON - if (music && music->mMediaObject && music->mOutput) - { - if(looping) +#ifdef QT_CONFIG + if(music && music->player && music->playlist) { - music->mMediaObject->connect(music->mMediaObject, SIGNAL(aboutToFinish()), music, SLOT(seekAtTheBegining())); + if(looping) + music->playlist->setPlaybackMode(QMediaPlaylist::Loop); + +// music->player->setPlaylist(music->playlist); + music->player->setMedia(QUrl(music->fullpath.c_str())); + music->player->play(); + stringstream stream; + stream << "Player state : " << music->player->state(); + DebugTrace(stream.str()); } - music->mOutput->setVolume((qreal)mVolume*0.01); - music->mMediaObject->play(); - - } -#elif (defined WITH_FMOD) - if (music && music->mTrack) +#elif USE_PHONON + if (music && music->mMediaObject && music->mOutput) { - mChannel = FSOUND_PlaySound(mChannel, music->mTrack); - SetMusicVolume(mVolume); + if(looping) + { + music->mMediaObject->connect(music->mMediaObject, SIGNAL(aboutToFinish()), music, SLOT(seekAtTheBegining())); + } + music->mOutput->setVolume((qreal)mVolume*0.01); + music->mMediaObject->play(); - if (looping) - FSOUND_SetLoopMode(mChannel, FSOUND_LOOP_NORMAL); - else - FSOUND_SetLoopMode(mChannel, FSOUND_LOOP_OFF); + } +#elif (defined WITH_FMOD) + if (music && music->mTrack) + { + mChannel = FSOUND_PlaySound(mChannel, music->mTrack); + SetMusicVolume(mVolume); + + if (looping) + FSOUND_SetLoopMode(mChannel, FSOUND_LOOP_NORMAL); + else + FSOUND_SetLoopMode(mChannel, FSOUND_LOOP_OFF); } #else music = 0; @@ -213,7 +243,12 @@ void JSoundSystem::PlayMusic(JMusic *music, bool looping) void JSoundSystem::StopMusic(JMusic *music) { -#ifdef USE_PHONON +#ifdef QT_CONFIG + if (music && music->player && music->playlist) + { + music->player->stop(); + } +#elif defined USE_PHONON if (music && music->mMediaObject && music->mOutput) { music->mMediaObject->stop(); @@ -264,47 +299,61 @@ void JSoundSystem::SetSfxVolume(int volume){ JSample *JSoundSystem::LoadSample(const char *fileName) { -#if (defined USE_PHONON) - JSample* sample = new JSample(); - if (sample) - { - sample->mOutput = new Phonon::AudioOutput(Phonon::GameCategory, 0); - sample->mMediaObject = new Phonon::MediaObject(0); - string fullpath = JFileSystem::GetInstance()->GetResourceFile(fileName); - sample->mMediaObject->setCurrentSource(QString(fullpath.c_str())); - Phonon::Path mediapath = Phonon::createPath(sample->mMediaObject, sample->mOutput); - Q_ASSERT(mediapath.isValid()); - } - return sample; -#elif (defined WITH_FMOD) - JSample* sample = new JSample(); - if (sample) + JSample* sample = NULL; +#ifdef QT_CONFIG + sample = new JSample(); + if (sample) { - JFileSystem* fileSystem = JFileSystem::GetInstance(); - if (fileSystem->OpenFile(fileName)) - { - int size = fileSystem->GetFileSize(); - char *buffer = new char[size]; - fileSystem->ReadFile(buffer, size); - sample->mSample = FSOUND_Sample_Load(FSOUND_UNMANAGED, buffer, FSOUND_LOADMEMORY, 0, size); + string fullpath = JFileSystem::GetInstance()->GetResourceFile(fileName); + sample->effect.setSource(QUrl::fromLocalFile(fullpath.c_str())); + sample->effect.setLoopCount(0); + sample->effect.setVolume(1); + sample->mSample = &(sample->effect); + } +#elif (defined USE_PHONON) + sample = new JSample(); + if (sample) + { + sample->mOutput = new Phonon::AudioOutput(Phonon::GameCategory, 0); + sample->mMediaObject = new Phonon::MediaObject(0); + string fullpath = JFileSystem::GetInstance()->GetResourceFile(fileName); + sample->mMediaObject->setCurrentSource(QString(fullpath.c_str())); + Phonon::Path mediapath = Phonon::createPath(sample->mMediaObject, sample->mOutput); + Q_ASSERT(mediapath.isValid()); + } +#elif (defined WITH_FMOD) + sample = new JSample(); + if (sample) + { + JFileSystem* fileSystem = JFileSystem::GetInstance(); + if (fileSystem->OpenFile(fileName)) + { + int size = fileSystem->GetFileSize(); + char *buffer = new char[size]; + fileSystem->ReadFile(buffer, size); + sample->mSample = FSOUND_Sample_Load(FSOUND_UNMANAGED, buffer, FSOUND_LOADMEMORY, 0, size); - delete[] buffer; - fileSystem->CloseFile(); - }else - sample->mSample = NULL; + delete[] buffer; + fileSystem->CloseFile(); + }else + sample->mSample = NULL; } - return sample; #else cerr << fileName << endl; - return NULL; #endif + return sample; } void JSoundSystem::PlaySample(JSample *sample) { -#ifdef USE_PHONON +#ifdef QT_CONFIG + if(sample) + { + sample->effect.play(); + } +#elif defined USE_PHONON if (sample && sample->mMediaObject && sample->mOutput) { sample->mOutput->setVolume((qreal)mSampleVolume*0.01); diff --git a/projects/mtg/wagic-qt.pro b/projects/mtg/wagic-qt.pro index 487557c3f..40e4c5104 100644 --- a/projects/mtg/wagic-qt.pro +++ b/projects/mtg/wagic-qt.pro @@ -17,7 +17,7 @@ else:CONFIG(graphics, graphics|console){ folder_01.source = qml/QmlWagic folder_01.target = /usr/share DEPLOYMENTFOLDERS = folder_01 - QT += core gui opengl network + QT += core gui opengl network multimedia QT -= declarative quick qml #maemo5:DEFINES += QT_WIDGET DEFINES += QT_WIDGET @@ -46,6 +46,7 @@ CONFIG(graphics, graphics|console){ ../../JGE/src/qt/corewrapper.cpp\ ../../JGE/src/Qtmain.cpp\ ../../JGE/src/JMD2Model.cpp\ + ../../JGE/src/pc/JSfx.cpp\ ../../JGE/src/pc/JGfx.cpp } else:CONFIG(console, graphics|console){ diff --git a/projects/mtg/wagic.pri b/projects/mtg/wagic.pri index 7ed0465dc..6c8cd4198 100644 --- a/projects/mtg/wagic.pri +++ b/projects/mtg/wagic.pri @@ -303,7 +303,6 @@ SOURCES += \ ../../JGE/src/JSpline.cpp\ ../../JGE/src/JNetwork.cpp\ ../../JGE/src/pc/JSocket.cpp\ - ../../JGE/src/pc/JSfx.cpp\ ../../JGE/src/JSprite.cpp\ ../../JGE/src/Vector2D.cpp\ ../../JGE/src/tinyxml/tinystr.cpp\ From 18383579e9a1e7480bfcea7952abd1690d1fecc5 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Mon, 27 Jan 2014 06:31:23 +0100 Subject: [PATCH 053/104] Fixed android compilation --- JGE/include/JSoundSystem.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/JGE/include/JSoundSystem.h b/JGE/include/JSoundSystem.h index 7c7dc79b8..6897fc71c 100644 --- a/JGE/include/JSoundSystem.h +++ b/JGE/include/JSoundSystem.h @@ -252,7 +252,7 @@ protected: void DestroySoundSystem(); private: -#ifdef PSP +#if (defined PSP || defined ANDROID) JMusic *mCurrentMusic; JSample *mCurrentSample; #endif From 5d7667dc01c6b494278fdb41c1768540297d8b71 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Fri, 31 Jan 2014 21:53:27 +0100 Subject: [PATCH 054/104] Cleaned Phonon vs QtMultimedia config --- JGE/include/JSoundSystem.h | 8 ++++---- projects/mtg/wagic.pri | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/JGE/include/JSoundSystem.h b/JGE/include/JSoundSystem.h index 6897fc71c..30be731e8 100644 --- a/JGE/include/JSoundSystem.h +++ b/JGE/include/JSoundSystem.h @@ -25,6 +25,10 @@ #elif defined USE_PHONON #include #include +#elif defined QT_CONFIG +#include "QMediaPlayer" +#include "QMediaPlaylist" +#include "QSoundEffect" #elif defined WIN32 #include #define WITH_FMOD @@ -41,10 +45,6 @@ #include "JAudio.h" #include "JMP3.h" -#elif defined QT_CONFIG -#include "QMediaPlayer" -#include "QMediaPlaylist" -#include "QSoundEffect" #endif #ifdef WITH_FMOD diff --git a/projects/mtg/wagic.pri b/projects/mtg/wagic.pri index 6c8cd4198..7fceea568 100644 --- a/projects/mtg/wagic.pri +++ b/projects/mtg/wagic.pri @@ -41,8 +41,8 @@ INCLUDEPATH += ../../Boost INCLUDEPATH += include unix:!symbian:LIBS += -lz -win32:LIBS += ../../JGE/Dependencies/lib/fmodvc.lib -win32:LIBS += ../../JGE/Dependencies/lib/zlibd.lib +windows:LIBS += ../../JGE/Dependencies/lib/fmodvc.lib +windows:LIBS += ../../JGE/Dependencies/lib/zlibd.lib PRECOMPILED_HEADER = include/PrecompiledHeader.h #DEFINES += TRACK_OBJECT_USAGE From 197540763e417184d41cc1ba76cbfddf16be7b86 Mon Sep 17 00:00:00 2001 From: Tobias Loose Date: Mon, 3 Feb 2014 13:52:40 +0100 Subject: [PATCH 055/104] Remove unused Effects.h/.cpp and class Effect There was an empty vector of effect* in PlayGuiObject. --- projects/mtg/include/Effects.h | 13 ------------- projects/mtg/include/PlayGuiObject.h | 2 -- projects/mtg/src/Effects.cpp | 3 --- projects/mtg/src/PlayGuiObject.cpp | 4 ---- projects/mtg/template.vcxproj | 3 +-- projects/mtg/template.vcxproj.filters | 5 +---- projects/mtg/wagic.pri | 2 -- projects/mtg/wagic.xcodeproj/project.pbxproj | 8 -------- 8 files changed, 2 insertions(+), 38 deletions(-) delete mode 100644 projects/mtg/include/Effects.h delete mode 100644 projects/mtg/src/Effects.cpp diff --git a/projects/mtg/include/Effects.h b/projects/mtg/include/Effects.h deleted file mode 100644 index 248e22a3c..000000000 --- a/projects/mtg/include/Effects.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef _EFFECTS_H_ -#define _EFFECTS_H_ - -#include - -class Effect: public JGuiObject -{ - static int id_counter; -public: - Effect() : JGuiObject(++id_counter) {}; -}; - -#endif // _EFFECTS_H_ diff --git a/projects/mtg/include/PlayGuiObject.h b/projects/mtg/include/PlayGuiObject.h index 5855c2884..c09d1a4c8 100644 --- a/projects/mtg/include/PlayGuiObject.h +++ b/projects/mtg/include/PlayGuiObject.h @@ -12,7 +12,6 @@ #define GUI_OPPONENTHAND 5 #include -#include "Effects.h" #include "WEvent.h" #include "Pos.h" @@ -65,7 +64,6 @@ public: } ; virtual ~PlayGuiObject() {}; - vector effects; }; #endif diff --git a/projects/mtg/src/Effects.cpp b/projects/mtg/src/Effects.cpp deleted file mode 100644 index 50056df0d..000000000 --- a/projects/mtg/src/Effects.cpp +++ /dev/null @@ -1,3 +0,0 @@ -#include "../include/Effects.h" - -int Effect::id_counter = 0; diff --git a/projects/mtg/src/PlayGuiObject.cpp b/projects/mtg/src/PlayGuiObject.cpp index 5d84ca3a8..56069802a 100644 --- a/projects/mtg/src/PlayGuiObject.cpp +++ b/projects/mtg/src/PlayGuiObject.cpp @@ -38,13 +38,9 @@ void PlayGuiObject::Update(float dt) if (mHeight < defaultHeight) mHeight = defaultHeight; } wave = (wave + 2 * (int) (100 * dt)) % 255; - for (vector::iterator it = effects.begin(); it != effects.end(); ++it) - (*it)->Update(dt); Pos::Update(dt); } void PlayGuiObject::Render() { - for (vector::iterator it = effects.begin(); it != effects.end(); ++it) - (*it)->Render(); } diff --git a/projects/mtg/template.vcxproj b/projects/mtg/template.vcxproj index 912ece289..16e66111e 100644 --- a/projects/mtg/template.vcxproj +++ b/projects/mtg/template.vcxproj @@ -493,7 +493,6 @@ - @@ -592,4 +591,4 @@ - \ No newline at end of file + diff --git a/projects/mtg/template.vcxproj.filters b/projects/mtg/template.vcxproj.filters index 0e2cdef9e..263d9ab9e 100644 --- a/projects/mtg/template.vcxproj.filters +++ b/projects/mtg/template.vcxproj.filters @@ -417,9 +417,6 @@ inc - - inc - inc @@ -725,4 +722,4 @@ res - \ No newline at end of file + diff --git a/projects/mtg/wagic.pri b/projects/mtg/wagic.pri index 85ea223a2..a292833a1 100644 --- a/projects/mtg/wagic.pri +++ b/projects/mtg/wagic.pri @@ -80,7 +80,6 @@ SOURCES += \ src/DeckStats.cpp\ src/DeckView.cpp\ src/DuelLayers.cpp\ - src/Effects.cpp\ src/ExtraCost.cpp\ src/GameApp.cpp\ src/GameLauncher.cpp\ @@ -271,7 +270,6 @@ HEADERS += \ include/WResourceManager.h\ include/DuelLayers.h\ include/GuiStatic.h\ - include/Effects.h\ include/StyleManager.h\ include/WFont.h\ include/DeckManager.h\ diff --git a/projects/mtg/wagic.xcodeproj/project.pbxproj b/projects/mtg/wagic.xcodeproj/project.pbxproj index 6f4b9057d..2a9feb644 100755 --- a/projects/mtg/wagic.xcodeproj/project.pbxproj +++ b/projects/mtg/wagic.xcodeproj/project.pbxproj @@ -85,7 +85,6 @@ 12059DBA14980B7300DAC43B /* DeckMetaData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA377061291C60500B9016A /* DeckMetaData.cpp */; }; 12059DBB14980B7300DAC43B /* DeckStats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA377071291C60500B9016A /* DeckStats.cpp */; }; 12059DBC14980B7300DAC43B /* DuelLayers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA377081291C60500B9016A /* DuelLayers.cpp */; }; - 12059DBD14980B7300DAC43B /* Effects.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA377091291C60500B9016A /* Effects.cpp */; }; 12059DBE14980B7300DAC43B /* ExtraCost.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA3770A1291C60500B9016A /* ExtraCost.cpp */; }; 12059DBF14980B7300DAC43B /* GameApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA3770B1291C60500B9016A /* GameApp.cpp */; }; 12059DC014980B7300DAC43B /* GameLauncher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA3770C1291C60500B9016A /* GameLauncher.cpp */; }; @@ -325,7 +324,6 @@ CEA377701291C60500B9016A /* DeckMetaData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA377061291C60500B9016A /* DeckMetaData.cpp */; }; CEA377711291C60500B9016A /* DeckStats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA377071291C60500B9016A /* DeckStats.cpp */; }; CEA377721291C60500B9016A /* DuelLayers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA377081291C60500B9016A /* DuelLayers.cpp */; }; - CEA377731291C60500B9016A /* Effects.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA377091291C60500B9016A /* Effects.cpp */; }; CEA377741291C60500B9016A /* ExtraCost.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA3770A1291C60500B9016A /* ExtraCost.cpp */; }; CEA377751291C60500B9016A /* GameApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA3770B1291C60500B9016A /* GameApp.cpp */; }; CEA377761291C60500B9016A /* GameLauncher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA3770C1291C60500B9016A /* GameLauncher.cpp */; }; @@ -627,7 +625,6 @@ CEA3769E1291C60500B9016A /* DeckMetaData.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = DeckMetaData.h; sourceTree = ""; }; CEA3769F1291C60500B9016A /* DeckStats.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = DeckStats.h; sourceTree = ""; }; CEA376A01291C60500B9016A /* DuelLayers.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = DuelLayers.h; sourceTree = ""; }; - CEA376A11291C60500B9016A /* Effects.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = Effects.h; sourceTree = ""; }; CEA376A21291C60500B9016A /* ExtraCost.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = ExtraCost.h; sourceTree = ""; }; CEA376A31291C60500B9016A /* GameApp.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = GameApp.h; sourceTree = ""; }; CEA376A41291C60500B9016A /* GameObserver.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = GameObserver.h; sourceTree = ""; }; @@ -729,7 +726,6 @@ CEA377061291C60500B9016A /* DeckMetaData.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = DeckMetaData.cpp; sourceTree = ""; }; CEA377071291C60500B9016A /* DeckStats.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = DeckStats.cpp; sourceTree = ""; }; CEA377081291C60500B9016A /* DuelLayers.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = DuelLayers.cpp; sourceTree = ""; }; - CEA377091291C60500B9016A /* Effects.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = Effects.cpp; sourceTree = ""; }; CEA3770A1291C60500B9016A /* ExtraCost.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = ExtraCost.cpp; sourceTree = ""; }; CEA3770B1291C60500B9016A /* GameApp.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = GameApp.cpp; sourceTree = ""; }; CEA3770C1291C60500B9016A /* GameLauncher.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = GameLauncher.cpp; sourceTree = ""; }; @@ -1324,7 +1320,6 @@ CEA3769E1291C60500B9016A /* DeckMetaData.h */, CEA3769F1291C60500B9016A /* DeckStats.h */, CEA376A01291C60500B9016A /* DuelLayers.h */, - CEA376A11291C60500B9016A /* Effects.h */, CEA376A21291C60500B9016A /* ExtraCost.h */, CEA376A31291C60500B9016A /* GameApp.h */, CEA376A41291C60500B9016A /* GameObserver.h */, @@ -1445,7 +1440,6 @@ CEA377061291C60500B9016A /* DeckMetaData.cpp */, CEA377071291C60500B9016A /* DeckStats.cpp */, CEA377081291C60500B9016A /* DuelLayers.cpp */, - CEA377091291C60500B9016A /* Effects.cpp */, CEA3770A1291C60500B9016A /* ExtraCost.cpp */, CEA3770B1291C60500B9016A /* GameApp.cpp */, CEA3770C1291C60500B9016A /* GameLauncher.cpp */, @@ -1845,7 +1839,6 @@ 12059DBA14980B7300DAC43B /* DeckMetaData.cpp in Sources */, 12059DBB14980B7300DAC43B /* DeckStats.cpp in Sources */, 12059DBC14980B7300DAC43B /* DuelLayers.cpp in Sources */, - 12059DBD14980B7300DAC43B /* Effects.cpp in Sources */, 12059DBE14980B7300DAC43B /* ExtraCost.cpp in Sources */, 12059DBF14980B7300DAC43B /* GameApp.cpp in Sources */, 12059DC014980B7300DAC43B /* GameLauncher.cpp in Sources */, @@ -2027,7 +2020,6 @@ CEA377701291C60500B9016A /* DeckMetaData.cpp in Sources */, CEA377711291C60500B9016A /* DeckStats.cpp in Sources */, CEA377721291C60500B9016A /* DuelLayers.cpp in Sources */, - CEA377731291C60500B9016A /* Effects.cpp in Sources */, CEA377741291C60500B9016A /* ExtraCost.cpp in Sources */, CEA377751291C60500B9016A /* GameApp.cpp in Sources */, CEA377761291C60500B9016A /* GameLauncher.cpp in Sources */, From 8f233b302707498761779b29c8cac4dd0aa5bbf5 Mon Sep 17 00:00:00 2001 From: Tobias Loose Date: Mon, 3 Feb 2014 19:44:51 +0100 Subject: [PATCH 056/104] Avoid circular initialization --- projects/mtg/include/ActionStack.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/mtg/include/ActionStack.h b/projects/mtg/include/ActionStack.h index 06e7f2afe..7a3bdde16 100644 --- a/projects/mtg/include/ActionStack.h +++ b/projects/mtg/include/ActionStack.h @@ -72,7 +72,7 @@ public: } Interruptible(GameObserver* observer, int inID = 0, bool hasFocus = false) - : PlayGuiObject(40, x, y, inID, hasFocus), Targetable(observer), state(NOT_RESOLVED), display(0), source(NULL) + : PlayGuiObject(40, 0.0f, 0.0f, inID, hasFocus), Targetable(observer), state(NOT_RESOLVED), display(0), source(NULL) { } From 51b4755242a2d5b14f3dbe339c548e59f09bb7e4 Mon Sep 17 00:00:00 2001 From: Rolzad73 Date: Wed, 5 Feb 2014 23:39:57 -0500 Subject: [PATCH 057/104] Update README.md Added sample play-through video link --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 1ac0bfee0..a481bfaa8 100644 --- a/README.md +++ b/README.md @@ -19,3 +19,8 @@ It is highly customizable and allows the player to tweak the rules / create thei Info, downloads, discussions and more at http://wololo.net/forum/index.php -![alt text](http://wololo.net/wagic/wp-content/uploads/2009/10/shop.jpg "Screenshot") + + + +### Sample round play-through video +[![IMAGE ALT TEXT HERE](http://img.youtube.com/vi/WUFSAPZuDIk/0.jpg)](http://www.youtube.com/watch?v=WUFSAPZuDIk) From 225dd23753aa954606eccb141bbbb67eb7f7b8a7 Mon Sep 17 00:00:00 2001 From: Tobias Loose Date: Tue, 11 Mar 2014 17:17:36 +0100 Subject: [PATCH 058/104] Fix makefile --- projects/mtg/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/mtg/Makefile b/projects/mtg/Makefile index a5db9bda5..7b53ff162 100644 --- a/projects/mtg/Makefile +++ b/projects/mtg/Makefile @@ -6,7 +6,7 @@ OBJS = objs/InteractiveButton.o objs/AbilityParser.o objs/ActionElement.o\ objs/Counters.o objs/Credits.o objs/Damage.o objs/DamagerDamaged.o\ objs/DeckDataWrapper.o objs/DeckEditorMenu.o objs/DeckMenu.o\ objs/DeckMenuItem.o objs/DeckMetaData.o objs/DeckStats.o objs/DuelLayers.o\ - objs/Effects.o objs/ExtraCost.o objs/GameApp.o objs/GameLauncher.o\ + objs/ExtraCost.o objs/GameApp.o objs/GameLauncher.o\ objs/GameObserver.o objs/GameOptions.o objs/GameState.o\ objs/GameStateAwards.o objs/GameStateDeckViewer.o objs/GameStateDuel.o\ objs/DeckManager.o objs/GameStateMenu.o objs/GameStateOptions.o\ @@ -128,7 +128,7 @@ clean: endif define compile -$(CXX) -c $(CXXFLAGS) $< -o $@ +$(CXX) -c $(CXXFLAGS) $< -o $@ endef PrecompiledHeader.h.gch: ../../projects/mtg/include/PrecompiledHeader.h From b078dd1f6a4641a9cfc135f92745b078e06a869c Mon Sep 17 00:00:00 2001 From: Tobias Loose Date: Tue, 11 Mar 2014 17:31:25 +0100 Subject: [PATCH 059/104] Fix android makefile --- projects/mtg/Android/jni/Android.mk | 1 - 1 file changed, 1 deletion(-) diff --git a/projects/mtg/Android/jni/Android.mk b/projects/mtg/Android/jni/Android.mk index 31f425266..563b80b63 100644 --- a/projects/mtg/Android/jni/Android.mk +++ b/projects/mtg/Android/jni/Android.mk @@ -57,7 +57,6 @@ LOCAL_SRC_FILES := $(SDL_PATH)/src/main/android/SDL_android_main.cpp \ $(MTG_PATH)/src/DeckMetaData.cpp \ $(MTG_PATH)/src/DeckStats.cpp \ $(MTG_PATH)/src/DuelLayers.cpp \ - $(MTG_PATH)/src/Effects.cpp \ $(MTG_PATH)/src/ExtraCost.cpp \ $(MTG_PATH)/src/GameApp.cpp \ $(MTG_PATH)/src/GameLauncher.cpp \ From d2390b1227b09b2e29d21221e2e25ab49f7c9099 Mon Sep 17 00:00:00 2001 From: Michael Nguyen Date: Sun, 13 Apr 2014 08:34:21 -0700 Subject: [PATCH 060/104] updated project file for iOS to work with current codebase - added missing source/headers (GameView.h, CarouselView.h, etc ) - removed dependency on admob static library - removed CardEffect.h and CardEffect.cpp from project reference - removed -no_implicit_dylibs flag (apparently no longer supported) - added -fno-objc-arc (turns off ARC compilation for entire project) - added -DTIXML_USE_STL --- projects/mtg/wagic.xcodeproj/project.pbxproj | 51 ++++++++++++-------- 1 file changed, 30 insertions(+), 21 deletions(-) diff --git a/projects/mtg/wagic.xcodeproj/project.pbxproj b/projects/mtg/wagic.xcodeproj/project.pbxproj index 2a9feb644..f0a904c42 100755 --- a/projects/mtg/wagic.xcodeproj/project.pbxproj +++ b/projects/mtg/wagic.xcodeproj/project.pbxproj @@ -67,7 +67,6 @@ 12059DA814980B7300DAC43B /* AllAbilities.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA376F41291C60500B9016A /* AllAbilities.cpp */; }; 12059DA914980B7300DAC43B /* CardDescriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA376F51291C60500B9016A /* CardDescriptor.cpp */; }; 12059DAA14980B7300DAC43B /* CardDisplay.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA376F61291C60500B9016A /* CardDisplay.cpp */; }; - 12059DAB14980B7300DAC43B /* CardEffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA376F71291C60500B9016A /* CardEffect.cpp */; }; 12059DAC14980B7300DAC43B /* CardGui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA376F81291C60500B9016A /* CardGui.cpp */; }; 12059DAD14980B7300DAC43B /* CardPrimitive.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA376F91291C60500B9016A /* CardPrimitive.cpp */; }; 12059DAE14980B7300DAC43B /* CardSelector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA376FA1291C60500B9016A /* CardSelector.cpp */; }; @@ -197,7 +196,6 @@ 12059E4A14980B7300DAC43B /* libstdc++.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 12D095E014417D0500F69056 /* libstdc++.dylib */; settings = {ATTRIBUTES = (Weak, ); }; }; 12059E4B14980B7300DAC43B /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 12211EBA14934A2C00641703 /* CFNetwork.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; 12059E4C14980B7300DAC43B /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 12211EB814934A1800641703 /* MobileCoreServices.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; - 12059E4D14980B7300DAC43B /* libGoogleAdMobAds.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 128ED379148BAE7B00C58E83 /* libGoogleAdMobAds.a */; settings = {ATTRIBUTES = (Weak, ); }; }; 12059E4E14980B7300DAC43B /* libc++abi.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 1216D632148F7411000F2295 /* libc++abi.dylib */; settings = {ATTRIBUTES = (Weak, ); }; }; 12059E4F14980B7300DAC43B /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 128ED50F148BCC1900C58E83 /* libsqlite3.dylib */; settings = {ATTRIBUTES = (Weak, ); }; }; 12059E5014980B7300DAC43B /* iAd.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 129654D0148A52730031100B /* iAd.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; @@ -216,7 +214,6 @@ 12059E5D14980B7300DAC43B /* MapKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 128ED50B148BCBBC00C58E83 /* MapKit.framework */; }; 12059E5E14980B7300DAC43B /* MediaPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 128ED518148BF0E000C58E83 /* MediaPlayer.framework */; }; 1216D633148F7411000F2295 /* libc++abi.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 1216D632148F7411000F2295 /* libc++abi.dylib */; settings = {ATTRIBUTES = (Weak, ); }; }; - 1216D634148F747D000F2295 /* libGoogleAdMobAds.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 128ED379148BAE7B00C58E83 /* libGoogleAdMobAds.a */; settings = {ATTRIBUTES = (Weak, ); }; }; 12211E7914931CBB00641703 /* ASIAuthenticationDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = 12211E2814931CBB00641703 /* ASIAuthenticationDialog.m */; }; 12211E7A14931CBB00641703 /* ASIDataCompressor.m in Sources */ = {isa = PBXBuildFile; fileRef = 12211E2B14931CBB00641703 /* ASIDataCompressor.m */; }; 12211E7B14931CBB00641703 /* ASIDataDecompressor.m in Sources */ = {isa = PBXBuildFile; fileRef = 12211E2D14931CBB00641703 /* ASIDataDecompressor.m */; }; @@ -284,6 +281,9 @@ 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; }; 28FD15000DC6FC520079059D /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 28FD14FF0DC6FC520079059D /* OpenGLES.framework */; }; 28FD15080DC6FC5B0079059D /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 28FD15070DC6FC5B0079059D /* QuartzCore.framework */; }; + 751E1F1518FAE53E001B1E16 /* CarouselDeckView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 751E1F1218FAE53E001B1E16 /* CarouselDeckView.cpp */; }; + 751E1F1618FAE53E001B1E16 /* DeckView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 751E1F1318FAE53E001B1E16 /* DeckView.cpp */; }; + 751E1F1718FAE53E001B1E16 /* GridDeckView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 751E1F1418FAE53E001B1E16 /* GridDeckView.cpp */; }; 75D209D3181D54FD009916AC /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 75D209D1181D54FD009916AC /* Default-568h@2x.png */; }; 75D209D4181D54FD009916AC /* wagic-80x80.png in Resources */ = {isa = PBXBuildFile; fileRef = 75D209D2181D54FD009916AC /* wagic-80x80.png */; }; CE97CD1E1295AB4300FDFD3B /* SimplePopup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CE97CD1D1295AB4300FDFD3B /* SimplePopup.cpp */; }; @@ -306,7 +306,6 @@ CEA3775E1291C60500B9016A /* AllAbilities.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA376F41291C60500B9016A /* AllAbilities.cpp */; }; CEA3775F1291C60500B9016A /* CardDescriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA376F51291C60500B9016A /* CardDescriptor.cpp */; }; CEA377601291C60500B9016A /* CardDisplay.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA376F61291C60500B9016A /* CardDisplay.cpp */; }; - CEA377611291C60500B9016A /* CardEffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA376F71291C60500B9016A /* CardEffect.cpp */; }; CEA377621291C60500B9016A /* CardGui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA376F81291C60500B9016A /* CardGui.cpp */; }; CEA377631291C60500B9016A /* CardPrimitive.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA376F91291C60500B9016A /* CardPrimitive.cpp */; }; CEA377641291C60500B9016A /* CardSelector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA376FA1291C60500B9016A /* CardSelector.cpp */; }; @@ -576,6 +575,13 @@ 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 28FD14FF0DC6FC520079059D /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; 28FD15070DC6FC5B0079059D /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + 751E1F0E18FAE52D001B1E16 /* CarouselDeckView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CarouselDeckView.h; sourceTree = ""; }; + 751E1F0F18FAE52D001B1E16 /* DeckView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeckView.h; sourceTree = ""; }; + 751E1F1018FAE52D001B1E16 /* Easing.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Easing.h; sourceTree = ""; }; + 751E1F1118FAE52D001B1E16 /* GridDeckView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GridDeckView.h; sourceTree = ""; }; + 751E1F1218FAE53E001B1E16 /* CarouselDeckView.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CarouselDeckView.cpp; sourceTree = ""; }; + 751E1F1318FAE53E001B1E16 /* DeckView.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DeckView.cpp; sourceTree = ""; }; + 751E1F1418FAE53E001B1E16 /* GridDeckView.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GridDeckView.cpp; sourceTree = ""; }; 75D209D1181D54FD009916AC /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = SOURCE_ROOT; }; 75D209D2181D54FD009916AC /* wagic-80x80.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "wagic-80x80.png"; sourceTree = SOURCE_ROOT; }; 8D1107310486CEB800E47090 /* wagic-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "wagic-Info.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = ""; }; @@ -607,7 +613,6 @@ CEA3768C1291C60500B9016A /* AllAbilities.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = AllAbilities.h; sourceTree = ""; }; CEA3768D1291C60500B9016A /* CardDescriptor.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = CardDescriptor.h; sourceTree = ""; }; CEA3768E1291C60500B9016A /* CardDisplay.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = CardDisplay.h; sourceTree = ""; }; - CEA3768F1291C60500B9016A /* CardEffect.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = CardEffect.h; sourceTree = ""; }; CEA376901291C60500B9016A /* CardGui.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = CardGui.h; sourceTree = ""; }; CEA376911291C60500B9016A /* CardPrimitive.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = CardPrimitive.h; sourceTree = ""; }; CEA376921291C60500B9016A /* CardSelector.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = CardSelector.h; sourceTree = ""; }; @@ -708,7 +713,6 @@ CEA376F41291C60500B9016A /* AllAbilities.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = AllAbilities.cpp; sourceTree = ""; }; CEA376F51291C60500B9016A /* CardDescriptor.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = CardDescriptor.cpp; sourceTree = ""; }; CEA376F61291C60500B9016A /* CardDisplay.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = CardDisplay.cpp; sourceTree = ""; }; - CEA376F71291C60500B9016A /* CardEffect.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = CardEffect.cpp; sourceTree = ""; }; CEA376F81291C60500B9016A /* CardGui.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = CardGui.cpp; sourceTree = ""; }; CEA376F91291C60500B9016A /* CardPrimitive.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = CardPrimitive.cpp; sourceTree = ""; }; CEA376FA1291C60500B9016A /* CardSelector.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = CardSelector.cpp; sourceTree = ""; }; @@ -886,7 +890,6 @@ 12059E4A14980B7300DAC43B /* libstdc++.dylib in Frameworks */, 12059E4B14980B7300DAC43B /* CFNetwork.framework in Frameworks */, 12059E4C14980B7300DAC43B /* MobileCoreServices.framework in Frameworks */, - 12059E4D14980B7300DAC43B /* libGoogleAdMobAds.a in Frameworks */, 12059E4E14980B7300DAC43B /* libc++abi.dylib in Frameworks */, 12059E4F14980B7300DAC43B /* libsqlite3.dylib in Frameworks */, 12059E5014980B7300DAC43B /* iAd.framework in Frameworks */, @@ -918,7 +921,6 @@ 12D095E114417D0500F69056 /* libstdc++.dylib in Frameworks */, 12211EBB14934A2C00641703 /* CFNetwork.framework in Frameworks */, 12211EB914934A1900641703 /* MobileCoreServices.framework in Frameworks */, - 1216D634148F747D000F2295 /* libGoogleAdMobAds.a in Frameworks */, 1216D633148F7411000F2295 /* libc++abi.dylib in Frameworks */, 128ED510148BCC1900C58E83 /* libsqlite3.dylib in Frameworks */, 129654D1148A52740031100B /* iAd.framework in Frameworks */, @@ -1280,6 +1282,10 @@ CEA376851291C60500B9016A /* include */ = { isa = PBXGroup; children = ( + 751E1F0E18FAE52D001B1E16 /* CarouselDeckView.h */, + 751E1F0F18FAE52D001B1E16 /* DeckView.h */, + 751E1F1018FAE52D001B1E16 /* Easing.h */, + 751E1F1118FAE52D001B1E16 /* GridDeckView.h */, 12272FC114CD558C00192DC7 /* SimpleButton.h */, 12CCA032144A05DF00E343A0 /* AbilityParser.h */, 127694891441274D0088F6D3 /* AIPlayerBaka.h */, @@ -1302,7 +1308,6 @@ CEA3768C1291C60500B9016A /* AllAbilities.h */, CEA3768D1291C60500B9016A /* CardDescriptor.h */, CEA3768E1291C60500B9016A /* CardDisplay.h */, - CEA3768F1291C60500B9016A /* CardEffect.h */, CEA376901291C60500B9016A /* CardGui.h */, CEA376911291C60500B9016A /* CardPrimitive.h */, CEA376921291C60500B9016A /* CardSelector.h */, @@ -1403,6 +1408,9 @@ CEA376ED1291C60500B9016A /* src */ = { isa = PBXGroup; children = ( + 751E1F1218FAE53E001B1E16 /* CarouselDeckView.cpp */, + 751E1F1318FAE53E001B1E16 /* DeckView.cpp */, + 751E1F1418FAE53E001B1E16 /* GridDeckView.cpp */, 12CCA02F144A05D100E343A0 /* AbilityParser.cpp */, 12769483144127380088F6D3 /* AIPlayerBaka.cpp */, 12769484144127380088F6D3 /* AIPlayerBakaB.cpp */, @@ -1422,7 +1430,6 @@ CEA376F41291C60500B9016A /* AllAbilities.cpp */, CEA376F51291C60500B9016A /* CardDescriptor.cpp */, CEA376F61291C60500B9016A /* CardDisplay.cpp */, - CEA376F71291C60500B9016A /* CardEffect.cpp */, CEA376F81291C60500B9016A /* CardGui.cpp */, CEA376F91291C60500B9016A /* CardPrimitive.cpp */, CEA376FA1291C60500B9016A /* CardSelector.cpp */, @@ -1821,7 +1828,6 @@ 12059DA814980B7300DAC43B /* AllAbilities.cpp in Sources */, 12059DA914980B7300DAC43B /* CardDescriptor.cpp in Sources */, 12059DAA14980B7300DAC43B /* CardDisplay.cpp in Sources */, - 12059DAB14980B7300DAC43B /* CardEffect.cpp in Sources */, 12059DAC14980B7300DAC43B /* CardGui.cpp in Sources */, 12059DAD14980B7300DAC43B /* CardPrimitive.cpp in Sources */, 12059DAE14980B7300DAC43B /* CardSelector.cpp in Sources */, @@ -2002,7 +2008,6 @@ CEA3775E1291C60500B9016A /* AllAbilities.cpp in Sources */, CEA3775F1291C60500B9016A /* CardDescriptor.cpp in Sources */, CEA377601291C60500B9016A /* CardDisplay.cpp in Sources */, - CEA377611291C60500B9016A /* CardEffect.cpp in Sources */, CEA377621291C60500B9016A /* CardGui.cpp in Sources */, CEA377631291C60500B9016A /* CardPrimitive.cpp in Sources */, CEA377641291C60500B9016A /* CardSelector.cpp in Sources */, @@ -2049,6 +2054,7 @@ CEA3778F1291C60500B9016A /* ManaCostHybrid.cpp in Sources */, CEA377901291C60500B9016A /* MenuItem.cpp in Sources */, CEA377911291C60500B9016A /* MTGAbility.cpp in Sources */, + 751E1F1718FAE53E001B1E16 /* GridDeckView.cpp in Sources */, CEA377931291C60500B9016A /* MTGCard.cpp in Sources */, CEA377941291C60500B9016A /* MTGCardInstance.cpp in Sources */, CEA377951291C60500B9016A /* MTGDeck.cpp in Sources */, @@ -2087,6 +2093,7 @@ CEA377BA1291C60500B9016A /* utils.cpp in Sources */, CEA377BB1291C60500B9016A /* WCachedResource.cpp in Sources */, CEA377BC1291C60500B9016A /* WDataSrc.cpp in Sources */, + 751E1F1618FAE53E001B1E16 /* DeckView.cpp in Sources */, CEA377BD1291C60500B9016A /* WEvent.cpp in Sources */, CEA377BE1291C60500B9016A /* WFilter.cpp in Sources */, CEA377BF1291C60500B9016A /* WFont.cpp in Sources */, @@ -2096,6 +2103,7 @@ CE9A478512B514BA00C9F38A /* EAGLView.m in Sources */, CE9A478612B514BA00C9F38A /* EAGLViewController.m in Sources */, CE9A478912B514BA00C9F38A /* ES2Renderer.m in Sources */, + 751E1F1518FAE53E001B1E16 /* CarouselDeckView.cpp in Sources */, CE9A478A12B514BA00C9F38A /* main.m in Sources */, CE9A478D12B514BA00C9F38A /* wagicAppDelegate.m in Sources */, CE9E71DD1375A58600759DDC /* thread.cpp in Sources */, @@ -2283,10 +2291,7 @@ "\"$(SRCROOT)/../../admobsdk/iOS/GoogleAdMobAdsSDKiOS-5.0.5\"", ); "New Setting" = ""; - OTHER_LDFLAGS = ( - "-no_implicit_dylibs", - "-Wl", - ); + OTHER_LDFLAGS = "-Wl"; PRODUCT_NAME = wagic; PROVISIONING_PROFILE = ""; "PROVISIONING_PROFILE[sdk=iphoneos*]" = ""; @@ -2331,10 +2336,7 @@ "$(inherited)", "\"$(SRCROOT)/../../admobsdk/iOS/GoogleAdMobAdsSDKiOS-5.0.5\"", ); - OTHER_LDFLAGS = ( - "-no_implicit_dylibs", - "-Wl", - ); + OTHER_LDFLAGS = "-Wl"; PRODUCT_NAME = wagic; PROVISIONING_PROFILE = ""; "PROVISIONING_PROFILE[sdk=iphoneos*]" = ""; @@ -2357,6 +2359,10 @@ GCC_WARN_UNUSED_VARIABLE = YES; HEADER_SEARCH_PATHS = ../../Boost/boost; IPHONEOS_DEPLOYMENT_TARGET = 5.1; + OTHER_CFLAGS = ( + "-DTIXML_USE_STL", + "-fno-objc-arc", + ); PROVISIONING_PROFILE = ""; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; @@ -2374,7 +2380,10 @@ GCC_WARN_UNUSED_VARIABLE = YES; HEADER_SEARCH_PATHS = ../../Boost/boost; IPHONEOS_DEPLOYMENT_TARGET = 5.1; - OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; + OTHER_CFLAGS = ( + "-DNS_BLOCK_ASSERTIONS=1", + "-DTIXML_USE_STL=1", + ); PROVISIONING_PROFILE = ""; "PROVISIONING_PROFILE[sdk=iphoneos*]" = ""; SDKROOT = iphoneos; From 63561e61221cf8e953e580d298892b16170a8af3 Mon Sep 17 00:00:00 2001 From: Michael Nguyen Date: Sun, 13 Apr 2014 11:39:40 -0700 Subject: [PATCH 061/104] update Xcode build preferences as recommended by XCode. --- projects/mtg/wagic.xcodeproj/project.pbxproj | 21 ++----------------- .../xcschemes/wagic-opengl1.1.xcscheme | 2 +- .../xcschemes/wagic.xcscheme | 2 +- 3 files changed, 4 insertions(+), 21 deletions(-) diff --git a/projects/mtg/wagic.xcodeproj/project.pbxproj b/projects/mtg/wagic.xcodeproj/project.pbxproj index f0a904c42..d951b708e 100755 --- a/projects/mtg/wagic.xcodeproj/project.pbxproj +++ b/projects/mtg/wagic.xcodeproj/project.pbxproj @@ -1704,7 +1704,7 @@ 29B97313FDCFA39411CA2CEA /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0430; + LastUpgradeCheck = 0510; }; buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "wagic" */; compatibilityVersion = "Xcode 3.2"; @@ -2152,10 +2152,6 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; - ARCHS = ( - armv6, - "$(ARCHS_STANDARD_32_BIT)", - ); CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; @@ -2205,10 +2201,6 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = ( - armv6, - "$(ARCHS_STANDARD_32_BIT)", - ); CODE_SIGN_IDENTITY = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; COPY_PHASE_STRIP = YES; @@ -2252,10 +2244,6 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; - ARCHS = ( - armv6, - "$(ARCHS_STANDARD_32_BIT)", - ); CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; @@ -2304,10 +2292,6 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = ( - armv6, - "$(ARCHS_STANDARD_32_BIT)", - ); CODE_SIGN_IDENTITY = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; COPY_PHASE_STRIP = YES; @@ -2348,7 +2332,6 @@ C01FCF4F08A954540054247B /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; DEPLOYMENT_LOCATION = NO; @@ -2359,6 +2342,7 @@ GCC_WARN_UNUSED_VARIABLE = YES; HEADER_SEARCH_PATHS = ../../Boost/boost; IPHONEOS_DEPLOYMENT_TARGET = 5.1; + ONLY_ACTIVE_ARCH = YES; OTHER_CFLAGS = ( "-DTIXML_USE_STL", "-fno-objc-arc", @@ -2372,7 +2356,6 @@ C01FCF5008A954540054247B /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; CODE_SIGN_IDENTITY = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; GCC_C_LANGUAGE_STANDARD = c99; diff --git a/projects/mtg/wagic.xcodeproj/xcuserdata/mnguyen.xcuserdatad/xcschemes/wagic-opengl1.1.xcscheme b/projects/mtg/wagic.xcodeproj/xcuserdata/mnguyen.xcuserdatad/xcschemes/wagic-opengl1.1.xcscheme index ff4186a80..71e41a631 100644 --- a/projects/mtg/wagic.xcodeproj/xcuserdata/mnguyen.xcuserdatad/xcschemes/wagic-opengl1.1.xcscheme +++ b/projects/mtg/wagic.xcodeproj/xcuserdata/mnguyen.xcuserdatad/xcschemes/wagic-opengl1.1.xcscheme @@ -1,6 +1,6 @@ Date: Wed, 23 Jul 2014 00:17:07 +0200 Subject: [PATCH 062/104] Update README.md Added build status on AppVeyor --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index a481bfaa8..f3eea73d2 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ [![Build Status](https://travis-ci.org/WagicProject/wagic.png?branch=master)](https://travis-ci.org/WagicProject/wagic) +[![Build status](https://ci.appveyor.com/api/projects/status/7j4fbr6m62aqej59/branch/master)](https://ci.appveyor.com/project/xawotihs/wagic/branch/master) + ## Description From 539c5bd18a1d7aaaf6b2545b456600f7e0314f48 Mon Sep 17 00:00:00 2001 From: Xawotihs Date: Wed, 23 Jul 2014 20:53:25 +0200 Subject: [PATCH 063/104] Trying to fix android build --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index ee8290632..1ccda6837 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,7 +19,7 @@ install: - tar --absolute-names -jxf android-ndk-r9-linux-x86_64.tar.bz2 - tar -zxf android-sdk_r22-linux.tgz - $ANDROID list sdk --extended -a -- echo yes | $ANDROID update sdk -a --filter "tools","platform-tools","build-tools-19.0.1","android-10" --no-ui --force > log.txt +- echo yes | $ANDROID update sdk -a --filter "tools","platform-tools","build-tools-19.1.0","android-10" --no-ui --force > log.txt - sudo pip install pyjavaproperties script: ./travis-script.sh env: From 9bc750da9a198d884bb9d9656980a1f94b4fb6a4 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Wed, 23 Jul 2014 22:05:02 +0200 Subject: [PATCH 064/104] Upgrade Android SDK to r23.0.2 --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 1ccda6837..dd23686c6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,9 +15,9 @@ install: - wget -O sdk.lzma http://sourceforge.net/projects/minpspw/files/SDK%20%2B%20devpak/pspsdk%200.11.2/minpspw_0.11.2-amd64.tar.lzma/download - tar -x --xz -f sdk.lzma - wget http://dl.google.com/android/ndk/android-ndk-r9-linux-x86_64.tar.bz2 -nv -- wget http://dl.google.com/android/android-sdk_r22-linux.tgz -nv +- wget http://dl.google.com/android/android-sdk_r23.0.2-linux.tgz -nv - tar --absolute-names -jxf android-ndk-r9-linux-x86_64.tar.bz2 -- tar -zxf android-sdk_r22-linux.tgz +- tar -zxf android-sdk_r23.0.2-linux.tgz - $ANDROID list sdk --extended -a - echo yes | $ANDROID update sdk -a --filter "tools","platform-tools","build-tools-19.1.0","android-10" --no-ui --force > log.txt - sudo pip install pyjavaproperties From f2a527302911a5b4d6edeaf106e2159915ea90ed Mon Sep 17 00:00:00 2001 From: xawotihs Date: Wed, 23 Jul 2014 22:22:06 +0200 Subject: [PATCH 065/104] Activating logs on android issue --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index dd23686c6..591b9acf4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,7 +19,7 @@ install: - tar --absolute-names -jxf android-ndk-r9-linux-x86_64.tar.bz2 - tar -zxf android-sdk_r23.0.2-linux.tgz - $ANDROID list sdk --extended -a -- echo yes | $ANDROID update sdk -a --filter "tools","platform-tools","build-tools-19.1.0","android-10" --no-ui --force > log.txt +- echo yes | $ANDROID update sdk -a --filter "tools","platform-tools","build-tools-19.1.0","android-10" --no-ui --force - sudo pip install pyjavaproperties script: ./travis-script.sh env: From e87996a7f29cec10ef0adb5fbf0d4a69e0f1e20e Mon Sep 17 00:00:00 2001 From: xawotihs Date: Wed, 23 Jul 2014 23:20:54 +0200 Subject: [PATCH 066/104] Deactivate window cross-compiling build --- travis-script.sh | 37 +++++++++++++++++++------------------ upload-binaries.sh | 24 ++++++++++++------------ 2 files changed, 31 insertions(+), 30 deletions(-) diff --git a/travis-script.sh b/travis-script.sh index 244d7c19a..b42f6c070 100755 --- a/travis-script.sh +++ b/travis-script.sh @@ -74,24 +74,25 @@ make -j 8 # we're cross-compiling a Qt Windows version here, # PATH is only set here to prevent colision -export PATH="$PATH:/opt/mingw32/bin" -mkdir build -cd build -mkdir win-cross -cd win-cross -/opt/mingw32/bin/qmake ../../projects/mtg/wagic-qt.pro CONFIG+=release CONFIG+=graphics -make -j 8 -cd release -cp ../../../projects/mtg/bin/fmod.dll . -cp /opt/mingw32/bin/QtCore4.dll . -cp /opt/mingw32/bin/QtGui4.dll . -cp /opt/mingw32/bin/QtNetwork4.dll . -cp /opt/mingw32/bin/QtOpenGL4.dll . -cp ../../../projects/mtg/bin/zlib1.dll . -cp /opt/mingw32/bin/libpng15-15.dll . -cd .. -zip win-cross.zip -r release/ -cd ../.. + +# export PATH="$PATH:/opt/mingw32/bin" +# mkdir build +# cd build +# mkdir win-cross +# cd win-cross +# /opt/mingw32/bin/qmake ../../projects/mtg/wagic-qt.pro CONFIG+=release CONFIG+=graphics +# make -j 8 +# cd release +# cp ../../../projects/mtg/bin/fmod.dll . +# cp /opt/mingw32/bin/QtCore4.dll . +# cp /opt/mingw32/bin/QtGui4.dll . +# cp /opt/mingw32/bin/QtNetwork4.dll . +# cp /opt/mingw32/bin/QtOpenGL4.dll . +# cp ../../../projects/mtg/bin/zlib1.dll . +# cp /opt/mingw32/bin/libpng15-15.dll . +# cd .. +# zip win-cross.zip -r release/ +# cd ../.. # Now we run the testsuite (Res needs to be in the working directory) cd projects/mtg diff --git a/upload-binaries.sh b/upload-binaries.sh index a558ccbb9..272b4771d 100755 --- a/upload-binaries.sh +++ b/upload-binaries.sh @@ -26,12 +26,12 @@ if [ "$TRAVIS_BRANCH" == "alphas" ]; then --data-binary @projects/mtg/psprelease.zip \ "https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-psp.zip" - echo -e "Uploading Windows package\n" - curl -X POST -H "Authorization: token ${GH_TOKEN}" \ - -H "Accept: application/vnd.github.manifold-preview" \ - -H "Content-Type: application/zip" \ - --data-binary @build/win-cross/win-cross.zip \ - "https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-windows.zip" +# echo -e "Uploading Windows package\n" +# curl -X POST -H "Authorization: token ${GH_TOKEN}" \ +# -H "Accept: application/vnd.github.manifold-preview" \ +# -H "Content-Type: application/zip" \ +# --data-binary @build/win-cross/win-cross.zip \ +# "https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-windows.zip" echo -e "Done uploading\n" fi @@ -87,12 +87,12 @@ if [ "$TRAVIS_BRANCH" == "master" ]; then --data-binary @projects/mtg/psprelease.zip \ "https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-psp.zip" - echo -e "Uploading Windows package\n" - curl -X POST -H "Authorization: token ${GH_TOKEN}" \ - -H "Accept: application/vnd.github.manifold-preview" \ - -H "Content-Type: application/zip" \ - --data-binary @build/win-cross/win-cross.zip \ - "https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-windows.zip" +# echo -e "Uploading Windows package\n" +# curl -X POST -H "Authorization: token ${GH_TOKEN}" \ +# -H "Accept: application/vnd.github.manifold-preview" \ +# -H "Content-Type: application/zip" \ +# --data-binary @build/win-cross/win-cross.zip \ +# "https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-windows.zip" echo -e "Done uploading\n" fi From 36ecc1ffef8e25f4f3eddbb09f2b3d067da550cb Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sat, 26 Jul 2014 19:38:14 +0200 Subject: [PATCH 067/104] Cleaned up cross-compiling travis stuff --- .travis.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 591b9acf4..41aa3091f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,10 +8,7 @@ before_install: - export PATH="$PATH:$PSPDEV/bin:$PSPSDK/bin" - export ANDROID="android-sdk-linux/tools/android" install: -- sudo add-apt-repository ppa:tobydox/mingw -y -- sudo apt-get update -qq -- if [ `uname -m` = x86_64 ]; then sudo apt-get install -qq --force-yes libgd2-xpm ia32-libs ia32-libs-multiarch jq mingw32-x-gcc mingw32-x-qt; fi -- sudo ln -s /opt/mingw32/bin/moc /opt/mingw32/bin/i686-w64-mingw32-moc +- if [ `uname -m` = x86_64 ]; then sudo apt-get install -qq --force-yes libgd2-xpm ia32-libs ia32-libs-multiarch jq; fi - wget -O sdk.lzma http://sourceforge.net/projects/minpspw/files/SDK%20%2B%20devpak/pspsdk%200.11.2/minpspw_0.11.2-amd64.tar.lzma/download - tar -x --xz -f sdk.lzma - wget http://dl.google.com/android/ndk/android-ndk-r9-linux-x86_64.tar.bz2 -nv From 28db88449831de7054ee9d75436dfffcfb075eb3 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sat, 26 Jul 2014 19:45:59 +0200 Subject: [PATCH 068/104] Cleaned up cross-compiling travis stuff --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 41aa3091f..398e27662 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,6 +8,7 @@ before_install: - export PATH="$PATH:$PSPDEV/bin:$PSPSDK/bin" - export ANDROID="android-sdk-linux/tools/android" install: +- sudo apt-get update -qq - if [ `uname -m` = x86_64 ]; then sudo apt-get install -qq --force-yes libgd2-xpm ia32-libs ia32-libs-multiarch jq; fi - wget -O sdk.lzma http://sourceforge.net/projects/minpspw/files/SDK%20%2B%20devpak/pspsdk%200.11.2/minpspw_0.11.2-amd64.tar.lzma/download - tar -x --xz -f sdk.lzma From 1e24f25c18d309f0bba04a4ea8cbf163b5f72584 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sat, 2 Aug 2014 15:56:52 +0200 Subject: [PATCH 069/104] Fixed repository against Qt5.3.1 --- projects/mtg/wagic.pri | 2 ++ 1 file changed, 2 insertions(+) diff --git a/projects/mtg/wagic.pri b/projects/mtg/wagic.pri index a292833a1..5c7b4709e 100644 --- a/projects/mtg/wagic.pri +++ b/projects/mtg/wagic.pri @@ -11,6 +11,7 @@ unix:!*macx*:QMAKE_CXXFLAGS += -Wno-unused-local-typedefs unix:!*macx*:!maemo5:!symbian:QMAKE_CXXFLAGS += -Werror windows:DEFINES += _CRT_SECURE_NO_WARNINGS +windows|winrt:DEFINES += NOMINMAX unix|macx:DEFINES += LINUX CONFIG(debug, debug|release) { DEFINES += _DEBUG @@ -32,6 +33,7 @@ windows{ *-msvc* { INCLUDEPATH += extra DEFINES += WIN32 + DEFINES += FORCE_GL2 } } macx:INCLUDEPATH += /opt/include From ac5c14b97725e6a06aad5a9c0a41adc932d2fdca Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sat, 2 Aug 2014 17:12:19 +0200 Subject: [PATCH 070/104] Fixed QtMultimedia port, replaced QSoundEffect by QMediaPlayer as all codecs were not supported by first class. --- JGE/include/JSoundSystem.h | 3 ++- JGE/src/pc/JSfx.cpp | 21 ++++++++++----------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/JGE/include/JSoundSystem.h b/JGE/include/JSoundSystem.h index 30be731e8..7c6308aab 100644 --- a/JGE/include/JSoundSystem.h +++ b/JGE/include/JSoundSystem.h @@ -106,7 +106,8 @@ public: unsigned long fileSize(); #ifdef QT_CONFIG - QSoundEffect effect; + QMediaPlayer* effect; +// QSoundEffect effect; void* mSample; #elif defined (PSP) WAVDATA *mSample; diff --git a/JGE/src/pc/JSfx.cpp b/JGE/src/pc/JSfx.cpp index faa4fa71c..f7d08e3ba 100644 --- a/JGE/src/pc/JSfx.cpp +++ b/JGE/src/pc/JSfx.cpp @@ -76,7 +76,10 @@ JSample::JSample() JSample::~JSample() { -#ifdef USE_PHONON +#ifdef QT_CONFIG + if(effect) + delete effect; +#elif USE_PHONON if(mOutput) delete mOutput; if(mMediaObject) @@ -160,7 +163,7 @@ JMusic *JSoundSystem::LoadMusic(const char *fileName) music->player->setVolume(100); music->playlist = new QMediaPlaylist; music->fullpath = JFileSystem::GetInstance()->GetResourceFile(fileName); - music->playlist->addMedia(QUrl(music->fullpath.c_str())); + music->playlist->addMedia(QUrl::fromLocalFile(music->fullpath.c_str())); music->playlist->setCurrentIndex(0); } #elif defined USE_PHONON @@ -205,12 +208,8 @@ void JSoundSystem::PlayMusic(JMusic *music, bool looping) if(looping) music->playlist->setPlaybackMode(QMediaPlaylist::Loop); -// music->player->setPlaylist(music->playlist); - music->player->setMedia(QUrl(music->fullpath.c_str())); + music->player->setPlaylist(music->playlist); music->player->play(); - stringstream stream; - stream << "Player state : " << music->player->state(); - DebugTrace(stream.str()); } #elif USE_PHONON if (music && music->mMediaObject && music->mOutput) @@ -305,9 +304,9 @@ JSample *JSoundSystem::LoadSample(const char *fileName) if (sample) { string fullpath = JFileSystem::GetInstance()->GetResourceFile(fileName); - sample->effect.setSource(QUrl::fromLocalFile(fullpath.c_str())); - sample->effect.setLoopCount(0); - sample->effect.setVolume(1); + sample->effect = new QMediaPlayer; + sample->effect->setMedia(QUrl::fromLocalFile(fullpath.c_str())); + sample->effect->setVolume(100); sample->mSample = &(sample->effect); } #elif (defined USE_PHONON) @@ -351,7 +350,7 @@ void JSoundSystem::PlaySample(JSample *sample) #ifdef QT_CONFIG if(sample) { - sample->effect.play(); + sample->effect->play(); } #elif defined USE_PHONON if (sample && sample->mMediaObject && sample->mOutput) From 06f30eca3ab452e755a274273fe7c8a77e8d902d Mon Sep 17 00:00:00 2001 From: Xawotihs Date: Sat, 2 Aug 2014 17:50:45 +0200 Subject: [PATCH 071/104] Upgraded travis to use qt5 --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index 398e27662..e735d6745 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,8 +8,10 @@ before_install: - export PATH="$PATH:$PSPDEV/bin:$PSPSDK/bin" - export ANDROID="android-sdk-linux/tools/android" install: +- sudo add-apt-repository --yes ppa:ubuntu-sdk-team/ppa - sudo apt-get update -qq - if [ `uname -m` = x86_64 ]; then sudo apt-get install -qq --force-yes libgd2-xpm ia32-libs ia32-libs-multiarch jq; fi +- sudo apt-get install -qq qt5-qmake qtbase5-dev qtdeclarative5-dev qttools5-dev - wget -O sdk.lzma http://sourceforge.net/projects/minpspw/files/SDK%20%2B%20devpak/pspsdk%200.11.2/minpspw_0.11.2-amd64.tar.lzma/download - tar -x --xz -f sdk.lzma - wget http://dl.google.com/android/ndk/android-ndk-r9-linux-x86_64.tar.bz2 -nv From 7d4e5177b9ab437911749cf18be7dde2b2f8a2c1 Mon Sep 17 00:00:00 2001 From: Xawotihs Date: Sat, 2 Aug 2014 18:15:45 +0200 Subject: [PATCH 072/104] Reordered actions from install to before_install --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index e735d6745..00a203ff1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,15 +7,15 @@ before_install: - export PSPSDK="$PSPDEV/psp/sdk" - export PATH="$PATH:$PSPDEV/bin:$PSPSDK/bin" - export ANDROID="android-sdk-linux/tools/android" -install: - sudo add-apt-repository --yes ppa:ubuntu-sdk-team/ppa - sudo apt-get update -qq - if [ `uname -m` = x86_64 ]; then sudo apt-get install -qq --force-yes libgd2-xpm ia32-libs ia32-libs-multiarch jq; fi - sudo apt-get install -qq qt5-qmake qtbase5-dev qtdeclarative5-dev qttools5-dev - wget -O sdk.lzma http://sourceforge.net/projects/minpspw/files/SDK%20%2B%20devpak/pspsdk%200.11.2/minpspw_0.11.2-amd64.tar.lzma/download -- tar -x --xz -f sdk.lzma - wget http://dl.google.com/android/ndk/android-ndk-r9-linux-x86_64.tar.bz2 -nv - wget http://dl.google.com/android/android-sdk_r23.0.2-linux.tgz -nv +install: +- tar -x --xz -f sdk.lzma - tar --absolute-names -jxf android-ndk-r9-linux-x86_64.tar.bz2 - tar -zxf android-sdk_r23.0.2-linux.tgz - $ANDROID list sdk --extended -a From 7053531a4d184ba3d3c8ce2742a25fee8338911b Mon Sep 17 00:00:00 2001 From: Xawotihs Date: Sat, 2 Aug 2014 18:37:53 +0200 Subject: [PATCH 073/104] Added qmake qt5 configuration --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index 00a203ff1..abb742e75 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,6 +21,9 @@ install: - $ANDROID list sdk --extended -a - echo yes | $ANDROID update sdk -a --filter "tools","platform-tools","build-tools-19.1.0","android-10" --no-ui --force - sudo pip install pyjavaproperties +before_script: +- qmake -qt=qt5 -v +- qmake -qt=qt5 script: ./travis-script.sh env: global: From 555fb3ae9349de04407f3f62ee57ad89fb3d4b9b Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sat, 2 Aug 2014 18:54:28 +0200 Subject: [PATCH 074/104] Updated Qt building scripts to use qt5 qmake and no fmod --- .travis.yml | 4 +--- projects/mtg/wagic.pri | 1 - travis-script.sh | 4 ++-- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index abb742e75..6411cdfb1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,6 +11,7 @@ before_install: - sudo apt-get update -qq - if [ `uname -m` = x86_64 ]; then sudo apt-get install -qq --force-yes libgd2-xpm ia32-libs ia32-libs-multiarch jq; fi - sudo apt-get install -qq qt5-qmake qtbase5-dev qtdeclarative5-dev qttools5-dev +- export QMAKE="qmake -qt=qt5" - wget -O sdk.lzma http://sourceforge.net/projects/minpspw/files/SDK%20%2B%20devpak/pspsdk%200.11.2/minpspw_0.11.2-amd64.tar.lzma/download - wget http://dl.google.com/android/ndk/android-ndk-r9-linux-x86_64.tar.bz2 -nv - wget http://dl.google.com/android/android-sdk_r23.0.2-linux.tgz -nv @@ -21,9 +22,6 @@ install: - $ANDROID list sdk --extended -a - echo yes | $ANDROID update sdk -a --filter "tools","platform-tools","build-tools-19.1.0","android-10" --no-ui --force - sudo pip install pyjavaproperties -before_script: -- qmake -qt=qt5 -v -- qmake -qt=qt5 script: ./travis-script.sh env: global: diff --git a/projects/mtg/wagic.pri b/projects/mtg/wagic.pri index 5122f3d72..7360f681e 100644 --- a/projects/mtg/wagic.pri +++ b/projects/mtg/wagic.pri @@ -43,7 +43,6 @@ INCLUDEPATH += ../../Boost INCLUDEPATH += include unix:!symbian:LIBS += -lz -windows:LIBS += ../../JGE/Dependencies/lib/fmodvc.lib windows:LIBS += ../../JGE/Dependencies/lib/zlibd.lib PRECOMPILED_HEADER = include/PrecompiledHeader.h diff --git a/travis-script.sh b/travis-script.sh index b42f6c070..3cd466e71 100755 --- a/travis-script.sh +++ b/travis-script.sh @@ -64,12 +64,12 @@ ant debug -f projects/mtg/Android/build.xml # we're building a Qt version with GUI here mkdir qt-gui-build cd qt-gui-build -qmake ../projects/mtg/wagic-qt.pro CONFIG+=release CONFIG+=graphics +$QMAKE ../projects/mtg/wagic-qt.pro CONFIG+=release CONFIG+=graphics make -j 8 cd .. # let's try an Intel linux binary in debug text-mode-only -qmake projects/mtg/wagic-qt.pro CONFIG+=console CONFIG+=debug DEFINES+=CAPTURE_STDERR +$QMAKE projects/mtg/wagic-qt.pro CONFIG+=console CONFIG+=debug DEFINES+=CAPTURE_STDERR make -j 8 # we're cross-compiling a Qt Windows version here, From a447a0c9af4493d62b732887daf9b1da0a78111e Mon Sep 17 00:00:00 2001 From: Xawotihs Date: Sat, 2 Aug 2014 19:22:38 +0200 Subject: [PATCH 075/104] Trying with --all --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 6411cdfb1..7a2333c88 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,7 +20,7 @@ install: - tar --absolute-names -jxf android-ndk-r9-linux-x86_64.tar.bz2 - tar -zxf android-sdk_r23.0.2-linux.tgz - $ANDROID list sdk --extended -a -- echo yes | $ANDROID update sdk -a --filter "tools","platform-tools","build-tools-19.1.0","android-10" --no-ui --force +- echo yes | $ANDROID update sdk --all --filter "tools","platform-tools","build-tools-19.1.0","android-10" --no-ui --force - sudo pip install pyjavaproperties script: ./travis-script.sh env: From 8d58baf4a30dfe96133da19e2676072ab09157e8 Mon Sep 17 00:00:00 2001 From: Xawotihs Date: Sat, 2 Aug 2014 19:38:11 +0200 Subject: [PATCH 076/104] adding qtmultimedia in apt-get --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 7a2333c88..72586c119 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,7 +10,7 @@ before_install: - sudo add-apt-repository --yes ppa:ubuntu-sdk-team/ppa - sudo apt-get update -qq - if [ `uname -m` = x86_64 ]; then sudo apt-get install -qq --force-yes libgd2-xpm ia32-libs ia32-libs-multiarch jq; fi -- sudo apt-get install -qq qt5-qmake qtbase5-dev qtdeclarative5-dev qttools5-dev +- sudo apt-get install -qq qt5-qmake qtbase5-dev qtdeclarative5-dev qttools5-dev qtmultimedia5-dev - export QMAKE="qmake -qt=qt5" - wget -O sdk.lzma http://sourceforge.net/projects/minpspw/files/SDK%20%2B%20devpak/pspsdk%200.11.2/minpspw_0.11.2-amd64.tar.lzma/download - wget http://dl.google.com/android/ndk/android-ndk-r9-linux-x86_64.tar.bz2 -nv From 8b22d032cdf6dd54cd9a25f647373fae032e97d9 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sat, 2 Aug 2014 21:05:55 +0200 Subject: [PATCH 077/104] Fixed QT version needed for pixelRatio API --- JGE/include/qt/corewrapper.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/JGE/include/qt/corewrapper.h b/JGE/include/qt/corewrapper.h index cd019c6a7..284a878aa 100644 --- a/JGE/include/qt/corewrapper.h +++ b/JGE/include/qt/corewrapper.h @@ -137,14 +137,14 @@ private slots: private: int lastPosx(){ -#if QT_VERSION >= 0x050000 +#if QT_VERSION >= 0x050100 return m_lastPos.x()*devicePixelRatio(); #else return m_lastPos.x(); #endif } int lastPosy(){ -#if QT_VERSION >= 0x050000 +#if QT_VERSION >= 0x050100 return m_lastPos.y()*devicePixelRatio(); #else return m_lastPos.y(); From 26e905a36e8a569649ee7c06b5fb6deb017bf173 Mon Sep 17 00:00:00 2001 From: Xawotihs Date: Sat, 2 Aug 2014 23:16:22 +0200 Subject: [PATCH 078/104] Update Androi build tools to 20.0.0 --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 72586c119..4fd49d65a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,7 +20,7 @@ install: - tar --absolute-names -jxf android-ndk-r9-linux-x86_64.tar.bz2 - tar -zxf android-sdk_r23.0.2-linux.tgz - $ANDROID list sdk --extended -a -- echo yes | $ANDROID update sdk --all --filter "tools","platform-tools","build-tools-19.1.0","android-10" --no-ui --force +- echo yes | $ANDROID update sdk --all --filter "tools","platform-tools","build-tools-20.0.0","android-10" --no-ui --force - sudo pip install pyjavaproperties script: ./travis-script.sh env: From 6b90956af1de9815af12023f7e1504513b40ad57 Mon Sep 17 00:00:00 2001 From: Xawotihs Date: Sat, 2 Aug 2014 23:35:25 +0200 Subject: [PATCH 079/104] Adding pulse --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 4fd49d65a..fa27a1a2b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,7 +10,7 @@ before_install: - sudo add-apt-repository --yes ppa:ubuntu-sdk-team/ppa - sudo apt-get update -qq - if [ `uname -m` = x86_64 ]; then sudo apt-get install -qq --force-yes libgd2-xpm ia32-libs ia32-libs-multiarch jq; fi -- sudo apt-get install -qq qt5-qmake qtbase5-dev qtdeclarative5-dev qttools5-dev qtmultimedia5-dev +- sudo apt-get install -qq qt5-qmake qtbase5-dev qtdeclarative5-dev qttools5-dev qtmultimedia5-dev pulse-dev - export QMAKE="qmake -qt=qt5" - wget -O sdk.lzma http://sourceforge.net/projects/minpspw/files/SDK%20%2B%20devpak/pspsdk%200.11.2/minpspw_0.11.2-amd64.tar.lzma/download - wget http://dl.google.com/android/ndk/android-ndk-r9-linux-x86_64.tar.bz2 -nv From ad8859222912682e121b4368c002db33d76e9243 Mon Sep 17 00:00:00 2001 From: Xawotihs Date: Sat, 2 Aug 2014 23:44:40 +0200 Subject: [PATCH 080/104] Replaced pulse-dev with pulseaudio --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index fa27a1a2b..36aaf47d6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,7 +10,7 @@ before_install: - sudo add-apt-repository --yes ppa:ubuntu-sdk-team/ppa - sudo apt-get update -qq - if [ `uname -m` = x86_64 ]; then sudo apt-get install -qq --force-yes libgd2-xpm ia32-libs ia32-libs-multiarch jq; fi -- sudo apt-get install -qq qt5-qmake qtbase5-dev qtdeclarative5-dev qttools5-dev qtmultimedia5-dev pulse-dev +- sudo apt-get install -qq qt5-qmake qtbase5-dev qtdeclarative5-dev qttools5-dev qtmultimedia5-dev pulseaudio - export QMAKE="qmake -qt=qt5" - wget -O sdk.lzma http://sourceforge.net/projects/minpspw/files/SDK%20%2B%20devpak/pspsdk%200.11.2/minpspw_0.11.2-amd64.tar.lzma/download - wget http://dl.google.com/android/ndk/android-ndk-r9-linux-x86_64.tar.bz2 -nv From 846ba308211c106296d752e0104900164fe45f2d Mon Sep 17 00:00:00 2001 From: Xawotihs Date: Sun, 3 Aug 2014 01:34:53 +0200 Subject: [PATCH 081/104] Tries to fix android sdk update issue --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 36aaf47d6..c9830d2b2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,7 +20,7 @@ install: - tar --absolute-names -jxf android-ndk-r9-linux-x86_64.tar.bz2 - tar -zxf android-sdk_r23.0.2-linux.tgz - $ANDROID list sdk --extended -a -- echo yes | $ANDROID update sdk --all --filter "tools","platform-tools","build-tools-20.0.0","android-10" --no-ui --force +- echo yes | $ANDROID update sdk --filter tools,platform-tools,build-tools-20.0.0,android-10 --no-ui --force - sudo pip install pyjavaproperties script: ./travis-script.sh env: From 775143355d72a708008fade939039c975c4c329e Mon Sep 17 00:00:00 2001 From: Xawotihs Date: Sun, 3 Aug 2014 01:51:41 +0200 Subject: [PATCH 082/104] Add lib pulse-dev --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index c9830d2b2..c1db5aa20 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,7 +10,7 @@ before_install: - sudo add-apt-repository --yes ppa:ubuntu-sdk-team/ppa - sudo apt-get update -qq - if [ `uname -m` = x86_64 ]; then sudo apt-get install -qq --force-yes libgd2-xpm ia32-libs ia32-libs-multiarch jq; fi -- sudo apt-get install -qq qt5-qmake qtbase5-dev qtdeclarative5-dev qttools5-dev qtmultimedia5-dev pulseaudio +- sudo apt-get install -qq qt5-qmake qtbase5-dev qtdeclarative5-dev qttools5-dev qtmultimedia5-dev pulseaudio libpulse-dev - export QMAKE="qmake -qt=qt5" - wget -O sdk.lzma http://sourceforge.net/projects/minpspw/files/SDK%20%2B%20devpak/pspsdk%200.11.2/minpspw_0.11.2-amd64.tar.lzma/download - wget http://dl.google.com/android/ndk/android-ndk-r9-linux-x86_64.tar.bz2 -nv From 7560db571c2a5a4408ca6a4d29476bf6cc66d746 Mon Sep 17 00:00:00 2001 From: Xawotihs Date: Sun, 3 Aug 2014 11:43:55 +0200 Subject: [PATCH 083/104] Trying without HTTPS to speed up SDK update --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index c1db5aa20..e3e70fef7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,7 +20,7 @@ install: - tar --absolute-names -jxf android-ndk-r9-linux-x86_64.tar.bz2 - tar -zxf android-sdk_r23.0.2-linux.tgz - $ANDROID list sdk --extended -a -- echo yes | $ANDROID update sdk --filter tools,platform-tools,build-tools-20.0.0,android-10 --no-ui --force +- echo yes | $ANDROID update sdk --filter tools,platform-tools,build-tools-20.0.0,android-10 --no-ui --force --no-https - sudo pip install pyjavaproperties script: ./travis-script.sh env: From d7628b3eb281f72547feac266b932454da0f847d Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sun, 3 Aug 2014 12:20:45 +0200 Subject: [PATCH 084/104] Fixed console with Qtmultimedia --- JGE/include/JSoundSystem.h | 6 +++--- projects/mtg/wagic-qt.pro | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/JGE/include/JSoundSystem.h b/JGE/include/JSoundSystem.h index 7c6308aab..5b50b023c 100644 --- a/JGE/include/JSoundSystem.h +++ b/JGE/include/JSoundSystem.h @@ -25,7 +25,7 @@ #elif defined USE_PHONON #include #include -#elif defined QT_CONFIG +#elif (defined QT_CONFIG) #include "QMediaPlayer" #include "QMediaPlaylist" #include "QSoundEffect" @@ -86,7 +86,7 @@ public slots: SLPlayItf playInterface; SLSeekItf seekInterface; SLVolumeItf musicVolumeInterface; -#elif defined QT_CONFIG +#elif (defined QT_CONFIG) QMediaPlaylist* playlist; QMediaPlayer* player; string fullpath; @@ -105,7 +105,7 @@ public: ~JSample(); unsigned long fileSize(); -#ifdef QT_CONFIG +#if (defined QT_CONFIG) QMediaPlayer* effect; // QSoundEffect effect; void* mSample; diff --git a/projects/mtg/wagic-qt.pro b/projects/mtg/wagic-qt.pro index 40e4c5104..9c547d11a 100644 --- a/projects/mtg/wagic-qt.pro +++ b/projects/mtg/wagic-qt.pro @@ -5,7 +5,7 @@ addExclusiveBuilds(graphics, Graphics, console, Console) INCLUDEPATH += ../../JGE/include/qt CONFIG(console, graphics|console){ - QT += core network + QT += core network multimedia QT -= gui DEFINES += CONSOLE_CONFIG @@ -55,6 +55,7 @@ else:CONFIG(console, graphics|console){ SOURCES += \ ../../JGE/src/OutputCapturer.cpp\ + ../../JGE/src/pc/JSfx.cpp\ ../../JGE/src/JGfx-fake.cpp\ ../../JGE/src/Qtconsole.cpp\ } From 202175f2a7ae2feb26c2718630699936f981b522 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Fri, 22 Aug 2014 23:26:03 +0200 Subject: [PATCH 085/104] First appveyor script and python windows package build file --- appveyor.yml | 88 +++++++++++++++++++++++ projects/mtg/bin/Res/createResourceZip.py | 33 +++++---- projects/mtg/bin/createWindowsZip.py | 80 +++++++++++++++++++++ 3 files changed, 186 insertions(+), 15 deletions(-) create mode 100644 appveyor.yml create mode 100644 projects/mtg/bin/createWindowsZip.py diff --git a/appveyor.yml b/appveyor.yml new file mode 100644 index 000000000..7413b4ad6 --- /dev/null +++ b/appveyor.yml @@ -0,0 +1,88 @@ +# Notes: +# - Minimal appveyor.yml file is an empty file. All sections are optional. +# - Indent each level of configuration with 2 spaces. Do not use tabs! +# - All section names are case-sensitive. +# - Section names should be unique on each level. + +#---------------------------------# +# environment configuration # +#---------------------------------# + +# environment variables +environment: +# environment: +# global: +# connection_string: server=12;password=13; +# service_url: https://127.0.0.1:8090 +# +# matrix: +# - db: mysql +# provider: mysql +# +# - db: mssql +# provider: mssql +# password: +# secure: $#(JFDA)jQ@#$ + +# scripts that run after cloning repository +install: + - ps: (new-object net.webclient).DownloadFile('https://raw.github.com/pypa/pip/master/contrib/get-pip.py', 'C:/get-pip.py') + - "%PYTHON%/python.exe C:/get-pip.py" + - "%PYTHON%/Scripts/pip.exe install pyjavaproperties" + +#---------------------------------# +# build configuration # +#---------------------------------# + +# build Configuration, i.e. Debug, Release, etc. +configuration: Release + +build: + project: projects/mtg/mtg_vs2010.sln # path to Visual Studio solution or project + +#---------------------------------# +# tests configuration # +#---------------------------------# + +# to disable automatic tests +test: off + + +#---------------------------------# +# artifacts configuration # +#---------------------------------# + +artifacts: + # pushing windows package + - path: projects\mtg\bin\Wagic-windows*.zip + + +#---------------------------------# +# deployment configuration # +#---------------------------------# + +# scripts to run before deployment +before_deploy: +- cd projects/mtg/bin +- "%PYTHON%/python.exe createWindowsZip.py" + +# scripts to run after deployment +after_deploy: + +# to run your custom scripts instead of provider deployments +deploy_script: + +# to disable deployment +#deploy: off + +#---------------------------------# +# global handlers # +#---------------------------------# + +# on successful build +on_success: + - do something + +# on build failure +on_failure: + - do something diff --git a/projects/mtg/bin/Res/createResourceZip.py b/projects/mtg/bin/Res/createResourceZip.py index ff5ed73d5..baf5eab1f 100644 --- a/projects/mtg/bin/Res/createResourceZip.py +++ b/projects/mtg/bin/Res/createResourceZip.py @@ -30,8 +30,8 @@ def createResZipFile(filename): zip_file.close() if rename: - os.rename('settings/options.txt', 'settings/options.orig.txt') - os.rename('player/options.txt', 'player/options.orig.txt') + os.rename('settings/options.txt', 'settings/options.orig.txt') + os.rename('player/options.txt', 'player/options.orig.txt') def getFilename(): p = Properties(); @@ -44,16 +44,18 @@ def getFilename(): -def createStandardResFile(): - print "Creating Standard Resource File" - filename = getFilename() + '.zip' +def createStandardResFile(filename): + print('Creating Standard Resource File') + if not filename: + filename = getFilename() + '.zip' createResZipFile( filename ) print >> sys.stderr, 'Created Resource Package for Standard Distribution: {0}'.format( filename) -def createIosResFile(): - print 'Preparing Resource Package for iOS' +def createIosResFile(filename): + print('Preparing Resource Package for iOS') utilities = ZipUtilities() - filename = getFilename() + '_iOS.zip' + if not filename: + filename = getFilename() + '_iOS.zip' #createResZipFile( filename ) zip_file = zipfile.ZipFile(filename, 'a', zipfile.ZIP_STORED) zip_file.write("../../iOS/Res/rules/modrules.xml", "rules/modrules.xml", zipfile.ZIP_STORED) @@ -78,10 +80,10 @@ class ZipUtilities: if file != '.svn': full_path = os.path.join(folder, file) if os.path.isfile(full_path): - print 'File added: ' + str(full_path) + print('File added: ' + str(full_path)) zip_file.write(full_path) elif os.path.isdir(full_path): - print 'Entering folder: ' + str(full_path) + print('Entering folder: ' + str(full_path)) self.addFolderToZip(zip_file, full_path) @@ -90,16 +92,17 @@ def main(): parser = OptionParser() parser.add_option("-p", "--platform", help="PLATFORM: specify custom build. (eg ios, android, etc)", metavar="PLATFORM", dest="platform") + parser.add_option("-n", "--name", help="NAME: specify resource file name", metavar="NAME", dest="name") (options, args) = parser.parse_args() if (options.platform): - if (options.platform == "ios"): - createIosResFile() - else: - createStandardResFile() + if (options.platform == "ios"): + createIosResFile(options.name) + else: + createStandardResFile(options.name) else: - createStandardResFile() + createStandardResFile(options.name) if __name__ == "__main__": main() diff --git a/projects/mtg/bin/createWindowsZip.py b/projects/mtg/bin/createWindowsZip.py new file mode 100644 index 000000000..f550bdaf5 --- /dev/null +++ b/projects/mtg/bin/createWindowsZip.py @@ -0,0 +1,80 @@ +import sys +import os +import zipfile +from pyjavaproperties import Properties +from optparse import OptionParser + +def createWindowsZipFile(filename): + utilities = ZipUtilities() + zip_file = zipfile.ZipFile(filename, 'w', zipfile.ZIP_STORED) + zip_file.write('../../../LICENSE') + zip_file.write('libpng13.dll') + zip_file.write('SDL.dll') + zip_file.write('fmod.dll') + zip_file.write('zlib1.dll') + zip_file.write('Wagic.exe') + zip_file.write('Res/' + getFilename('core') + '.zip') + zip_file.close() + +def getFilename(filename): + p = Properties(); + p.load(open('../build.number.properties')); + minor = p['build.minor']; + major = p['build.major']; + point = p['build.point']; + filename = filename + '-' + major + minor + point + return filename + +def createStandardResFile(): + print "Creating Resource File" + cmd = 'python createResourceZip.py -n ' + getFilename('core') + '.zip' + os.chdir("Res") + os.system(cmd) +# os.system("python createResourceZip.py -n resources.zip") + os.chdir("..") + print "Creating Windows Package File" + filename = getFilename('Wagic-windows') + '.zip' + createWindowsZipFile( filename ) + print >> sys.stderr, 'Created Resource Package for Standard Distribution: {0}'.format( filename) + +class ZipUtilities: + + def toZip(self, file, filename): + zip_file = zipfile.ZipFile(filename, 'w') + if os.path.isfile(file): + zip_file.write(file) + else: + self.addFolderToZip(zip_file, file) + zip_file.close() + + def addFolderToZip(self, zip_file, folder): + zip_file.writestr(folder + '/', '') + for file in os.listdir(folder): + if file != '.svn': + full_path = os.path.join(folder, file) + if os.path.isfile(full_path): + print 'File added: ' + str(full_path) + zip_file.write(full_path) + elif os.path.isdir(full_path): + print 'Entering folder: ' + str(full_path) + self.addFolderToZip(zip_file, full_path) + + +def main(): +## using optparse instead of argParse for now since python 2.7 may not be installed. + + parser = OptionParser() + parser.add_option("-p", "--platform", help="PLATFORM: specify custom build. (eg ios, android, etc)", metavar="PLATFORM", dest="platform") + + (options, args) = parser.parse_args() + + if (options.platform): + if (options.platform == "ios"): + createIosResFile() + else: + createStandardResFile() + else: + createStandardResFile() + +if __name__ == "__main__": + main() From f82d89b3dbaa1bd5b5634fe57243b7a7f9697ac8 Mon Sep 17 00:00:00 2001 From: Xawotihs Date: Sat, 23 Aug 2014 00:47:30 +0200 Subject: [PATCH 086/104] Removed empty environment section --- appveyor.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index 7413b4ad6..fc230992b 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -9,7 +9,6 @@ #---------------------------------# # environment variables -environment: # environment: # global: # connection_string: server=12;password=13; From ec4be4f6b1497f33d8b23eda1253b2268c953c5d Mon Sep 17 00:00:00 2001 From: Xawotihs Date: Sat, 23 Aug 2014 00:53:33 +0200 Subject: [PATCH 087/104] Uses real python path --- appveyor.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index fc230992b..8d6b3d34a 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -26,8 +26,8 @@ # scripts that run after cloning repository install: - ps: (new-object net.webclient).DownloadFile('https://raw.github.com/pypa/pip/master/contrib/get-pip.py', 'C:/get-pip.py') - - "%PYTHON%/python.exe C:/get-pip.py" - - "%PYTHON%/Scripts/pip.exe install pyjavaproperties" + - "C:/Python27/python.exe C:/get-pip.py" + - "C:/Python27/Scripts/pip.exe install pyjavaproperties" #---------------------------------# # build configuration # @@ -63,7 +63,7 @@ artifacts: # scripts to run before deployment before_deploy: - cd projects/mtg/bin -- "%PYTHON%/python.exe createWindowsZip.py" +- "C:/Python27/python.exe createWindowsZip.py" # scripts to run after deployment after_deploy: From ce41791fa41dc127b5e33064e5d6ce799936421e Mon Sep 17 00:00:00 2001 From: Xawotihs Date: Sat, 23 Aug 2014 09:36:46 +0200 Subject: [PATCH 088/104] Remove broken comments --- appveyor.yml | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 8d6b3d34a..f0372efcc 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -74,14 +74,3 @@ deploy_script: # to disable deployment #deploy: off -#---------------------------------# -# global handlers # -#---------------------------------# - -# on successful build -on_success: - - do something - -# on build failure -on_failure: - - do something From 0127f7aab9cba11d610288a976af31d43a88e2b3 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sun, 24 Aug 2014 16:07:26 +0200 Subject: [PATCH 089/104] Tries to activate automatic artifact deployment to github release from appveyor --- appveyor.yml | 11 ++++-- projects/mtg/bin/createWindowsZip.py | 12 ++----- upload-binaries.py | 50 ++++++++++++++++++++++++++++ 3 files changed, 61 insertions(+), 12 deletions(-) create mode 100644 upload-binaries.py diff --git a/appveyor.yml b/appveyor.yml index f0372efcc..a51b3d52c 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -23,11 +23,16 @@ # password: # secure: $#(JFDA)jQ@#$ +environment: + GH_TOKEN: + secure: dYnBDQkiY5oVjIlswzBX9BJigNtBGXgGlp1tK3XbHzrDEDrs2vaKD5m+Oz5OSz1C + # scripts that run after cloning repository install: - ps: (new-object net.webclient).DownloadFile('https://raw.github.com/pypa/pip/master/contrib/get-pip.py', 'C:/get-pip.py') - "C:/Python27/python.exe C:/get-pip.py" - "C:/Python27/Scripts/pip.exe install pyjavaproperties" + - "C:/Python27/Scripts/pip.exe install github3.py" #---------------------------------# # build configuration # @@ -62,14 +67,16 @@ artifacts: # scripts to run before deployment before_deploy: -- cd projects/mtg/bin -- "C:/Python27/python.exe createWindowsZip.py" + - cd projects/mtg/bin + - "C:/Python27/python.exe createWindowsZip.py" + - cd ../../.. # scripts to run after deployment after_deploy: # to run your custom scripts instead of provider deployments deploy_script: + - "C:/Python27/python.exe uploadBinary.py -t %GH_TOKEN% -s %APPVEYOR_REPO_COMMIT% -l projects\mtg\bin\Wagic-windows.zip -r Wagic-windows -b %APPVEYOR_REPO_BRANCH%" # to disable deployment #deploy: off diff --git a/projects/mtg/bin/createWindowsZip.py b/projects/mtg/bin/createWindowsZip.py index f550bdaf5..f89c885a7 100644 --- a/projects/mtg/bin/createWindowsZip.py +++ b/projects/mtg/bin/createWindowsZip.py @@ -30,11 +30,9 @@ def createStandardResFile(): cmd = 'python createResourceZip.py -n ' + getFilename('core') + '.zip' os.chdir("Res") os.system(cmd) -# os.system("python createResourceZip.py -n resources.zip") os.chdir("..") print "Creating Windows Package File" - filename = getFilename('Wagic-windows') + '.zip' - createWindowsZipFile( filename ) + createWindowsZipFile( 'Wagic-windows.zip' ) print >> sys.stderr, 'Created Resource Package for Standard Distribution: {0}'.format( filename) class ZipUtilities: @@ -68,13 +66,7 @@ def main(): (options, args) = parser.parse_args() - if (options.platform): - if (options.platform == "ios"): - createIosResFile() - else: - createStandardResFile() - else: - createStandardResFile() + createStandardResFile() if __name__ == "__main__": main() diff --git a/upload-binaries.py b/upload-binaries.py new file mode 100644 index 000000000..7434edc06 --- /dev/null +++ b/upload-binaries.py @@ -0,0 +1,50 @@ +import sys +import os +import zipfile +from pyjavaproperties import Properties +from optparse import OptionParser +from github3 import login + + +def suffixFilename(filename, build): + p = Properties(); + p.load(open('projects/mtg/build.number.properties')); + minor = p['build.minor']; + major = p['build.major']; + point = p['build.point']; + name, extension = os.path.splitext(filename) + filename = name + '-' + major + minor + point + '-' + build + extension + return filename + +def main(): + parser = OptionParser() + parser.add_option("-t", "--token", help="TOKEN: specify authentication token to use", metavar="TOKEN", dest="token") + parser.add_option("-s", "--sha", help="SHA: specify commit SHA", metavar="SHA", dest="sha") + parser.add_option("-l", "--local", help="FILE: specify local file path to upload", metavar="LOCAL", dest="local") + parser.add_option("-r", "--remote", help="NAME: specify remote asset name in the release.", metavar="REMOTE", dest="remote") + parser.add_option("-b", "--branch", help="BRANCH: specify branch of the commit", metavar="BRANCH", dest="branch") + + (options, args) = parser.parse_args() + + if (options.token and options.sha and options.local and options.remote and (options.branch == 'master' or options.branch == 'appveyor')): + gh = login(token = options.token) + else: + parser.print_help() + return + + repository = gh.repository('WagicProject', 'wagic') + # find reference + ref = gh.ref('tags/latest-master') + if(ref) + ref.update(options.sha) + + for r in repository.iter_releases(): + if r.name == 'latest-master' : +# filename = suffixFilename(options.remote, options.build) + filename = options.remote + with open(options.local, 'rb') as fd: + r.upload_asset('application/zip', filename , fd) + + +if __name__ == "__main__": + main() From db2b2fa3b5e6820fb0e2e8973f104522ae4eda79 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sun, 24 Aug 2014 17:07:00 +0200 Subject: [PATCH 090/104] Replaced \ by / --- appveyor.yml | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index a51b3d52c..317c109f2 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -8,21 +8,6 @@ # environment configuration # #---------------------------------# -# environment variables -# environment: -# global: -# connection_string: server=12;password=13; -# service_url: https://127.0.0.1:8090 -# -# matrix: -# - db: mysql -# provider: mysql -# -# - db: mssql -# provider: mssql -# password: -# secure: $#(JFDA)jQ@#$ - environment: GH_TOKEN: secure: dYnBDQkiY5oVjIlswzBX9BJigNtBGXgGlp1tK3XbHzrDEDrs2vaKD5m+Oz5OSz1C @@ -76,7 +61,7 @@ after_deploy: # to run your custom scripts instead of provider deployments deploy_script: - - "C:/Python27/python.exe uploadBinary.py -t %GH_TOKEN% -s %APPVEYOR_REPO_COMMIT% -l projects\mtg\bin\Wagic-windows.zip -r Wagic-windows -b %APPVEYOR_REPO_BRANCH%" + - "C:/Python27/python.exe uploadBinaries.py -t %GH_TOKEN% -s %APPVEYOR_REPO_COMMIT% -l projects/mtg/bin/Wagic-windows.zip -r Wagic-windows -b %APPVEYOR_REPO_BRANCH%" # to disable deployment #deploy: off From 2c2744f6fb3c38a5053be78e998e6233d6ad4035 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sun, 24 Aug 2014 17:40:05 +0200 Subject: [PATCH 091/104] Fixed python issue --- projects/mtg/bin/createWindowsZip.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/projects/mtg/bin/createWindowsZip.py b/projects/mtg/bin/createWindowsZip.py index f89c885a7..8b2e7e4d9 100644 --- a/projects/mtg/bin/createWindowsZip.py +++ b/projects/mtg/bin/createWindowsZip.py @@ -32,8 +32,9 @@ def createStandardResFile(): os.system(cmd) os.chdir("..") print "Creating Windows Package File" - createWindowsZipFile( 'Wagic-windows.zip' ) - print >> sys.stderr, 'Created Resource Package for Standard Distribution: {0}'.format( filename) + filename = 'Wagic-windows.zip' + createWindowsZipFile( filename ) + print >> sys.stderr, 'Created Windows Package: {0}'.format( filename) class ZipUtilities: From b37afadb0126052214c8122c89e34894f6aa182f Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sun, 24 Aug 2014 17:59:04 +0200 Subject: [PATCH 092/104] Fixed typo. --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index 317c109f2..a60159108 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -61,7 +61,7 @@ after_deploy: # to run your custom scripts instead of provider deployments deploy_script: - - "C:/Python27/python.exe uploadBinaries.py -t %GH_TOKEN% -s %APPVEYOR_REPO_COMMIT% -l projects/mtg/bin/Wagic-windows.zip -r Wagic-windows -b %APPVEYOR_REPO_BRANCH%" + - "C:/Python27/python.exe upload-binaries.py -t %GH_TOKEN% -s %APPVEYOR_REPO_COMMIT% -l projects/mtg/bin/Wagic-windows.zip -r Wagic-windows -b %APPVEYOR_REPO_BRANCH%" # to disable deployment #deploy: off From 4e727bc1647f3821c2777660c5af24c6350cdff1 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sun, 24 Aug 2014 18:23:08 +0200 Subject: [PATCH 093/104] Fixed python typo --- upload-binaries.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/upload-binaries.py b/upload-binaries.py index 7434edc06..0ddb5109a 100644 --- a/upload-binaries.py +++ b/upload-binaries.py @@ -35,7 +35,7 @@ def main(): repository = gh.repository('WagicProject', 'wagic') # find reference ref = gh.ref('tags/latest-master') - if(ref) + if(ref): ref.update(options.sha) for r in repository.iter_releases(): From c888e143a14cb8597f6ee59dbeeadc7d9c32b0e9 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sun, 24 Aug 2014 18:46:42 +0200 Subject: [PATCH 094/104] Fixed python typo --- upload-binaries.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/upload-binaries.py b/upload-binaries.py index 0ddb5109a..a40ff0cd3 100644 --- a/upload-binaries.py +++ b/upload-binaries.py @@ -34,7 +34,7 @@ def main(): repository = gh.repository('WagicProject', 'wagic') # find reference - ref = gh.ref('tags/latest-master') + ref = repository.ref('tags/latest-master') if(ref): ref.update(options.sha) From 90b08db038c9b99e19a6411515e747570970b13b Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sun, 24 Aug 2014 19:45:18 +0200 Subject: [PATCH 095/104] Updated travis to use python uploading script --- .travis.yml | 11 +++++++++-- appveyor.yml | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index e3e70fef7..891c0a654 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,6 +2,7 @@ language: cpp branches: except: - latest-master + before_install: - export PSPDEV="$TRAVIS_BUILD_DIR/opt/pspsdk" - export PSPSDK="$PSPDEV/psp/sdk" @@ -15,6 +16,7 @@ before_install: - wget -O sdk.lzma http://sourceforge.net/projects/minpspw/files/SDK%20%2B%20devpak/pspsdk%200.11.2/minpspw_0.11.2-amd64.tar.lzma/download - wget http://dl.google.com/android/ndk/android-ndk-r9-linux-x86_64.tar.bz2 -nv - wget http://dl.google.com/android/android-sdk_r23.0.2-linux.tgz -nv + install: - tar -x --xz -f sdk.lzma - tar --absolute-names -jxf android-ndk-r9-linux-x86_64.tar.bz2 @@ -22,10 +24,15 @@ install: - $ANDROID list sdk --extended -a - echo yes | $ANDROID update sdk --filter tools,platform-tools,build-tools-20.0.0,android-10 --no-ui --force --no-https - sudo pip install pyjavaproperties -script: ./travis-script.sh +- sudo pip install github3.py + env: global: secure: "fJgWlCFbde96OSQNGKUmowGX+ERPeqP+n1EOMf1+FJzOU4DdkTLRAlV5+5qnEX9jB/3mWN6iPpmG1qEz/SdDG3KHxJYs4ZU/Lu485O24zZ/+GdYBNsrvhPD9ckPGEMLDa1foEVTDnW0Dlkz3BCFcszjhtXGUJv7v6Pj6LRk1Mg8=" script: "./travis-script.sh" -after_success: ./upload-binaries.sh + +after_success: +- python upload-binaries.py -t $GH_TOKEN -s $TRAVIS_COMMIT -l core.zip -r Wagic-core.zip -b $TRAVIS_BRANCH +- python upload-binaries.py -t $GH_TOKEN -s $TRAVIS_COMMIT -l projects/mtg/Android/bin/Wagic-debug.apk -r Wagic-android.apk -b $TRAVIS_BRANCH +- python upload-binaries.py -t $GH_TOKEN -s $TRAVIS_COMMIT -l projects/mtg/psprelease.zip -r Wagic-psp.zip -b $TRAVIS_BRANCH diff --git a/appveyor.yml b/appveyor.yml index a60159108..a0802bbc0 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -61,7 +61,7 @@ after_deploy: # to run your custom scripts instead of provider deployments deploy_script: - - "C:/Python27/python.exe upload-binaries.py -t %GH_TOKEN% -s %APPVEYOR_REPO_COMMIT% -l projects/mtg/bin/Wagic-windows.zip -r Wagic-windows -b %APPVEYOR_REPO_BRANCH%" + - "C:/Python27/python.exe upload-binaries.py -t %GH_TOKEN% -s %APPVEYOR_REPO_COMMIT% -l projects/mtg/bin/Wagic-windows.zip -r Wagic-windows.zip -b %APPVEYOR_REPO_BRANCH%" # to disable deployment #deploy: off From 83e08695480ab3aee05ec06273b00d01ccf95e5e Mon Sep 17 00:00:00 2001 From: xawotihs Date: Mon, 25 Aug 2014 00:02:46 +0200 Subject: [PATCH 096/104] Updated python upload code to re-create new release 'latest-master' for each master commit --- upload-binaries.py | 39 +++++++++++++++++++++++++++------------ 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/upload-binaries.py b/upload-binaries.py index a40ff0cd3..a580e907e 100644 --- a/upload-binaries.py +++ b/upload-binaries.py @@ -5,6 +5,28 @@ from pyjavaproperties import Properties from optparse import OptionParser from github3 import login +def checkRelease(repository, remote) + for r in repository.iter_releases(): + if r.name == 'latest-master' : + release = r + for a in r.assets : + if a.name == remote : + # need to delete the old release + r.delete() + # need also to delete the tag (reference) + ref = repository.ref('tags/latest-master') + ref.delete() + release = None + + if release is None: + # now, we recreate a new one + release = r.create_release('latest-master', 'master', 'latest-master', + 'Latest successful builds of the master branch automatically uploaded by Travis or AppVeyor CI.', + False, + True) + + return release + def suffixFilename(filename, build): p = Properties(); @@ -26,24 +48,17 @@ def main(): (options, args) = parser.parse_args() - if (options.token and options.sha and options.local and options.remote and (options.branch == 'master' or options.branch == 'appveyor')): + if (options.token and options.sha and options.local and options.remote and options.branch == 'master'): gh = login(token = options.token) else: parser.print_help() return repository = gh.repository('WagicProject', 'wagic') - # find reference - ref = repository.ref('tags/latest-master') - if(ref): - ref.update(options.sha) - - for r in repository.iter_releases(): - if r.name == 'latest-master' : -# filename = suffixFilename(options.remote, options.build) - filename = options.remote - with open(options.local, 'rb') as fd: - r.upload_asset('application/zip', filename , fd) + r = checkRelease(repository, options.remote) + filename = options.remote + with open(options.local, 'rb') as fd: + r.upload_asset('application/zip', filename , fd) if __name__ == "__main__": From 870f6e3b5885efbc6582717c1d8e13e6152d1db0 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Mon, 25 Aug 2014 00:27:40 +0200 Subject: [PATCH 097/104] Fixed python typo --- upload-binaries.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/upload-binaries.py b/upload-binaries.py index a580e907e..9a8a1a4e3 100644 --- a/upload-binaries.py +++ b/upload-binaries.py @@ -5,7 +5,7 @@ from pyjavaproperties import Properties from optparse import OptionParser from github3 import login -def checkRelease(repository, remote) +def checkRelease(repository, remote): for r in repository.iter_releases(): if r.name == 'latest-master' : release = r From 3ba4aca8bc1df9ae8b74097d902827b215545cf1 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Mon, 25 Aug 2014 22:16:12 +0200 Subject: [PATCH 098/104] Fixed stupid bug in python release creation --- upload-binaries.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/upload-binaries.py b/upload-binaries.py index 9a8a1a4e3..01508f6d5 100644 --- a/upload-binaries.py +++ b/upload-binaries.py @@ -6,6 +6,7 @@ from optparse import OptionParser from github3 import login def checkRelease(repository, remote): + release = None for r in repository.iter_releases(): if r.name == 'latest-master' : release = r @@ -20,7 +21,7 @@ def checkRelease(repository, remote): if release is None: # now, we recreate a new one - release = r.create_release('latest-master', 'master', 'latest-master', + release = repository.create_release('latest-master', 'master', 'latest-master', 'Latest successful builds of the master branch automatically uploaded by Travis or AppVeyor CI.', False, True) From c018c8fcd13c00196ade0b808ff568f509deb980 Mon Sep 17 00:00:00 2001 From: "Yuriy A. Apollov" Date: Tue, 18 Nov 2014 06:51:40 +0300 Subject: [PATCH 099/104] Fix buyback payed once stayed forever. --- projects/mtg/src/MTGAbility.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/projects/mtg/src/MTGAbility.cpp b/projects/mtg/src/MTGAbility.cpp index ca1a4b5ab..a4ad3f5e2 100644 --- a/projects/mtg/src/MTGAbility.cpp +++ b/projects/mtg/src/MTGAbility.cpp @@ -4284,6 +4284,7 @@ void AbilityFactory::addAbilities(int _id, Spell * spell) } else if (card->alternateCostPaid[ManaCost::MANA_PAID_WITH_BUYBACK] > 0) { + card->alternateCostPaid[ManaCost::MANA_PAID_WITH_BUYBACK] = 0; zones->putInZone(card, zones->stack, Endzones->hand); } else if (card->alternateCostPaid[ManaCost::MANA_PAID_WITH_FLASHBACK] > 0) From 57a26b458386f526a6c33bc23e7ded3c7b8d2890 Mon Sep 17 00:00:00 2001 From: "Yuriy A. Apollov" Date: Tue, 18 Nov 2014 06:58:38 +0300 Subject: [PATCH 100/104] Add test for buyback case. --- projects/mtg/bin/Res/test/buyback.txt | 30 +++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 projects/mtg/bin/Res/test/buyback.txt diff --git a/projects/mtg/bin/Res/test/buyback.txt b/projects/mtg/bin/Res/test/buyback.txt new file mode 100644 index 000000000..ca655e5d5 --- /dev/null +++ b/projects/mtg/bin/Res/test/buyback.txt @@ -0,0 +1,30 @@ +# Cast card once with buyback and second time without. +# The card must be in the graveyard, not in the hand +[INIT] +FIRSTMAIN + +[PLAYER1] +hand:Capsize +manapool:{5}{U}{U}{U}{U} + +[PLAYER2] +inplay:Swamp,Island + +[DO] +Capsize +# pay buyback +choice 1 +Swamp +Capsize +Island + +[ASSERT] +FIRSTMAIN + +[PLAYER1] +graveyard:Capsize + +[PLAYER2] +hand:Swamp,Island + +[END] From a38e1daec700ebae33fce619295d004a0b8c1fb3 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sun, 23 Nov 2014 12:44:22 +0100 Subject: [PATCH 101/104] Updated Android build tools to 21.1.1 --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 891c0a654..ece4fd393 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,7 +22,7 @@ install: - tar --absolute-names -jxf android-ndk-r9-linux-x86_64.tar.bz2 - tar -zxf android-sdk_r23.0.2-linux.tgz - $ANDROID list sdk --extended -a -- echo yes | $ANDROID update sdk --filter tools,platform-tools,build-tools-20.0.0,android-10 --no-ui --force --no-https +- echo yes | $ANDROID update sdk --filter tools,platform-tools,build-tools-21.1.1,android-10 --no-ui --force --no-https - sudo pip install pyjavaproperties - sudo pip install github3.py From 2f230e4b3858976f95c27630beeaa36aa54b1002 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sun, 23 Nov 2014 16:23:18 +0100 Subject: [PATCH 102/104] Added buyback.txt to the list of automatic tests --- projects/mtg/bin/Res/test/_tests.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/projects/mtg/bin/Res/test/_tests.txt b/projects/mtg/bin/Res/test/_tests.txt index 8262bf086..53bb5f826 100644 --- a/projects/mtg/bin/Res/test/_tests.txt +++ b/projects/mtg/bin/Res/test/_tests.txt @@ -204,6 +204,7 @@ brass_man.txt brass_man_i161.txt briarhorn.txt bringer_of_the_red_dawn.txt +buyback.txt cage_of_hands.txt Call_to_Heel_1.txt Call_to_Heel_2.txt From d656730d3ad62396014b1160aa8b3b5c6a5f3c66 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sun, 23 Nov 2014 16:24:36 +0100 Subject: [PATCH 103/104] Fixed phonon support --- JGE/include/JSoundSystem.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/JGE/include/JSoundSystem.h b/JGE/include/JSoundSystem.h index 5b50b023c..130935813 100644 --- a/JGE/include/JSoundSystem.h +++ b/JGE/include/JSoundSystem.h @@ -105,9 +105,8 @@ public: ~JSample(); unsigned long fileSize(); -#if (defined QT_CONFIG) +#if (defined QT_CONFIG) && (!defined USE_PHONON) QMediaPlayer* effect; -// QSoundEffect effect; void* mSample; #elif defined (PSP) WAVDATA *mSample; From b8da46ac18c4b51311add45144a06a41caea73c3 Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sun, 23 Nov 2014 16:27:18 +0100 Subject: [PATCH 104/104] Fixed phonon support. --- JGE/src/pc/JSfx.cpp | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/JGE/src/pc/JSfx.cpp b/JGE/src/pc/JSfx.cpp index f7d08e3ba..c92a6fb3a 100644 --- a/JGE/src/pc/JSfx.cpp +++ b/JGE/src/pc/JSfx.cpp @@ -42,16 +42,16 @@ int JMusic::getPlayTime(){ JMusic::~JMusic() { -#ifdef QT_CONFIG - if(player) - delete player; - if(playlist) - delete playlist; -#elif defined USE_PHONON +#if defined USE_PHONON if(mOutput) delete mOutput; if(mMediaObject) delete mMediaObject; +#elif defined QT_CONFIG + if(player) + delete player; + if(playlist) + delete playlist; #elif defined WITH_FMOD JSoundSystem::GetInstance()->StopMusic(this); if (mTrack) FSOUND_Sample_Free(mTrack); @@ -76,7 +76,7 @@ JSample::JSample() JSample::~JSample() { -#ifdef QT_CONFIG +#if (defined QT_CONFIG) && (!defined USE_PHONON) if(effect) delete effect; #elif USE_PHONON @@ -155,7 +155,7 @@ void JSoundSystem::DestroySoundSystem() JMusic *JSoundSystem::LoadMusic(const char *fileName) { JMusic* music = NULL; -#ifdef QT_CONFIG +#if (defined QT_CONFIG) && (!defined USE_PHONON) music = new JMusic(); if (music) { @@ -202,7 +202,7 @@ JMusic *JSoundSystem::LoadMusic(const char *fileName) void JSoundSystem::PlayMusic(JMusic *music, bool looping) { -#ifdef QT_CONFIG +#if (defined QT_CONFIG) && (!defined USE_PHONON) if(music && music->player && music->playlist) { if(looping) @@ -242,7 +242,7 @@ void JSoundSystem::PlayMusic(JMusic *music, bool looping) void JSoundSystem::StopMusic(JMusic *music) { -#ifdef QT_CONFIG +#if (defined QT_CONFIG) && (!defined USE_PHONON) if (music && music->player && music->playlist) { music->player->stop(); @@ -299,7 +299,7 @@ void JSoundSystem::SetSfxVolume(int volume){ JSample *JSoundSystem::LoadSample(const char *fileName) { JSample* sample = NULL; -#ifdef QT_CONFIG +#if (defined QT_CONFIG) && (!defined USE_PHONON) sample = new JSample(); if (sample) { @@ -347,7 +347,7 @@ JSample *JSoundSystem::LoadSample(const char *fileName) void JSoundSystem::PlaySample(JSample *sample) { -#ifdef QT_CONFIG +#if (defined QT_CONFIG) && (!defined USE_PHONON) if(sample) { sample->effect->play();