Compare commits
95 Commits
SDL_build
...
auto_relea
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
81770a8bc4 | ||
|
|
34972176fe | ||
|
|
600aa45ff7 | ||
|
|
56ccebb720 | ||
|
|
8ef3789970 | ||
|
|
ed7769c373 | ||
|
|
5745006c35 | ||
|
|
16b243c52a | ||
|
|
bc91eaf5ca | ||
|
|
6962d1e888 | ||
|
|
4d1e8dfb36 | ||
|
|
6ff6f95044 | ||
|
|
5369983b35 | ||
|
|
46a8041c48 | ||
|
|
84185a7c78 | ||
|
|
4f41248978 | ||
|
|
92d52a78be | ||
|
|
a76594046b | ||
|
|
2214ec66f1 | ||
|
|
b8da46ac18 | ||
|
|
d656730d3a | ||
|
|
2f230e4b38 | ||
|
|
494f64acbd | ||
|
|
50978200d4 | ||
|
|
a38e1daec7 | ||
|
|
57a26b4583 | ||
|
|
c018c8fcd1 | ||
|
|
3ba4aca8bc | ||
|
|
870f6e3b58 | ||
|
|
83e0869548 | ||
|
|
90b08db038 | ||
|
|
c888e143a1 | ||
|
|
4e727bc164 | ||
|
|
b37afadb01 | ||
|
|
2c2744f6fb | ||
|
|
db2b2fa3b5 | ||
|
|
0127f7aab9 | ||
|
|
ce41791fa4 | ||
|
|
ec4be4f6b1 | ||
|
|
f82d89b3db | ||
|
|
202175f2a7 | ||
|
|
b91a9aeed4 | ||
|
|
6a1534750f | ||
|
|
1cb20e4138 | ||
|
|
8458745bc4 | ||
|
|
2d61ff6e2e | ||
|
|
c5fe5243a9 | ||
|
|
a6a25be3d3 | ||
|
|
63694785c6 | ||
|
|
c68f83491e | ||
|
|
257082ea02 | ||
|
|
e5fe25dfba | ||
|
|
93ba3d107d | ||
|
|
fcf0078f26 | ||
|
|
d8c1933abc | ||
|
|
d7628b3eb2 | ||
|
|
7560db571c | ||
|
|
775143355d | ||
|
|
846ba30821 | ||
|
|
ad88592229 | ||
|
|
6b90956af1 | ||
|
|
26e905a36e | ||
|
|
1a9ff38f0c | ||
|
|
8b22d032cd | ||
|
|
8d58baf4a3 | ||
|
|
a447a0c9af | ||
|
|
555fb3ae93 | ||
|
|
7053531a4d | ||
|
|
7d4e5177b9 | ||
|
|
06f30eca3a | ||
|
|
ac5c14b977 | ||
|
|
c3d810bd3b | ||
|
|
1e24f25c18 | ||
|
|
28db884498 | ||
|
|
36ecc1ffef | ||
|
|
9ec6803a02 | ||
|
|
e87996a7f2 | ||
|
|
f2a5273029 | ||
|
|
9bc750da9a | ||
|
|
539c5bd18a | ||
|
|
bdc1ada090 | ||
|
|
2efc24a1ce | ||
|
|
63561e6122 | ||
|
|
d2390b1227 | ||
|
|
d0799ea3f2 | ||
|
|
44cbfbb1fb | ||
|
|
b078dd1f6a | ||
|
|
225dd23753 | ||
|
|
51b4755242 | ||
|
|
8f233b3027 | ||
|
|
197540763e | ||
|
|
5d7667dc01 | ||
|
|
18383579e9 | ||
|
|
03d4f8ffa1 | ||
|
|
a8cff5ed8e |
88
.travis.yml
88
.travis.yml
@@ -1,30 +1,68 @@
|
|||||||
language: cpp
|
language: cpp
|
||||||
branches:
|
|
||||||
except:
|
|
||||||
- latest-master
|
|
||||||
before_install:
|
|
||||||
- export PSPDEV="$TRAVIS_BUILD_DIR/opt/pspsdk"
|
|
||||||
- export PSPSDK="$PSPDEV/psp/sdk"
|
|
||||||
- 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
|
|
||||||
- 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
|
|
||||||
- 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
|
|
||||||
- sudo pip install pyjavaproperties
|
|
||||||
script: ./travis-script.sh
|
|
||||||
env:
|
env:
|
||||||
global:
|
global:
|
||||||
secure: "fJgWlCFbde96OSQNGKUmowGX+ERPeqP+n1EOMf1+FJzOU4DdkTLRAlV5+5qnEX9jB/3mWN6iPpmG1qEz/SdDG3KHxJYs4ZU/Lu485O24zZ/+GdYBNsrvhPD9ckPGEMLDa1foEVTDnW0Dlkz3BCFcszjhtXGUJv7v6Pj6LRk1Mg8="
|
secure: "fJgWlCFbde96OSQNGKUmowGX+ERPeqP+n1EOMf1+FJzOU4DdkTLRAlV5+5qnEX9jB/3mWN6iPpmG1qEz/SdDG3KHxJYs4ZU/Lu485O24zZ/+GdYBNsrvhPD9ckPGEMLDa1foEVTDnW0Dlkz3BCFcszjhtXGUJv7v6Pj6LRk1Mg8="
|
||||||
|
matrix:
|
||||||
|
- BUILD_TYPE=PSP
|
||||||
|
- BUILD_TYPE=Android
|
||||||
|
- BUILD_TYPE=Qt
|
||||||
|
|
||||||
script: "./travis-script.sh"
|
branches:
|
||||||
after_success: ./upload-binaries.sh
|
except:
|
||||||
|
- latest-master
|
||||||
|
|
||||||
|
before_install:
|
||||||
|
- sudo apt-get update -qq
|
||||||
|
# Building for PSP here
|
||||||
|
- if [ "$BUILD_TYPE" == "PSP" ]; then
|
||||||
|
export PSPDEV="$TRAVIS_BUILD_DIR/opt/pspsdk" &&
|
||||||
|
export PSPSDK="$PSPDEV/psp/sdk" &&
|
||||||
|
export PATH="$PATH:$PSPDEV/bin:$PSPSDK/bin" &&
|
||||||
|
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;
|
||||||
|
fi
|
||||||
|
# Building for Android here
|
||||||
|
- if [ "$BUILD_TYPE" == "Android" ]; then
|
||||||
|
export ANDROID="android-sdk-linux/tools/android" &&
|
||||||
|
if [ `uname -m` = x86_64 ]; then sudo apt-get install -qq --force-yes libgd2-xpm ia32-libs ia32-libs-multiarch jq; fi &&
|
||||||
|
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;
|
||||||
|
fi
|
||||||
|
# Building for Qt here
|
||||||
|
- if [ "$BUILD_TYPE" == "Qt" ]; then
|
||||||
|
sudo add-apt-repository --yes ppa:ubuntu-sdk-team/ppa &&
|
||||||
|
sudo apt-get update -qq &&
|
||||||
|
sudo apt-get install -qq qt5-qmake qtbase5-dev qtdeclarative5-dev qttools5-dev qtmultimedia5-dev pulseaudio libpulse-dev &&
|
||||||
|
export QMAKE="qmake -qt=qt5";
|
||||||
|
fi
|
||||||
|
|
||||||
|
install:
|
||||||
|
# Building for PSP here
|
||||||
|
- if [ "$BUILD_TYPE" == "PSP" ]; then
|
||||||
|
tar -x --xz -f sdk.lzma;
|
||||||
|
fi
|
||||||
|
- if [ "$BUILD_TYPE" == "Android" ]; then
|
||||||
|
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-21.1.1,android-10 --no-ui --force --no-https;
|
||||||
|
fi
|
||||||
|
- sudo pip install pyjavaproperties
|
||||||
|
- sudo pip install github3.py
|
||||||
|
script: ./travis-script.sh
|
||||||
|
|
||||||
|
matrix:
|
||||||
|
fast_finish: true
|
||||||
|
|
||||||
|
deploy:
|
||||||
|
provider: releases
|
||||||
|
api-key:
|
||||||
|
secure: "gzfDEihpfTmoO6CSjTNpHSlLTPtQUZUqTlmD91CQby6+znDsOy4xsqj10MNXe+l/3KYny1DtM48nxNKeVjsyeYg66TTzKsrgMVzt6Ah5CBhSXO99/TiaMJmSXmMO7GGfKDct190Dqej1gbR7AMd38DOYe2vpR0LX+Lf3gzDVLoU="
|
||||||
|
file:
|
||||||
|
- ${TRAVIS_BUILD_DIR}/core.zip
|
||||||
|
- ${TRAVIS_BUILD_DIR}/projects/mtg/Android/bin/Wagic-debug.apk
|
||||||
|
- ${TRAVIS_BUILD_DIR}/projects/mtg/psprelease.zip
|
||||||
|
skip_cleanup: true
|
||||||
|
on:
|
||||||
|
repo: WagicProject/wagic
|
||||||
|
tags: false
|
||||||
|
branch: auto_releases
|
||||||
|
|||||||
@@ -23,28 +23,32 @@
|
|||||||
#include "SLES/OpenSLES_Android.h"
|
#include "SLES/OpenSLES_Android.h"
|
||||||
|
|
||||||
#elif defined USE_PHONON
|
#elif defined USE_PHONON
|
||||||
#include <phonon/AudioOutput>
|
#include <phonon/AudioOutput>
|
||||||
#include <phonon/MediaObject>
|
#include <phonon/MediaObject>
|
||||||
|
#elif (defined QT_CONFIG)
|
||||||
|
#include "QMediaPlayer"
|
||||||
|
#include "QMediaPlaylist"
|
||||||
|
#include "QSoundEffect"
|
||||||
#elif defined WIN32
|
#elif defined WIN32
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#define WITH_FMOD
|
#define WITH_FMOD
|
||||||
#elif defined (PSP)
|
#elif defined (PSP)
|
||||||
#include <pspgu.h>
|
#include <pspgu.h>
|
||||||
#include <pspkernel.h>
|
#include <pspkernel.h>
|
||||||
#include <pspdisplay.h>
|
#include <pspdisplay.h>
|
||||||
#include <pspdebug.h>
|
#include <pspdebug.h>
|
||||||
#include <pspctrl.h>
|
#include <pspctrl.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <pspaudiolib.h>
|
#include <pspaudiolib.h>
|
||||||
#include <psprtc.h>
|
#include <psprtc.h>
|
||||||
|
|
||||||
#include "JAudio.h"
|
#include "JAudio.h"
|
||||||
#include "JMP3.h"
|
#include "JMP3.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef WITH_FMOD
|
#ifdef WITH_FMOD
|
||||||
#include "../Dependencies/include/fmod.h"
|
#include "../Dependencies/include/fmod.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//------------------------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------------------------
|
||||||
@@ -67,7 +71,7 @@ public:
|
|||||||
#ifdef USE_PHONON
|
#ifdef USE_PHONON
|
||||||
Phonon::AudioOutput* mOutput;
|
Phonon::AudioOutput* mOutput;
|
||||||
Phonon::MediaObject* mMediaObject;
|
Phonon::MediaObject* mMediaObject;
|
||||||
public slots:
|
public slots:
|
||||||
void seekAtTheBegining();
|
void seekAtTheBegining();
|
||||||
#elif defined (PSP)
|
#elif defined (PSP)
|
||||||
JMP3* mTrack;
|
JMP3* mTrack;
|
||||||
@@ -82,6 +86,10 @@ public:
|
|||||||
SLPlayItf playInterface;
|
SLPlayItf playInterface;
|
||||||
SLSeekItf seekInterface;
|
SLSeekItf seekInterface;
|
||||||
SLVolumeItf musicVolumeInterface;
|
SLVolumeItf musicVolumeInterface;
|
||||||
|
#elif (defined QT_CONFIG)
|
||||||
|
QMediaPlaylist* playlist;
|
||||||
|
QMediaPlayer* player;
|
||||||
|
string fullpath;
|
||||||
#else
|
#else
|
||||||
void* mTrack;
|
void* mTrack;
|
||||||
#endif //WITH_FMOD
|
#endif //WITH_FMOD
|
||||||
@@ -92,13 +100,15 @@ public:
|
|||||||
//------------------------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------------------------
|
||||||
class JSample
|
class JSample
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
JSample();
|
JSample();
|
||||||
~JSample();
|
~JSample();
|
||||||
|
|
||||||
unsigned long fileSize();
|
unsigned long fileSize();
|
||||||
|
#if (defined QT_CONFIG) && (!defined USE_PHONON)
|
||||||
#if defined (PSP)
|
QMediaPlayer* effect;
|
||||||
|
void* mSample;
|
||||||
|
#elif defined (PSP)
|
||||||
WAVDATA *mSample;
|
WAVDATA *mSample;
|
||||||
#elif defined (IOS)
|
#elif defined (IOS)
|
||||||
std::string filename;
|
std::string filename;
|
||||||
@@ -133,126 +143,128 @@ class JSoundSystem
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
/// Get the singleton instance
|
/// Get the singleton instance
|
||||||
///
|
///
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
static JSoundSystem* GetInstance();
|
static JSoundSystem* GetInstance();
|
||||||
|
|
||||||
static void Destroy();
|
static void Destroy();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
/// Load music.
|
/// Load music.
|
||||||
///
|
///
|
||||||
/// @note MP3 is the only supported format for the moment.
|
/// @note MP3 is the only supported format for the moment.
|
||||||
///
|
///
|
||||||
/// @param filename - Name of the music file.
|
/// @param filename - Name of the music file.
|
||||||
///
|
///
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
JMusic *LoadMusic(const char *fileName);
|
JMusic *LoadMusic(const char *fileName);
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
/// Delete music from memory.
|
/// Delete music from memory.
|
||||||
///
|
///
|
||||||
/// @param music - Music to be deleted.
|
/// @param music - Music to be deleted.
|
||||||
///
|
///
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
//void FreeMusic(JMusic *music);
|
//void FreeMusic(JMusic *music);
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
/// Play music.
|
/// Play music.
|
||||||
///
|
///
|
||||||
/// @param music - Music to be played.
|
/// @param music - Music to be played.
|
||||||
/// @param looping - Play the music in a loop.
|
/// @param looping - Play the music in a loop.
|
||||||
///
|
///
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
void PlayMusic(JMusic *music, bool looping = false);
|
void PlayMusic(JMusic *music, bool looping = false);
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
/// Stop playing.
|
/// Stop playing.
|
||||||
///
|
///
|
||||||
/// @param music - Music to be stopped.
|
/// @param music - Music to be stopped.
|
||||||
///
|
///
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
void StopMusic(JMusic *music);
|
void StopMusic(JMusic *music);
|
||||||
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
/// Resume playing.
|
/// Resume playing.
|
||||||
///
|
///
|
||||||
/// @param music - Music to be resumed.
|
/// @param music - Music to be resumed.
|
||||||
///
|
///
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
void ResumeMusic(JMusic *music);
|
void ResumeMusic(JMusic *music);
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
/// Pause playing.
|
/// Pause playing.
|
||||||
///
|
///
|
||||||
/// @param music - Music to be paused.
|
/// @param music - Music to be paused.
|
||||||
///
|
///
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
void PauseMusic(JMusic *music);
|
void PauseMusic(JMusic *music);
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
/// Load sound effect.
|
/// Load sound effect.
|
||||||
///
|
///
|
||||||
/// @note WAV sound effect only.
|
/// @note WAV sound effect only.
|
||||||
///
|
///
|
||||||
/// @param fileName - Sound effect for loading.
|
/// @param fileName - Sound effect for loading.
|
||||||
///
|
///
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
JSample *LoadSample(const char *fileName);
|
JSample *LoadSample(const char *fileName);
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
/// Delete sound effect from memory.
|
/// Delete sound effect from memory.
|
||||||
///
|
///
|
||||||
/// @param sample - Sound to be deleted.
|
/// @param sample - Sound to be deleted.
|
||||||
///
|
///
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
//void FreeSample(JSample *sample);
|
//void FreeSample(JSample *sample);
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
/// Play sound effect.
|
/// Play sound effect.
|
||||||
///
|
///
|
||||||
/// @param sample - Sound for playing.
|
/// @param sample - Sound for playing.
|
||||||
///
|
///
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
void PlaySample(JSample *sample);
|
void PlaySample(JSample *sample);
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
/// Set volume for audio playback.
|
/// Set volume for audio playback.
|
||||||
///
|
///
|
||||||
/// @param volume - New volume.
|
/// @param volume - New volume.
|
||||||
///
|
///
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
void SetVolume(int 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:
|
protected:
|
||||||
JSoundSystem();
|
JSoundSystem();
|
||||||
~JSoundSystem();
|
~JSoundSystem();
|
||||||
|
|
||||||
void InitSoundSystem();
|
void InitSoundSystem();
|
||||||
void DestroySoundSystem();
|
void DestroySoundSystem();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
#if (defined PSP || defined ANDROID)
|
||||||
JMusic *mCurrentMusic;
|
JMusic *mCurrentMusic;
|
||||||
JSample *mCurrentSample;
|
JSample *mCurrentSample;
|
||||||
|
#endif
|
||||||
|
|
||||||
int mVolume;
|
int mVolume;
|
||||||
int mMusicVolume;
|
int mMusicVolume;
|
||||||
int mSampleVolume;
|
int mSampleVolume;
|
||||||
|
|
||||||
|
|
||||||
static JSoundSystem* mInstance;
|
static JSoundSystem* mInstance;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#ifndef THREADING_H
|
#ifndef THREADING_H
|
||||||
#define THREADING_H
|
#define THREADING_H
|
||||||
|
|
||||||
#if !defined(PSP) && !defined(QT_CONFIG) && !(__cplusplus > 199711L) && !defined(SDL_CONFIG)
|
#if !defined(PSP) && !defined(QT_CONFIG) && !(__cplusplus > 199711L)
|
||||||
#include <boost/date_time.hpp>
|
#include <boost/date_time.hpp>
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
@@ -611,226 +611,6 @@ namespace boost
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#elif defined(SDL_CONFIG)
|
|
||||||
#include "SDL_thread.h"
|
|
||||||
#include "SDL_timer.h"
|
|
||||||
|
|
||||||
#include <boost/bind.hpp>
|
|
||||||
#include <boost/shared_ptr.hpp>
|
|
||||||
|
|
||||||
#include "../include/JLogger.h"
|
|
||||||
|
|
||||||
namespace boost
|
|
||||||
{
|
|
||||||
template <class Mutex>
|
|
||||||
struct unique_lock
|
|
||||||
{
|
|
||||||
unique_lock(Mutex& inMutex) : mMutex(&inMutex)
|
|
||||||
{
|
|
||||||
mMutex->lock();
|
|
||||||
}
|
|
||||||
|
|
||||||
~unique_lock()
|
|
||||||
{
|
|
||||||
mMutex->unlock();
|
|
||||||
}
|
|
||||||
|
|
||||||
Mutex* mMutex;
|
|
||||||
};
|
|
||||||
|
|
||||||
class mutex
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
typedef unique_lock<mutex> scoped_lock;
|
|
||||||
|
|
||||||
mutex()
|
|
||||||
: mpSDLMutex(0)
|
|
||||||
{
|
|
||||||
mpSDLMutex = SDL_CreateMutex();
|
|
||||||
}
|
|
||||||
|
|
||||||
~mutex()
|
|
||||||
{
|
|
||||||
SDL_DestroyMutex(mpSDLMutex);
|
|
||||||
}
|
|
||||||
|
|
||||||
void lock()
|
|
||||||
{
|
|
||||||
SDL_mutexP(mpSDLMutex);
|
|
||||||
}
|
|
||||||
|
|
||||||
void unlock()
|
|
||||||
{
|
|
||||||
SDL_mutexV(mpSDLMutex);
|
|
||||||
}
|
|
||||||
|
|
||||||
SDL_mutex* mpSDLMutex;
|
|
||||||
|
|
||||||
private:
|
|
||||||
mutex(mutex const&);
|
|
||||||
mutex& operator=(mutex const&);
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class recursive_mutex
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
typedef unique_lock<recursive_mutex> scoped_lock;
|
|
||||||
|
|
||||||
recursive_mutex()
|
|
||||||
: mpSDLMutex(0)
|
|
||||||
{
|
|
||||||
mpSDLMutex = SDL_CreateMutex();
|
|
||||||
}
|
|
||||||
|
|
||||||
~recursive_mutex()
|
|
||||||
{
|
|
||||||
SDL_DestroyMutex(mpSDLMutex);
|
|
||||||
}
|
|
||||||
|
|
||||||
void lock()
|
|
||||||
{
|
|
||||||
SDL_mutexP(mpSDLMutex);
|
|
||||||
}
|
|
||||||
|
|
||||||
void unlock()
|
|
||||||
{
|
|
||||||
SDL_mutexV(mpSDLMutex);
|
|
||||||
}
|
|
||||||
|
|
||||||
SDL_mutex* mpSDLMutex;
|
|
||||||
|
|
||||||
private:
|
|
||||||
recursive_mutex(recursive_mutex const&);
|
|
||||||
recursive_mutex& operator=(recursive_mutex const&);
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
** Emulating boost::thread configuration glue, with some shortcuts
|
|
||||||
** This detail namespace is a distillation of boost's thread.hpp, thread_data.hpp.
|
|
||||||
*/
|
|
||||||
namespace detail
|
|
||||||
{
|
|
||||||
struct thread_data_base
|
|
||||||
{
|
|
||||||
thread_data_base()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual ~thread_data_base()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual void run() = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef boost::shared_ptr<detail::thread_data_base> thread_data_ptr;
|
|
||||||
|
|
||||||
template<typename F>
|
|
||||||
class thread_data : public detail::thread_data_base
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
thread_data(F f_) : f(f_)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void run()
|
|
||||||
{
|
|
||||||
f();
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
F f;
|
|
||||||
|
|
||||||
void operator=(thread_data&);
|
|
||||||
thread_data(thread_data&);
|
|
||||||
};
|
|
||||||
|
|
||||||
} //namespace detail
|
|
||||||
|
|
||||||
/**
|
|
||||||
** A simplistic implementation of boost::thread, using QThread.
|
|
||||||
**
|
|
||||||
*/
|
|
||||||
class thread
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
** 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
|
|
||||||
{
|
|
||||||
CallbackData(detail::thread_data_ptr inThreadInfo)
|
|
||||||
: mThreadInfo(inThreadInfo)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
detail::thread_data_ptr mThreadInfo;
|
|
||||||
};
|
|
||||||
|
|
||||||
public:
|
|
||||||
|
|
||||||
thread()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
template <class F,class A1>
|
|
||||||
thread(F f, A1 a1) : mThreadInfo(make_thread_info(boost::bind(boost::type<void>(), f, a1)))
|
|
||||||
{
|
|
||||||
mpSDLThread = SDL_CreateThread(ThreadProc, &mThreadInfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
~thread()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void join()
|
|
||||||
{
|
|
||||||
int status;
|
|
||||||
SDL_WaitThread(mpSDLThread, &status);
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
static int ThreadProc(void *inParam)
|
|
||||||
{
|
|
||||||
detail::thread_data_ptr* threadInfo = reinterpret_cast<detail::thread_data_ptr* >(inParam);
|
|
||||||
CallbackData callbackData(*threadInfo);
|
|
||||||
|
|
||||||
LOG("Entering thread::ThreadProc");
|
|
||||||
callbackData.mThreadInfo->run();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename F>
|
|
||||||
static inline detail::thread_data_ptr make_thread_info(F f)
|
|
||||||
{
|
|
||||||
return detail::thread_data_ptr(new detail::thread_data<F>(f));
|
|
||||||
}
|
|
||||||
|
|
||||||
detail::thread_data_ptr mThreadInfo;
|
|
||||||
SDL_Thread* mpSDLThread;
|
|
||||||
};
|
|
||||||
|
|
||||||
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)
|
|
||||||
{
|
|
||||||
SDL_Delay(time);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif // THREADING_H
|
#endif // THREADING_H
|
||||||
|
|||||||
@@ -137,14 +137,14 @@ private slots:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
int lastPosx(){
|
int lastPosx(){
|
||||||
#if QT_VERSION >= 0x050000
|
#if QT_VERSION >= 0x050100
|
||||||
return m_lastPos.x()*devicePixelRatio();
|
return m_lastPos.x()*devicePixelRatio();
|
||||||
#else
|
#else
|
||||||
return m_lastPos.x();
|
return m_lastPos.x();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
int lastPosy(){
|
int lastPosy(){
|
||||||
#if QT_VERSION >= 0x050000
|
#if QT_VERSION >= 0x050100
|
||||||
return m_lastPos.y()*devicePixelRatio();
|
return m_lastPos.y()*devicePixelRatio();
|
||||||
#else
|
#else
|
||||||
return m_lastPos.y();
|
return m_lastPos.y();
|
||||||
|
|||||||
@@ -22,6 +22,8 @@
|
|||||||
JMusic::JMusic()
|
JMusic::JMusic()
|
||||||
#ifdef USE_PHONON
|
#ifdef USE_PHONON
|
||||||
: mOutput(0), mMediaObject(0)
|
: mOutput(0), mMediaObject(0)
|
||||||
|
#elif defined QT_CONFIG
|
||||||
|
: playlist(0), player(0)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@@ -40,11 +42,16 @@ int JMusic::getPlayTime(){
|
|||||||
|
|
||||||
JMusic::~JMusic()
|
JMusic::~JMusic()
|
||||||
{
|
{
|
||||||
#ifdef USE_PHONON
|
#if defined USE_PHONON
|
||||||
if(mOutput)
|
if(mOutput)
|
||||||
delete mOutput;
|
delete mOutput;
|
||||||
if(mMediaObject)
|
if(mMediaObject)
|
||||||
delete mMediaObject;
|
delete mMediaObject;
|
||||||
|
#elif defined QT_CONFIG
|
||||||
|
if(player)
|
||||||
|
delete player;
|
||||||
|
if(playlist)
|
||||||
|
delete playlist;
|
||||||
#elif defined WITH_FMOD
|
#elif defined WITH_FMOD
|
||||||
JSoundSystem::GetInstance()->StopMusic(this);
|
JSoundSystem::GetInstance()->StopMusic(this);
|
||||||
if (mTrack) FSOUND_Sample_Free(mTrack);
|
if (mTrack) FSOUND_Sample_Free(mTrack);
|
||||||
@@ -69,7 +76,10 @@ JSample::JSample()
|
|||||||
|
|
||||||
JSample::~JSample()
|
JSample::~JSample()
|
||||||
{
|
{
|
||||||
#ifdef USE_PHONON
|
#if (defined QT_CONFIG) && (!defined USE_PHONON)
|
||||||
|
if(effect)
|
||||||
|
delete effect;
|
||||||
|
#elif USE_PHONON
|
||||||
if(mOutput)
|
if(mOutput)
|
||||||
delete mOutput;
|
delete mOutput;
|
||||||
if(mMediaObject)
|
if(mMediaObject)
|
||||||
@@ -144,65 +154,84 @@ void JSoundSystem::DestroySoundSystem()
|
|||||||
|
|
||||||
JMusic *JSoundSystem::LoadMusic(const char *fileName)
|
JMusic *JSoundSystem::LoadMusic(const char *fileName)
|
||||||
{
|
{
|
||||||
#ifdef USE_PHONON
|
JMusic* music = NULL;
|
||||||
JMusic* music = new JMusic();
|
#if (defined QT_CONFIG) && (!defined USE_PHONON)
|
||||||
if (music)
|
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)
|
|
||||||
{
|
{
|
||||||
JFileSystem* fileSystem = JFileSystem::GetInstance();
|
music->player = new QMediaPlayer;
|
||||||
if (fileSystem->OpenFile(fileName))
|
music->player->setVolume(100);
|
||||||
{
|
music->playlist = new QMediaPlaylist;
|
||||||
int size = fileSystem->GetFileSize();
|
music->fullpath = JFileSystem::GetInstance()->GetResourceFile(fileName);
|
||||||
char *buffer = new char[size];
|
music->playlist->addMedia(QUrl::fromLocalFile(music->fullpath.c_str()));
|
||||||
fileSystem->ReadFile(buffer, size);
|
music->playlist->setCurrentIndex(0);
|
||||||
music->mTrack = FSOUND_Sample_Load(FSOUND_UNMANAGED, buffer, FSOUND_LOADMEMORY, 0, size);
|
}
|
||||||
|
#elif defined USE_PHONON
|
||||||
delete[] buffer;
|
music = new JMusic();
|
||||||
fileSystem->CloseFile();
|
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
|
#else
|
||||||
cerr << fileName << endl;
|
cerr << fileName << endl;
|
||||||
return NULL;
|
|
||||||
#endif
|
#endif
|
||||||
|
return music;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void JSoundSystem::PlayMusic(JMusic *music, bool looping)
|
void JSoundSystem::PlayMusic(JMusic *music, bool looping)
|
||||||
{
|
{
|
||||||
#ifdef USE_PHONON
|
#if (defined QT_CONFIG) && (!defined USE_PHONON)
|
||||||
if (music && music->mMediaObject && music->mOutput)
|
if(music && music->player && music->playlist)
|
||||||
{
|
|
||||||
if(looping)
|
|
||||||
{
|
{
|
||||||
music->mMediaObject->connect(music->mMediaObject, SIGNAL(aboutToFinish()), music, SLOT(seekAtTheBegining()));
|
if(looping)
|
||||||
|
music->playlist->setPlaybackMode(QMediaPlaylist::Loop);
|
||||||
|
|
||||||
|
music->player->setPlaylist(music->playlist);
|
||||||
|
music->player->play();
|
||||||
}
|
}
|
||||||
music->mOutput->setVolume((qreal)mVolume*0.01);
|
#elif USE_PHONON
|
||||||
music->mMediaObject->play();
|
if (music && music->mMediaObject && music->mOutput)
|
||||||
|
|
||||||
}
|
|
||||||
#elif (defined WITH_FMOD)
|
|
||||||
if (music && music->mTrack)
|
|
||||||
{
|
{
|
||||||
mChannel = FSOUND_PlaySound(mChannel, music->mTrack);
|
if(looping)
|
||||||
SetMusicVolume(mVolume);
|
{
|
||||||
|
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);
|
#elif (defined WITH_FMOD)
|
||||||
else
|
if (music && music->mTrack)
|
||||||
FSOUND_SetLoopMode(mChannel, FSOUND_LOOP_OFF);
|
{
|
||||||
|
mChannel = FSOUND_PlaySound(mChannel, music->mTrack);
|
||||||
|
SetMusicVolume(mVolume);
|
||||||
|
|
||||||
|
if (looping)
|
||||||
|
FSOUND_SetLoopMode(mChannel, FSOUND_LOOP_NORMAL);
|
||||||
|
else
|
||||||
|
FSOUND_SetLoopMode(mChannel, FSOUND_LOOP_OFF);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
music = 0;
|
music = 0;
|
||||||
@@ -213,7 +242,12 @@ void JSoundSystem::PlayMusic(JMusic *music, bool looping)
|
|||||||
|
|
||||||
void JSoundSystem::StopMusic(JMusic *music)
|
void JSoundSystem::StopMusic(JMusic *music)
|
||||||
{
|
{
|
||||||
#ifdef USE_PHONON
|
#if (defined QT_CONFIG) && (!defined USE_PHONON)
|
||||||
|
if (music && music->player && music->playlist)
|
||||||
|
{
|
||||||
|
music->player->stop();
|
||||||
|
}
|
||||||
|
#elif defined USE_PHONON
|
||||||
if (music && music->mMediaObject && music->mOutput)
|
if (music && music->mMediaObject && music->mOutput)
|
||||||
{
|
{
|
||||||
music->mMediaObject->stop();
|
music->mMediaObject->stop();
|
||||||
@@ -264,47 +298,61 @@ void JSoundSystem::SetSfxVolume(int volume){
|
|||||||
|
|
||||||
JSample *JSoundSystem::LoadSample(const char *fileName)
|
JSample *JSoundSystem::LoadSample(const char *fileName)
|
||||||
{
|
{
|
||||||
#if (defined USE_PHONON)
|
JSample* sample = NULL;
|
||||||
JSample* sample = new JSample();
|
#if (defined QT_CONFIG) && (!defined USE_PHONON)
|
||||||
if (sample)
|
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)
|
|
||||||
{
|
{
|
||||||
JFileSystem* fileSystem = JFileSystem::GetInstance();
|
string fullpath = JFileSystem::GetInstance()->GetResourceFile(fileName);
|
||||||
if (fileSystem->OpenFile(fileName))
|
sample->effect = new QMediaPlayer;
|
||||||
{
|
sample->effect->setMedia(QUrl::fromLocalFile(fullpath.c_str()));
|
||||||
int size = fileSystem->GetFileSize();
|
sample->effect->setVolume(100);
|
||||||
char *buffer = new char[size];
|
sample->mSample = &(sample->effect);
|
||||||
fileSystem->ReadFile(buffer, size);
|
}
|
||||||
sample->mSample = FSOUND_Sample_Load(FSOUND_UNMANAGED, buffer, FSOUND_LOADMEMORY, 0, size);
|
#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;
|
delete[] buffer;
|
||||||
fileSystem->CloseFile();
|
fileSystem->CloseFile();
|
||||||
}else
|
}else
|
||||||
sample->mSample = NULL;
|
sample->mSample = NULL;
|
||||||
|
|
||||||
}
|
}
|
||||||
return sample;
|
|
||||||
#else
|
#else
|
||||||
cerr << fileName << endl;
|
cerr << fileName << endl;
|
||||||
return NULL;
|
|
||||||
#endif
|
#endif
|
||||||
|
return sample;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void JSoundSystem::PlaySample(JSample *sample)
|
void JSoundSystem::PlaySample(JSample *sample)
|
||||||
{
|
{
|
||||||
#ifdef USE_PHONON
|
#if (defined QT_CONFIG) && (!defined USE_PHONON)
|
||||||
|
if(sample)
|
||||||
|
{
|
||||||
|
sample->effect->play();
|
||||||
|
}
|
||||||
|
#elif defined USE_PHONON
|
||||||
if (sample && sample->mMediaObject && sample->mOutput)
|
if (sample && sample->mMediaObject && sample->mOutput)
|
||||||
{
|
{
|
||||||
sample->mOutput->setVolume((qreal)mSampleVolume*0.01);
|
sample->mOutput->setVolume((qreal)mSampleVolume*0.01);
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
|
|
||||||
[](https://travis-ci.org/WagicProject/wagic)
|
[](https://travis-ci.org/WagicProject/wagic)
|
||||||
|
[](https://ci.appveyor.com/project/xawotihs/wagic/branch/master)
|
||||||
|
|
||||||
|
|
||||||
## Description
|
## Description
|
||||||
|
|
||||||
@@ -19,3 +21,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
|
Info, downloads, discussions and more at http://wololo.net/forum/index.php
|
||||||
|
|
||||||
-
|
-
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### Sample round play-through video
|
||||||
|
[](http://www.youtube.com/watch?v=WUFSAPZuDIk)
|
||||||
|
|||||||
68
appveyor.yml
Normal file
68
appveyor.yml
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
# 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:
|
||||||
|
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 #
|
||||||
|
#---------------------------------#
|
||||||
|
|
||||||
|
# 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
|
||||||
|
- "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 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
|
||||||
|
|
||||||
@@ -57,7 +57,6 @@ LOCAL_SRC_FILES := $(SDL_PATH)/src/main/android/SDL_android_main.cpp \
|
|||||||
$(MTG_PATH)/src/DeckMetaData.cpp \
|
$(MTG_PATH)/src/DeckMetaData.cpp \
|
||||||
$(MTG_PATH)/src/DeckStats.cpp \
|
$(MTG_PATH)/src/DeckStats.cpp \
|
||||||
$(MTG_PATH)/src/DuelLayers.cpp \
|
$(MTG_PATH)/src/DuelLayers.cpp \
|
||||||
$(MTG_PATH)/src/Effects.cpp \
|
|
||||||
$(MTG_PATH)/src/ExtraCost.cpp \
|
$(MTG_PATH)/src/ExtraCost.cpp \
|
||||||
$(MTG_PATH)/src/GameApp.cpp \
|
$(MTG_PATH)/src/GameApp.cpp \
|
||||||
$(MTG_PATH)/src/GameLauncher.cpp \
|
$(MTG_PATH)/src/GameLauncher.cpp \
|
||||||
|
|||||||
@@ -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/Counters.o objs/Credits.o objs/Damage.o objs/DamagerDamaged.o\
|
||||||
objs/DeckDataWrapper.o objs/DeckEditorMenu.o objs/DeckMenu.o\
|
objs/DeckDataWrapper.o objs/DeckEditorMenu.o objs/DeckMenu.o\
|
||||||
objs/DeckMenuItem.o objs/DeckMetaData.o objs/DeckStats.o objs/DuelLayers.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/GameObserver.o objs/GameOptions.o objs/GameState.o\
|
||||||
objs/GameStateAwards.o objs/GameStateDeckViewer.o objs/GameStateDuel.o\
|
objs/GameStateAwards.o objs/GameStateDeckViewer.o objs/GameStateDuel.o\
|
||||||
objs/DeckManager.o objs/GameStateMenu.o objs/GameStateOptions.o\
|
objs/DeckManager.o objs/GameStateMenu.o objs/GameStateOptions.o\
|
||||||
@@ -128,7 +128,7 @@ clean:
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
define compile
|
define compile
|
||||||
$(CXX) -c $(CXXFLAGS) $< -o $@
|
$(CXX) -c $(CXXFLAGS) $< -o $@
|
||||||
endef
|
endef
|
||||||
|
|
||||||
PrecompiledHeader.h.gch: ../../projects/mtg/include/PrecompiledHeader.h
|
PrecompiledHeader.h.gch: ../../projects/mtg/include/PrecompiledHeader.h
|
||||||
|
|||||||
@@ -30,8 +30,8 @@ def createResZipFile(filename):
|
|||||||
zip_file.close()
|
zip_file.close()
|
||||||
|
|
||||||
if rename:
|
if rename:
|
||||||
os.rename('settings/options.txt', 'settings/options.orig.txt')
|
os.rename('settings/options.txt', 'settings/options.orig.txt')
|
||||||
os.rename('player/options.txt', 'player/options.orig.txt')
|
os.rename('player/options.txt', 'player/options.orig.txt')
|
||||||
|
|
||||||
def getFilename():
|
def getFilename():
|
||||||
p = Properties();
|
p = Properties();
|
||||||
@@ -44,16 +44,18 @@ def getFilename():
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
def createStandardResFile():
|
def createStandardResFile(filename):
|
||||||
print "Creating Standard Resource File"
|
print('Creating Standard Resource File')
|
||||||
filename = getFilename() + '.zip'
|
if not filename:
|
||||||
|
filename = getFilename() + '.zip'
|
||||||
createResZipFile( filename )
|
createResZipFile( filename )
|
||||||
print >> sys.stderr, 'Created Resource Package for Standard Distribution: {0}'.format( filename)
|
print >> sys.stderr, 'Created Resource Package for Standard Distribution: {0}'.format( filename)
|
||||||
|
|
||||||
def createIosResFile():
|
def createIosResFile(filename):
|
||||||
print 'Preparing Resource Package for iOS'
|
print('Preparing Resource Package for iOS')
|
||||||
utilities = ZipUtilities()
|
utilities = ZipUtilities()
|
||||||
filename = getFilename() + '_iOS.zip'
|
if not filename:
|
||||||
|
filename = getFilename() + '_iOS.zip'
|
||||||
#createResZipFile( filename )
|
#createResZipFile( filename )
|
||||||
zip_file = zipfile.ZipFile(filename, 'a', zipfile.ZIP_STORED)
|
zip_file = zipfile.ZipFile(filename, 'a', zipfile.ZIP_STORED)
|
||||||
zip_file.write("../../iOS/Res/rules/modrules.xml", "rules/modrules.xml", 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':
|
if file != '.svn':
|
||||||
full_path = os.path.join(folder, file)
|
full_path = os.path.join(folder, file)
|
||||||
if os.path.isfile(full_path):
|
if os.path.isfile(full_path):
|
||||||
print 'File added: ' + str(full_path)
|
print('File added: ' + str(full_path))
|
||||||
zip_file.write(full_path)
|
zip_file.write(full_path)
|
||||||
elif os.path.isdir(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)
|
self.addFolderToZip(zip_file, full_path)
|
||||||
|
|
||||||
|
|
||||||
@@ -90,16 +92,17 @@ def main():
|
|||||||
|
|
||||||
parser = OptionParser()
|
parser = OptionParser()
|
||||||
parser.add_option("-p", "--platform", help="PLATFORM: specify custom build. (eg ios, android, etc)", metavar="PLATFORM", dest="platform")
|
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()
|
(options, args) = parser.parse_args()
|
||||||
|
|
||||||
if (options.platform):
|
if (options.platform):
|
||||||
if (options.platform == "ios"):
|
if (options.platform == "ios"):
|
||||||
createIosResFile()
|
createIosResFile(options.name)
|
||||||
else:
|
else:
|
||||||
createStandardResFile()
|
createStandardResFile(options.name)
|
||||||
else:
|
else:
|
||||||
createStandardResFile()
|
createStandardResFile(options.name)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|||||||
846
projects/mtg/bin/Res/sets/BNG/_cards.dat
Normal file
846
projects/mtg/bin/Res/sets/BNG/_cards.dat
Normal file
@@ -0,0 +1,846 @@
|
|||||||
|
[meta]
|
||||||
|
author=Wagic Team
|
||||||
|
name=Born of the Gods
|
||||||
|
year=2014
|
||||||
|
block=Theros
|
||||||
|
[/meta]
|
||||||
|
[card]
|
||||||
|
primitive=Acolyte's Reward
|
||||||
|
id=378373
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Aerie Worshippers
|
||||||
|
id=378402
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Akroan Conscriptor
|
||||||
|
id=378459
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Akroan Phalanx
|
||||||
|
id=378374
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Akroan Skyguard
|
||||||
|
id=378375
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Arbiter of the Ideal
|
||||||
|
id=378403
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Archetype of Aggression
|
||||||
|
id=378460
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Archetype of Courage
|
||||||
|
id=378376
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Archetype of Endurance
|
||||||
|
id=378488
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Archetype of Finality
|
||||||
|
id=378430
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Archetype of Imagination
|
||||||
|
id=378404
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Ashiok's Adept
|
||||||
|
id=378431
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Aspect of Hydra
|
||||||
|
id=378489
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Asphyxiate
|
||||||
|
id=378432
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Astral Cornucopia
|
||||||
|
id=378529
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Bile Blight
|
||||||
|
id=378433
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Black Oak of Odunos
|
||||||
|
id=378434
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Bolt of Keranos
|
||||||
|
id=378461
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Brimaz, King of Oreskos
|
||||||
|
id=378377
|
||||||
|
rarity=M
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Champion of Stray Souls
|
||||||
|
id=378435
|
||||||
|
rarity=M
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Charging Badger
|
||||||
|
id=378490
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Chorus of the Tides
|
||||||
|
id=378405
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Chromanticore
|
||||||
|
id=378516
|
||||||
|
rarity=M
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Claim of Erebos
|
||||||
|
id=378436
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Courser of Kruphix
|
||||||
|
id=378491
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Crypsis
|
||||||
|
id=378406
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Culling Mark
|
||||||
|
id=378492
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Cyclops of One-Eyed Pass
|
||||||
|
id=378462
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Dawn to Dusk
|
||||||
|
id=378378
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Deepwater Hypnotist
|
||||||
|
id=378407
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Divination
|
||||||
|
id=378408
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Drown in Sorrow
|
||||||
|
id=378437
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Eater of Hope
|
||||||
|
id=378438
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Eidolon of Countless Battles
|
||||||
|
id=378379
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Elite Skirmisher
|
||||||
|
id=378380
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Ephara, God of the Polis
|
||||||
|
id=378517
|
||||||
|
rarity=M
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Ephara's Enlightenment
|
||||||
|
id=378518
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Ephara's Radiance
|
||||||
|
id=378381
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Epiphany Storm
|
||||||
|
id=378463
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Eternity Snare
|
||||||
|
id=378409
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Evanescent Intellect
|
||||||
|
id=378410
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Everflame Eidolon
|
||||||
|
id=378464
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Excoriate
|
||||||
|
id=378382
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Eye Gouge
|
||||||
|
id=378439
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Fall of the Hammer
|
||||||
|
id=378465
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Fanatic of Xenagos
|
||||||
|
id=378519
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Fate Unraveler
|
||||||
|
id=378440
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Fated Conflagration
|
||||||
|
id=378466
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Fated Infatuation
|
||||||
|
id=378411
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Fated Intervention
|
||||||
|
id=378493
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Fated Retribution
|
||||||
|
id=378383
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Fated Return
|
||||||
|
id=378441
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Fearsome Temper
|
||||||
|
id=378467
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Felhide Brawler
|
||||||
|
id=378442
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Felhide Spiritbinder
|
||||||
|
id=378468
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Flame-Wreathed Phoenix
|
||||||
|
id=378469
|
||||||
|
rarity=M
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Flitterstep Eidolon
|
||||||
|
id=378412
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Floodtide Serpent
|
||||||
|
id=378413
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Forgestoker Dragon
|
||||||
|
id=378470
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Forlorn Pseudamma
|
||||||
|
id=378443
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Forsaken Drifters
|
||||||
|
id=378444
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Ghostblade Eidolon
|
||||||
|
id=378384
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Gild
|
||||||
|
id=378445
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Gold
|
||||||
|
id=-378445
|
||||||
|
rarity=T
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Glimpse the Sun God
|
||||||
|
id=378385
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=God-Favored General
|
||||||
|
id=378386
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Gorgon's Head
|
||||||
|
id=378530
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Graverobber Spider
|
||||||
|
id=378494
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Great Hart
|
||||||
|
id=378387
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Griffin Dreamfinder
|
||||||
|
id=378388
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Grisly Transformation
|
||||||
|
id=378446
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Herald of Torment
|
||||||
|
id=378447
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Hero of Iroas
|
||||||
|
id=378389
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Hero of Leina Tower
|
||||||
|
id=378495
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Heroes' Podium
|
||||||
|
id=378531
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Hold at Bay
|
||||||
|
id=378390
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Hunter's Prowess
|
||||||
|
id=378496
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Impetuous Sunchaser
|
||||||
|
id=378471
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Karametra, God of Harvests
|
||||||
|
id=378520
|
||||||
|
rarity=M
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Karametra's Favor
|
||||||
|
id=378497
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Kiora, the Crashing Wave
|
||||||
|
id=378521
|
||||||
|
rarity=M
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Kiora's Prevention
|
||||||
|
id=37852101
|
||||||
|
rarity=T
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Kiora's Kraken
|
||||||
|
id=-378521
|
||||||
|
rarity=T
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Kiora's Follower
|
||||||
|
id=378522
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Kragma Butcher
|
||||||
|
id=378472
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Kraken of the Straits
|
||||||
|
id=378414
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Lightning Volley
|
||||||
|
id=378473
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Loyal Pegasus
|
||||||
|
id=378391
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Marshmist Titan
|
||||||
|
id=378448
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Meletis Astronomer
|
||||||
|
id=378415
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Mindreaver
|
||||||
|
id=378416
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Mischief and Mayhem
|
||||||
|
id=378498
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Mogis, God of Slaughter
|
||||||
|
id=378523
|
||||||
|
rarity=M
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Mortal's Ardor
|
||||||
|
id=378392
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Mortal's Resolve
|
||||||
|
id=378499
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Necrobite
|
||||||
|
id=378449
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Nessian Demolok
|
||||||
|
id=378500
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Nessian Wilds Ravager
|
||||||
|
id=378501
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Noble Quarry
|
||||||
|
id=378502
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Nullify
|
||||||
|
id=378417
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Nyxborn Eidolon
|
||||||
|
id=378450
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Nyxborn Rollicker
|
||||||
|
id=378474
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Nyxborn Shieldmate
|
||||||
|
id=378393
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Nyxborn Triton
|
||||||
|
id=378418
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Nyxborn Wolf
|
||||||
|
id=378503
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Odunos River Trawler
|
||||||
|
id=378451
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Oracle of Bones
|
||||||
|
id=378475
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Oracle's Insight
|
||||||
|
id=378419
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Oreskos Sun Guide
|
||||||
|
id=378394
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Ornitharch
|
||||||
|
id=378395
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Pain Seer
|
||||||
|
id=378452
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Peregrination
|
||||||
|
id=378504
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Perplexing Chimera
|
||||||
|
id=378420
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Pharagax Giant
|
||||||
|
id=378476
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Phenax, God of Deception
|
||||||
|
id=378524
|
||||||
|
rarity=M
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Pheres-Band Raiders
|
||||||
|
id=378505
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Pheres-Band Tromper
|
||||||
|
id=378506
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Pillar of War
|
||||||
|
id=378532
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Pinnacle of Rage
|
||||||
|
id=378477
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Plea for Guidance
|
||||||
|
id=378396
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Ragemonger
|
||||||
|
id=378525
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Raised by Wolves
|
||||||
|
id=378507
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Reap what is Sown
|
||||||
|
id=378526
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Reckless Reveler
|
||||||
|
id=378478
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Retraction Helix
|
||||||
|
id=378421
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Revoke Existence
|
||||||
|
id=378397
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Rise to the Challenge
|
||||||
|
id=378479
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Sanguimancy
|
||||||
|
id=378453
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Satyr Firedancer
|
||||||
|
id=378480
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Satyr Nyx-Smith
|
||||||
|
id=378481
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Satyr Wayfinder
|
||||||
|
id=378508
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Scourge of Skola Vale
|
||||||
|
id=378509
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Scouring Sands
|
||||||
|
id=378482
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Searing Blood
|
||||||
|
id=378483
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Servant of Tymaret
|
||||||
|
id=378454
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Setessan Oathsworn
|
||||||
|
id=378510
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Setessan Starbreaker
|
||||||
|
id=378511
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Shrike Harpy
|
||||||
|
id=378455
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Silent Sentinel
|
||||||
|
id=378398
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Siren of the Fanged Coast
|
||||||
|
id=378422
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Siren of the Silent Song
|
||||||
|
id=378527
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Siren Song Lyre
|
||||||
|
id=378533
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Skyreaping
|
||||||
|
id=378512
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Snake of the Golden Grove
|
||||||
|
id=378513
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Sphinx's Disciple
|
||||||
|
id=378423
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Spirit of the Labyrinth
|
||||||
|
id=378399
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Spiteful Returned
|
||||||
|
id=378456
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Springleaf Drum
|
||||||
|
id=378534
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Stormcaller of Keranos
|
||||||
|
id=378484
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Stratus Walk
|
||||||
|
id=378424
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Sudden Storm
|
||||||
|
id=378425
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Sunbond
|
||||||
|
id=378400
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Swordwise Centaur
|
||||||
|
id=378514
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Temple of Enlightenment
|
||||||
|
id=378535
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Temple of Malice
|
||||||
|
id=378536
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Temple of Plenty
|
||||||
|
id=378537
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Thassa's Rebuff
|
||||||
|
id=378426
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Thunder Brute
|
||||||
|
id=378485
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Thunderous Might
|
||||||
|
id=378486
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Tromokratis
|
||||||
|
id=378427
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Unravel the AEther
|
||||||
|
id=378515
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Vanguard of Brimaz
|
||||||
|
id=378401
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Vortex Elemental
|
||||||
|
id=378428
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Warchanter of Mogis
|
||||||
|
id=378457
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Weight of the Underworld
|
||||||
|
id=378458
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Whelming Wave
|
||||||
|
id=378429
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Whims of the Fates
|
||||||
|
id=378487
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Xenagos, God of Revels
|
||||||
|
id=378528
|
||||||
|
rarity=M
|
||||||
|
[/card]
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -204,6 +204,7 @@ brass_man.txt
|
|||||||
brass_man_i161.txt
|
brass_man_i161.txt
|
||||||
briarhorn.txt
|
briarhorn.txt
|
||||||
bringer_of_the_red_dawn.txt
|
bringer_of_the_red_dawn.txt
|
||||||
|
buyback.txt
|
||||||
cage_of_hands.txt
|
cage_of_hands.txt
|
||||||
Call_to_Heel_1.txt
|
Call_to_Heel_1.txt
|
||||||
Call_to_Heel_2.txt
|
Call_to_Heel_2.txt
|
||||||
|
|||||||
30
projects/mtg/bin/Res/test/buyback.txt
Normal file
30
projects/mtg/bin/Res/test/buyback.txt
Normal file
@@ -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]
|
||||||
24
projects/mtg/bin/Res/test/griselbrand.txt
Normal file
24
projects/mtg/bin/Res/test/griselbrand.txt
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
#Testing Griselbrand with the new specific life cost {L:7}
|
||||||
|
#Player has 8 life and you cannot use the ability the second time if you cannot pay life.
|
||||||
|
#Must change griselbrand code to {L:7}:draw:7 instead of {L}{L}{L}{L}{L}{L}{L}:draw:7
|
||||||
|
[INIT]
|
||||||
|
FIRSTMAIN
|
||||||
|
[PLAYER1]
|
||||||
|
inplay:Griselbrand
|
||||||
|
life:8
|
||||||
|
library:forest,forest,forest,forest,forest,forest,forest,plains,mountain,mountain,mountain,mountain,mountain,mountain,island
|
||||||
|
[PLAYER2]
|
||||||
|
life:20
|
||||||
|
[DO]
|
||||||
|
Griselbrand
|
||||||
|
Griselbrand
|
||||||
|
[ASSERT]
|
||||||
|
FIRSTMAIN
|
||||||
|
[PLAYER1]
|
||||||
|
inplay:Griselbrand
|
||||||
|
life:1
|
||||||
|
hand:mountain,mountain,mountain,mountain,mountain,mountain,island
|
||||||
|
library:forest,forest,forest,forest,forest,forest,forest,plains
|
||||||
|
[PLAYER2]
|
||||||
|
life:20
|
||||||
|
[END]
|
||||||
38
projects/mtg/bin/Res/test/guild_keyword.txt
Normal file
38
projects/mtg/bin/Res/test/guild_keyword.txt
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
#Testing guild keyword gruul for Xenagos, God of Revels. You must have Born of the gods set (BNG)
|
||||||
|
#[card]
|
||||||
|
#name=Xenagos, God of Revels
|
||||||
|
#abilities=indestructible
|
||||||
|
#auto=@each my combatbegins:name(haste and +x/+x) target(other creature|mybattlefield) transforms((,newability[haste],newability[power/power])) ueot
|
||||||
|
#auto=this(variable{gruul}>6) transforms((Creature))
|
||||||
|
#text=Indestructible -- As long as your devotion to red and green is less than seven, Xenagos isn't a creature. -- At the beginning of combat on your turn, another target creature you control gains haste and gets +X/+X until end of turn, where X is that creature's power.
|
||||||
|
#mana={3}{R}{G}
|
||||||
|
#type=Legendary Enchantment
|
||||||
|
#subtype=God
|
||||||
|
#power=6
|
||||||
|
#toughness=5
|
||||||
|
#[/card]
|
||||||
|
[INIT]
|
||||||
|
FIRSTMAIN
|
||||||
|
[PLAYER1]
|
||||||
|
inplay:378528
|
||||||
|
hand:19869
|
||||||
|
life:20
|
||||||
|
manapool:{G}{G}{G}{G}{G}
|
||||||
|
[PLAYER2]
|
||||||
|
life:20
|
||||||
|
[DO]
|
||||||
|
19869
|
||||||
|
next
|
||||||
|
choice 0
|
||||||
|
19869
|
||||||
|
next
|
||||||
|
19869
|
||||||
|
eot
|
||||||
|
[ASSERT]
|
||||||
|
UNTAP
|
||||||
|
[PLAYER1]
|
||||||
|
inplay:378528,19869
|
||||||
|
life:20
|
||||||
|
[PLAYER2]
|
||||||
|
life:12
|
||||||
|
[END]
|
||||||
73
projects/mtg/bin/createWindowsZip.py
Normal file
73
projects/mtg/bin/createWindowsZip.py
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
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.chdir("..")
|
||||||
|
print "Creating Windows Package File"
|
||||||
|
filename = 'Wagic-windows.zip'
|
||||||
|
createWindowsZipFile( filename )
|
||||||
|
print >> sys.stderr, 'Created Windows Package: {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()
|
||||||
|
|
||||||
|
createStandardResFile()
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
@@ -72,7 +72,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
Interruptible(GameObserver* observer, int inID = 0, bool hasFocus = false)
|
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)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -172,6 +172,206 @@ private:
|
|||||||
{
|
{
|
||||||
intValue = target->getManaCost()->getConvertedCost();
|
intValue = target->getManaCost()->getConvertedCost();
|
||||||
}
|
}
|
||||||
|
else if (s == "azorius")//devotion blue white
|
||||||
|
{
|
||||||
|
TargetChooserFactory dtf(card->getObserver());
|
||||||
|
TargetChooser * dtc = dtf.createTargetChooser("*",NULL);
|
||||||
|
for (int i = 0; i < 2; i++)
|
||||||
|
{
|
||||||
|
Player * dp = card->getObserver()->players[i];
|
||||||
|
MTGGameZone * dzones[] = { dp->game->inPlay, dp->game->graveyard, dp->game->hand, dp->game->library };
|
||||||
|
for (int k = 0; k < 4; k++)
|
||||||
|
{
|
||||||
|
MTGGameZone * zone = dzones[k];
|
||||||
|
if (dtc->targetsZone(zone, card))
|
||||||
|
{
|
||||||
|
intValue += zone->countTotalManaSymbols(dtc, 2);
|
||||||
|
intValue += zone->countTotalManaSymbols(dtc, 5);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SAFE_DELETE(dtc);
|
||||||
|
}
|
||||||
|
else if (s == "boros")//devotion red white
|
||||||
|
{
|
||||||
|
TargetChooserFactory dtf(card->getObserver());
|
||||||
|
TargetChooser * dtc = dtf.createTargetChooser("*",NULL);
|
||||||
|
for (int i = 0; i < 2; i++)
|
||||||
|
{
|
||||||
|
Player * dp = card->getObserver()->players[i];
|
||||||
|
MTGGameZone * dzones[] = { dp->game->inPlay, dp->game->graveyard, dp->game->hand, dp->game->library };
|
||||||
|
for (int k = 0; k < 4; k++)
|
||||||
|
{
|
||||||
|
MTGGameZone * zone = dzones[k];
|
||||||
|
if (dtc->targetsZone(zone, card))
|
||||||
|
{
|
||||||
|
intValue += zone->countTotalManaSymbols(dtc, 3);
|
||||||
|
intValue += zone->countTotalManaSymbols(dtc, 5);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SAFE_DELETE(dtc);
|
||||||
|
}
|
||||||
|
else if (s == "dimir")//devotion blue black
|
||||||
|
{
|
||||||
|
TargetChooserFactory dtf(card->getObserver());
|
||||||
|
TargetChooser * dtc = dtf.createTargetChooser("*",NULL);
|
||||||
|
for (int i = 0; i < 2; i++)
|
||||||
|
{
|
||||||
|
Player * dp = card->getObserver()->players[i];
|
||||||
|
MTGGameZone * dzones[] = { dp->game->inPlay, dp->game->graveyard, dp->game->hand, dp->game->library };
|
||||||
|
for (int k = 0; k < 4; k++)
|
||||||
|
{
|
||||||
|
MTGGameZone * zone = dzones[k];
|
||||||
|
if (dtc->targetsZone(zone, card))
|
||||||
|
{
|
||||||
|
intValue += zone->countTotalManaSymbols(dtc, 2);
|
||||||
|
intValue += zone->countTotalManaSymbols(dtc, 4);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SAFE_DELETE(dtc);
|
||||||
|
}
|
||||||
|
else if (s == "golgari")//devotion to green black
|
||||||
|
{
|
||||||
|
TargetChooserFactory dtf(card->getObserver());
|
||||||
|
TargetChooser * dtc = dtf.createTargetChooser("*",NULL);
|
||||||
|
for (int i = 0; i < 2; i++)
|
||||||
|
{
|
||||||
|
Player * dp = card->getObserver()->players[i];
|
||||||
|
MTGGameZone * dzones[] = { dp->game->inPlay, dp->game->graveyard, dp->game->hand, dp->game->library };
|
||||||
|
for (int k = 0; k < 4; k++)
|
||||||
|
{
|
||||||
|
MTGGameZone * zone = dzones[k];
|
||||||
|
if (dtc->targetsZone(zone, card))
|
||||||
|
{
|
||||||
|
intValue += zone->countTotalManaSymbols(dtc, 1);
|
||||||
|
intValue += zone->countTotalManaSymbols(dtc, 4);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SAFE_DELETE(dtc);
|
||||||
|
}
|
||||||
|
else if (s == "gruul")//devotion to green red
|
||||||
|
{
|
||||||
|
TargetChooserFactory dtf(card->getObserver());
|
||||||
|
TargetChooser * dtc = dtf.createTargetChooser("*",NULL);
|
||||||
|
for (int i = 0; i < 2; i++)
|
||||||
|
{
|
||||||
|
Player * dp = card->getObserver()->players[i];
|
||||||
|
MTGGameZone * dzones[] = { dp->game->inPlay, dp->game->graveyard, dp->game->hand, dp->game->library };
|
||||||
|
for (int k = 0; k < 4; k++)
|
||||||
|
{
|
||||||
|
MTGGameZone * zone = dzones[k];
|
||||||
|
if (dtc->targetsZone(zone, card))
|
||||||
|
{
|
||||||
|
intValue += zone->countTotalManaSymbols(dtc, 1);
|
||||||
|
intValue += zone->countTotalManaSymbols(dtc, 3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SAFE_DELETE(dtc);
|
||||||
|
}
|
||||||
|
else if (s == "izzet")//devotion to red blue
|
||||||
|
{
|
||||||
|
TargetChooserFactory dtf(card->getObserver());
|
||||||
|
TargetChooser * dtc = dtf.createTargetChooser("*",NULL);
|
||||||
|
for (int i = 0; i < 2; i++)
|
||||||
|
{
|
||||||
|
Player * dp = card->getObserver()->players[i];
|
||||||
|
MTGGameZone * dzones[] = { dp->game->inPlay, dp->game->graveyard, dp->game->hand, dp->game->library };
|
||||||
|
for (int k = 0; k < 4; k++)
|
||||||
|
{
|
||||||
|
MTGGameZone * zone = dzones[k];
|
||||||
|
if (dtc->targetsZone(zone, card))
|
||||||
|
{
|
||||||
|
intValue += zone->countTotalManaSymbols(dtc, 2);
|
||||||
|
intValue += zone->countTotalManaSymbols(dtc, 3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SAFE_DELETE(dtc);
|
||||||
|
}
|
||||||
|
else if (s == "orzhov")//devotion to white black
|
||||||
|
{
|
||||||
|
TargetChooserFactory dtf(card->getObserver());
|
||||||
|
TargetChooser * dtc = dtf.createTargetChooser("*",NULL);
|
||||||
|
for (int i = 0; i < 2; i++)
|
||||||
|
{
|
||||||
|
Player * dp = card->getObserver()->players[i];
|
||||||
|
MTGGameZone * dzones[] = { dp->game->inPlay, dp->game->graveyard, dp->game->hand, dp->game->library };
|
||||||
|
for (int k = 0; k < 4; k++)
|
||||||
|
{
|
||||||
|
MTGGameZone * zone = dzones[k];
|
||||||
|
if (dtc->targetsZone(zone, card))
|
||||||
|
{
|
||||||
|
intValue += zone->countTotalManaSymbols(dtc, 4);
|
||||||
|
intValue += zone->countTotalManaSymbols(dtc, 5);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SAFE_DELETE(dtc);
|
||||||
|
}
|
||||||
|
else if (s == "rakdos")//devotion to red black
|
||||||
|
{
|
||||||
|
TargetChooserFactory dtf(card->getObserver());
|
||||||
|
TargetChooser * dtc = dtf.createTargetChooser("*",NULL);
|
||||||
|
for (int i = 0; i < 2; i++)
|
||||||
|
{
|
||||||
|
Player * dp = card->getObserver()->players[i];
|
||||||
|
MTGGameZone * dzones[] = { dp->game->inPlay, dp->game->graveyard, dp->game->hand, dp->game->library };
|
||||||
|
for (int k = 0; k < 4; k++)
|
||||||
|
{
|
||||||
|
MTGGameZone * zone = dzones[k];
|
||||||
|
if (dtc->targetsZone(zone, card))
|
||||||
|
{
|
||||||
|
intValue += zone->countTotalManaSymbols(dtc, 3);
|
||||||
|
intValue += zone->countTotalManaSymbols(dtc, 4);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SAFE_DELETE(dtc);
|
||||||
|
}
|
||||||
|
else if (s == "selesnya")//devotion to green white
|
||||||
|
{
|
||||||
|
TargetChooserFactory dtf(card->getObserver());
|
||||||
|
TargetChooser * dtc = dtf.createTargetChooser("*",NULL);
|
||||||
|
for (int i = 0; i < 2; i++)
|
||||||
|
{
|
||||||
|
Player * dp = card->getObserver()->players[i];
|
||||||
|
MTGGameZone * dzones[] = { dp->game->inPlay, dp->game->graveyard, dp->game->hand, dp->game->library };
|
||||||
|
for (int k = 0; k < 4; k++)
|
||||||
|
{
|
||||||
|
MTGGameZone * zone = dzones[k];
|
||||||
|
if (dtc->targetsZone(zone, card))
|
||||||
|
{
|
||||||
|
intValue += zone->countTotalManaSymbols(dtc, 1);
|
||||||
|
intValue += zone->countTotalManaSymbols(dtc, 5);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SAFE_DELETE(dtc);
|
||||||
|
}
|
||||||
|
else if (s == "simic")//devotion to green blue
|
||||||
|
{
|
||||||
|
TargetChooserFactory dtf(card->getObserver());
|
||||||
|
TargetChooser * dtc = dtf.createTargetChooser("*",NULL);
|
||||||
|
for (int i = 0; i < 2; i++)
|
||||||
|
{
|
||||||
|
Player * dp = card->getObserver()->players[i];
|
||||||
|
MTGGameZone * dzones[] = { dp->game->inPlay, dp->game->graveyard, dp->game->hand, dp->game->library };
|
||||||
|
for (int k = 0; k < 4; k++)
|
||||||
|
{
|
||||||
|
MTGGameZone * zone = dzones[k];
|
||||||
|
if (dtc->targetsZone(zone, card))
|
||||||
|
{
|
||||||
|
intValue += zone->countTotalManaSymbols(dtc, 1);
|
||||||
|
intValue += zone->countTotalManaSymbols(dtc, 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SAFE_DELETE(dtc);
|
||||||
|
}
|
||||||
else if (s.find("type:") != string::npos)
|
else if (s.find("type:") != string::npos)
|
||||||
{
|
{
|
||||||
size_t begins = s.find("type:");
|
size_t begins = s.find("type:");
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
#ifndef _EFFECTS_H_
|
|
||||||
#define _EFFECTS_H_
|
|
||||||
|
|
||||||
#include <JGui.h>
|
|
||||||
|
|
||||||
class Effect: public JGuiObject
|
|
||||||
{
|
|
||||||
static int id_counter;
|
|
||||||
public:
|
|
||||||
Effect() : JGuiObject(++id_counter) {};
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // _EFFECTS_H_
|
|
||||||
@@ -90,6 +90,19 @@ public:
|
|||||||
virtual LifeCost * clone() const;
|
virtual LifeCost * clone() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//Specific life cost
|
||||||
|
class SpecificLifeCost : public ExtraCost
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
int slc;
|
||||||
|
|
||||||
|
public:
|
||||||
|
SpecificLifeCost(TargetChooser *_tc = NULL, int slc = 0);
|
||||||
|
virtual int canPay();
|
||||||
|
virtual int doPay();
|
||||||
|
virtual SpecificLifeCost * clone() const;
|
||||||
|
};
|
||||||
|
|
||||||
//phyrexian mana
|
//phyrexian mana
|
||||||
class LifeorManaCost : public ExtraCost
|
class LifeorManaCost : public ExtraCost
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -12,7 +12,6 @@
|
|||||||
#define GUI_OPPONENTHAND 5
|
#define GUI_OPPONENTHAND 5
|
||||||
|
|
||||||
#include <JGui.h>
|
#include <JGui.h>
|
||||||
#include "Effects.h"
|
|
||||||
#include "WEvent.h"
|
#include "WEvent.h"
|
||||||
#include "Pos.h"
|
#include "Pos.h"
|
||||||
|
|
||||||
@@ -65,7 +64,6 @@ public:
|
|||||||
}
|
}
|
||||||
;
|
;
|
||||||
virtual ~PlayGuiObject() {};
|
virtual ~PlayGuiObject() {};
|
||||||
vector<Effect*> effects;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
#include "../include/Effects.h"
|
|
||||||
|
|
||||||
int Effect::id_counter = 0;
|
|
||||||
@@ -151,6 +151,44 @@ int LifeCost::doPay()
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Specific life cost
|
||||||
|
SpecificLifeCost * SpecificLifeCost::clone() const
|
||||||
|
{
|
||||||
|
SpecificLifeCost * ec = NEW SpecificLifeCost(*this);
|
||||||
|
if (tc)
|
||||||
|
ec->tc = tc->clone();
|
||||||
|
return ec;
|
||||||
|
}
|
||||||
|
|
||||||
|
SpecificLifeCost::SpecificLifeCost(TargetChooser *_tc, int slc)
|
||||||
|
: ExtraCost("Life", _tc), slc(slc)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
int SpecificLifeCost::canPay()
|
||||||
|
{
|
||||||
|
MTGCardInstance * _target = (MTGCardInstance *) target;
|
||||||
|
if(_target->controller()->life >= slc)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int SpecificLifeCost::doPay()
|
||||||
|
{
|
||||||
|
if (!target)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
MTGCardInstance * _target = (MTGCardInstance *) target;
|
||||||
|
|
||||||
|
_target->controller()->loseLife(slc);
|
||||||
|
target = NULL;
|
||||||
|
if (tc)
|
||||||
|
tc->initTargets();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
//life or Mana cost
|
//life or Mana cost
|
||||||
LifeorManaCost * LifeorManaCost::clone() const
|
LifeorManaCost * LifeorManaCost::clone() const
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -4284,6 +4284,7 @@ void AbilityFactory::addAbilities(int _id, Spell * spell)
|
|||||||
}
|
}
|
||||||
else if (card->alternateCostPaid[ManaCost::MANA_PAID_WITH_BUYBACK] > 0)
|
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);
|
zones->putInZone(card, zones->stack, Endzones->hand);
|
||||||
}
|
}
|
||||||
else if (card->alternateCostPaid[ManaCost::MANA_PAID_WITH_FLASHBACK] > 0)
|
else if (card->alternateCostPaid[ManaCost::MANA_PAID_WITH_FLASHBACK] > 0)
|
||||||
|
|||||||
@@ -159,10 +159,19 @@ ManaCost * ManaCost::parseManaCost(string s, ManaCost * _manaCost, MTGCardInstan
|
|||||||
{ //Mill to exile yourself as a cost (Library 2 Exile)
|
{ //Mill to exile yourself as a cost (Library 2 Exile)
|
||||||
manaCost->addExtraCost(NEW MillExileCost(tc));
|
manaCost->addExtraCost(NEW MillExileCost(tc));
|
||||||
}
|
}
|
||||||
else
|
else if (value == "l")
|
||||||
{ //Life cost
|
{ //Life cost
|
||||||
manaCost->addExtraCost(NEW LifeCost(tc));
|
manaCost->addExtraCost(NEW LifeCost(tc));
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{ //Specific Life cost
|
||||||
|
vector<string>valSplit = parseBetween(value,"l:"," ",false);
|
||||||
|
if (valSplit.size()) {
|
||||||
|
WParsedInt* lifetopay = NEW WParsedInt(valSplit[1], NULL, c);
|
||||||
|
manaCost->addExtraCost(NEW SpecificLifeCost(tc,lifetopay->getValue()));
|
||||||
|
SAFE_DELETE(lifetopay);
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 'd': //DiscardRandom cost
|
case 'd': //DiscardRandom cost
|
||||||
if (value == "d")
|
if (value == "d")
|
||||||
|
|||||||
@@ -38,13 +38,9 @@ void PlayGuiObject::Update(float dt)
|
|||||||
if (mHeight < defaultHeight) mHeight = defaultHeight;
|
if (mHeight < defaultHeight) mHeight = defaultHeight;
|
||||||
}
|
}
|
||||||
wave = (wave + 2 * (int) (100 * dt)) % 255;
|
wave = (wave + 2 * (int) (100 * dt)) % 255;
|
||||||
for (vector<Effect*>::iterator it = effects.begin(); it != effects.end(); ++it)
|
|
||||||
(*it)->Update(dt);
|
|
||||||
Pos::Update(dt);
|
Pos::Update(dt);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PlayGuiObject::Render()
|
void PlayGuiObject::Render()
|
||||||
{
|
{
|
||||||
for (vector<Effect*>::iterator it = effects.begin(); it != effects.end(); ++it)
|
|
||||||
(*it)->Render();
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -493,7 +493,6 @@
|
|||||||
<ClInclude Include="include\DeckView.h" />
|
<ClInclude Include="include\DeckView.h" />
|
||||||
<ClInclude Include="include\DuelLayers.h" />
|
<ClInclude Include="include\DuelLayers.h" />
|
||||||
<ClInclude Include="include\Easing.h" />
|
<ClInclude Include="include\Easing.h" />
|
||||||
<ClInclude Include="include\Effects.h" />
|
|
||||||
<ClInclude Include="include\ExtraCost.h" />
|
<ClInclude Include="include\ExtraCost.h" />
|
||||||
<ClInclude Include="include\GameApp.h" />
|
<ClInclude Include="include\GameApp.h" />
|
||||||
<ClInclude Include="include\GameObserver.h" />
|
<ClInclude Include="include\GameObserver.h" />
|
||||||
@@ -592,4 +591,4 @@
|
|||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -417,9 +417,6 @@
|
|||||||
<ClInclude Include="include\DuelLayers.h">
|
<ClInclude Include="include\DuelLayers.h">
|
||||||
<Filter>inc</Filter>
|
<Filter>inc</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="include\Effects.h">
|
|
||||||
<Filter>inc</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="include\ExtraCost.h">
|
<ClInclude Include="include\ExtraCost.h">
|
||||||
<Filter>inc</Filter>
|
<Filter>inc</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
@@ -725,4 +722,4 @@
|
|||||||
<Filter>res</Filter>
|
<Filter>res</Filter>
|
||||||
</ResourceCompile>
|
</ResourceCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ addExclusiveBuilds(graphics, Graphics, console, Console)
|
|||||||
|
|
||||||
INCLUDEPATH += ../../JGE/include/qt
|
INCLUDEPATH += ../../JGE/include/qt
|
||||||
CONFIG(console, graphics|console){
|
CONFIG(console, graphics|console){
|
||||||
QT += core network
|
QT += core network multimedia
|
||||||
QT -= gui
|
QT -= gui
|
||||||
|
|
||||||
DEFINES += CONSOLE_CONFIG
|
DEFINES += CONSOLE_CONFIG
|
||||||
@@ -17,7 +17,7 @@ else:CONFIG(graphics, graphics|console){
|
|||||||
folder_01.source = qml/QmlWagic
|
folder_01.source = qml/QmlWagic
|
||||||
folder_01.target = /usr/share
|
folder_01.target = /usr/share
|
||||||
DEPLOYMENTFOLDERS = folder_01
|
DEPLOYMENTFOLDERS = folder_01
|
||||||
QT += core gui opengl network
|
QT += core gui opengl network multimedia
|
||||||
QT -= declarative quick qml
|
QT -= declarative quick qml
|
||||||
#maemo5:DEFINES += QT_WIDGET
|
#maemo5:DEFINES += QT_WIDGET
|
||||||
DEFINES += QT_WIDGET
|
DEFINES += QT_WIDGET
|
||||||
@@ -46,6 +46,7 @@ CONFIG(graphics, graphics|console){
|
|||||||
../../JGE/src/qt/corewrapper.cpp\
|
../../JGE/src/qt/corewrapper.cpp\
|
||||||
../../JGE/src/Qtmain.cpp\
|
../../JGE/src/Qtmain.cpp\
|
||||||
../../JGE/src/JMD2Model.cpp\
|
../../JGE/src/JMD2Model.cpp\
|
||||||
|
../../JGE/src/pc/JSfx.cpp\
|
||||||
../../JGE/src/pc/JGfx.cpp
|
../../JGE/src/pc/JGfx.cpp
|
||||||
}
|
}
|
||||||
else:CONFIG(console, graphics|console){
|
else:CONFIG(console, graphics|console){
|
||||||
@@ -54,6 +55,7 @@ else:CONFIG(console, graphics|console){
|
|||||||
|
|
||||||
SOURCES += \
|
SOURCES += \
|
||||||
../../JGE/src/OutputCapturer.cpp\
|
../../JGE/src/OutputCapturer.cpp\
|
||||||
|
../../JGE/src/pc/JSfx.cpp\
|
||||||
../../JGE/src/JGfx-fake.cpp\
|
../../JGE/src/JGfx-fake.cpp\
|
||||||
../../JGE/src/Qtconsole.cpp\
|
../../JGE/src/Qtconsole.cpp\
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ unix:!*macx*:QMAKE_CXXFLAGS += -Wno-unused-local-typedefs
|
|||||||
unix:!*macx*:!maemo5:!symbian:QMAKE_CXXFLAGS += -Werror
|
unix:!*macx*:!maemo5:!symbian:QMAKE_CXXFLAGS += -Werror
|
||||||
|
|
||||||
windows:DEFINES += _CRT_SECURE_NO_WARNINGS
|
windows:DEFINES += _CRT_SECURE_NO_WARNINGS
|
||||||
|
windows|winrt:DEFINES += NOMINMAX
|
||||||
unix|macx:DEFINES += LINUX
|
unix|macx:DEFINES += LINUX
|
||||||
CONFIG(debug, debug|release) {
|
CONFIG(debug, debug|release) {
|
||||||
DEFINES += _DEBUG
|
DEFINES += _DEBUG
|
||||||
@@ -32,6 +33,7 @@ windows{
|
|||||||
*-msvc* {
|
*-msvc* {
|
||||||
INCLUDEPATH += extra
|
INCLUDEPATH += extra
|
||||||
DEFINES += WIN32
|
DEFINES += WIN32
|
||||||
|
DEFINES += FORCE_GL2
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
macx:INCLUDEPATH += /opt/include
|
macx:INCLUDEPATH += /opt/include
|
||||||
@@ -41,7 +43,6 @@ INCLUDEPATH += ../../Boost
|
|||||||
INCLUDEPATH += include
|
INCLUDEPATH += include
|
||||||
|
|
||||||
unix:!symbian:LIBS += -lz
|
unix:!symbian:LIBS += -lz
|
||||||
windows:LIBS += ../../JGE/Dependencies/lib/fmodvc.lib
|
|
||||||
windows:LIBS += ../../JGE/Dependencies/lib/zlibd.lib
|
windows:LIBS += ../../JGE/Dependencies/lib/zlibd.lib
|
||||||
PRECOMPILED_HEADER = include/PrecompiledHeader.h
|
PRECOMPILED_HEADER = include/PrecompiledHeader.h
|
||||||
|
|
||||||
@@ -80,7 +81,6 @@ SOURCES += \
|
|||||||
src/DeckStats.cpp\
|
src/DeckStats.cpp\
|
||||||
src/DeckView.cpp\
|
src/DeckView.cpp\
|
||||||
src/DuelLayers.cpp\
|
src/DuelLayers.cpp\
|
||||||
src/Effects.cpp\
|
|
||||||
src/ExtraCost.cpp\
|
src/ExtraCost.cpp\
|
||||||
src/GameApp.cpp\
|
src/GameApp.cpp\
|
||||||
src/GameLauncher.cpp\
|
src/GameLauncher.cpp\
|
||||||
@@ -271,7 +271,6 @@ HEADERS += \
|
|||||||
include/WResourceManager.h\
|
include/WResourceManager.h\
|
||||||
include/DuelLayers.h\
|
include/DuelLayers.h\
|
||||||
include/GuiStatic.h\
|
include/GuiStatic.h\
|
||||||
include/Effects.h\
|
|
||||||
include/StyleManager.h\
|
include/StyleManager.h\
|
||||||
include/WFont.h\
|
include/WFont.h\
|
||||||
include/DeckManager.h\
|
include/DeckManager.h\
|
||||||
@@ -303,7 +302,6 @@ SOURCES += \
|
|||||||
../../JGE/src/JSpline.cpp\
|
../../JGE/src/JSpline.cpp\
|
||||||
../../JGE/src/JNetwork.cpp\
|
../../JGE/src/JNetwork.cpp\
|
||||||
../../JGE/src/pc/JSocket.cpp\
|
../../JGE/src/pc/JSocket.cpp\
|
||||||
../../JGE/src/pc/JSfx.cpp\
|
|
||||||
../../JGE/src/JSprite.cpp\
|
../../JGE/src/JSprite.cpp\
|
||||||
../../JGE/src/Vector2D.cpp\
|
../../JGE/src/Vector2D.cpp\
|
||||||
../../JGE/src/tinyxml/tinystr.cpp\
|
../../JGE/src/tinyxml/tinystr.cpp\
|
||||||
|
|||||||
@@ -67,7 +67,6 @@
|
|||||||
12059DA814980B7300DAC43B /* AllAbilities.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA376F41291C60500B9016A /* AllAbilities.cpp */; };
|
12059DA814980B7300DAC43B /* AllAbilities.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA376F41291C60500B9016A /* AllAbilities.cpp */; };
|
||||||
12059DA914980B7300DAC43B /* CardDescriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA376F51291C60500B9016A /* CardDescriptor.cpp */; };
|
12059DA914980B7300DAC43B /* CardDescriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA376F51291C60500B9016A /* CardDescriptor.cpp */; };
|
||||||
12059DAA14980B7300DAC43B /* CardDisplay.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA376F61291C60500B9016A /* CardDisplay.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 */; };
|
12059DAC14980B7300DAC43B /* CardGui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA376F81291C60500B9016A /* CardGui.cpp */; };
|
||||||
12059DAD14980B7300DAC43B /* CardPrimitive.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA376F91291C60500B9016A /* CardPrimitive.cpp */; };
|
12059DAD14980B7300DAC43B /* CardPrimitive.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA376F91291C60500B9016A /* CardPrimitive.cpp */; };
|
||||||
12059DAE14980B7300DAC43B /* CardSelector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA376FA1291C60500B9016A /* CardSelector.cpp */; };
|
12059DAE14980B7300DAC43B /* CardSelector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA376FA1291C60500B9016A /* CardSelector.cpp */; };
|
||||||
@@ -85,7 +84,6 @@
|
|||||||
12059DBA14980B7300DAC43B /* DeckMetaData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA377061291C60500B9016A /* DeckMetaData.cpp */; };
|
12059DBA14980B7300DAC43B /* DeckMetaData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA377061291C60500B9016A /* DeckMetaData.cpp */; };
|
||||||
12059DBB14980B7300DAC43B /* DeckStats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA377071291C60500B9016A /* DeckStats.cpp */; };
|
12059DBB14980B7300DAC43B /* DeckStats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA377071291C60500B9016A /* DeckStats.cpp */; };
|
||||||
12059DBC14980B7300DAC43B /* DuelLayers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA377081291C60500B9016A /* DuelLayers.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 */; };
|
12059DBE14980B7300DAC43B /* ExtraCost.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA3770A1291C60500B9016A /* ExtraCost.cpp */; };
|
||||||
12059DBF14980B7300DAC43B /* GameApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA3770B1291C60500B9016A /* GameApp.cpp */; };
|
12059DBF14980B7300DAC43B /* GameApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA3770B1291C60500B9016A /* GameApp.cpp */; };
|
||||||
12059DC014980B7300DAC43B /* GameLauncher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA3770C1291C60500B9016A /* GameLauncher.cpp */; };
|
12059DC014980B7300DAC43B /* GameLauncher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA3770C1291C60500B9016A /* GameLauncher.cpp */; };
|
||||||
@@ -198,7 +196,6 @@
|
|||||||
12059E4A14980B7300DAC43B /* libstdc++.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 12D095E014417D0500F69056 /* libstdc++.dylib */; settings = {ATTRIBUTES = (Weak, ); }; };
|
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, ); }; };
|
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, ); }; };
|
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, ); }; };
|
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, ); }; };
|
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, ); }; };
|
12059E5014980B7300DAC43B /* iAd.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 129654D0148A52730031100B /* iAd.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
|
||||||
@@ -217,7 +214,6 @@
|
|||||||
12059E5D14980B7300DAC43B /* MapKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 128ED50B148BCBBC00C58E83 /* MapKit.framework */; };
|
12059E5D14980B7300DAC43B /* MapKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 128ED50B148BCBBC00C58E83 /* MapKit.framework */; };
|
||||||
12059E5E14980B7300DAC43B /* MediaPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 128ED518148BF0E000C58E83 /* MediaPlayer.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, ); }; };
|
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 */; };
|
12211E7914931CBB00641703 /* ASIAuthenticationDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = 12211E2814931CBB00641703 /* ASIAuthenticationDialog.m */; };
|
||||||
12211E7A14931CBB00641703 /* ASIDataCompressor.m in Sources */ = {isa = PBXBuildFile; fileRef = 12211E2B14931CBB00641703 /* ASIDataCompressor.m */; };
|
12211E7A14931CBB00641703 /* ASIDataCompressor.m in Sources */ = {isa = PBXBuildFile; fileRef = 12211E2B14931CBB00641703 /* ASIDataCompressor.m */; };
|
||||||
12211E7B14931CBB00641703 /* ASIDataDecompressor.m in Sources */ = {isa = PBXBuildFile; fileRef = 12211E2D14931CBB00641703 /* ASIDataDecompressor.m */; };
|
12211E7B14931CBB00641703 /* ASIDataDecompressor.m in Sources */ = {isa = PBXBuildFile; fileRef = 12211E2D14931CBB00641703 /* ASIDataDecompressor.m */; };
|
||||||
@@ -285,6 +281,9 @@
|
|||||||
1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; };
|
1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; };
|
||||||
28FD15000DC6FC520079059D /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 28FD14FF0DC6FC520079059D /* OpenGLES.framework */; };
|
28FD15000DC6FC520079059D /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 28FD14FF0DC6FC520079059D /* OpenGLES.framework */; };
|
||||||
28FD15080DC6FC5B0079059D /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 28FD15070DC6FC5B0079059D /* QuartzCore.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 */; };
|
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 */; };
|
75D209D4181D54FD009916AC /* wagic-80x80.png in Resources */ = {isa = PBXBuildFile; fileRef = 75D209D2181D54FD009916AC /* wagic-80x80.png */; };
|
||||||
CE97CD1E1295AB4300FDFD3B /* SimplePopup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CE97CD1D1295AB4300FDFD3B /* SimplePopup.cpp */; };
|
CE97CD1E1295AB4300FDFD3B /* SimplePopup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CE97CD1D1295AB4300FDFD3B /* SimplePopup.cpp */; };
|
||||||
@@ -307,7 +306,6 @@
|
|||||||
CEA3775E1291C60500B9016A /* AllAbilities.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA376F41291C60500B9016A /* AllAbilities.cpp */; };
|
CEA3775E1291C60500B9016A /* AllAbilities.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA376F41291C60500B9016A /* AllAbilities.cpp */; };
|
||||||
CEA3775F1291C60500B9016A /* CardDescriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA376F51291C60500B9016A /* CardDescriptor.cpp */; };
|
CEA3775F1291C60500B9016A /* CardDescriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA376F51291C60500B9016A /* CardDescriptor.cpp */; };
|
||||||
CEA377601291C60500B9016A /* CardDisplay.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA376F61291C60500B9016A /* CardDisplay.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 */; };
|
CEA377621291C60500B9016A /* CardGui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA376F81291C60500B9016A /* CardGui.cpp */; };
|
||||||
CEA377631291C60500B9016A /* CardPrimitive.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA376F91291C60500B9016A /* CardPrimitive.cpp */; };
|
CEA377631291C60500B9016A /* CardPrimitive.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA376F91291C60500B9016A /* CardPrimitive.cpp */; };
|
||||||
CEA377641291C60500B9016A /* CardSelector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA376FA1291C60500B9016A /* CardSelector.cpp */; };
|
CEA377641291C60500B9016A /* CardSelector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA376FA1291C60500B9016A /* CardSelector.cpp */; };
|
||||||
@@ -325,7 +323,6 @@
|
|||||||
CEA377701291C60500B9016A /* DeckMetaData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA377061291C60500B9016A /* DeckMetaData.cpp */; };
|
CEA377701291C60500B9016A /* DeckMetaData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA377061291C60500B9016A /* DeckMetaData.cpp */; };
|
||||||
CEA377711291C60500B9016A /* DeckStats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA377071291C60500B9016A /* DeckStats.cpp */; };
|
CEA377711291C60500B9016A /* DeckStats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA377071291C60500B9016A /* DeckStats.cpp */; };
|
||||||
CEA377721291C60500B9016A /* DuelLayers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA377081291C60500B9016A /* DuelLayers.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 */; };
|
CEA377741291C60500B9016A /* ExtraCost.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA3770A1291C60500B9016A /* ExtraCost.cpp */; };
|
||||||
CEA377751291C60500B9016A /* GameApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA3770B1291C60500B9016A /* GameApp.cpp */; };
|
CEA377751291C60500B9016A /* GameApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA3770B1291C60500B9016A /* GameApp.cpp */; };
|
||||||
CEA377761291C60500B9016A /* GameLauncher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA3770C1291C60500B9016A /* GameLauncher.cpp */; };
|
CEA377761291C60500B9016A /* GameLauncher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA3770C1291C60500B9016A /* GameLauncher.cpp */; };
|
||||||
@@ -578,6 +575,13 @@
|
|||||||
1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
|
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; };
|
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; };
|
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 = "<group>"; };
|
||||||
|
751E1F0F18FAE52D001B1E16 /* DeckView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeckView.h; sourceTree = "<group>"; };
|
||||||
|
751E1F1018FAE52D001B1E16 /* Easing.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Easing.h; sourceTree = "<group>"; };
|
||||||
|
751E1F1118FAE52D001B1E16 /* GridDeckView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GridDeckView.h; sourceTree = "<group>"; };
|
||||||
|
751E1F1218FAE53E001B1E16 /* CarouselDeckView.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CarouselDeckView.cpp; sourceTree = "<group>"; };
|
||||||
|
751E1F1318FAE53E001B1E16 /* DeckView.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DeckView.cpp; sourceTree = "<group>"; };
|
||||||
|
751E1F1418FAE53E001B1E16 /* GridDeckView.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GridDeckView.cpp; sourceTree = "<group>"; };
|
||||||
75D209D1181D54FD009916AC /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = SOURCE_ROOT; };
|
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; };
|
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 = "<group>"; };
|
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 = "<group>"; };
|
||||||
@@ -609,7 +613,6 @@
|
|||||||
CEA3768C1291C60500B9016A /* AllAbilities.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = AllAbilities.h; sourceTree = "<group>"; };
|
CEA3768C1291C60500B9016A /* AllAbilities.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = AllAbilities.h; sourceTree = "<group>"; };
|
||||||
CEA3768D1291C60500B9016A /* CardDescriptor.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = CardDescriptor.h; sourceTree = "<group>"; };
|
CEA3768D1291C60500B9016A /* CardDescriptor.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = CardDescriptor.h; sourceTree = "<group>"; };
|
||||||
CEA3768E1291C60500B9016A /* CardDisplay.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = CardDisplay.h; sourceTree = "<group>"; };
|
CEA3768E1291C60500B9016A /* CardDisplay.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = CardDisplay.h; sourceTree = "<group>"; };
|
||||||
CEA3768F1291C60500B9016A /* CardEffect.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = CardEffect.h; sourceTree = "<group>"; };
|
|
||||||
CEA376901291C60500B9016A /* CardGui.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = CardGui.h; sourceTree = "<group>"; };
|
CEA376901291C60500B9016A /* CardGui.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = CardGui.h; sourceTree = "<group>"; };
|
||||||
CEA376911291C60500B9016A /* CardPrimitive.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = CardPrimitive.h; sourceTree = "<group>"; };
|
CEA376911291C60500B9016A /* CardPrimitive.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = CardPrimitive.h; sourceTree = "<group>"; };
|
||||||
CEA376921291C60500B9016A /* CardSelector.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = CardSelector.h; sourceTree = "<group>"; };
|
CEA376921291C60500B9016A /* CardSelector.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = CardSelector.h; sourceTree = "<group>"; };
|
||||||
@@ -627,7 +630,6 @@
|
|||||||
CEA3769E1291C60500B9016A /* DeckMetaData.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = DeckMetaData.h; sourceTree = "<group>"; };
|
CEA3769E1291C60500B9016A /* DeckMetaData.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = DeckMetaData.h; sourceTree = "<group>"; };
|
||||||
CEA3769F1291C60500B9016A /* DeckStats.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = DeckStats.h; sourceTree = "<group>"; };
|
CEA3769F1291C60500B9016A /* DeckStats.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = DeckStats.h; sourceTree = "<group>"; };
|
||||||
CEA376A01291C60500B9016A /* DuelLayers.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = DuelLayers.h; sourceTree = "<group>"; };
|
CEA376A01291C60500B9016A /* DuelLayers.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = DuelLayers.h; sourceTree = "<group>"; };
|
||||||
CEA376A11291C60500B9016A /* Effects.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = Effects.h; sourceTree = "<group>"; };
|
|
||||||
CEA376A21291C60500B9016A /* ExtraCost.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = ExtraCost.h; sourceTree = "<group>"; };
|
CEA376A21291C60500B9016A /* ExtraCost.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = ExtraCost.h; sourceTree = "<group>"; };
|
||||||
CEA376A31291C60500B9016A /* GameApp.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = GameApp.h; sourceTree = "<group>"; };
|
CEA376A31291C60500B9016A /* GameApp.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = GameApp.h; sourceTree = "<group>"; };
|
||||||
CEA376A41291C60500B9016A /* GameObserver.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = GameObserver.h; sourceTree = "<group>"; };
|
CEA376A41291C60500B9016A /* GameObserver.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = GameObserver.h; sourceTree = "<group>"; };
|
||||||
@@ -711,7 +713,6 @@
|
|||||||
CEA376F41291C60500B9016A /* AllAbilities.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = AllAbilities.cpp; sourceTree = "<group>"; };
|
CEA376F41291C60500B9016A /* AllAbilities.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = AllAbilities.cpp; sourceTree = "<group>"; };
|
||||||
CEA376F51291C60500B9016A /* CardDescriptor.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = CardDescriptor.cpp; sourceTree = "<group>"; };
|
CEA376F51291C60500B9016A /* CardDescriptor.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = CardDescriptor.cpp; sourceTree = "<group>"; };
|
||||||
CEA376F61291C60500B9016A /* CardDisplay.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = CardDisplay.cpp; sourceTree = "<group>"; };
|
CEA376F61291C60500B9016A /* CardDisplay.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = CardDisplay.cpp; sourceTree = "<group>"; };
|
||||||
CEA376F71291C60500B9016A /* CardEffect.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = CardEffect.cpp; sourceTree = "<group>"; };
|
|
||||||
CEA376F81291C60500B9016A /* CardGui.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = CardGui.cpp; sourceTree = "<group>"; };
|
CEA376F81291C60500B9016A /* CardGui.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = CardGui.cpp; sourceTree = "<group>"; };
|
||||||
CEA376F91291C60500B9016A /* CardPrimitive.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = CardPrimitive.cpp; sourceTree = "<group>"; };
|
CEA376F91291C60500B9016A /* CardPrimitive.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = CardPrimitive.cpp; sourceTree = "<group>"; };
|
||||||
CEA376FA1291C60500B9016A /* CardSelector.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = CardSelector.cpp; sourceTree = "<group>"; };
|
CEA376FA1291C60500B9016A /* CardSelector.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = CardSelector.cpp; sourceTree = "<group>"; };
|
||||||
@@ -729,7 +730,6 @@
|
|||||||
CEA377061291C60500B9016A /* DeckMetaData.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = DeckMetaData.cpp; sourceTree = "<group>"; };
|
CEA377061291C60500B9016A /* DeckMetaData.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = DeckMetaData.cpp; sourceTree = "<group>"; };
|
||||||
CEA377071291C60500B9016A /* DeckStats.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = DeckStats.cpp; sourceTree = "<group>"; };
|
CEA377071291C60500B9016A /* DeckStats.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = DeckStats.cpp; sourceTree = "<group>"; };
|
||||||
CEA377081291C60500B9016A /* DuelLayers.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = DuelLayers.cpp; sourceTree = "<group>"; };
|
CEA377081291C60500B9016A /* DuelLayers.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = DuelLayers.cpp; sourceTree = "<group>"; };
|
||||||
CEA377091291C60500B9016A /* Effects.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = Effects.cpp; sourceTree = "<group>"; };
|
|
||||||
CEA3770A1291C60500B9016A /* ExtraCost.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = ExtraCost.cpp; sourceTree = "<group>"; };
|
CEA3770A1291C60500B9016A /* ExtraCost.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = ExtraCost.cpp; sourceTree = "<group>"; };
|
||||||
CEA3770B1291C60500B9016A /* GameApp.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = GameApp.cpp; sourceTree = "<group>"; };
|
CEA3770B1291C60500B9016A /* GameApp.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = GameApp.cpp; sourceTree = "<group>"; };
|
||||||
CEA3770C1291C60500B9016A /* GameLauncher.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = GameLauncher.cpp; sourceTree = "<group>"; };
|
CEA3770C1291C60500B9016A /* GameLauncher.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = GameLauncher.cpp; sourceTree = "<group>"; };
|
||||||
@@ -890,7 +890,6 @@
|
|||||||
12059E4A14980B7300DAC43B /* libstdc++.dylib in Frameworks */,
|
12059E4A14980B7300DAC43B /* libstdc++.dylib in Frameworks */,
|
||||||
12059E4B14980B7300DAC43B /* CFNetwork.framework in Frameworks */,
|
12059E4B14980B7300DAC43B /* CFNetwork.framework in Frameworks */,
|
||||||
12059E4C14980B7300DAC43B /* MobileCoreServices.framework in Frameworks */,
|
12059E4C14980B7300DAC43B /* MobileCoreServices.framework in Frameworks */,
|
||||||
12059E4D14980B7300DAC43B /* libGoogleAdMobAds.a in Frameworks */,
|
|
||||||
12059E4E14980B7300DAC43B /* libc++abi.dylib in Frameworks */,
|
12059E4E14980B7300DAC43B /* libc++abi.dylib in Frameworks */,
|
||||||
12059E4F14980B7300DAC43B /* libsqlite3.dylib in Frameworks */,
|
12059E4F14980B7300DAC43B /* libsqlite3.dylib in Frameworks */,
|
||||||
12059E5014980B7300DAC43B /* iAd.framework in Frameworks */,
|
12059E5014980B7300DAC43B /* iAd.framework in Frameworks */,
|
||||||
@@ -922,7 +921,6 @@
|
|||||||
12D095E114417D0500F69056 /* libstdc++.dylib in Frameworks */,
|
12D095E114417D0500F69056 /* libstdc++.dylib in Frameworks */,
|
||||||
12211EBB14934A2C00641703 /* CFNetwork.framework in Frameworks */,
|
12211EBB14934A2C00641703 /* CFNetwork.framework in Frameworks */,
|
||||||
12211EB914934A1900641703 /* MobileCoreServices.framework in Frameworks */,
|
12211EB914934A1900641703 /* MobileCoreServices.framework in Frameworks */,
|
||||||
1216D634148F747D000F2295 /* libGoogleAdMobAds.a in Frameworks */,
|
|
||||||
1216D633148F7411000F2295 /* libc++abi.dylib in Frameworks */,
|
1216D633148F7411000F2295 /* libc++abi.dylib in Frameworks */,
|
||||||
128ED510148BCC1900C58E83 /* libsqlite3.dylib in Frameworks */,
|
128ED510148BCC1900C58E83 /* libsqlite3.dylib in Frameworks */,
|
||||||
129654D1148A52740031100B /* iAd.framework in Frameworks */,
|
129654D1148A52740031100B /* iAd.framework in Frameworks */,
|
||||||
@@ -1284,6 +1282,10 @@
|
|||||||
CEA376851291C60500B9016A /* include */ = {
|
CEA376851291C60500B9016A /* include */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
751E1F0E18FAE52D001B1E16 /* CarouselDeckView.h */,
|
||||||
|
751E1F0F18FAE52D001B1E16 /* DeckView.h */,
|
||||||
|
751E1F1018FAE52D001B1E16 /* Easing.h */,
|
||||||
|
751E1F1118FAE52D001B1E16 /* GridDeckView.h */,
|
||||||
12272FC114CD558C00192DC7 /* SimpleButton.h */,
|
12272FC114CD558C00192DC7 /* SimpleButton.h */,
|
||||||
12CCA032144A05DF00E343A0 /* AbilityParser.h */,
|
12CCA032144A05DF00E343A0 /* AbilityParser.h */,
|
||||||
127694891441274D0088F6D3 /* AIPlayerBaka.h */,
|
127694891441274D0088F6D3 /* AIPlayerBaka.h */,
|
||||||
@@ -1306,7 +1308,6 @@
|
|||||||
CEA3768C1291C60500B9016A /* AllAbilities.h */,
|
CEA3768C1291C60500B9016A /* AllAbilities.h */,
|
||||||
CEA3768D1291C60500B9016A /* CardDescriptor.h */,
|
CEA3768D1291C60500B9016A /* CardDescriptor.h */,
|
||||||
CEA3768E1291C60500B9016A /* CardDisplay.h */,
|
CEA3768E1291C60500B9016A /* CardDisplay.h */,
|
||||||
CEA3768F1291C60500B9016A /* CardEffect.h */,
|
|
||||||
CEA376901291C60500B9016A /* CardGui.h */,
|
CEA376901291C60500B9016A /* CardGui.h */,
|
||||||
CEA376911291C60500B9016A /* CardPrimitive.h */,
|
CEA376911291C60500B9016A /* CardPrimitive.h */,
|
||||||
CEA376921291C60500B9016A /* CardSelector.h */,
|
CEA376921291C60500B9016A /* CardSelector.h */,
|
||||||
@@ -1324,7 +1325,6 @@
|
|||||||
CEA3769E1291C60500B9016A /* DeckMetaData.h */,
|
CEA3769E1291C60500B9016A /* DeckMetaData.h */,
|
||||||
CEA3769F1291C60500B9016A /* DeckStats.h */,
|
CEA3769F1291C60500B9016A /* DeckStats.h */,
|
||||||
CEA376A01291C60500B9016A /* DuelLayers.h */,
|
CEA376A01291C60500B9016A /* DuelLayers.h */,
|
||||||
CEA376A11291C60500B9016A /* Effects.h */,
|
|
||||||
CEA376A21291C60500B9016A /* ExtraCost.h */,
|
CEA376A21291C60500B9016A /* ExtraCost.h */,
|
||||||
CEA376A31291C60500B9016A /* GameApp.h */,
|
CEA376A31291C60500B9016A /* GameApp.h */,
|
||||||
CEA376A41291C60500B9016A /* GameObserver.h */,
|
CEA376A41291C60500B9016A /* GameObserver.h */,
|
||||||
@@ -1408,6 +1408,9 @@
|
|||||||
CEA376ED1291C60500B9016A /* src */ = {
|
CEA376ED1291C60500B9016A /* src */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
751E1F1218FAE53E001B1E16 /* CarouselDeckView.cpp */,
|
||||||
|
751E1F1318FAE53E001B1E16 /* DeckView.cpp */,
|
||||||
|
751E1F1418FAE53E001B1E16 /* GridDeckView.cpp */,
|
||||||
12CCA02F144A05D100E343A0 /* AbilityParser.cpp */,
|
12CCA02F144A05D100E343A0 /* AbilityParser.cpp */,
|
||||||
12769483144127380088F6D3 /* AIPlayerBaka.cpp */,
|
12769483144127380088F6D3 /* AIPlayerBaka.cpp */,
|
||||||
12769484144127380088F6D3 /* AIPlayerBakaB.cpp */,
|
12769484144127380088F6D3 /* AIPlayerBakaB.cpp */,
|
||||||
@@ -1427,7 +1430,6 @@
|
|||||||
CEA376F41291C60500B9016A /* AllAbilities.cpp */,
|
CEA376F41291C60500B9016A /* AllAbilities.cpp */,
|
||||||
CEA376F51291C60500B9016A /* CardDescriptor.cpp */,
|
CEA376F51291C60500B9016A /* CardDescriptor.cpp */,
|
||||||
CEA376F61291C60500B9016A /* CardDisplay.cpp */,
|
CEA376F61291C60500B9016A /* CardDisplay.cpp */,
|
||||||
CEA376F71291C60500B9016A /* CardEffect.cpp */,
|
|
||||||
CEA376F81291C60500B9016A /* CardGui.cpp */,
|
CEA376F81291C60500B9016A /* CardGui.cpp */,
|
||||||
CEA376F91291C60500B9016A /* CardPrimitive.cpp */,
|
CEA376F91291C60500B9016A /* CardPrimitive.cpp */,
|
||||||
CEA376FA1291C60500B9016A /* CardSelector.cpp */,
|
CEA376FA1291C60500B9016A /* CardSelector.cpp */,
|
||||||
@@ -1445,7 +1447,6 @@
|
|||||||
CEA377061291C60500B9016A /* DeckMetaData.cpp */,
|
CEA377061291C60500B9016A /* DeckMetaData.cpp */,
|
||||||
CEA377071291C60500B9016A /* DeckStats.cpp */,
|
CEA377071291C60500B9016A /* DeckStats.cpp */,
|
||||||
CEA377081291C60500B9016A /* DuelLayers.cpp */,
|
CEA377081291C60500B9016A /* DuelLayers.cpp */,
|
||||||
CEA377091291C60500B9016A /* Effects.cpp */,
|
|
||||||
CEA3770A1291C60500B9016A /* ExtraCost.cpp */,
|
CEA3770A1291C60500B9016A /* ExtraCost.cpp */,
|
||||||
CEA3770B1291C60500B9016A /* GameApp.cpp */,
|
CEA3770B1291C60500B9016A /* GameApp.cpp */,
|
||||||
CEA3770C1291C60500B9016A /* GameLauncher.cpp */,
|
CEA3770C1291C60500B9016A /* GameLauncher.cpp */,
|
||||||
@@ -1703,7 +1704,7 @@
|
|||||||
29B97313FDCFA39411CA2CEA /* Project object */ = {
|
29B97313FDCFA39411CA2CEA /* Project object */ = {
|
||||||
isa = PBXProject;
|
isa = PBXProject;
|
||||||
attributes = {
|
attributes = {
|
||||||
LastUpgradeCheck = 0430;
|
LastUpgradeCheck = 0510;
|
||||||
};
|
};
|
||||||
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "wagic" */;
|
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "wagic" */;
|
||||||
compatibilityVersion = "Xcode 3.2";
|
compatibilityVersion = "Xcode 3.2";
|
||||||
@@ -1827,7 +1828,6 @@
|
|||||||
12059DA814980B7300DAC43B /* AllAbilities.cpp in Sources */,
|
12059DA814980B7300DAC43B /* AllAbilities.cpp in Sources */,
|
||||||
12059DA914980B7300DAC43B /* CardDescriptor.cpp in Sources */,
|
12059DA914980B7300DAC43B /* CardDescriptor.cpp in Sources */,
|
||||||
12059DAA14980B7300DAC43B /* CardDisplay.cpp in Sources */,
|
12059DAA14980B7300DAC43B /* CardDisplay.cpp in Sources */,
|
||||||
12059DAB14980B7300DAC43B /* CardEffect.cpp in Sources */,
|
|
||||||
12059DAC14980B7300DAC43B /* CardGui.cpp in Sources */,
|
12059DAC14980B7300DAC43B /* CardGui.cpp in Sources */,
|
||||||
12059DAD14980B7300DAC43B /* CardPrimitive.cpp in Sources */,
|
12059DAD14980B7300DAC43B /* CardPrimitive.cpp in Sources */,
|
||||||
12059DAE14980B7300DAC43B /* CardSelector.cpp in Sources */,
|
12059DAE14980B7300DAC43B /* CardSelector.cpp in Sources */,
|
||||||
@@ -1845,7 +1845,6 @@
|
|||||||
12059DBA14980B7300DAC43B /* DeckMetaData.cpp in Sources */,
|
12059DBA14980B7300DAC43B /* DeckMetaData.cpp in Sources */,
|
||||||
12059DBB14980B7300DAC43B /* DeckStats.cpp in Sources */,
|
12059DBB14980B7300DAC43B /* DeckStats.cpp in Sources */,
|
||||||
12059DBC14980B7300DAC43B /* DuelLayers.cpp in Sources */,
|
12059DBC14980B7300DAC43B /* DuelLayers.cpp in Sources */,
|
||||||
12059DBD14980B7300DAC43B /* Effects.cpp in Sources */,
|
|
||||||
12059DBE14980B7300DAC43B /* ExtraCost.cpp in Sources */,
|
12059DBE14980B7300DAC43B /* ExtraCost.cpp in Sources */,
|
||||||
12059DBF14980B7300DAC43B /* GameApp.cpp in Sources */,
|
12059DBF14980B7300DAC43B /* GameApp.cpp in Sources */,
|
||||||
12059DC014980B7300DAC43B /* GameLauncher.cpp in Sources */,
|
12059DC014980B7300DAC43B /* GameLauncher.cpp in Sources */,
|
||||||
@@ -2009,7 +2008,6 @@
|
|||||||
CEA3775E1291C60500B9016A /* AllAbilities.cpp in Sources */,
|
CEA3775E1291C60500B9016A /* AllAbilities.cpp in Sources */,
|
||||||
CEA3775F1291C60500B9016A /* CardDescriptor.cpp in Sources */,
|
CEA3775F1291C60500B9016A /* CardDescriptor.cpp in Sources */,
|
||||||
CEA377601291C60500B9016A /* CardDisplay.cpp in Sources */,
|
CEA377601291C60500B9016A /* CardDisplay.cpp in Sources */,
|
||||||
CEA377611291C60500B9016A /* CardEffect.cpp in Sources */,
|
|
||||||
CEA377621291C60500B9016A /* CardGui.cpp in Sources */,
|
CEA377621291C60500B9016A /* CardGui.cpp in Sources */,
|
||||||
CEA377631291C60500B9016A /* CardPrimitive.cpp in Sources */,
|
CEA377631291C60500B9016A /* CardPrimitive.cpp in Sources */,
|
||||||
CEA377641291C60500B9016A /* CardSelector.cpp in Sources */,
|
CEA377641291C60500B9016A /* CardSelector.cpp in Sources */,
|
||||||
@@ -2027,7 +2025,6 @@
|
|||||||
CEA377701291C60500B9016A /* DeckMetaData.cpp in Sources */,
|
CEA377701291C60500B9016A /* DeckMetaData.cpp in Sources */,
|
||||||
CEA377711291C60500B9016A /* DeckStats.cpp in Sources */,
|
CEA377711291C60500B9016A /* DeckStats.cpp in Sources */,
|
||||||
CEA377721291C60500B9016A /* DuelLayers.cpp in Sources */,
|
CEA377721291C60500B9016A /* DuelLayers.cpp in Sources */,
|
||||||
CEA377731291C60500B9016A /* Effects.cpp in Sources */,
|
|
||||||
CEA377741291C60500B9016A /* ExtraCost.cpp in Sources */,
|
CEA377741291C60500B9016A /* ExtraCost.cpp in Sources */,
|
||||||
CEA377751291C60500B9016A /* GameApp.cpp in Sources */,
|
CEA377751291C60500B9016A /* GameApp.cpp in Sources */,
|
||||||
CEA377761291C60500B9016A /* GameLauncher.cpp in Sources */,
|
CEA377761291C60500B9016A /* GameLauncher.cpp in Sources */,
|
||||||
@@ -2057,6 +2054,7 @@
|
|||||||
CEA3778F1291C60500B9016A /* ManaCostHybrid.cpp in Sources */,
|
CEA3778F1291C60500B9016A /* ManaCostHybrid.cpp in Sources */,
|
||||||
CEA377901291C60500B9016A /* MenuItem.cpp in Sources */,
|
CEA377901291C60500B9016A /* MenuItem.cpp in Sources */,
|
||||||
CEA377911291C60500B9016A /* MTGAbility.cpp in Sources */,
|
CEA377911291C60500B9016A /* MTGAbility.cpp in Sources */,
|
||||||
|
751E1F1718FAE53E001B1E16 /* GridDeckView.cpp in Sources */,
|
||||||
CEA377931291C60500B9016A /* MTGCard.cpp in Sources */,
|
CEA377931291C60500B9016A /* MTGCard.cpp in Sources */,
|
||||||
CEA377941291C60500B9016A /* MTGCardInstance.cpp in Sources */,
|
CEA377941291C60500B9016A /* MTGCardInstance.cpp in Sources */,
|
||||||
CEA377951291C60500B9016A /* MTGDeck.cpp in Sources */,
|
CEA377951291C60500B9016A /* MTGDeck.cpp in Sources */,
|
||||||
@@ -2095,6 +2093,7 @@
|
|||||||
CEA377BA1291C60500B9016A /* utils.cpp in Sources */,
|
CEA377BA1291C60500B9016A /* utils.cpp in Sources */,
|
||||||
CEA377BB1291C60500B9016A /* WCachedResource.cpp in Sources */,
|
CEA377BB1291C60500B9016A /* WCachedResource.cpp in Sources */,
|
||||||
CEA377BC1291C60500B9016A /* WDataSrc.cpp in Sources */,
|
CEA377BC1291C60500B9016A /* WDataSrc.cpp in Sources */,
|
||||||
|
751E1F1618FAE53E001B1E16 /* DeckView.cpp in Sources */,
|
||||||
CEA377BD1291C60500B9016A /* WEvent.cpp in Sources */,
|
CEA377BD1291C60500B9016A /* WEvent.cpp in Sources */,
|
||||||
CEA377BE1291C60500B9016A /* WFilter.cpp in Sources */,
|
CEA377BE1291C60500B9016A /* WFilter.cpp in Sources */,
|
||||||
CEA377BF1291C60500B9016A /* WFont.cpp in Sources */,
|
CEA377BF1291C60500B9016A /* WFont.cpp in Sources */,
|
||||||
@@ -2104,6 +2103,7 @@
|
|||||||
CE9A478512B514BA00C9F38A /* EAGLView.m in Sources */,
|
CE9A478512B514BA00C9F38A /* EAGLView.m in Sources */,
|
||||||
CE9A478612B514BA00C9F38A /* EAGLViewController.m in Sources */,
|
CE9A478612B514BA00C9F38A /* EAGLViewController.m in Sources */,
|
||||||
CE9A478912B514BA00C9F38A /* ES2Renderer.m in Sources */,
|
CE9A478912B514BA00C9F38A /* ES2Renderer.m in Sources */,
|
||||||
|
751E1F1518FAE53E001B1E16 /* CarouselDeckView.cpp in Sources */,
|
||||||
CE9A478A12B514BA00C9F38A /* main.m in Sources */,
|
CE9A478A12B514BA00C9F38A /* main.m in Sources */,
|
||||||
CE9A478D12B514BA00C9F38A /* wagicAppDelegate.m in Sources */,
|
CE9A478D12B514BA00C9F38A /* wagicAppDelegate.m in Sources */,
|
||||||
CE9E71DD1375A58600759DDC /* thread.cpp in Sources */,
|
CE9E71DD1375A58600759DDC /* thread.cpp in Sources */,
|
||||||
@@ -2152,10 +2152,6 @@
|
|||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ALWAYS_SEARCH_USER_PATHS = YES;
|
ALWAYS_SEARCH_USER_PATHS = YES;
|
||||||
ARCHS = (
|
|
||||||
armv6,
|
|
||||||
"$(ARCHS_STANDARD_32_BIT)",
|
|
||||||
);
|
|
||||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||||
COPY_PHASE_STRIP = NO;
|
COPY_PHASE_STRIP = NO;
|
||||||
@@ -2205,10 +2201,6 @@
|
|||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||||
ARCHS = (
|
|
||||||
armv6,
|
|
||||||
"$(ARCHS_STANDARD_32_BIT)",
|
|
||||||
);
|
|
||||||
CODE_SIGN_IDENTITY = "iPhone Distribution";
|
CODE_SIGN_IDENTITY = "iPhone Distribution";
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
|
||||||
COPY_PHASE_STRIP = YES;
|
COPY_PHASE_STRIP = YES;
|
||||||
@@ -2252,10 +2244,6 @@
|
|||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ALWAYS_SEARCH_USER_PATHS = YES;
|
ALWAYS_SEARCH_USER_PATHS = YES;
|
||||||
ARCHS = (
|
|
||||||
armv6,
|
|
||||||
"$(ARCHS_STANDARD_32_BIT)",
|
|
||||||
);
|
|
||||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||||
COPY_PHASE_STRIP = NO;
|
COPY_PHASE_STRIP = NO;
|
||||||
@@ -2291,10 +2279,7 @@
|
|||||||
"\"$(SRCROOT)/../../admobsdk/iOS/GoogleAdMobAdsSDKiOS-5.0.5\"",
|
"\"$(SRCROOT)/../../admobsdk/iOS/GoogleAdMobAdsSDKiOS-5.0.5\"",
|
||||||
);
|
);
|
||||||
"New Setting" = "";
|
"New Setting" = "";
|
||||||
OTHER_LDFLAGS = (
|
OTHER_LDFLAGS = "-Wl";
|
||||||
"-no_implicit_dylibs",
|
|
||||||
"-Wl",
|
|
||||||
);
|
|
||||||
PRODUCT_NAME = wagic;
|
PRODUCT_NAME = wagic;
|
||||||
PROVISIONING_PROFILE = "";
|
PROVISIONING_PROFILE = "";
|
||||||
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
|
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
|
||||||
@@ -2307,10 +2292,6 @@
|
|||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||||
ARCHS = (
|
|
||||||
armv6,
|
|
||||||
"$(ARCHS_STANDARD_32_BIT)",
|
|
||||||
);
|
|
||||||
CODE_SIGN_IDENTITY = "iPhone Distribution";
|
CODE_SIGN_IDENTITY = "iPhone Distribution";
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
|
||||||
COPY_PHASE_STRIP = YES;
|
COPY_PHASE_STRIP = YES;
|
||||||
@@ -2339,10 +2320,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"\"$(SRCROOT)/../../admobsdk/iOS/GoogleAdMobAdsSDKiOS-5.0.5\"",
|
"\"$(SRCROOT)/../../admobsdk/iOS/GoogleAdMobAdsSDKiOS-5.0.5\"",
|
||||||
);
|
);
|
||||||
OTHER_LDFLAGS = (
|
OTHER_LDFLAGS = "-Wl";
|
||||||
"-no_implicit_dylibs",
|
|
||||||
"-Wl",
|
|
||||||
);
|
|
||||||
PRODUCT_NAME = wagic;
|
PRODUCT_NAME = wagic;
|
||||||
PROVISIONING_PROFILE = "";
|
PROVISIONING_PROFILE = "";
|
||||||
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
|
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
|
||||||
@@ -2354,7 +2332,6 @@
|
|||||||
C01FCF4F08A954540054247B /* Debug */ = {
|
C01FCF4F08A954540054247B /* Debug */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)";
|
|
||||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||||
DEPLOYMENT_LOCATION = NO;
|
DEPLOYMENT_LOCATION = NO;
|
||||||
@@ -2365,6 +2342,11 @@
|
|||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
HEADER_SEARCH_PATHS = ../../Boost/boost;
|
HEADER_SEARCH_PATHS = ../../Boost/boost;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 5.1;
|
IPHONEOS_DEPLOYMENT_TARGET = 5.1;
|
||||||
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
|
OTHER_CFLAGS = (
|
||||||
|
"-DTIXML_USE_STL",
|
||||||
|
"-fno-objc-arc",
|
||||||
|
);
|
||||||
PROVISIONING_PROFILE = "";
|
PROVISIONING_PROFILE = "";
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
TARGETED_DEVICE_FAMILY = "1,2";
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
@@ -2374,7 +2356,6 @@
|
|||||||
C01FCF5008A954540054247B /* Release */ = {
|
C01FCF5008A954540054247B /* Release */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)";
|
|
||||||
CODE_SIGN_IDENTITY = "iPhone Distribution";
|
CODE_SIGN_IDENTITY = "iPhone Distribution";
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
|
||||||
GCC_C_LANGUAGE_STANDARD = c99;
|
GCC_C_LANGUAGE_STANDARD = c99;
|
||||||
@@ -2382,7 +2363,10 @@
|
|||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
HEADER_SEARCH_PATHS = ../../Boost/boost;
|
HEADER_SEARCH_PATHS = ../../Boost/boost;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 5.1;
|
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 = "";
|
||||||
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
|
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<Scheme
|
<Scheme
|
||||||
LastUpgradeVersion = "0500"
|
LastUpgradeVersion = "0510"
|
||||||
version = "1.3">
|
version = "1.3">
|
||||||
<BuildAction
|
<BuildAction
|
||||||
parallelizeBuildables = "YES"
|
parallelizeBuildables = "YES"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<Scheme
|
<Scheme
|
||||||
LastUpgradeVersion = "0500"
|
LastUpgradeVersion = "0510"
|
||||||
version = "1.3">
|
version = "1.3">
|
||||||
<BuildAction
|
<BuildAction
|
||||||
parallelizeBuildables = "YES"
|
parallelizeBuildables = "YES"
|
||||||
|
|||||||
123
travis-script.sh
123
travis-script.sh
@@ -1,8 +1,6 @@
|
|||||||
#!/bin/sh -ex
|
#!/bin/sh -ex
|
||||||
|
|
||||||
# let's dump some info to debug a bit
|
# let's dump some info to debug a bit
|
||||||
echo PSPDEV = $PSPDEV
|
|
||||||
echo psp-config = `psp-config --psp-prefix`
|
|
||||||
echo ls = `ls`
|
echo ls = `ls`
|
||||||
echo pwd = `pwd`
|
echo pwd = `pwd`
|
||||||
# computing potential release name
|
# computing potential release name
|
||||||
@@ -35,65 +33,74 @@ mv core_*.zip ../../../../core.zip
|
|||||||
cd ../../../..
|
cd ../../../..
|
||||||
|
|
||||||
# we're building a PSP binary here
|
# we're building a PSP binary here
|
||||||
cd JGE
|
if [ "$BUILD_TYPE" = "PSP" ]; then
|
||||||
make -j 8
|
# let's dump some info to debug a bit
|
||||||
cd ..
|
echo PSPDEV = $PSPDEV
|
||||||
cd projects/mtg
|
echo psp-config = `psp-config --psp-prefix`
|
||||||
mkdir objs
|
cd JGE
|
||||||
make -j 8
|
make -j 4
|
||||||
mkdir WTH
|
cd ..
|
||||||
mkdir WTH/Res
|
cd projects/mtg
|
||||||
mv EBOOT.PBP WTH/
|
mkdir objs
|
||||||
mv ../../JGE/exceptionHandler/prx/exception.prx WTH/
|
make -j 4
|
||||||
cp ../../core.zip WTH/Res
|
mkdir WTH
|
||||||
cd WTH/Res
|
mkdir WTH/Res
|
||||||
unzip core.zip
|
mv EBOOT.PBP WTH/
|
||||||
rm core.zip
|
mv ../../JGE/exceptionHandler/prx/exception.prx WTH/
|
||||||
cd ..
|
cp ../../core.zip WTH/Res
|
||||||
chmod -R 775 Res
|
cd WTH/Res
|
||||||
cd ..
|
unzip core.zip
|
||||||
zip psprelease.zip -r WTH/
|
rm core.zip
|
||||||
cd ../..
|
cd ..
|
||||||
|
chmod -R 775 Res
|
||||||
|
cd ..
|
||||||
|
zip psprelease.zip -r WTH/
|
||||||
|
cd ../..
|
||||||
|
fi
|
||||||
|
|
||||||
# we're building an Android binary here
|
# we're building an Android binary here
|
||||||
android-ndk-r9/ndk-build -C projects/mtg/Android -j8
|
if [ "$BUILD_TYPE" = "Android" ]; then
|
||||||
$ANDROID list targets
|
android-ndk-r9/ndk-build -C projects/mtg/Android -j4
|
||||||
$ANDROID update project -t 1 -p projects/mtg/Android
|
$ANDROID list targets
|
||||||
ant debug -f projects/mtg/Android/build.xml
|
$ANDROID update project -t 1 -p projects/mtg/Android
|
||||||
|
ant debug -f projects/mtg/Android/build.xml
|
||||||
|
fi
|
||||||
|
|
||||||
# we're building a Qt version with GUI here
|
if [ "$BUILD_TYPE" = "Qt" ]; then
|
||||||
mkdir qt-gui-build
|
# we're building a Qt version with GUI here
|
||||||
cd qt-gui-build
|
mkdir qt-gui-build
|
||||||
qmake ../projects/mtg/wagic-SDL.pro CONFIG+=release CONFIG+=graphics
|
cd qt-gui-build
|
||||||
make -j 8
|
$QMAKE ../projects/mtg/wagic-qt.pro CONFIG+=release CONFIG+=graphics
|
||||||
cd ..
|
make -j 4
|
||||||
|
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
|
||||||
|
make -j 4
|
||||||
|
|
||||||
# let's try an Intel linux binary in debug text-mode-only
|
# we're cross-compiling a Qt Windows version here,
|
||||||
qmake projects/mtg/wagic-qt.pro CONFIG+=console CONFIG+=debug DEFINES+=CAPTURE_STDERR
|
# PATH is only set here to prevent colision
|
||||||
make -j 8
|
|
||||||
|
|
||||||
# we're cross-compiling a Qt Windows version here,
|
# export PATH="$PATH:/opt/mingw32/bin"
|
||||||
# PATH is only set here to prevent colision
|
# mkdir build
|
||||||
export PATH="$PATH:/opt/mingw32/bin"
|
# cd build
|
||||||
mkdir build
|
# mkdir win-cross
|
||||||
cd build
|
# cd win-cross
|
||||||
mkdir win-cross
|
# /opt/mingw32/bin/qmake ../../projects/mtg/wagic-qt.pro CONFIG+=release CONFIG+=graphics
|
||||||
cd win-cross
|
# make -j 4
|
||||||
/opt/mingw32/bin/qmake ../../projects/mtg/wagic-qt.pro CONFIG+=release CONFIG+=graphics
|
# cd release
|
||||||
make -j 8
|
# cp ../../../projects/mtg/bin/fmod.dll .
|
||||||
cd release
|
# cp /opt/mingw32/bin/QtCore4.dll .
|
||||||
cp ../../../projects/mtg/bin/fmod.dll .
|
# cp /opt/mingw32/bin/QtGui4.dll .
|
||||||
cp /opt/mingw32/bin/QtCore4.dll .
|
# cp /opt/mingw32/bin/QtNetwork4.dll .
|
||||||
cp /opt/mingw32/bin/QtGui4.dll .
|
# cp /opt/mingw32/bin/QtOpenGL4.dll .
|
||||||
cp /opt/mingw32/bin/QtNetwork4.dll .
|
# cp ../../../projects/mtg/bin/zlib1.dll .
|
||||||
cp /opt/mingw32/bin/QtOpenGL4.dll .
|
# cp /opt/mingw32/bin/libpng15-15.dll .
|
||||||
cp ../../../projects/mtg/bin/zlib1.dll .
|
# cd ..
|
||||||
cp /opt/mingw32/bin/libpng15-15.dll .
|
# zip win-cross.zip -r release/
|
||||||
cd ..
|
# cd ../..
|
||||||
zip win-cross.zip -r release/
|
|
||||||
cd ../..
|
|
||||||
|
|
||||||
# Now we run the testsuite (Res needs to be in the working directory)
|
# Now we run the testsuite (Res needs to be in the working directory)
|
||||||
cd projects/mtg
|
cd projects/mtg
|
||||||
../../wagic
|
../../wagic
|
||||||
cd ../..
|
cd ../..
|
||||||
|
fi
|
||||||
|
|||||||
66
upload-binaries.py
Normal file
66
upload-binaries.py
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
import sys
|
||||||
|
import os
|
||||||
|
import zipfile
|
||||||
|
from pyjavaproperties import Properties
|
||||||
|
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
|
||||||
|
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 = repository.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();
|
||||||
|
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'):
|
||||||
|
gh = login(token = options.token)
|
||||||
|
else:
|
||||||
|
parser.print_help()
|
||||||
|
return
|
||||||
|
|
||||||
|
repository = gh.repository('WagicProject', 'wagic')
|
||||||
|
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__":
|
||||||
|
main()
|
||||||
@@ -26,12 +26,12 @@ if [ "$TRAVIS_BRANCH" == "alphas" ]; then
|
|||||||
--data-binary @projects/mtg/psprelease.zip \
|
--data-binary @projects/mtg/psprelease.zip \
|
||||||
"https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-psp.zip"
|
"https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-psp.zip"
|
||||||
|
|
||||||
echo -e "Uploading Windows package\n"
|
# echo -e "Uploading Windows package\n"
|
||||||
curl -X POST -H "Authorization: token ${GH_TOKEN}" \
|
# curl -X POST -H "Authorization: token ${GH_TOKEN}" \
|
||||||
-H "Accept: application/vnd.github.manifold-preview" \
|
# -H "Accept: application/vnd.github.manifold-preview" \
|
||||||
-H "Content-Type: application/zip" \
|
# -H "Content-Type: application/zip" \
|
||||||
--data-binary @build/win-cross/win-cross.zip \
|
# --data-binary @build/win-cross/win-cross.zip \
|
||||||
"https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-windows.zip"
|
# "https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-windows.zip"
|
||||||
|
|
||||||
echo -e "Done uploading\n"
|
echo -e "Done uploading\n"
|
||||||
fi
|
fi
|
||||||
@@ -87,12 +87,12 @@ if [ "$TRAVIS_BRANCH" == "master" ]; then
|
|||||||
--data-binary @projects/mtg/psprelease.zip \
|
--data-binary @projects/mtg/psprelease.zip \
|
||||||
"https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-psp.zip"
|
"https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-psp.zip"
|
||||||
|
|
||||||
echo -e "Uploading Windows package\n"
|
# echo -e "Uploading Windows package\n"
|
||||||
curl -X POST -H "Authorization: token ${GH_TOKEN}" \
|
# curl -X POST -H "Authorization: token ${GH_TOKEN}" \
|
||||||
-H "Accept: application/vnd.github.manifold-preview" \
|
# -H "Accept: application/vnd.github.manifold-preview" \
|
||||||
-H "Content-Type: application/zip" \
|
# -H "Content-Type: application/zip" \
|
||||||
--data-binary @build/win-cross/win-cross.zip \
|
# --data-binary @build/win-cross/win-cross.zip \
|
||||||
"https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-windows.zip"
|
# "https://uploads.github.com/repos/WagicProject/wagic/releases/${IDDI}/assets?name=Wagic-windows.zip"
|
||||||
|
|
||||||
echo -e "Done uploading\n"
|
echo -e "Done uploading\n"
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user