Compare commits
17 Commits
AndroidRel
...
auto_relea
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
81770a8bc4 | ||
|
|
34972176fe | ||
|
|
600aa45ff7 | ||
|
|
b91a9aeed4 | ||
|
|
6a1534750f | ||
|
|
1cb20e4138 | ||
|
|
8458745bc4 | ||
|
|
2d61ff6e2e | ||
|
|
c5fe5243a9 | ||
|
|
a6a25be3d3 | ||
|
|
63694785c6 | ||
|
|
c68f83491e | ||
|
|
257082ea02 | ||
|
|
e5fe25dfba | ||
|
|
93ba3d107d | ||
|
|
fcf0078f26 | ||
|
|
d8c1933abc |
93
.travis.yml
@@ -1,65 +1,68 @@
|
|||||||
language: cpp
|
language: cpp
|
||||||
|
env:
|
||||||
|
global:
|
||||||
|
secure: "fJgWlCFbde96OSQNGKUmowGX+ERPeqP+n1EOMf1+FJzOU4DdkTLRAlV5+5qnEX9jB/3mWN6iPpmG1qEz/SdDG3KHxJYs4ZU/Lu485O24zZ/+GdYBNsrvhPD9ckPGEMLDa1foEVTDnW0Dlkz3BCFcszjhtXGUJv7v6Pj6LRk1Mg8="
|
||||||
|
matrix:
|
||||||
|
- BUILD_TYPE=PSP
|
||||||
|
- BUILD_TYPE=Android
|
||||||
|
- BUILD_TYPE=Qt
|
||||||
|
|
||||||
branches:
|
branches:
|
||||||
except:
|
except:
|
||||||
- latest-master
|
- latest-master
|
||||||
|
|
||||||
before_install:
|
before_install:
|
||||||
- export BUILD_PSP=YES
|
|
||||||
- export BUILD_ANDROID=YES
|
|
||||||
- export BUILD_Qt=YES
|
|
||||||
- export BUILD_MAC=NO
|
|
||||||
# Only building on Mac when not handling pull request
|
|
||||||
- if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then
|
|
||||||
export BUILD_MAC=YES;
|
|
||||||
fi
|
|
||||||
- sudo apt-get update -qq
|
- sudo apt-get update -qq
|
||||||
# Building for PSP here
|
# Building for PSP here
|
||||||
- if [ "$BUILD_PSP" == "YES" ]; then
|
- if [ "$BUILD_TYPE" == "PSP" ]; then
|
||||||
export PSPDEV="$TRAVIS_BUILD_DIR/opt/pspsdk" &&
|
export PSPDEV="$TRAVIS_BUILD_DIR/opt/pspsdk" &&
|
||||||
export PSPSDK="$PSPDEV/psp/sdk" &&
|
export PSPSDK="$PSPDEV/psp/sdk" &&
|
||||||
export PATH="$PATH:$PSPDEV/bin:$PSPSDK/bin" &&
|
export PATH="$PATH:$PSPDEV/bin:$PSPSDK/bin" &&
|
||||||
wget -O sdk.lzma http://superb-sea2.dl.sourceforge.net/project/minpspw/SDK%20%2B%20devpak/pspsdk%200.11.2/minpspw_0.11.2-amd64.tar.lzma;
|
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 Qt here
|
|
||||||
- if [ "$BUILD_Qt" == "YES" ]; then
|
|
||||||
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu trusty universe" &&
|
|
||||||
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu trusty main" &&
|
|
||||||
sudo apt-get -qq update &&
|
|
||||||
sudo apt-get -qq install qt5-qmake qtbase5-dev qtdeclarative5-dev qttools5-dev qtmultimedia5-dev pulseaudio libpulse-dev &&
|
|
||||||
export QMAKE="qmake -qt=qt5";
|
|
||||||
fi
|
fi
|
||||||
# Building for Android here
|
# Building for Android here
|
||||||
- if [ "$BUILD_ANDROID" == "YES" ]; then
|
- if [ "$BUILD_TYPE" == "Android" ]; then
|
||||||
export ANDROID="android-sdk-linux/tools/android" &&
|
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 &&
|
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/ndk/android-ndk-r9-linux-x86_64.tar.bz2 -nv &&
|
||||||
wget http://dl.google.com/android/android-sdk_r24.3.4-linux.tgz -nv;
|
wget http://dl.google.com/android/android-sdk_r23.0.2-linux.tgz -nv;
|
||||||
fi
|
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:
|
install:
|
||||||
- if [ "$BUILD_PSP" == "YES" ]; then
|
# Building for PSP here
|
||||||
tar -x --xz -f sdk.lzma;
|
- if [ "$BUILD_TYPE" == "PSP" ]; then
|
||||||
fi
|
tar -x --xz -f sdk.lzma;
|
||||||
- if [ "$BUILD_ANDROID" == "YES" ]; then
|
fi
|
||||||
tar --absolute-names -jxf android-ndk-r9-linux-x86_64.tar.bz2 &&
|
- if [ "$BUILD_TYPE" == "Android" ]; then
|
||||||
tar -zxf android-sdk_r24.3.4-linux.tgz &&
|
tar --absolute-names -jxf android-ndk-r9-linux-x86_64.tar.bz2 &&
|
||||||
$ANDROID list sdk --extended -a &&
|
tar -zxf android-sdk_r23.0.2-linux.tgz &&
|
||||||
echo yes | $ANDROID update sdk -a -t tools,platform-tools,build-tools-23.0.1,android-10 --no-ui --force --no-https;
|
$ANDROID list sdk --extended -a &&
|
||||||
fi
|
echo yes | $ANDROID update sdk --filter tools,platform-tools,build-tools-21.1.1,android-10 --no-ui --force --no-https;
|
||||||
- sudo pip install pyjavaproperties
|
fi
|
||||||
- sudo pip install github3.py
|
- sudo pip install pyjavaproperties
|
||||||
- sudo pip install cpp-coveralls
|
- sudo pip install github3.py
|
||||||
|
script: ./travis-script.sh
|
||||||
|
|
||||||
env:
|
matrix:
|
||||||
global:
|
fast_finish: true
|
||||||
- secure: "EBzr1+qjQsOhn0s+tcFmXR1jP9B0xiOSXuXbRXWZ1OEHNvp8+A5/pS84LYVFlaZqmxr5dApxvPtwhgLIUbQ3EPXm8LpC3KgSD4dS+9/QMbxhe5TK4oczgFRGcDTMJQZsCzhOh7hp3tbcbJg5Gp+VT7aFjFQSHDGwhzSJXsXwh/8="
|
|
||||||
- secure: "X5dTQfofqAutnXxmu11Ep2MQ5QYnMN8m0AITRtwymhEF2UclcOudI1+skPtuhAGbWQnSO+lhunV3cvMfw2/Ml3k/VDz6VdFSKFrzAu7ja1VLJfcxr7chi0s8q30pVBb66tGydjIBac3B+RQyqgmZQW1frbRrhC/kPFQ6wPWOJdQ="
|
|
||||||
- secure: "T97NUPnxCpVZ/c5HH0zfo0FO3DPSRMSmze58ubW5EUTZOjAMtEt+OFdsrNZvUTCugUj2M1agtonZbAbczpaAL+lgZcHDgXgWMkfO0pMnsWX1yyCNqMuE/iTMpJr/xsLQeyWlftWjJLsseQU45abZsd1XVmda/G+ZhrDLF1y55SA="
|
|
||||||
|
|
||||||
script: "tools/travis-script.sh"
|
deploy:
|
||||||
|
provider: releases
|
||||||
after_success:
|
api-key:
|
||||||
- coveralls -b . -e JGE/src -e JGE/include -i projects/mtg/include -i projects/mtg/src --gcov-options '\-lp'
|
secure: "gzfDEihpfTmoO6CSjTNpHSlLTPtQUZUqTlmD91CQby6+znDsOy4xsqj10MNXe+l/3KYny1DtM48nxNKeVjsyeYg66TTzKsrgMVzt6Ah5CBhSXO99/TiaMJmSXmMO7GGfKDct190Dqej1gbR7AMd38DOYe2vpR0LX+Lf3gzDVLoU="
|
||||||
- python tools/upload-binaries.py -t $GH_TOKEN -s $TRAVIS_COMMIT -l core.zip -r Wagic-core.zip -b $TRAVIS_BRANCH
|
file:
|
||||||
- python tools/upload-binaries.py -t $GH_TOKEN -s $TRAVIS_COMMIT -l projects/mtg/Android/bin/Wagic-debug.apk -r Wagic-android.apk -b $TRAVIS_BRANCH
|
- ${TRAVIS_BUILD_DIR}/core.zip
|
||||||
- python tools/upload-binaries.py -t $GH_TOKEN -s $TRAVIS_COMMIT -l projects/mtg/psprelease.zip -r Wagic-psp.zip -b $TRAVIS_BRANCH
|
- ${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
|
||||||
|
|||||||
190
CHANGELOG.md
@@ -1,190 +0,0 @@
|
|||||||
# Changelog
|
|
||||||
|
|
||||||
## [latest-master] (https://github.com/WagicProject/wagic/tree/latest-master)
|
|
||||||
#### 7/7/16
|
|
||||||
- *Merged pull-request:* Sorted Primitives and Cleanup Tabs [#\727] (https://github.com/WagicProject/wagic/pull/719) ([kevlahnota](https://github.com/kevlahnota))
|
|
||||||
|
|
||||||
- *Merged pull-request:* push to wagicproject [#\725] (https://github.com/WagicProject/wagic/pull/725) ([zethfoxster](https://github.com/zethfoxster))
|
|
||||||
|
|
||||||
#### 7/4/16
|
|
||||||
- *Merged pull-request:* Sorted Primitives & Updated Premium Deck Series [#\719] (https://github.com/WagicProject/wagic/pull/719) ([kevlahnota](https://github.com/kevlahnota))
|
|
||||||
|
|
||||||
- *Merged pull-request:* Fails but I have no idea why [#\717] (https://github.com/WagicProject/wagic/pull/717) ([zethfoxster](https://github.com/zethfoxster))
|
|
||||||
|
|
||||||
- *Merged pull-request:* Updated Sets [#\715] (https://github.com/WagicProject/wagic/pull/715) ([kevlahnota](https://github.com/kevlahnota))
|
|
||||||
|
|
||||||
#### 7/2/16
|
|
||||||
- *Merged pull-request:* Updated Masters, Beginners, Duels and Vault Sets [#\714] (https://github.com/WagicProject/wagic/pull/714) ([kevlahnota](https://github.com/kevlahnota))
|
|
||||||
|
|
||||||
#### 7/1/16
|
|
||||||
- *Merged pull-request:* Cleaned and Sorted all Core and Expansion Sets [#\713] (https://github.com/WagicProject/wagic/pull/713) ([kevlahnota](https://github.com/kevlahnota))
|
|
||||||
|
|
||||||
- *Merged pull-request:* Soulbond Pair Indicator [#\712] (https://github.com/WagicProject/wagic/pull/712) ([kevlahnota](https://github.com/kevlahnota))
|
|
||||||
|
|
||||||
#### 6/30/16
|
|
||||||
- *Merged pull-request:* Sorted Primitives [#\711] (https://github.com/WagicProject/wagic/pull/711) ([kevlahnota](https://github.com/kevlahnota))
|
|
||||||
|
|
||||||
- *Merged pull-request:* Add Shackle Ability [#\710] (https://github.com/WagicProject/wagic/pull/710) ([kevlahnota](https://github.com/kevlahnota))
|
|
||||||
|
|
||||||
- *Merged pull-request:* Fix Cascade, Crash fix on lastController and some corrections [#\709] (https://github.com/WagicProject/wagic/pull/709) ([kevlahnota](https://github.com/kevlahnota))
|
|
||||||
|
|
||||||
#### 6/29/16
|
|
||||||
- *Merged pull-request:* Updated Primitives and Hide Highlight Border [#\707] (https://github.com/WagicProject/wagic/pull/707) ([kevlahnota](https://github.com/kevlahnota))
|
|
||||||
|
|
||||||
- *Committed:* Pretty huge patch here(sorry old habits never die :( ) [#\6ee00c1] (https://github.com/WagicProject/wagic/commit/6ee00c138ce374d54cb3ee034575ce440288ca0e) ([zethfoxster](https://github.com/zethfoxster))
|
|
||||||
|
|
||||||
#### 6/23/16
|
|
||||||
- *Merged pull-request:* Fix producecolor:color [#\704] (https://github.com/WagicProject/wagic/pull/704) ([kevlahnota](https://github.com/kevlahnota))
|
|
||||||
|
|
||||||
#### 6/17/16
|
|
||||||
- *Merged pull-request:* Force Mounting 2 [#\699] (https://github.com/WagicProject/wagic/pull/699) ([kevlahnota](https://github.com/kevlahnota))
|
|
||||||
|
|
||||||
#### 6/16/16
|
|
||||||
- *Merged pull-request:* Import Deck Options [#\697] (https://github.com/WagicProject/wagic/pull/697) ([kevlahnota](https://github.com/kevlahnota))
|
|
||||||
|
|
||||||
#### 6/11/16
|
|
||||||
- *Merged pull-request:* Refactor & Devotion [#\690] (https://github.com/WagicProject/wagic/pull/690) ([kevlahnota](https://github.com/kevlahnota))
|
|
||||||
|
|
||||||
#### 6/9/16
|
|
||||||
- *Closed issue:* Clone goes to graveyard before being able to copy anything [\#546](https://github.com/WagicProject/wagic/issues/546)
|
|
||||||
|
|
||||||
- *Closed issue:* Blinking an aura causes freeze [\#541](https://github.com/WagicProject/wagic/issues/541)
|
|
||||||
|
|
||||||
- *Closed issue:* Profile name at upper left side is not being updated correctly [\#469](https://github.com/WagicProject/wagic/issues/469)
|
|
||||||
|
|
||||||
- *Closed issue:* Giving card C protection from X does not remove cards attached to C which have quality X [\#464](https://github.com/WagicProject/wagic/issues/464)
|
|
||||||
|
|
||||||
- *Closed issue:* (graphical glitch) wood / gold textures [\#461](https://github.com/WagicProject/wagic/issues/461)
|
|
||||||
|
|
||||||
- *Closed issue:* Clone does not get all P/T bonuses [\#448](https://github.com/WagicProject/wagic/issues/448)
|
|
||||||
|
|
||||||
- *Closed issue:* Card "threaten" messes up the GUI [\#473](https://github.com/WagicProject/wagic/issues/473)
|
|
||||||
|
|
||||||
#### 6/7/16
|
|
||||||
- *Closed issue:* Emrakul isn't killed by creatures with deathtouch [\#597](https://github.com/WagicProject/wagic/issues/597)
|
|
||||||
|
|
||||||
#### 6/3/16
|
|
||||||
- *Merged pull-request:* Cost Increaser & Reducer Fix [#\676] (https://github.com/WagicProject/wagic/pull/676) ([kevlahnota](https://github.com/kevlahnota))
|
|
||||||
|
|
||||||
#### 5/30/16
|
|
||||||
- *Fixed Bug:* deckstats crash when "unlock cards" is used [#\668] (https://github.com/WagicProject/wagic/issues/668) ([zethfoxster](https://github.com/zethfoxster))
|
|
||||||
|
|
||||||
#### 5/26/16
|
|
||||||
- *Closed issue:* Nasty memleak crashing devices and its fix. [#\664] (https://github.com/WagicProject/wagic/issues/664) ([zethfoxster](https://github.com/zethfoxster))
|
|
||||||
|
|
||||||
#### 11/08/15
|
|
||||||
- *Merged pull-request:* produce mana for lands you/opponent could produce [#\658] (https://github.com/WagicProject/wagic/pull/658) ([kevlahnota](https://github.com/kevlahnota))
|
|
||||||
|
|
||||||
#### 11/07/15
|
|
||||||
- *Merged pull-request:* Manacost Changes, Anyzone for CDA, PayZero Cost [#\656] (https://github.com/WagicProject/wagic/pull/656) ([kevlahnota](https://github.com/kevlahnota))
|
|
||||||
|
|
||||||
#### 10/31/15
|
|
||||||
- *Merged pull-request:* Exile Zone, Altercost and Hand modifier [#\653] (https://github.com/WagicProject/wagic/pull/653) ([kevlahnota](https://github.com/kevlahnota))
|
|
||||||
|
|
||||||
#### 10/17/15
|
|
||||||
- *Merged pull-request:* Fix issue #473 #784 [#\646] (https://github.com/WagicProject/wagic/pull/646) ([kevlahnota](https://github.com/kevlahnota))
|
|
||||||
|
|
||||||
#### 10/15/15
|
|
||||||
- *Merged pull-request:* Bug Fix: Planeswalker Rule & ABlink return to play ability for Aura cards [#\644] (https://github.com/WagicProject/wagic/pull/644) ([kevlahnota](https://github.com/kevlahnota))
|
|
||||||
|
|
||||||
#### 10/14/15
|
|
||||||
- *Merged pull-request:* Fix Legend Rule [#\643] (https://github.com/WagicProject/wagic/pull/643) ([kevlahnota](https://github.com/kevlahnota))
|
|
||||||
|
|
||||||
#### 10/12/15
|
|
||||||
- *Merged pull-request:* Fix crash bug, support doubled res texture for background, avatars, menutitle [#\641] (https://github.com/WagicProject/wagic/pull/641) ([kevlahnota](https://github.com/kevlahnota))
|
|
||||||
|
|
||||||
#### 10/02/15
|
|
||||||
- *Merged pull-request:* LKI for power, toughness and basic abilities, produceextra ability [#\636] (https://github.com/WagicProject/wagic/pull/636) ([kevlahnota](https://github.com/kevlahnota))
|
|
||||||
|
|
||||||
#### 09/29/15
|
|
||||||
- *Merged pull-request:* Fix Recover Cards, Cloner, Copier, and Preliminary support for Madness [#\635] (https://github.com/WagicProject/wagic/pull/635) ([kevlahnota](https://github.com/kevlahnota))
|
|
||||||
|
|
||||||
#### 09/22/15
|
|
||||||
- *Merged pull-request:* Auraward, unattach event and statebased action for protection from quality [#\631] (https://github.com/WagicProject/wagic/pull/631) ([kevlahnota](https://github.com/kevlahnota))
|
|
||||||
|
|
||||||
#### 09/19/15
|
|
||||||
- *Merged pull-request:* PT Switch like Layer 7e and Token Indicator [#\626] (https://github.com/WagicProject/wagic/pull/626) ([kevlahnota](https://github.com/kevlahnota))
|
|
||||||
|
|
||||||
#### 09/18/15
|
|
||||||
- *Merged pull-request:* Token Cloning fix and colored PT [#\624] (https://github.com/WagicProject/wagic/pull/624) ([kevlahnota](https://github.com/kevlahnota))
|
|
||||||
|
|
||||||
#### 09/15/15
|
|
||||||
- *Merged pull-request:* CDA and X manacost on stack [\#623] (https://github.com/WagicProject/wagic/pull/623) ([kevlahnota](https://github.com/kevlahnota))
|
|
||||||
|
|
||||||
#### 08/12/14
|
|
||||||
- *Merged pull-request:* Fix for guild_keywords Devotion, added some "Chroma" cards [\#606](https://github.com/WagicProject/wagic/pull/606) ([kevlahnota](https://github.com/kevlahnota))
|
|
||||||
|
|
||||||
- *Merged pull-request:* added guild keywords, added specific life cost [\#605](https://github.com/WagicProject/wagic/pull/605) ([kevlahnota](https://github.com/kevlahnota))
|
|
||||||
|
|
||||||
- *Merged pull-request:* Buyback issue and a fix [\#604](https://github.com/WagicProject/wagic/pull/604) ([apollovy](https://github.com/apollovy))
|
|
||||||
|
|
||||||
- *Merged pull-request:* Feature/ios update xcode5.1 [\#602](https://github.com/WagicProject/wagic/pull/602) ([mjnguyen](https://github.com/mjnguyen))
|
|
||||||
|
|
||||||
- *Merged pull-request:* Remove dead code and fix circular initialization [\#601](https://github.com/WagicProject/wagic/pull/601) ([ZobyTwo](https://github.com/ZobyTwo))
|
|
||||||
|
|
||||||
- *Merged pull-request:* update android build tools version [\#600](https://github.com/WagicProject/wagic/pull/600) ([Rolzad73](https://github.com/Rolzad73))
|
|
||||||
|
|
||||||
- *Merged pull-request:* Attempt to make android tools fetching for TravisCI explicit and futureproof [\#599](https://github.com/WagicProject/wagic/pull/599) ([Rolzad73](https://github.com/Rolzad73))
|
|
||||||
|
|
||||||
- *Merged pull-request:* Damager keyword [\#598](https://github.com/WagicProject/wagic/pull/598) ([bjornsnoen](https://github.com/bjornsnoen))
|
|
||||||
|
|
||||||
- *Merged pull-request:* Fix a rarity mistake and a grammatical error [\#596](https://github.com/WagicProject/wagic/pull/596) ([bjornsnoen](https://github.com/bjornsnoen))
|
|
||||||
|
|
||||||
- *Merged pull-request:* Fix bug where the phase wheel got out of sync [\#588](https://github.com/WagicProject/wagic/pull/588) ([ZobyTwo](https://github.com/ZobyTwo))
|
|
||||||
|
|
||||||
- *Merged pull-request:* More easing [\#586](https://github.com/WagicProject/wagic/pull/586) ([ZobyTwo](https://github.com/ZobyTwo))
|
|
||||||
|
|
||||||
- *Merged pull-request:* Added Avatar Tokens created by Ajani Goldmane. [\#585](https://github.com/WagicProject/wagic/pull/585) ([bjornsnoen](https://github.com/bjornsnoen))
|
|
||||||
|
|
||||||
- *Merged pull-request:* Cleanup, usability fixes and source code documentation for DeckView.h and GridDeckView.h [\#583](https://github.com/WagicProject/wagic/pull/583) ([ZobyTwo](https://github.com/ZobyTwo))
|
|
||||||
|
|
||||||
- *Fixed bug:* Blight does not destroy at the end of turn but right now [\#592](https://github.com/WagicProject/wagic/issues/592)
|
|
||||||
|
|
||||||
- *Fixed bug:* game freezes on Android when the phone returns from "sleep mode" [\#544](https://github.com/WagicProject/wagic/issues/544)
|
|
||||||
|
|
||||||
- *Fixed bug:* Android port needs to be able to respond to attaching/detaching devices to it [\#522](https://github.com/WagicProject/wagic/issues/522)
|
|
||||||
|
|
||||||
## [alpha-195] (https://github.com/WagicProject/wagic/tree/alpha-195)
|
|
||||||
#### 07/12/13
|
|
||||||
- *Merged pull-request:* Reset positions and filters when reopening the editor [\#578](https://github.com/WagicProject/wagic/pull/578) ([ZobyTwo](https://github.com/ZobyTwo))
|
|
||||||
|
|
||||||
- *Merged pull-request:* Deck viewer [\#577](https://github.com/WagicProject/wagic/pull/577) ([ZobyTwo](https://github.com/ZobyTwo))
|
|
||||||
|
|
||||||
- *Merged pull-request:* Do not specify the system directory in JGE [\#576](https://github.com/WagicProject/wagic/pull/576) ([ZobyTwo](https://github.com/ZobyTwo))
|
|
||||||
|
|
||||||
- *Merged pull-request:* Changed Travis build file to use Android API 10 and Android build tools 18.1.1 [\#575](https://github.com/WagicProject/wagic/pull/575) ([Rolzad73](https://github.com/Rolzad73))
|
|
||||||
|
|
||||||
- *Merged pull-request:* Feature/play from grave [\#574](https://github.com/WagicProject/wagic/pull/574) ([pankdm](https://github.com/pankdm))
|
|
||||||
|
|
||||||
- *Merged pull-request:* Fix Valgrind warnings appearing during the test suit. [\#573](https://github.com/WagicProject/wagic/pull/573) ([ZobyTwo](https://github.com/ZobyTwo))
|
|
||||||
|
|
||||||
- *Merged pull-request:* Strings 2 [\#572](https://github.com/WagicProject/wagic/pull/572) ([ZobyTwo](https://github.com/ZobyTwo))
|
|
||||||
|
|
||||||
- *Merged pull-request:* Android travis ci [\#570](https://github.com/WagicProject/wagic/pull/570) ([xawotihs](https://github.com/xawotihs))
|
|
||||||
|
|
||||||
- *Merged pull-request:* Android NDK build fix [\#569](https://github.com/WagicProject/wagic/pull/569) ([Rolzad73](https://github.com/Rolzad73))
|
|
||||||
|
|
||||||
- *Merged pull-request:* Add a few namespaces and fix header guards. [\#564](https://github.com/WagicProject/wagic/pull/564) ([ZobyTwo](https://github.com/ZobyTwo))
|
|
||||||
|
|
||||||
- *Merged pull-request:* Updated deckmenu.cpp to properly render deck description and summary [\#562](https://github.com/WagicProject/wagic/pull/562) ([citiral](https://github.com/citiral))
|
|
||||||
|
|
||||||
- *Merged pull-request:* Fix some valgrind memcheck warnings. However there remains one... [\#561](https://github.com/WagicProject/wagic/pull/561) ([ZobyTwo](https://github.com/ZobyTwo))
|
|
||||||
|
|
||||||
- *Merged pull-request:* Remove some dead code [\#560](https://github.com/WagicProject/wagic/pull/560) ([ZobyTwo](https://github.com/ZobyTwo))
|
|
||||||
|
|
||||||
- *Merged pull-request:* Show output only for failing tests [\#559](https://github.com/WagicProject/wagic/pull/559) ([pankdm](https://github.com/pankdm))
|
|
||||||
|
|
||||||
- *Merged pull-request:* Defines/Typos [\#557](https://github.com/WagicProject/wagic/pull/557) ([ZobyTwo](https://github.com/ZobyTwo))
|
|
||||||
|
|
||||||
- *Merged pull-request:* Simplify Damage::resolve a bit [\#556](https://github.com/WagicProject/wagic/pull/556) ([ZobyTwo](https://github.com/ZobyTwo))
|
|
||||||
|
|
||||||
- *Merged pull-request:* Fix cranial plating [\#555](https://github.com/WagicProject/wagic/pull/555) ([pankdm](https://github.com/pankdm))
|
|
||||||
|
|
||||||
- *Merged pull-request:* Android cleanup [\#1](https://github.com/WagicProject/wagic/pull/1) ([Rolzad73](https://github.com/Rolzad73))
|
|
||||||
|
|
||||||
- *Fixed bug:* Iona and Nin don't work [\#527](https://github.com/WagicProject/wagic/issues/527)
|
|
||||||
|
|
||||||
- *Closed issue:* Less verbose output of tests at Travis [\#558](https://github.com/WagicProject/wagic/issues/558)
|
|
||||||
|
|
||||||
## [wagic-0.19.2] (https://github.com/WagicProject/wagic/tree/wagic-v0.19.2)
|
|
||||||
#### 28/10/13
|
|
||||||
@@ -178,6 +178,8 @@ private:
|
|||||||
float mSpacing;
|
float mSpacing;
|
||||||
|
|
||||||
PIXEL_TYPE mColor;
|
PIXEL_TYPE mColor;
|
||||||
|
int mBlend;
|
||||||
|
|
||||||
int mBase;
|
int mBase;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -598,6 +598,8 @@ private:
|
|||||||
GLint prog2_positionLoc;
|
GLint prog2_positionLoc;
|
||||||
GLint prog2_texCoordLoc;
|
GLint prog2_texCoordLoc;
|
||||||
GLint prog2_colorLoc;
|
GLint prog2_colorLoc;
|
||||||
|
// MVP matrix
|
||||||
|
ESMatrix prog2_mvpMatrix;
|
||||||
// Uniform locations
|
// Uniform locations
|
||||||
GLint prog2_mvpLoc;
|
GLint prog2_mvpLoc;
|
||||||
|
|
||||||
@@ -610,11 +612,13 @@ private:
|
|||||||
int mCurrentTextureFormat;
|
int mCurrentTextureFormat;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef PSP
|
|
||||||
bool mVsync;
|
bool mVsync;
|
||||||
int mTexCounter;
|
|
||||||
#endif
|
|
||||||
int mSwizzle;
|
int mSwizzle;
|
||||||
|
int mTexCounter;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int mCurrentTextureFilter;
|
int mCurrentTextureFilter;
|
||||||
|
|
||||||
int mCurrTexBlendSrc;
|
int mCurrTexBlendSrc;
|
||||||
|
|||||||
@@ -258,9 +258,7 @@ private:
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
int mVolume;
|
int mVolume;
|
||||||
#ifndef IOS
|
|
||||||
int mMusicVolume;
|
int mMusicVolume;
|
||||||
#endif
|
|
||||||
int mSampleVolume;
|
int mSampleVolume;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -18,11 +18,12 @@ using namespace std;
|
|||||||
|
|
||||||
#define MID_POINT_THRESHOLD 1.0f
|
#define MID_POINT_THRESHOLD 1.0f
|
||||||
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
/// Position of a single dot on screen.
|
/// Position of a single dot on screen.
|
||||||
///
|
///
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
class JPoint
|
class Point
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@@ -33,13 +34,13 @@ public:
|
|||||||
/// @param _y - Y position.
|
/// @param _y - Y position.
|
||||||
///
|
///
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
JPoint(float _x, float _y) { x = _x; y = _y; }
|
Point(float _x, float _y) { x = _x; y = _y; }
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
/// Constructor, set position to default (0.0f, 0.0f)
|
/// Constructor, set position to default (0.0f, 0.0f)
|
||||||
///
|
///
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
JPoint() { x = 0.0f; y = 0.0f; }
|
Point() { x = 0.0f; y = 0.0f; }
|
||||||
|
|
||||||
float x; ///< X position.
|
float x; ///< X position.
|
||||||
float y; ///< Y position.
|
float y; ///< Y position.
|
||||||
@@ -94,7 +95,7 @@ public:
|
|||||||
/// @param pt - Control point.
|
/// @param pt - Control point.
|
||||||
///
|
///
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
void AddControlPoint(const JPoint &pt);
|
void AddControlPoint(const Point &pt);
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
/// Get a control point of the spline.
|
/// Get a control point of the spline.
|
||||||
@@ -104,7 +105,7 @@ public:
|
|||||||
/// @return Control point.
|
/// @return Control point.
|
||||||
///
|
///
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
void GetControlPoint(JPoint &point, int index);
|
void GetControlPoint(Point &point, int index);
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
/// Work out all pixels of the spline.
|
/// Work out all pixels of the spline.
|
||||||
@@ -127,7 +128,7 @@ public:
|
|||||||
/// @return Position of the desire point.
|
/// @return Position of the desire point.
|
||||||
///
|
///
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
void PointOnCurve(JPoint &out, float t, const JPoint &p0, const JPoint &p1, const JPoint &p2, const JPoint &p3);
|
void PointOnCurve(Point &out, float t, const Point &p0, const Point &p1, const Point &p2, const Point &p3);
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
/// Get a number of pixels for this spline.
|
/// Get a number of pixels for this spline.
|
||||||
@@ -145,7 +146,7 @@ public:
|
|||||||
/// @return Position of the desire point.
|
/// @return Position of the desire point.
|
||||||
///
|
///
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
void GetPixel(JPoint &point, int index);
|
void GetPixel(Point &point, int index);
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
/// Render the spline to screen.
|
/// Render the spline to screen.
|
||||||
@@ -155,8 +156,8 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
vector<JPoint> mMidPoints;
|
vector<Point> mMidPoints;
|
||||||
vector<JPoint> mPixels;
|
vector<Point> mPixels;
|
||||||
int mCount;
|
int mCount;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -311,7 +311,9 @@ namespace boost
|
|||||||
|
|
||||||
#include <QMutex>
|
#include <QMutex>
|
||||||
#include <QThread>
|
#include <QThread>
|
||||||
#include <QSharedPointer>
|
|
||||||
|
#include <boost/bind.hpp>
|
||||||
|
#include <boost/shared_ptr.hpp>
|
||||||
|
|
||||||
#include "../include/JLogger.h"
|
#include "../include/JLogger.h"
|
||||||
|
|
||||||
@@ -418,25 +420,23 @@ namespace boost
|
|||||||
virtual void run() = 0;
|
virtual void run() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
typedef boost::shared_ptr<detail::thread_data_base> thread_data_ptr;
|
||||||
|
|
||||||
typedef QSharedPointer<detail::thread_data_base> thread_data_ptr;
|
template<typename F>
|
||||||
|
|
||||||
template<typename F, typename A1>
|
|
||||||
class thread_data : public detail::thread_data_base
|
class thread_data : public detail::thread_data_base
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
thread_data(F f_, A1 a1_) : f(f_), a1(a1_)
|
thread_data(F f_) : f(f_)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void run()
|
void run()
|
||||||
{
|
{
|
||||||
f(a1);
|
f();
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
F f;
|
F f;
|
||||||
A1 a1;
|
|
||||||
|
|
||||||
void operator=(thread_data&);
|
void operator=(thread_data&);
|
||||||
thread_data(thread_data&);
|
thread_data(thread_data&);
|
||||||
@@ -493,7 +493,7 @@ namespace boost
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <class F,class A1>
|
template <class F,class A1>
|
||||||
thread(F f, A1 a1) : mThreadInfo(make_thread_info(f, a1))
|
thread(F f, A1 a1) : mThreadInfo(make_thread_info(boost::bind(boost::type<void>(), f, a1)))
|
||||||
{
|
{
|
||||||
mpThread = new threadImpl(mThreadInfo);
|
mpThread = new threadImpl(mThreadInfo);
|
||||||
LOG("Calling start func");
|
LOG("Calling start func");
|
||||||
@@ -510,10 +510,10 @@ namespace boost
|
|||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
template<typename F, typename A1>
|
template<typename F>
|
||||||
static inline detail::thread_data_ptr make_thread_info(F f, A1 a1)
|
static inline detail::thread_data_ptr make_thread_info(F f)
|
||||||
{
|
{
|
||||||
return detail::thread_data_ptr(new detail::thread_data<F, A1>(f, a1));
|
return detail::thread_data_ptr(new detail::thread_data<F>(f));
|
||||||
}
|
}
|
||||||
|
|
||||||
detail::thread_data_ptr mThreadInfo;
|
detail::thread_data_ptr mThreadInfo;
|
||||||
|
|||||||
@@ -38,12 +38,6 @@ The content that users should not be touching.
|
|||||||
#include <QDir>
|
#include <QDir>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
|
||||||
#ifdef IOS
|
|
||||||
#include <Foundation/Foundation.h>
|
|
||||||
#endif
|
|
||||||
*/
|
|
||||||
|
|
||||||
JFileSystem* JFileSystem::mInstance = NULL;
|
JFileSystem* JFileSystem::mInstance = NULL;
|
||||||
|
|
||||||
JZipCache::JZipCache()
|
JZipCache::JZipCache()
|
||||||
@@ -254,7 +248,7 @@ void JFileSystem::clearZipCache()
|
|||||||
|
|
||||||
bool JFileSystem::AttachZipFile(const string &zipfile, char *password /* = NULL */)
|
bool JFileSystem::AttachZipFile(const string &zipfile, char *password /* = NULL */)
|
||||||
{
|
{
|
||||||
if (mZipAvailable && mZipFile.is_open())
|
if (mZipAvailable && mZipFile != NULL)
|
||||||
{
|
{
|
||||||
if (mZipFileName != zipfile)
|
if (mZipFileName != zipfile)
|
||||||
DetachZipFile(); // close the previous zip file
|
DetachZipFile(); // close the previous zip file
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ bool JSpline::Load(const char *filename, float xscale, float yscale)
|
|||||||
element->QueryFloatAttribute("x", &xx);
|
element->QueryFloatAttribute("x", &xx);
|
||||||
element->QueryFloatAttribute("y", &yy);
|
element->QueryFloatAttribute("y", &yy);
|
||||||
|
|
||||||
JPoint pt(xx*xscale, yy*yscale);
|
Point pt(xx*xscale, yy*yscale);
|
||||||
AddControlPoint(pt);
|
AddControlPoint(pt);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -84,7 +84,7 @@ bool JSpline::Load(const char *filename, float xscale, float yscale)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
void JSpline::PointOnCurve(JPoint &out, float t, const JPoint &p0, const JPoint &p1, const JPoint &p2, const JPoint &p3)
|
void JSpline::PointOnCurve(Point &out, float t, const Point &p0, const Point &p1, const Point &p2, const Point &p3)
|
||||||
{
|
{
|
||||||
float t2 = t * t;
|
float t2 = t * t;
|
||||||
float t3 = t2 * t;
|
float t3 = t2 * t;
|
||||||
@@ -113,8 +113,8 @@ void JSpline::GeneratePixels()
|
|||||||
x = mMidPoints[1].x;
|
x = mMidPoints[1].x;
|
||||||
y = mMidPoints[1].y;
|
y = mMidPoints[1].y;
|
||||||
|
|
||||||
JPoint newPt(x, y);
|
Point newPt(x, y);
|
||||||
JPoint extraPt;
|
Point extraPt;
|
||||||
|
|
||||||
mPixels.push_back(newPt);
|
mPixels.push_back(newPt);
|
||||||
|
|
||||||
@@ -151,13 +151,13 @@ void JSpline::GeneratePixels()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void JSpline::AddControlPoint(const JPoint &pt)
|
void JSpline::AddControlPoint(const Point &pt)
|
||||||
{
|
{
|
||||||
mMidPoints.push_back(pt);
|
mMidPoints.push_back(pt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void JSpline::GetControlPoint(JPoint &point, int index)
|
void JSpline::GetControlPoint(Point &point, int index)
|
||||||
{
|
{
|
||||||
if (index < (int)mMidPoints.size())
|
if (index < (int)mMidPoints.size())
|
||||||
{
|
{
|
||||||
@@ -167,7 +167,7 @@ void JSpline::GetControlPoint(JPoint &point, int index)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void JSpline::GetPixel(JPoint &point, int index)
|
void JSpline::GetPixel(Point &point, int index)
|
||||||
{
|
{
|
||||||
if (index < (int)mPixels.size())
|
if (index < (int)mPixels.size())
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -10,6 +10,5 @@ void resumeGame();
|
|||||||
@property (nonatomic, retain) id eaglView;
|
@property (nonatomic, retain) id eaglView;
|
||||||
@property (nonatomic, retain) UITextField *inputField;
|
@property (nonatomic, retain) UITextField *inputField;
|
||||||
@property (nonatomic, assign) BOOL bannerIsVisible;
|
@property (nonatomic, assign) BOOL bannerIsVisible;
|
||||||
- (void)toggleKeyboardWithState: (NSString *) initialText;
|
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -53,28 +53,28 @@
|
|||||||
|
|
||||||
- (void)viewWillAppear:(BOOL)animated {
|
- (void)viewWillAppear:(BOOL)animated {
|
||||||
NSLog(@"EAGL ViewController - view Will Appear");
|
NSLog(@"EAGL ViewController - view Will Appear");
|
||||||
[(id)self.view resumeGame];
|
[self.view resumeGame];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
- (void)viewWillDisappear:(BOOL)animated
|
- (void)viewWillDisappear:(BOOL)animated
|
||||||
{
|
{
|
||||||
[(id)self.view pauseGame];
|
[self.view pauseGame];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)pauseGame
|
- (void)pauseGame
|
||||||
{
|
{
|
||||||
[(id)self.view pauseGame];
|
[self.view pauseGame];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)resumeGame
|
- (void)resumeGame
|
||||||
{
|
{
|
||||||
[(id)self.view resumeGame];
|
[self.view resumeGame];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)endGame
|
- (void)endGame
|
||||||
{
|
{
|
||||||
[(id)self.view endGame];
|
[self.view endGame];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)viewDidAppear:(BOOL)animated {
|
- (void)viewDidAppear:(BOOL)animated {
|
||||||
|
|||||||
@@ -337,7 +337,7 @@
|
|||||||
|
|
||||||
- (void)applicationWillTerminate:(UIApplication *)application
|
- (void)applicationWillTerminate:(UIApplication *)application
|
||||||
{
|
{
|
||||||
[(id)self.glViewController.view destroyGame];
|
[self.glViewController.view destroyGame];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)initializeKeyboard: (id) initialState
|
- (void)initializeKeyboard: (id) initialState
|
||||||
|
|||||||
@@ -7,7 +7,6 @@
|
|||||||
#include <winsock.h>
|
#include <winsock.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#elif LINUX
|
#elif LINUX
|
||||||
#include <unistd.h>
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
|
|||||||
@@ -87,13 +87,13 @@ static void init_keys(const char* passwd,unsigned long* pkeys,const unsigned lon
|
|||||||
# define ZCR_SEED2 3141592654UL /* use PI as default pattern */
|
# define ZCR_SEED2 3141592654UL /* use PI as default pattern */
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
static int crypthead(
|
static int crypthead(passwd, buf, bufSize, pkeys, pcrc_32_tab, crcForCrypting)
|
||||||
const char *passwd, /* password string */
|
const char *passwd; /* password string */
|
||||||
unsigned char *buf, /* where to write header */
|
unsigned char *buf; /* where to write header */
|
||||||
int bufSize,
|
int bufSize;
|
||||||
unsigned long* pkeys,
|
unsigned long* pkeys;
|
||||||
const unsigned long* pcrc_32_tab,
|
const unsigned long* pcrc_32_tab;
|
||||||
unsigned long crcForCrypting)
|
unsigned long crcForCrypting;
|
||||||
{
|
{
|
||||||
int n; /* index in random header */
|
int n; /* index in random header */
|
||||||
int t; /* temporary */
|
int t; /* temporary */
|
||||||
|
|||||||
@@ -65,10 +65,10 @@ int ZCALLBACK ferror_file_func OF((
|
|||||||
voidpf stream));
|
voidpf stream));
|
||||||
|
|
||||||
|
|
||||||
voidpf ZCALLBACK fopen_file_func (
|
voidpf ZCALLBACK fopen_file_func (opaque, filename, mode)
|
||||||
voidpf opaque,
|
voidpf opaque;
|
||||||
const char* filename,
|
const char* filename;
|
||||||
int mode)
|
int mode;
|
||||||
{
|
{
|
||||||
FILE* file = NULL;
|
FILE* file = NULL;
|
||||||
const char* mode_fopen = NULL;
|
const char* mode_fopen = NULL;
|
||||||
@@ -87,11 +87,11 @@ voidpf ZCALLBACK fopen_file_func (
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
uLong ZCALLBACK fread_file_func (
|
uLong ZCALLBACK fread_file_func (opaque, stream, buf, size)
|
||||||
voidpf opaque,
|
voidpf opaque;
|
||||||
voidpf stream,
|
voidpf stream;
|
||||||
void* buf,
|
void* buf;
|
||||||
uLong size)
|
uLong size;
|
||||||
{
|
{
|
||||||
uLong ret;
|
uLong ret;
|
||||||
ret = (uLong)fread(buf, 1, (size_t)size, (FILE *)stream);
|
ret = (uLong)fread(buf, 1, (size_t)size, (FILE *)stream);
|
||||||
@@ -99,31 +99,31 @@ uLong ZCALLBACK fread_file_func (
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
uLong ZCALLBACK fwrite_file_func (
|
uLong ZCALLBACK fwrite_file_func (opaque, stream, buf, size)
|
||||||
voidpf opaque,
|
voidpf opaque;
|
||||||
voidpf stream,
|
voidpf stream;
|
||||||
const void* buf,
|
const void* buf;
|
||||||
uLong size)
|
uLong size;
|
||||||
{
|
{
|
||||||
uLong ret;
|
uLong ret;
|
||||||
ret = (uLong)fwrite(buf, 1, (size_t)size, (FILE *)stream);
|
ret = (uLong)fwrite(buf, 1, (size_t)size, (FILE *)stream);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
long ZCALLBACK ftell_file_func (
|
long ZCALLBACK ftell_file_func (opaque, stream)
|
||||||
voidpf opaque,
|
voidpf opaque;
|
||||||
voidpf stream)
|
voidpf stream;
|
||||||
{
|
{
|
||||||
long ret;
|
long ret;
|
||||||
ret = ftell((FILE *)stream);
|
ret = ftell((FILE *)stream);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
long ZCALLBACK fseek_file_func (
|
long ZCALLBACK fseek_file_func (opaque, stream, offset, origin)
|
||||||
voidpf opaque,
|
voidpf opaque;
|
||||||
voidpf stream,
|
voidpf stream;
|
||||||
uLong offset,
|
uLong offset;
|
||||||
int origin)
|
int origin;
|
||||||
{
|
{
|
||||||
int fseek_origin=0;
|
int fseek_origin=0;
|
||||||
long ret;
|
long ret;
|
||||||
@@ -145,26 +145,26 @@ long ZCALLBACK fseek_file_func (
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ZCALLBACK fclose_file_func (
|
int ZCALLBACK fclose_file_func (opaque, stream)
|
||||||
voidpf opaque,
|
voidpf opaque;
|
||||||
voidpf stream)
|
voidpf stream;
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
ret = fclose((FILE *)stream);
|
ret = fclose((FILE *)stream);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ZCALLBACK ferror_file_func (
|
int ZCALLBACK ferror_file_func (opaque, stream)
|
||||||
voidpf opaque,
|
voidpf opaque;
|
||||||
voidpf stream)
|
voidpf stream;
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
ret = ferror((FILE *)stream);
|
ret = ferror((FILE *)stream);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
void fill_fopen_filefunc (
|
void fill_fopen_filefunc (pzlib_filefunc_def)
|
||||||
zlib_filefunc_def* pzlib_filefunc_def)
|
zlib_filefunc_def* pzlib_filefunc_def;
|
||||||
{
|
{
|
||||||
pzlib_filefunc_def->zopen_file = fopen_file_func;
|
pzlib_filefunc_def->zopen_file = fopen_file_func;
|
||||||
pzlib_filefunc_def->zread_file = fread_file_func;
|
pzlib_filefunc_def->zread_file = fread_file_func;
|
||||||
|
|||||||
@@ -168,7 +168,10 @@ local int unzlocal_getByte OF((
|
|||||||
voidpf filestream,
|
voidpf filestream,
|
||||||
int *pi));
|
int *pi));
|
||||||
|
|
||||||
local int unzlocal_getByte(const zlib_filefunc_def* pzlib_filefunc_def,voidpf filestream,int *pi)
|
local int unzlocal_getByte(pzlib_filefunc_def,filestream,pi)
|
||||||
|
const zlib_filefunc_def* pzlib_filefunc_def;
|
||||||
|
voidpf filestream;
|
||||||
|
int *pi;
|
||||||
{
|
{
|
||||||
unsigned char c;
|
unsigned char c;
|
||||||
int err = (int)ZREAD(*pzlib_filefunc_def,filestream,&c,1);
|
int err = (int)ZREAD(*pzlib_filefunc_def,filestream,&c,1);
|
||||||
@@ -195,7 +198,10 @@ local int unzlocal_getShort OF((
|
|||||||
voidpf filestream,
|
voidpf filestream,
|
||||||
uLong *pX));
|
uLong *pX));
|
||||||
|
|
||||||
local int unzlocal_getShort (const zlib_filefunc_def* pzlib_filefunc_def,voidpf filestream,uLong *pX)
|
local int unzlocal_getShort (pzlib_filefunc_def,filestream,pX)
|
||||||
|
const zlib_filefunc_def* pzlib_filefunc_def;
|
||||||
|
voidpf filestream;
|
||||||
|
uLong *pX;
|
||||||
{
|
{
|
||||||
uLong x ;
|
uLong x ;
|
||||||
int i;
|
int i;
|
||||||
@@ -220,7 +226,10 @@ local int unzlocal_getLong OF((
|
|||||||
voidpf filestream,
|
voidpf filestream,
|
||||||
uLong *pX));
|
uLong *pX));
|
||||||
|
|
||||||
local int unzlocal_getLong (const zlib_filefunc_def* pzlib_filefunc_def,voidpf filestream,uLong *pX)
|
local int unzlocal_getLong (pzlib_filefunc_def,filestream,pX)
|
||||||
|
const zlib_filefunc_def* pzlib_filefunc_def;
|
||||||
|
voidpf filestream;
|
||||||
|
uLong *pX;
|
||||||
{
|
{
|
||||||
uLong x ;
|
uLong x ;
|
||||||
int i;
|
int i;
|
||||||
@@ -250,7 +259,9 @@ local int unzlocal_getLong (const zlib_filefunc_def* pzlib_filefunc_def,voidpf f
|
|||||||
|
|
||||||
|
|
||||||
/* My own strcmpi / strcasecmp */
|
/* My own strcmpi / strcasecmp */
|
||||||
local int strcmpcasenosensitive_internal (const char* fileName1,const char* fileName2)
|
local int strcmpcasenosensitive_internal (fileName1,fileName2)
|
||||||
|
const char* fileName1;
|
||||||
|
const char* fileName2;
|
||||||
{
|
{
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
@@ -291,7 +302,10 @@ local int strcmpcasenosensitive_internal (const char* fileName1,const char* file
|
|||||||
(like 1 on Unix, 2 on Windows)
|
(like 1 on Unix, 2 on Windows)
|
||||||
|
|
||||||
*/
|
*/
|
||||||
extern int ZEXPORT unzStringFileNameCompare (const char* fileName1,const char* fileName2,int iCaseSensitivity)
|
extern int ZEXPORT unzStringFileNameCompare (fileName1,fileName2,iCaseSensitivity)
|
||||||
|
const char* fileName1;
|
||||||
|
const char* fileName2;
|
||||||
|
int iCaseSensitivity;
|
||||||
{
|
{
|
||||||
if (iCaseSensitivity==0)
|
if (iCaseSensitivity==0)
|
||||||
iCaseSensitivity=CASESENSITIVITYDEFAULTVALUE;
|
iCaseSensitivity=CASESENSITIVITYDEFAULTVALUE;
|
||||||
@@ -314,7 +328,9 @@ local uLong unzlocal_SearchCentralDir OF((
|
|||||||
const zlib_filefunc_def* pzlib_filefunc_def,
|
const zlib_filefunc_def* pzlib_filefunc_def,
|
||||||
voidpf filestream));
|
voidpf filestream));
|
||||||
|
|
||||||
local uLong unzlocal_SearchCentralDir(const zlib_filefunc_def* pzlib_filefunc_def,voidpf filestream)
|
local uLong unzlocal_SearchCentralDir(pzlib_filefunc_def,filestream)
|
||||||
|
const zlib_filefunc_def* pzlib_filefunc_def;
|
||||||
|
voidpf filestream;
|
||||||
{
|
{
|
||||||
unsigned char* buf;
|
unsigned char* buf;
|
||||||
uLong uSizeFile;
|
uLong uSizeFile;
|
||||||
@@ -378,7 +394,9 @@ local uLong unzlocal_SearchCentralDir(const zlib_filefunc_def* pzlib_filefunc_de
|
|||||||
Else, the return value is a unzFile Handle, usable with other function
|
Else, the return value is a unzFile Handle, usable with other function
|
||||||
of this unzip package.
|
of this unzip package.
|
||||||
*/
|
*/
|
||||||
extern unzFile ZEXPORT unzOpen2 (const char *path, zlib_filefunc_def* pzlib_filefunc_def)
|
extern unzFile ZEXPORT unzOpen2 (path, pzlib_filefunc_def)
|
||||||
|
const char *path;
|
||||||
|
zlib_filefunc_def* pzlib_filefunc_def;
|
||||||
{
|
{
|
||||||
unz_s us;
|
unz_s us;
|
||||||
unz_s *s;
|
unz_s *s;
|
||||||
@@ -479,7 +497,8 @@ extern unzFile ZEXPORT unzOpen2 (const char *path, zlib_filefunc_def* pzlib_file
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
extern unzFile ZEXPORT unzOpen (const char *path)
|
extern unzFile ZEXPORT unzOpen (path)
|
||||||
|
const char *path;
|
||||||
{
|
{
|
||||||
return unzOpen2(path, NULL);
|
return unzOpen2(path, NULL);
|
||||||
}
|
}
|
||||||
@@ -489,7 +508,8 @@ extern unzFile ZEXPORT unzOpen (const char *path)
|
|||||||
If there is files inside the .Zip opened with unzipOpenCurrentFile (see later),
|
If there is files inside the .Zip opened with unzipOpenCurrentFile (see later),
|
||||||
these files MUST be closed with unzipCloseCurrentFile before call unzipClose.
|
these files MUST be closed with unzipCloseCurrentFile before call unzipClose.
|
||||||
return UNZ_OK if there is no problem. */
|
return UNZ_OK if there is no problem. */
|
||||||
extern int ZEXPORT unzClose (unzFile file)
|
extern int ZEXPORT unzClose (file)
|
||||||
|
unzFile file;
|
||||||
{
|
{
|
||||||
unz_s* s;
|
unz_s* s;
|
||||||
if (file==NULL)
|
if (file==NULL)
|
||||||
@@ -509,7 +529,9 @@ extern int ZEXPORT unzClose (unzFile file)
|
|||||||
Write info about the ZipFile in the *pglobal_info structure.
|
Write info about the ZipFile in the *pglobal_info structure.
|
||||||
No preparation of the structure is needed
|
No preparation of the structure is needed
|
||||||
return UNZ_OK if there is no problem. */
|
return UNZ_OK if there is no problem. */
|
||||||
extern int ZEXPORT unzGetGlobalInfo (unzFile file,unz_global_info *pglobal_info)
|
extern int ZEXPORT unzGetGlobalInfo (file,pglobal_info)
|
||||||
|
unzFile file;
|
||||||
|
unz_global_info *pglobal_info;
|
||||||
{
|
{
|
||||||
unz_s* s;
|
unz_s* s;
|
||||||
if (file==NULL)
|
if (file==NULL)
|
||||||
@@ -523,7 +545,9 @@ extern int ZEXPORT unzGetGlobalInfo (unzFile file,unz_global_info *pglobal_info)
|
|||||||
/*
|
/*
|
||||||
Translate date/time from Dos format to tm_unz (readable more easilty)
|
Translate date/time from Dos format to tm_unz (readable more easilty)
|
||||||
*/
|
*/
|
||||||
local void unzlocal_DosDateToTmuDate (uLong ulDosDate, tm_unz* ptm)
|
local void unzlocal_DosDateToTmuDate (ulDosDate, ptm)
|
||||||
|
uLong ulDosDate;
|
||||||
|
tm_unz* ptm;
|
||||||
{
|
{
|
||||||
uLong uDate;
|
uLong uDate;
|
||||||
uDate = (uLong)(ulDosDate>>16);
|
uDate = (uLong)(ulDosDate>>16);
|
||||||
@@ -550,16 +574,21 @@ local int unzlocal_GetCurrentFileInfoInternal OF((unzFile file,
|
|||||||
char *szComment,
|
char *szComment,
|
||||||
uLong commentBufferSize));
|
uLong commentBufferSize));
|
||||||
|
|
||||||
local int unzlocal_GetCurrentFileInfoInternal (
|
local int unzlocal_GetCurrentFileInfoInternal (file,
|
||||||
unzFile file,
|
pfile_info,
|
||||||
unz_file_info *pfile_info,
|
pfile_info_internal,
|
||||||
unz_file_info_internal *pfile_info_internal,
|
szFileName, fileNameBufferSize,
|
||||||
char *szFileName,
|
extraField, extraFieldBufferSize,
|
||||||
uLong fileNameBufferSize,
|
szComment, commentBufferSize)
|
||||||
void *extraField,
|
unzFile file;
|
||||||
uLong extraFieldBufferSize,
|
unz_file_info *pfile_info;
|
||||||
char *szComment,
|
unz_file_info_internal *pfile_info_internal;
|
||||||
uLong commentBufferSize)
|
char *szFileName;
|
||||||
|
uLong fileNameBufferSize;
|
||||||
|
void *extraField;
|
||||||
|
uLong extraFieldBufferSize;
|
||||||
|
char *szComment;
|
||||||
|
uLong commentBufferSize;
|
||||||
{
|
{
|
||||||
unz_s* s;
|
unz_s* s;
|
||||||
unz_file_info file_info;
|
unz_file_info file_info;
|
||||||
@@ -717,15 +746,19 @@ local int unzlocal_GetCurrentFileInfoInternal (
|
|||||||
No preparation of the structure is needed
|
No preparation of the structure is needed
|
||||||
return UNZ_OK if there is no problem.
|
return UNZ_OK if there is no problem.
|
||||||
*/
|
*/
|
||||||
extern int ZEXPORT unzGetCurrentFileInfo (
|
extern int ZEXPORT unzGetCurrentFileInfo (file,
|
||||||
unzFile file,
|
pfile_info,
|
||||||
unz_file_info *pfile_info,
|
szFileName, fileNameBufferSize,
|
||||||
char *szFileName,
|
extraField, extraFieldBufferSize,
|
||||||
uLong fileNameBufferSize,
|
szComment, commentBufferSize)
|
||||||
void *extraField,
|
unzFile file;
|
||||||
uLong extraFieldBufferSize,
|
unz_file_info *pfile_info;
|
||||||
char *szComment,
|
char *szFileName;
|
||||||
uLong commentBufferSize)
|
uLong fileNameBufferSize;
|
||||||
|
void *extraField;
|
||||||
|
uLong extraFieldBufferSize;
|
||||||
|
char *szComment;
|
||||||
|
uLong commentBufferSize;
|
||||||
{
|
{
|
||||||
return unzlocal_GetCurrentFileInfoInternal(file,pfile_info,NULL,
|
return unzlocal_GetCurrentFileInfoInternal(file,pfile_info,NULL,
|
||||||
szFileName,fileNameBufferSize,
|
szFileName,fileNameBufferSize,
|
||||||
@@ -737,7 +770,8 @@ extern int ZEXPORT unzGetCurrentFileInfo (
|
|||||||
Set the current file of the zipfile to the first file.
|
Set the current file of the zipfile to the first file.
|
||||||
return UNZ_OK if there is no problem
|
return UNZ_OK if there is no problem
|
||||||
*/
|
*/
|
||||||
extern int ZEXPORT unzGoToFirstFile (unzFile file)
|
extern int ZEXPORT unzGoToFirstFile (file)
|
||||||
|
unzFile file;
|
||||||
{
|
{
|
||||||
int err=UNZ_OK;
|
int err=UNZ_OK;
|
||||||
unz_s* s;
|
unz_s* s;
|
||||||
@@ -758,7 +792,8 @@ extern int ZEXPORT unzGoToFirstFile (unzFile file)
|
|||||||
return UNZ_OK if there is no problem
|
return UNZ_OK if there is no problem
|
||||||
return UNZ_END_OF_LIST_OF_FILE if the actual file was the latest.
|
return UNZ_END_OF_LIST_OF_FILE if the actual file was the latest.
|
||||||
*/
|
*/
|
||||||
extern int ZEXPORT unzGoToNextFile (unzFile file)
|
extern int ZEXPORT unzGoToNextFile (file)
|
||||||
|
unzFile file;
|
||||||
{
|
{
|
||||||
unz_s* s;
|
unz_s* s;
|
||||||
int err;
|
int err;
|
||||||
@@ -791,7 +826,10 @@ extern int ZEXPORT unzGoToNextFile (unzFile file)
|
|||||||
UNZ_OK if the file is found. It becomes the current file.
|
UNZ_OK if the file is found. It becomes the current file.
|
||||||
UNZ_END_OF_LIST_OF_FILE if the file is not found
|
UNZ_END_OF_LIST_OF_FILE if the file is not found
|
||||||
*/
|
*/
|
||||||
extern int ZEXPORT unzLocateFile (unzFile file, const char *szFileName, int iCaseSensitivity)
|
extern int ZEXPORT unzLocateFile (file, szFileName, iCaseSensitivity)
|
||||||
|
unzFile file;
|
||||||
|
const char *szFileName;
|
||||||
|
int iCaseSensitivity;
|
||||||
{
|
{
|
||||||
unz_s* s;
|
unz_s* s;
|
||||||
int err;
|
int err;
|
||||||
@@ -867,7 +905,9 @@ typedef struct unz_file_pos_s
|
|||||||
} unz_file_pos;
|
} unz_file_pos;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
extern int ZEXPORT unzGetFilePos(unzFile file, unz_file_pos* file_pos)
|
extern int ZEXPORT unzGetFilePos(file, file_pos)
|
||||||
|
unzFile file;
|
||||||
|
unz_file_pos* file_pos;
|
||||||
{
|
{
|
||||||
unz_s* s;
|
unz_s* s;
|
||||||
|
|
||||||
@@ -883,7 +923,9 @@ extern int ZEXPORT unzGetFilePos(unzFile file, unz_file_pos* file_pos)
|
|||||||
return UNZ_OK;
|
return UNZ_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern int ZEXPORT unzGoToFilePos(unzFile file, unz_file_pos*file_pos)
|
extern int ZEXPORT unzGoToFilePos(file, file_pos)
|
||||||
|
unzFile file;
|
||||||
|
unz_file_pos* file_pos;
|
||||||
{
|
{
|
||||||
unz_s* s;
|
unz_s* s;
|
||||||
int err;
|
int err;
|
||||||
@@ -917,11 +959,13 @@ extern int ZEXPORT unzGoToFilePos(unzFile file, unz_file_pos*file_pos)
|
|||||||
store in *piSizeVar the size of extra info in local header
|
store in *piSizeVar the size of extra info in local header
|
||||||
(filename and size of extra field data)
|
(filename and size of extra field data)
|
||||||
*/
|
*/
|
||||||
local int unzlocal_CheckCurrentFileCoherencyHeader (
|
local int unzlocal_CheckCurrentFileCoherencyHeader (s,piSizeVar,
|
||||||
unz_s* s,
|
poffset_local_extrafield,
|
||||||
uInt* piSizeVar,
|
psize_local_extrafield)
|
||||||
uLong *poffset_local_extrafield,
|
unz_s* s;
|
||||||
uInt *psize_local_extrafield)
|
uInt* piSizeVar;
|
||||||
|
uLong *poffset_local_extrafield;
|
||||||
|
uInt *psize_local_extrafield;
|
||||||
{
|
{
|
||||||
uLong uMagic,uData,uFlags;
|
uLong uMagic,uData,uFlags;
|
||||||
uLong size_filename;
|
uLong size_filename;
|
||||||
@@ -1006,12 +1050,12 @@ local int unzlocal_CheckCurrentFileCoherencyHeader (
|
|||||||
Open for reading data the current file in the zipfile.
|
Open for reading data the current file in the zipfile.
|
||||||
If there is no error and the file is opened, the return value is UNZ_OK.
|
If there is no error and the file is opened, the return value is UNZ_OK.
|
||||||
*/
|
*/
|
||||||
extern int ZEXPORT unzOpenCurrentFile3 (
|
extern int ZEXPORT unzOpenCurrentFile3 (file, method, level, raw, password)
|
||||||
unzFile file,
|
unzFile file;
|
||||||
int* method,
|
int* method;
|
||||||
int* level,
|
int* level;
|
||||||
int raw,
|
int raw;
|
||||||
const char* password)
|
const char* password;
|
||||||
{
|
{
|
||||||
int err=UNZ_OK;
|
int err=UNZ_OK;
|
||||||
uInt iSizeVar;
|
uInt iSizeVar;
|
||||||
@@ -1092,7 +1136,7 @@ extern int ZEXPORT unzOpenCurrentFile3 (
|
|||||||
pfile_in_zip_read_info->stream.zalloc = (alloc_func)0;
|
pfile_in_zip_read_info->stream.zalloc = (alloc_func)0;
|
||||||
pfile_in_zip_read_info->stream.zfree = (free_func)0;
|
pfile_in_zip_read_info->stream.zfree = (free_func)0;
|
||||||
pfile_in_zip_read_info->stream.opaque = (voidpf)0;
|
pfile_in_zip_read_info->stream.opaque = (voidpf)0;
|
||||||
pfile_in_zip_read_info->stream.next_in = (Bytef*)0;
|
pfile_in_zip_read_info->stream.next_in = (voidpf)0;
|
||||||
pfile_in_zip_read_info->stream.avail_in = 0;
|
pfile_in_zip_read_info->stream.avail_in = 0;
|
||||||
|
|
||||||
err=inflateInit2(&pfile_in_zip_read_info->stream, -MAX_WBITS);
|
err=inflateInit2(&pfile_in_zip_read_info->stream, -MAX_WBITS);
|
||||||
@@ -1151,21 +1195,24 @@ extern int ZEXPORT unzOpenCurrentFile3 (
|
|||||||
return UNZ_OK;
|
return UNZ_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern int ZEXPORT unzOpenCurrentFile (unzFile file)
|
extern int ZEXPORT unzOpenCurrentFile (file)
|
||||||
|
unzFile file;
|
||||||
{
|
{
|
||||||
return unzOpenCurrentFile3(file, NULL, NULL, 0, NULL);
|
return unzOpenCurrentFile3(file, NULL, NULL, 0, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
extern int ZEXPORT unzOpenCurrentFilePassword (unzFile file, const char* password)
|
extern int ZEXPORT unzOpenCurrentFilePassword (file, password)
|
||||||
|
unzFile file;
|
||||||
|
const char* password;
|
||||||
{
|
{
|
||||||
return unzOpenCurrentFile3(file, NULL, NULL, 0, password);
|
return unzOpenCurrentFile3(file, NULL, NULL, 0, password);
|
||||||
}
|
}
|
||||||
|
|
||||||
extern int ZEXPORT unzOpenCurrentFile2 (
|
extern int ZEXPORT unzOpenCurrentFile2 (file,method,level,raw)
|
||||||
unzFile file,
|
unzFile file;
|
||||||
int* method,
|
int* method;
|
||||||
int* level,
|
int* level;
|
||||||
int raw)
|
int raw;
|
||||||
{
|
{
|
||||||
return unzOpenCurrentFile3(file, method, level, raw, NULL);
|
return unzOpenCurrentFile3(file, method, level, raw, NULL);
|
||||||
}
|
}
|
||||||
@@ -1180,10 +1227,10 @@ extern int ZEXPORT unzOpenCurrentFile2 (
|
|||||||
return <0 with error code if there is an error
|
return <0 with error code if there is an error
|
||||||
(UNZ_ERRNO for IO error, or zLib error for uncompress error)
|
(UNZ_ERRNO for IO error, or zLib error for uncompress error)
|
||||||
*/
|
*/
|
||||||
extern int ZEXPORT unzReadCurrentFile(
|
extern int ZEXPORT unzReadCurrentFile (file, buf, len)
|
||||||
unzFile file,
|
unzFile file;
|
||||||
voidp buf,
|
voidp buf;
|
||||||
unsigned len)
|
unsigned len;
|
||||||
{
|
{
|
||||||
int err=UNZ_OK;
|
int err=UNZ_OK;
|
||||||
uInt iRead = 0;
|
uInt iRead = 0;
|
||||||
@@ -1341,7 +1388,8 @@ extern int ZEXPORT unzReadCurrentFile(
|
|||||||
/*
|
/*
|
||||||
Give the current position in uncompressed data
|
Give the current position in uncompressed data
|
||||||
*/
|
*/
|
||||||
extern z_off_t ZEXPORT unztell (unzFile file)
|
extern z_off_t ZEXPORT unztell (file)
|
||||||
|
unzFile file;
|
||||||
{
|
{
|
||||||
unz_s* s;
|
unz_s* s;
|
||||||
file_in_zip_read_info_s* pfile_in_zip_read_info;
|
file_in_zip_read_info_s* pfile_in_zip_read_info;
|
||||||
@@ -1360,7 +1408,8 @@ extern z_off_t ZEXPORT unztell (unzFile file)
|
|||||||
/*
|
/*
|
||||||
return 1 if the end of file was reached, 0 elsewhere
|
return 1 if the end of file was reached, 0 elsewhere
|
||||||
*/
|
*/
|
||||||
extern int ZEXPORT unzeof (unzFile file)
|
extern int ZEXPORT unzeof (file)
|
||||||
|
unzFile file;
|
||||||
{
|
{
|
||||||
unz_s* s;
|
unz_s* s;
|
||||||
file_in_zip_read_info_s* pfile_in_zip_read_info;
|
file_in_zip_read_info_s* pfile_in_zip_read_info;
|
||||||
@@ -1392,10 +1441,10 @@ extern int ZEXPORT unzeof (unzFile file)
|
|||||||
the return value is the number of bytes copied in buf, or (if <0)
|
the return value is the number of bytes copied in buf, or (if <0)
|
||||||
the error code
|
the error code
|
||||||
*/
|
*/
|
||||||
extern int ZEXPORT unzGetLocalExtrafield (
|
extern int ZEXPORT unzGetLocalExtrafield (file,buf,len)
|
||||||
unzFile file,
|
unzFile file;
|
||||||
voidp buf,
|
voidp buf;
|
||||||
unsigned len)
|
unsigned len;
|
||||||
{
|
{
|
||||||
unz_s* s;
|
unz_s* s;
|
||||||
file_in_zip_read_info_s* pfile_in_zip_read_info;
|
file_in_zip_read_info_s* pfile_in_zip_read_info;
|
||||||
@@ -1443,7 +1492,8 @@ extern int ZEXPORT unzGetLocalExtrafield (
|
|||||||
Close the file in zip opened with unzipOpenCurrentFile
|
Close the file in zip opened with unzipOpenCurrentFile
|
||||||
Return UNZ_CRCERROR if all the file was read but the CRC is not good
|
Return UNZ_CRCERROR if all the file was read but the CRC is not good
|
||||||
*/
|
*/
|
||||||
extern int ZEXPORT unzCloseCurrentFile (unzFile file)
|
extern int ZEXPORT unzCloseCurrentFile (file)
|
||||||
|
unzFile file;
|
||||||
{
|
{
|
||||||
int err=UNZ_OK;
|
int err=UNZ_OK;
|
||||||
|
|
||||||
@@ -1485,11 +1535,12 @@ extern int ZEXPORT unzCloseCurrentFile (unzFile file)
|
|||||||
uSizeBuf is the size of the szComment buffer.
|
uSizeBuf is the size of the szComment buffer.
|
||||||
return the number of byte copied or an error code <0
|
return the number of byte copied or an error code <0
|
||||||
*/
|
*/
|
||||||
extern int ZEXPORT unzGetGlobalComment (
|
extern int ZEXPORT unzGetGlobalComment (file, szComment, uSizeBuf)
|
||||||
unzFile file,
|
unzFile file;
|
||||||
char *szComment,
|
char *szComment;
|
||||||
uLong uSizeBuf)
|
uLong uSizeBuf;
|
||||||
{
|
{
|
||||||
|
int err=UNZ_OK;
|
||||||
unz_s* s;
|
unz_s* s;
|
||||||
uLong uReadThis ;
|
uLong uReadThis ;
|
||||||
if (file==NULL)
|
if (file==NULL)
|
||||||
@@ -1516,7 +1567,8 @@ extern int ZEXPORT unzGetGlobalComment (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Additions by RX '2004 */
|
/* Additions by RX '2004 */
|
||||||
extern uLong ZEXPORT unzGetOffset (unzFile file)
|
extern uLong ZEXPORT unzGetOffset (file)
|
||||||
|
unzFile file;
|
||||||
{
|
{
|
||||||
unz_s* s;
|
unz_s* s;
|
||||||
|
|
||||||
@@ -1531,9 +1583,9 @@ extern uLong ZEXPORT unzGetOffset (unzFile file)
|
|||||||
return s->pos_in_central_dir;
|
return s->pos_in_central_dir;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern int ZEXPORT unzSetOffset (
|
extern int ZEXPORT unzSetOffset (file, pos)
|
||||||
unzFile file,
|
unzFile file;
|
||||||
uLong pos)
|
uLong pos;
|
||||||
{
|
{
|
||||||
unz_s* s;
|
unz_s* s;
|
||||||
int err;
|
int err;
|
||||||
|
|||||||
@@ -172,7 +172,8 @@ local linkedlist_datablock_internal* allocate_new_datablock()
|
|||||||
return ldi;
|
return ldi;
|
||||||
}
|
}
|
||||||
|
|
||||||
local void free_datablock(linkedlist_datablock_internal* ldi)
|
local void free_datablock(ldi)
|
||||||
|
linkedlist_datablock_internal* ldi;
|
||||||
{
|
{
|
||||||
while (ldi!=NULL)
|
while (ldi!=NULL)
|
||||||
{
|
{
|
||||||
@@ -182,24 +183,24 @@ local void free_datablock(linkedlist_datablock_internal* ldi)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
local void init_linkedlist(
|
local void init_linkedlist(ll)
|
||||||
linkedlist_data* ll)
|
linkedlist_data* ll;
|
||||||
{
|
{
|
||||||
ll->first_block = ll->last_block = NULL;
|
ll->first_block = ll->last_block = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
local void free_linkedlist(
|
local void free_linkedlist(ll)
|
||||||
linkedlist_data* ll)
|
linkedlist_data* ll;
|
||||||
{
|
{
|
||||||
free_datablock(ll->first_block);
|
free_datablock(ll->first_block);
|
||||||
ll->first_block = ll->last_block = NULL;
|
ll->first_block = ll->last_block = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
local int add_data_in_datablock(
|
local int add_data_in_datablock(ll,buf,len)
|
||||||
linkedlist_data* ll,
|
linkedlist_data* ll;
|
||||||
const void* buf,
|
const void* buf;
|
||||||
uLong len)
|
uLong len;
|
||||||
{
|
{
|
||||||
linkedlist_datablock_internal* ldi;
|
linkedlist_datablock_internal* ldi;
|
||||||
const unsigned char* from_copy;
|
const unsigned char* from_copy;
|
||||||
@@ -262,11 +263,11 @@ local int add_data_in_datablock(
|
|||||||
|
|
||||||
local int ziplocal_putValue OF((const zlib_filefunc_def* pzlib_filefunc_def,
|
local int ziplocal_putValue OF((const zlib_filefunc_def* pzlib_filefunc_def,
|
||||||
voidpf filestream, uLong x, int nbByte));
|
voidpf filestream, uLong x, int nbByte));
|
||||||
local int ziplocal_putValue (
|
local int ziplocal_putValue (pzlib_filefunc_def, filestream, x, nbByte)
|
||||||
const zlib_filefunc_def* pzlib_filefunc_def,
|
const zlib_filefunc_def* pzlib_filefunc_def;
|
||||||
voidpf filestream,
|
voidpf filestream;
|
||||||
uLong x,
|
uLong x;
|
||||||
int nbByte)
|
int nbByte;
|
||||||
{
|
{
|
||||||
unsigned char buf[4];
|
unsigned char buf[4];
|
||||||
int n;
|
int n;
|
||||||
@@ -290,10 +291,10 @@ local int ziplocal_putValue (
|
|||||||
}
|
}
|
||||||
|
|
||||||
local void ziplocal_putValue_inmemory OF((void* dest, uLong x, int nbByte));
|
local void ziplocal_putValue_inmemory OF((void* dest, uLong x, int nbByte));
|
||||||
local void ziplocal_putValue_inmemory (
|
local void ziplocal_putValue_inmemory (dest, x, nbByte)
|
||||||
void* dest,
|
void* dest;
|
||||||
uLong x,
|
uLong x;
|
||||||
int nbByte)
|
int nbByte;
|
||||||
{
|
{
|
||||||
unsigned char* buf=(unsigned char*)dest;
|
unsigned char* buf=(unsigned char*)dest;
|
||||||
int n;
|
int n;
|
||||||
@@ -314,9 +315,9 @@ local void ziplocal_putValue_inmemory (
|
|||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
local uLong ziplocal_TmzDateToDosDate(
|
local uLong ziplocal_TmzDateToDosDate(ptm,dosDate)
|
||||||
const tm_zip* ptm,
|
const tm_zip* ptm;
|
||||||
uLong dosDate)
|
uLong dosDate;
|
||||||
{
|
{
|
||||||
uLong year = (uLong)ptm->tm_year;
|
uLong year = (uLong)ptm->tm_year;
|
||||||
if (year>1980)
|
if (year>1980)
|
||||||
@@ -336,10 +337,10 @@ local int ziplocal_getByte OF((
|
|||||||
voidpf filestream,
|
voidpf filestream,
|
||||||
int *pi));
|
int *pi));
|
||||||
|
|
||||||
local int ziplocal_getByte(
|
local int ziplocal_getByte(pzlib_filefunc_def,filestream,pi)
|
||||||
const zlib_filefunc_def* pzlib_filefunc_def,
|
const zlib_filefunc_def* pzlib_filefunc_def;
|
||||||
voidpf filestream,
|
voidpf filestream;
|
||||||
int *pi)
|
int *pi;
|
||||||
{
|
{
|
||||||
unsigned char c;
|
unsigned char c;
|
||||||
int err = (int)ZREAD(*pzlib_filefunc_def,filestream,&c,1);
|
int err = (int)ZREAD(*pzlib_filefunc_def,filestream,&c,1);
|
||||||
@@ -366,10 +367,10 @@ local int ziplocal_getShort OF((
|
|||||||
voidpf filestream,
|
voidpf filestream,
|
||||||
uLong *pX));
|
uLong *pX));
|
||||||
|
|
||||||
local int ziplocal_getShort (
|
local int ziplocal_getShort (pzlib_filefunc_def,filestream,pX)
|
||||||
const zlib_filefunc_def* pzlib_filefunc_def,
|
const zlib_filefunc_def* pzlib_filefunc_def;
|
||||||
voidpf filestream,
|
voidpf filestream;
|
||||||
uLong *pX)
|
uLong *pX;
|
||||||
{
|
{
|
||||||
uLong x ;
|
uLong x ;
|
||||||
int i;
|
int i;
|
||||||
@@ -394,10 +395,10 @@ local int ziplocal_getLong OF((
|
|||||||
voidpf filestream,
|
voidpf filestream,
|
||||||
uLong *pX));
|
uLong *pX));
|
||||||
|
|
||||||
local int ziplocal_getLong (
|
local int ziplocal_getLong (pzlib_filefunc_def,filestream,pX)
|
||||||
const zlib_filefunc_def* pzlib_filefunc_def,
|
const zlib_filefunc_def* pzlib_filefunc_def;
|
||||||
voidpf filestream,
|
voidpf filestream;
|
||||||
uLong *pX)
|
uLong *pX;
|
||||||
{
|
{
|
||||||
uLong x ;
|
uLong x ;
|
||||||
int i;
|
int i;
|
||||||
@@ -436,9 +437,9 @@ local uLong ziplocal_SearchCentralDir OF((
|
|||||||
const zlib_filefunc_def* pzlib_filefunc_def,
|
const zlib_filefunc_def* pzlib_filefunc_def,
|
||||||
voidpf filestream));
|
voidpf filestream));
|
||||||
|
|
||||||
local uLong ziplocal_SearchCentralDir(
|
local uLong ziplocal_SearchCentralDir(pzlib_filefunc_def,filestream)
|
||||||
const zlib_filefunc_def* pzlib_filefunc_def,
|
const zlib_filefunc_def* pzlib_filefunc_def;
|
||||||
voidpf filestream)
|
voidpf filestream;
|
||||||
{
|
{
|
||||||
unsigned char* buf;
|
unsigned char* buf;
|
||||||
uLong uSizeFile;
|
uLong uSizeFile;
|
||||||
@@ -495,11 +496,11 @@ local uLong ziplocal_SearchCentralDir(
|
|||||||
#endif /* !NO_ADDFILEINEXISTINGZIP*/
|
#endif /* !NO_ADDFILEINEXISTINGZIP*/
|
||||||
|
|
||||||
/************************************************************/
|
/************************************************************/
|
||||||
extern zipFile ZEXPORT zipOpen2 (
|
extern zipFile ZEXPORT zipOpen2 (pathname, append, globalcomment, pzlib_filefunc_def)
|
||||||
const char *pathname,
|
const char *pathname;
|
||||||
int append,
|
int append;
|
||||||
zipcharpc* globalcomment,
|
zipcharpc* globalcomment;
|
||||||
zlib_filefunc_def* pzlib_filefunc_def)
|
zlib_filefunc_def* pzlib_filefunc_def;
|
||||||
{
|
{
|
||||||
zip_internal ziinit;
|
zip_internal ziinit;
|
||||||
zip_internal* zi;
|
zip_internal* zi;
|
||||||
@@ -614,7 +615,7 @@ extern zipFile ZEXPORT zipOpen2 (
|
|||||||
|
|
||||||
if (size_comment>0)
|
if (size_comment>0)
|
||||||
{
|
{
|
||||||
ziinit.globalcomment = (char*)ALLOC(size_comment+1);
|
ziinit.globalcomment = ALLOC(size_comment+1);
|
||||||
if (ziinit.globalcomment)
|
if (ziinit.globalcomment)
|
||||||
{
|
{
|
||||||
size_comment = ZREAD(ziinit.z_filefunc, ziinit.filestream,ziinit.globalcomment,size_comment);
|
size_comment = ZREAD(ziinit.z_filefunc, ziinit.filestream,ziinit.globalcomment,size_comment);
|
||||||
@@ -679,30 +680,35 @@ extern zipFile ZEXPORT zipOpen2 (
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
extern zipFile ZEXPORT zipOpen (
|
extern zipFile ZEXPORT zipOpen (pathname, append)
|
||||||
const char *pathname,
|
const char *pathname;
|
||||||
int append)
|
int append;
|
||||||
{
|
{
|
||||||
return zipOpen2(pathname,append,NULL,NULL);
|
return zipOpen2(pathname,append,NULL,NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
extern int ZEXPORT zipOpenNewFileInZip3 (
|
extern int ZEXPORT zipOpenNewFileInZip3 (file, filename, zipfi,
|
||||||
zipFile file,
|
extrafield_local, size_extrafield_local,
|
||||||
const char* filename,
|
extrafield_global, size_extrafield_global,
|
||||||
const zip_fileinfo* zipfi,
|
comment, method, level, raw,
|
||||||
const void* extrafield_local,
|
windowBits, memLevel, strategy,
|
||||||
uInt size_extrafield_local,
|
password, crcForCrypting)
|
||||||
const void* extrafield_global,
|
zipFile file;
|
||||||
uInt size_extrafield_global,
|
const char* filename;
|
||||||
const char* comment,
|
const zip_fileinfo* zipfi;
|
||||||
int method,
|
const void* extrafield_local;
|
||||||
int level,
|
uInt size_extrafield_local;
|
||||||
int raw,
|
const void* extrafield_global;
|
||||||
int windowBits,
|
uInt size_extrafield_global;
|
||||||
int memLevel,
|
const char* comment;
|
||||||
int strategy,
|
int method;
|
||||||
const char* password,
|
int level;
|
||||||
uLong crcForCrypting)
|
int raw;
|
||||||
|
int windowBits;
|
||||||
|
int memLevel;
|
||||||
|
int strategy;
|
||||||
|
const char* password;
|
||||||
|
uLong crcForCrypting;
|
||||||
{
|
{
|
||||||
zip_internal* zi;
|
zip_internal* zi;
|
||||||
uInt size_filename;
|
uInt size_filename;
|
||||||
@@ -890,18 +896,21 @@ extern int ZEXPORT zipOpenNewFileInZip3 (
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern int ZEXPORT zipOpenNewFileInZip2(
|
extern int ZEXPORT zipOpenNewFileInZip2(file, filename, zipfi,
|
||||||
zipFile file,
|
extrafield_local, size_extrafield_local,
|
||||||
const char* filename,
|
extrafield_global, size_extrafield_global,
|
||||||
const zip_fileinfo* zipfi,
|
comment, method, level, raw)
|
||||||
const void* extrafield_local,
|
zipFile file;
|
||||||
uInt size_extrafield_local,
|
const char* filename;
|
||||||
const void* extrafield_global,
|
const zip_fileinfo* zipfi;
|
||||||
uInt size_extrafield_global,
|
const void* extrafield_local;
|
||||||
const char* comment,
|
uInt size_extrafield_local;
|
||||||
int method,
|
const void* extrafield_global;
|
||||||
int level,
|
uInt size_extrafield_global;
|
||||||
int raw)
|
const char* comment;
|
||||||
|
int method;
|
||||||
|
int level;
|
||||||
|
int raw;
|
||||||
{
|
{
|
||||||
return zipOpenNewFileInZip3 (file, filename, zipfi,
|
return zipOpenNewFileInZip3 (file, filename, zipfi,
|
||||||
extrafield_local, size_extrafield_local,
|
extrafield_local, size_extrafield_local,
|
||||||
@@ -911,17 +920,20 @@ extern int ZEXPORT zipOpenNewFileInZip2(
|
|||||||
NULL, 0);
|
NULL, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
extern int ZEXPORT zipOpenNewFileInZip (
|
extern int ZEXPORT zipOpenNewFileInZip (file, filename, zipfi,
|
||||||
zipFile file,
|
extrafield_local, size_extrafield_local,
|
||||||
const char* filename,
|
extrafield_global, size_extrafield_global,
|
||||||
const zip_fileinfo* zipfi,
|
comment, method, level)
|
||||||
const void* extrafield_local,
|
zipFile file;
|
||||||
uInt size_extrafield_local,
|
const char* filename;
|
||||||
const void* extrafield_global,
|
const zip_fileinfo* zipfi;
|
||||||
uInt size_extrafield_global,
|
const void* extrafield_local;
|
||||||
const char* comment,
|
uInt size_extrafield_local;
|
||||||
int method,
|
const void* extrafield_global;
|
||||||
int level)
|
uInt size_extrafield_global;
|
||||||
|
const char* comment;
|
||||||
|
int method;
|
||||||
|
int level;
|
||||||
{
|
{
|
||||||
return zipOpenNewFileInZip2 (file, filename, zipfi,
|
return zipOpenNewFileInZip2 (file, filename, zipfi,
|
||||||
extrafield_local, size_extrafield_local,
|
extrafield_local, size_extrafield_local,
|
||||||
@@ -929,8 +941,8 @@ extern int ZEXPORT zipOpenNewFileInZip (
|
|||||||
comment, method, level, 0);
|
comment, method, level, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
local int zipFlushWriteBuffer(
|
local int zipFlushWriteBuffer(zi)
|
||||||
zip_internal* zi)
|
zip_internal* zi;
|
||||||
{
|
{
|
||||||
int err=ZIP_OK;
|
int err=ZIP_OK;
|
||||||
|
|
||||||
@@ -951,10 +963,10 @@ local int zipFlushWriteBuffer(
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern int ZEXPORT zipWriteInFileInZip (
|
extern int ZEXPORT zipWriteInFileInZip (file, buf, len)
|
||||||
zipFile file,
|
zipFile file;
|
||||||
const void* buf,
|
const void* buf;
|
||||||
unsigned len)
|
unsigned len;
|
||||||
{
|
{
|
||||||
zip_internal* zi;
|
zip_internal* zi;
|
||||||
int err=ZIP_OK;
|
int err=ZIP_OK;
|
||||||
@@ -966,9 +978,9 @@ extern int ZEXPORT zipWriteInFileInZip (
|
|||||||
if (zi->in_opened_file_inzip == 0)
|
if (zi->in_opened_file_inzip == 0)
|
||||||
return ZIP_PARAMERROR;
|
return ZIP_PARAMERROR;
|
||||||
|
|
||||||
zi->ci.stream.next_in = (Bytef*)buf;
|
zi->ci.stream.next_in = (void*)buf;
|
||||||
zi->ci.stream.avail_in = len;
|
zi->ci.stream.avail_in = len;
|
||||||
zi->ci.crc32 = crc32(zi->ci.crc32,(const Bytef*)buf,len);
|
zi->ci.crc32 = crc32(zi->ci.crc32,buf,len);
|
||||||
|
|
||||||
while ((err==ZIP_OK) && (zi->ci.stream.avail_in>0))
|
while ((err==ZIP_OK) && (zi->ci.stream.avail_in>0))
|
||||||
{
|
{
|
||||||
@@ -1016,10 +1028,10 @@ extern int ZEXPORT zipWriteInFileInZip (
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern int ZEXPORT zipCloseFileInZipRaw (
|
extern int ZEXPORT zipCloseFileInZipRaw (file, uncompressed_size, crc32)
|
||||||
zipFile file,
|
zipFile file;
|
||||||
uLong uncompressed_size,
|
uLong uncompressed_size;
|
||||||
uLong crc32)
|
uLong crc32;
|
||||||
{
|
{
|
||||||
zip_internal* zi;
|
zip_internal* zi;
|
||||||
uLong compressed_size;
|
uLong compressed_size;
|
||||||
@@ -1112,15 +1124,15 @@ extern int ZEXPORT zipCloseFileInZipRaw (
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern int ZEXPORT zipCloseFileInZip (
|
extern int ZEXPORT zipCloseFileInZip (file)
|
||||||
zipFile file)
|
zipFile file;
|
||||||
{
|
{
|
||||||
return zipCloseFileInZipRaw (file,0,0);
|
return zipCloseFileInZipRaw (file,0,0);
|
||||||
}
|
}
|
||||||
|
|
||||||
extern int ZEXPORT zipClose (
|
extern int ZEXPORT zipClose (file, global_comment)
|
||||||
zipFile file,
|
zipFile file;
|
||||||
const char* global_comment)
|
const char* global_comment;
|
||||||
{
|
{
|
||||||
zip_internal* zi;
|
zip_internal* zi;
|
||||||
int err = 0;
|
int err = 0;
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ filesystem * filesystem::pCurrentFS = NULL;
|
|||||||
std::vector<filesystem::pooledBuffer *> filesystem::m_Buffers;
|
std::vector<filesystem::pooledBuffer *> filesystem::m_Buffers;
|
||||||
|
|
||||||
static const int STORED = 0;
|
static const int STORED = 0;
|
||||||
|
static const int DEFLATED = 8;
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
||||||
// Construction/Destruction
|
// Construction/Destruction
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
[](https://travis-ci.org/WagicProject/wagic)
|
[](https://travis-ci.org/WagicProject/wagic)
|
||||||
[](https://ci.appveyor.com/project/xawotihs/wagic/branch/master)
|
[](https://ci.appveyor.com/project/xawotihs/wagic/branch/master)
|
||||||
[](https://coveralls.io/r/WagicProject/wagic?branch=master)
|
|
||||||
|
|
||||||
## Description
|
## Description
|
||||||
|
|
||||||
|
|||||||
12
appveyor.yml
@@ -4,14 +4,6 @@
|
|||||||
# - All section names are case-sensitive.
|
# - All section names are case-sensitive.
|
||||||
# - Section names should be unique on each level.
|
# - Section names should be unique on each level.
|
||||||
|
|
||||||
# branches to build
|
|
||||||
branches:
|
|
||||||
# blacklist
|
|
||||||
except:
|
|
||||||
- travis_mac_osx
|
|
||||||
# Do not build on tags (GitHub only)
|
|
||||||
skip_tags: true
|
|
||||||
|
|
||||||
#---------------------------------#
|
#---------------------------------#
|
||||||
# environment configuration #
|
# environment configuration #
|
||||||
#---------------------------------#
|
#---------------------------------#
|
||||||
@@ -22,7 +14,7 @@ environment:
|
|||||||
|
|
||||||
# scripts that run after cloning repository
|
# scripts that run after cloning repository
|
||||||
install:
|
install:
|
||||||
- ps: (new-object net.webclient).DownloadFile('https://bootstrap.pypa.io/get-pip.py', 'C:/get-pip.py')
|
- 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/python.exe C:/get-pip.py"
|
||||||
- "C:/Python27/Scripts/pip.exe install pyjavaproperties"
|
- "C:/Python27/Scripts/pip.exe install pyjavaproperties"
|
||||||
- "C:/Python27/Scripts/pip.exe install github3.py"
|
- "C:/Python27/Scripts/pip.exe install github3.py"
|
||||||
@@ -69,7 +61,7 @@ after_deploy:
|
|||||||
|
|
||||||
# to run your custom scripts instead of provider deployments
|
# to run your custom scripts instead of provider deployments
|
||||||
deploy_script:
|
deploy_script:
|
||||||
- "C:/Python27/python.exe tools/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%"
|
- "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
|
# to disable deployment
|
||||||
#deploy: off
|
#deploy: off
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="0201" android:versionName="@string/app_version" package="net.wagic.app">
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="0192" android:versionName="@string/app_version" package="net.wagic.app">
|
||||||
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
|
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
|
||||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||||
<uses-permission android:name="android.permission.INTERNET"/>
|
<uses-permission android:name="android.permission.INTERNET"/>
|
||||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
||||||
<application android:debuggable="false" android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
|
<application android:debuggable="true" android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
|
||||||
<activity android:configChanges="keyboard|keyboardHidden|orientation" android:label="@string/app_name" android:name="org.libsdl.app.SDLActivity" android:screenOrientation="sensorLandscape">
|
<activity android:configChanges="keyboard|keyboardHidden|orientation" android:label="@string/app_name" android:name="org.libsdl.app.SDLActivity" android:screenOrientation="sensorLandscape">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.MAIN"/>
|
<action android:name="android.intent.action.MAIN"/>
|
||||||
|
|||||||
@@ -11,8 +11,9 @@ SDL_PATH := $(JGE_PATH)/Dependencies/SDL
|
|||||||
BOOST_PATH := $(MY_WAGIC_ROOT)/Boost
|
BOOST_PATH := $(MY_WAGIC_ROOT)/Boost
|
||||||
JPEG_PATH := $(JGE_PATH)/Dependencies/libjpeg
|
JPEG_PATH := $(JGE_PATH)/Dependencies/libjpeg
|
||||||
PNG_PATH := $(JGE_PATH)/Dependencies/libpng
|
PNG_PATH := $(JGE_PATH)/Dependencies/libpng
|
||||||
|
DEBUG ?= DEBUG
|
||||||
|
|
||||||
LOCAL_CFLAGS += -DLINUX -DANDROID -DSDL_CONFIG
|
LOCAL_CFLAGS += -DLINUX -DANDROID -DSDL_CONFIG -D_$(DEBUG)
|
||||||
LOCAL_CFLAGS += -D_STLP_USE_SIMPLE_NODE_ALLOC -DTIXML_USE_STL
|
LOCAL_CFLAGS += -D_STLP_USE_SIMPLE_NODE_ALLOC -DTIXML_USE_STL
|
||||||
LOCAL_CFLAGS += -D__arm__ -D_REENTRANT -D_GLIBCXX__PTHREADS
|
LOCAL_CFLAGS += -D__arm__ -D_REENTRANT -D_GLIBCXX__PTHREADS
|
||||||
LOCAL_STATIC_LIBRARIES := libpng libjpeg
|
LOCAL_STATIC_LIBRARIES := libpng libjpeg
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 60 KiB |
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
<string name="app_name">Wagic</string>
|
<string name="app_name">Wagic</string>
|
||||||
<string name="app_version">0.20.1</string>
|
<string name="app_version">0.19.2</string>
|
||||||
<string name="info_text">Wagic v0.20.1\\nAll Rights Reserved.</string>
|
<string name="info_text">Wagic v0.19.2\\nAll Rights Reserved.</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -1,282 +0,0 @@
|
|||||||
package net.wagic.utils;
|
|
||||||
|
|
||||||
import java.io.FileOutputStream;
|
|
||||||
import java.io.FileReader;
|
|
||||||
import java.io.FileWriter;
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.Scanner;
|
|
||||||
|
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
public class DeckImporter
|
|
||||||
{
|
|
||||||
|
|
||||||
public static String importDeck( File f, String mypath, String activePath )
|
|
||||||
{
|
|
||||||
String message = "";
|
|
||||||
String deck = "";
|
|
||||||
String deckname = "";
|
|
||||||
String prefix = "#SB:";
|
|
||||||
int cardcount = 0;
|
|
||||||
if(f.exists() && !f.isDirectory())
|
|
||||||
{
|
|
||||||
deckname = f.getName();
|
|
||||||
int pos = deckname.lastIndexOf(".");
|
|
||||||
if (pos > 0)
|
|
||||||
{
|
|
||||||
deckname = deckname.substring(0, pos);
|
|
||||||
}
|
|
||||||
deck += "#NAME:"+deckname+"\n";
|
|
||||||
try
|
|
||||||
{
|
|
||||||
Scanner scanner = new Scanner(new File(mypath));
|
|
||||||
if (scanner.hasNext())
|
|
||||||
{
|
|
||||||
while (scanner.hasNext())
|
|
||||||
{
|
|
||||||
String line = scanner.nextLine();
|
|
||||||
line = line.trim();
|
|
||||||
if (!line.equals("") && cardcount < 61) // don't write out blank lines
|
|
||||||
{
|
|
||||||
String[] slines = line.split("\\s+");
|
|
||||||
String arranged = "";
|
|
||||||
for(int idx = 1; idx < slines.length; idx++)
|
|
||||||
{
|
|
||||||
arranged += slines[idx] + " ";
|
|
||||||
}
|
|
||||||
if ((isNumeric(slines[0])) && arranged != null)
|
|
||||||
{
|
|
||||||
if (slines[1] != null && slines[1].startsWith("["))
|
|
||||||
{
|
|
||||||
arranged = arranged.substring(5);
|
|
||||||
slines[1] = slines[1].replaceAll("\\[", "").replaceAll("\\]","");
|
|
||||||
deck += arranged + " (" + renameSet(slines[1]) + ") * " + slines[0] + "\n";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
deck += arranged + "(*) * " + slines[0] + "\n";
|
|
||||||
}
|
|
||||||
cardcount += Integer.parseInt(slines[0]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
File profile = new File(activePath+"/Res/settings/options.txt");
|
|
||||||
if(profile.exists() && !profile.isDirectory())
|
|
||||||
{
|
|
||||||
String profileName = getActiveProfile(profile);
|
|
||||||
if(profileName != "Missing!")
|
|
||||||
{
|
|
||||||
File rootProfiles = new File(activePath+"/Res/profiles/"+profileName);
|
|
||||||
if(rootProfiles.exists() && rootProfiles.isDirectory())
|
|
||||||
{
|
|
||||||
//save deck
|
|
||||||
int countdeck = 1;
|
|
||||||
File[] files = rootProfiles.listFiles();
|
|
||||||
for (int i = 0; i < files.length; i++)
|
|
||||||
{//check if there is available deck...
|
|
||||||
if(files[i].getName().startsWith("deck"))
|
|
||||||
countdeck++;
|
|
||||||
}
|
|
||||||
File toSave = new File(rootProfiles+"/deck"+countdeck+".txt");
|
|
||||||
try
|
|
||||||
{
|
|
||||||
FileOutputStream fop = new FileOutputStream(toSave);
|
|
||||||
|
|
||||||
// if file doesn't exists, then create it
|
|
||||||
if (!toSave.exists()) {
|
|
||||||
toSave.createNewFile();
|
|
||||||
}
|
|
||||||
// get the content in bytes
|
|
||||||
byte[] contentInBytes = deck.getBytes();
|
|
||||||
fop.write(contentInBytes);
|
|
||||||
fop.flush();
|
|
||||||
fop.close();
|
|
||||||
message = "Import Deck Success!\n"+cardcount+" total cards in this deck\n\n"+deck;
|
|
||||||
}
|
|
||||||
catch (IOException e)
|
|
||||||
{
|
|
||||||
message = e.getMessage();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
message = "Missing Folder!";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
message = "Invalid Profile!";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
message = "No errors, and file EMPTY";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch(IOException e)
|
|
||||||
{
|
|
||||||
message = e.getMessage();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return message;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static boolean isNumeric(String input)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
Integer.parseInt(input);
|
|
||||||
}
|
|
||||||
catch(NumberFormatException ex)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static String getActiveProfile(File mypath)
|
|
||||||
{
|
|
||||||
String name = "";
|
|
||||||
try
|
|
||||||
{
|
|
||||||
Scanner scanner = new Scanner(new File(mypath.toString()));
|
|
||||||
if (scanner.hasNext())
|
|
||||||
{
|
|
||||||
String line = scanner.nextLine();
|
|
||||||
name = line.substring(8);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return "Missing!";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch(IOException e)
|
|
||||||
{
|
|
||||||
return "Missing!";
|
|
||||||
}
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static String renameSet(String set)
|
|
||||||
{
|
|
||||||
if (set == "")
|
|
||||||
return "*";
|
|
||||||
if (set == "AL")
|
|
||||||
return "ALL";
|
|
||||||
if (set == "AQ")
|
|
||||||
return "ATQ";
|
|
||||||
if (set == "AP")
|
|
||||||
return "APC";
|
|
||||||
if (set == "AN")
|
|
||||||
return "ARN";
|
|
||||||
if (set == "AE")
|
|
||||||
return "ARC";
|
|
||||||
if (set == "BR")
|
|
||||||
return "BRB";
|
|
||||||
if (set == "BD")
|
|
||||||
return "BTD";
|
|
||||||
if (set == "CH")
|
|
||||||
return "CHR";
|
|
||||||
if (set == "6E")
|
|
||||||
return "6ED";
|
|
||||||
if (set == "CS")
|
|
||||||
return "CSP";
|
|
||||||
if (set == "DS")
|
|
||||||
return "DST";
|
|
||||||
if (set == "D2")
|
|
||||||
return "DD2";
|
|
||||||
if (set == "8E")
|
|
||||||
return "8ED";
|
|
||||||
if (set == "EX")
|
|
||||||
return "EXO";
|
|
||||||
if (set == "FE")
|
|
||||||
return "FEM";
|
|
||||||
if (set == "FD")
|
|
||||||
return "5DN";
|
|
||||||
if (set == "5E")
|
|
||||||
return "5ED";
|
|
||||||
if (set == "4E")
|
|
||||||
return "4ED";
|
|
||||||
if (set == "GP")
|
|
||||||
return "GPT";
|
|
||||||
if (set == "HL")
|
|
||||||
return "HML";
|
|
||||||
if (set == "IA")
|
|
||||||
return "ICE";
|
|
||||||
if (set == "IN")
|
|
||||||
return "INV";
|
|
||||||
if (set == "JU")
|
|
||||||
return "JUD";
|
|
||||||
if (set == "LG")
|
|
||||||
return "LEG";
|
|
||||||
if (set == "LE")
|
|
||||||
return "LGN";
|
|
||||||
if (set == "A")
|
|
||||||
return "LEA";
|
|
||||||
if (set == "B")
|
|
||||||
return "LEB";
|
|
||||||
if (set == "MM")
|
|
||||||
return "MMQ";
|
|
||||||
if (set == "MI")
|
|
||||||
return "MIR";
|
|
||||||
if (set == "MR")
|
|
||||||
return "MRD";
|
|
||||||
if (set == "NE")
|
|
||||||
return "NEM";
|
|
||||||
if (set == "9E")
|
|
||||||
return "9ED";
|
|
||||||
if (set == "OD")
|
|
||||||
return "ODY";
|
|
||||||
if (set == "ON")
|
|
||||||
return "ONS";
|
|
||||||
if (set == "PS")
|
|
||||||
return "PLS";
|
|
||||||
if (set == "PT")
|
|
||||||
return "POR";
|
|
||||||
if (set == "P2")
|
|
||||||
return "P02";
|
|
||||||
if (set == "P3")
|
|
||||||
return "PTK";
|
|
||||||
if (set == "PR")
|
|
||||||
return "PPR";
|
|
||||||
if (set == "PY")
|
|
||||||
return "PCY";
|
|
||||||
if (set == "R")
|
|
||||||
return "RV";
|
|
||||||
if (set == "SC")
|
|
||||||
return "SCG";
|
|
||||||
if (set == "7E")
|
|
||||||
return "7ED";
|
|
||||||
if (set == "ST")
|
|
||||||
return "S99";
|
|
||||||
if (set == "ST2K")
|
|
||||||
return "S00";
|
|
||||||
if (set == "SH")
|
|
||||||
return "STH";
|
|
||||||
if (set == "TE")
|
|
||||||
return "TMP";
|
|
||||||
if (set == "DK")
|
|
||||||
return "DRK";
|
|
||||||
if (set == "TO")
|
|
||||||
return "TOR";
|
|
||||||
if (set == "UG")
|
|
||||||
return "UGL";
|
|
||||||
if (set == "U")
|
|
||||||
return "2ED";
|
|
||||||
if (set == "UD")
|
|
||||||
return "UDS";
|
|
||||||
if (set == "UL")
|
|
||||||
return "ULG";
|
|
||||||
if (set == "US")
|
|
||||||
return "USG";
|
|
||||||
if (set == "VI")
|
|
||||||
return "VIS";
|
|
||||||
if (set == "WL")
|
|
||||||
return "WTH";
|
|
||||||
else
|
|
||||||
return set;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -5,10 +5,6 @@ import java.io.FileNotFoundException;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Scanner;
|
import java.util.Scanner;
|
||||||
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.Set;
|
|
||||||
import android.os.Build;
|
|
||||||
|
|
||||||
import android.os.Environment;
|
import android.os.Environment;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
@@ -25,14 +21,8 @@ public class StorageOptions
|
|||||||
public static void determineStorageOptions()
|
public static void determineStorageOptions()
|
||||||
{
|
{
|
||||||
initializeMountPoints();
|
initializeMountPoints();
|
||||||
if (findForcemount()){
|
|
||||||
readMountsFileTest();
|
|
||||||
}
|
|
||||||
readMountsFile();
|
readMountsFile();
|
||||||
readVoldFile();
|
readVoldFile();
|
||||||
if (findForcemount()){
|
|
||||||
removeDuplicates(mMounts);
|
|
||||||
}
|
|
||||||
compareMountsWithVold();
|
compareMountsWithVold();
|
||||||
testAndCleanMountsList();
|
testAndCleanMountsList();
|
||||||
setProperties();
|
setProperties();
|
||||||
@@ -50,42 +40,6 @@ public class StorageOptions
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void readMountsFileTest()
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
* Test mountpoints storage -kevlahnota
|
|
||||||
*/
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
Scanner scanner = new Scanner(new File("/proc/mounts"));
|
|
||||||
while (scanner.hasNext())
|
|
||||||
{
|
|
||||||
String line = scanner.nextLine();
|
|
||||||
if (line.startsWith("/"))
|
|
||||||
{
|
|
||||||
String[] lineElements = line.split("\\s+");
|
|
||||||
if ("vfat".equals(lineElements[2]) || "fuse".equals(lineElements[2]) || "sdcardfs".equals(lineElements[2]))
|
|
||||||
{
|
|
||||||
File mountPoint = new File(lineElements[1]);
|
|
||||||
if (!lineElements[1].equals(defaultMountPoint))
|
|
||||||
if (mountPoint.isDirectory() && mountPoint.canRead())
|
|
||||||
mMounts.add(lineElements[1]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (FileNotFoundException fnfex)
|
|
||||||
{
|
|
||||||
// if proc/mount doesn't exist we just use
|
|
||||||
Log.i(StorageOptions.class.getCanonicalName(), fnfex.getMessage() + ": assuming " + defaultMountPoint + " is the only mount point");
|
|
||||||
mMounts.add(defaultMountPoint);
|
|
||||||
} catch (Exception e)
|
|
||||||
{
|
|
||||||
Log.e(StorageOptions.class.getCanonicalName(), e.getMessage() + ": unknown exception while reading mounts file");
|
|
||||||
mMounts.add(defaultMountPoint);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void readMountsFile()
|
private static void readMountsFile()
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
@@ -152,23 +106,6 @@ public class StorageOptions
|
|||||||
mMounts.add(defaultMountPoint);
|
mMounts.add(defaultMountPoint);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static ArrayList<String> removeDuplicates(ArrayList<String> list)
|
|
||||||
{
|
|
||||||
ArrayList<String> result = new ArrayList<String>();
|
|
||||||
|
|
||||||
HashSet<String> set = new HashSet<String>();
|
|
||||||
|
|
||||||
for (String item : list)
|
|
||||||
{
|
|
||||||
if (!set.contains(item))
|
|
||||||
{
|
|
||||||
result.add(item);
|
|
||||||
set.add(item);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void compareMountsWithVold()
|
private static void compareMountsWithVold()
|
||||||
{
|
{
|
||||||
@@ -195,54 +132,14 @@ public class StorageOptions
|
|||||||
/*
|
/*
|
||||||
* Now that we have a cleaned list of mount paths Test each one to make sure it's a valid and available path. If it is not, remove it from the list.
|
* Now that we have a cleaned list of mount paths Test each one to make sure it's a valid and available path. If it is not, remove it from the list.
|
||||||
*/
|
*/
|
||||||
int t = 0;
|
|
||||||
for (int i = 0; i < mMounts.size(); i++)
|
for (int i = 0; i < mMounts.size(); i++)
|
||||||
{
|
{
|
||||||
t++;
|
|
||||||
String mount = mMounts.get(i);
|
String mount = mMounts.get(i);
|
||||||
File root = new File(mount);
|
File root = new File(mount);
|
||||||
if (!root.exists() || !root.isDirectory() || !root.canWrite())
|
if (!root.exists() || !root.isDirectory() || !root.canWrite())
|
||||||
mMounts.remove(i--);
|
mMounts.remove(i--);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (t == 0 && Build.VERSION.SDK_INT >= 16 && findForcemount())
|
|
||||||
{//if none is found lets force it for Jellybean and above...
|
|
||||||
if (System.getenv("EXTERNAL_STORAGE") != null)
|
|
||||||
{
|
|
||||||
File root = new File(System.getenv("EXTERNAL_STORAGE"));
|
|
||||||
if (root.exists() && root.isDirectory() && root.canWrite())
|
|
||||||
{
|
|
||||||
if(!isRooted())
|
|
||||||
{
|
|
||||||
File folder = new File(System.getenv("EXTERNAL_STORAGE")+"/Android/data/net.wagic.app/files");
|
|
||||||
folder.mkdirs();
|
|
||||||
mMounts.add(folder.toString());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
mMounts.add(System.getenv("EXTERNAL_STORAGE"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (System.getenv("SECONDARY_STORAGE") != null)
|
|
||||||
{
|
|
||||||
File root = new File(System.getenv("SECONDARY_STORAGE"));
|
|
||||||
if (root.exists() && root.isDirectory() && root.canWrite())
|
|
||||||
{
|
|
||||||
if(!isRooted())
|
|
||||||
{
|
|
||||||
File folder = new File(System.getenv("SECONDARY_STORAGE")+"/Android/data/net.wagic.app/files");
|
|
||||||
folder.mkdirs();
|
|
||||||
mMounts.add(folder.toString());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
mMounts.add(System.getenv("SECONDARY_STORAGE"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void setProperties()
|
private static void setProperties()
|
||||||
@@ -254,28 +151,14 @@ public class StorageOptions
|
|||||||
ArrayList<String> mLabels = new ArrayList<String>();
|
ArrayList<String> mLabels = new ArrayList<String>();
|
||||||
|
|
||||||
int i = 1;
|
int i = 1;
|
||||||
if(findForcemount()){
|
for (String path : mMounts)
|
||||||
for (String path : mMounts)
|
{ // TODO: /mnt/sdcard is assumed to always mean internal storage. Use this comparison until there is a better way to do this
|
||||||
{//with forcemount menu
|
if ("/mnt/sdcard".equalsIgnoreCase(path))
|
||||||
if ("/mnt/sdcard".equalsIgnoreCase(path) || "/storage/sdcard0".equalsIgnoreCase(path))
|
mLabels.add("Built-in Storage");
|
||||||
mLabels.add("Internal SD " + "[" + path + "]");
|
else
|
||||||
else if (path.contains("emulated"))
|
mLabels.add("External SD Card " + i++);
|
||||||
mLabels.add("Emulated SD " + " [" + path + "]");
|
|
||||||
else
|
|
||||||
mLabels.add("External SD " + " [" + path + "]");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
for (String path : mMounts)
|
|
||||||
{ // TODO: /mnt/sdcard is assumed to always mean internal storage. Use this comparison until there is a better way to do this
|
|
||||||
if ("/mnt/sdcard".equalsIgnoreCase(path))
|
|
||||||
mLabels.add("Built-in Storage");
|
|
||||||
else
|
|
||||||
mLabels.add("External SD Card " + i++);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
labels = new String[mLabels.size()];
|
labels = new String[mLabels.size()];
|
||||||
mLabels.toArray(labels);
|
mLabels.toArray(labels);
|
||||||
|
|
||||||
@@ -288,106 +171,4 @@ public class StorageOptions
|
|||||||
// use and to prepare it for the next time it's needed.
|
// use and to prepare it for the next time it's needed.
|
||||||
mMounts.clear();
|
mMounts.clear();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
private static boolean isExternalStorageReadOnly() {
|
|
||||||
String extStorageState = Environment.getExternalStorageState();
|
|
||||||
if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(extStorageState)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static boolean isExternalStorageAvailable() {
|
|
||||||
String extStorageState = Environment.getExternalStorageState();
|
|
||||||
if (Environment.MEDIA_MOUNTED.equals(extStorageState)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks if the device is rooted.
|
|
||||||
*
|
|
||||||
* @return <code>true</code> if the device is rooted, <code>false</code> otherwise.
|
|
||||||
*/
|
|
||||||
public static boolean isRooted() {
|
|
||||||
|
|
||||||
// get from build info
|
|
||||||
String buildTags = android.os.Build.TAGS;
|
|
||||||
if (buildTags != null && buildTags.contains("test-keys")) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// check if /system/app/Superuser.apk is present
|
|
||||||
try {
|
|
||||||
File file = new File("/system/app/Superuser.apk");
|
|
||||||
if (file.exists()) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception e1) {
|
|
||||||
// ignore
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
File file = new File("/system/app/Superuser/Superuser.apk");
|
|
||||||
if (file.exists()) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception e1) {
|
|
||||||
// ignore
|
|
||||||
}
|
|
||||||
//SuperSU
|
|
||||||
try {
|
|
||||||
File file = new File("/system/app/SuperSU.apk");
|
|
||||||
if (file.exists()) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception e1) {
|
|
||||||
// ignore
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
File file = new File("/system/app/SuperSU/SuperSU.apk");
|
|
||||||
if (file.exists()) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception e1) {
|
|
||||||
// ignore
|
|
||||||
}
|
|
||||||
// try executing commands
|
|
||||||
return canExecuteCommand("/system/xbin/which su")
|
|
||||||
|| canExecuteCommand("/system/bin/which su") || canExecuteCommand("which su");
|
|
||||||
}
|
|
||||||
|
|
||||||
// executes a command on the system
|
|
||||||
private static boolean canExecuteCommand(String command) {
|
|
||||||
boolean executedSuccesfully;
|
|
||||||
try {
|
|
||||||
Runtime.getRuntime().exec(command);
|
|
||||||
executedSuccesfully = true;
|
|
||||||
}
|
|
||||||
catch (Exception e) {
|
|
||||||
executedSuccesfully = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return executedSuccesfully;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static boolean findForcemount(){
|
|
||||||
try
|
|
||||||
{
|
|
||||||
File file = new File(System.getenv("EXTERNAL_STORAGE")+"/forcemount");
|
|
||||||
if (file.exists())
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception e1)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,20 +1,12 @@
|
|||||||
package org.libsdl.app;
|
package org.libsdl.app;
|
||||||
|
|
||||||
|
|
||||||
import java.io.BufferedInputStream;
|
import java.io.BufferedInputStream;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
import java.io.FileReader;
|
|
||||||
import java.io.FileWriter;
|
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.net.URLConnection;
|
import java.net.URLConnection;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Scanner;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
import javax.microedition.khronos.egl.EGL10;
|
import javax.microedition.khronos.egl.EGL10;
|
||||||
import javax.microedition.khronos.egl.EGLConfig;
|
import javax.microedition.khronos.egl.EGLConfig;
|
||||||
@@ -24,7 +16,6 @@ import javax.microedition.khronos.egl.EGLSurface;
|
|||||||
|
|
||||||
import net.wagic.app.R;
|
import net.wagic.app.R;
|
||||||
import net.wagic.utils.StorageOptions;
|
import net.wagic.utils.StorageOptions;
|
||||||
import net.wagic.utils.DeckImporter;
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
@@ -68,10 +59,7 @@ import android.widget.FrameLayout.LayoutParams;
|
|||||||
*/
|
*/
|
||||||
public class SDLActivity extends Activity implements OnKeyListener
|
public class SDLActivity extends Activity implements OnKeyListener
|
||||||
{
|
{
|
||||||
//import deck globals
|
|
||||||
public ArrayList<String> myresult = new ArrayList<String>();
|
|
||||||
public String myclickedItem = "";
|
|
||||||
|
|
||||||
// TAG used for debugging in DDMS
|
// TAG used for debugging in DDMS
|
||||||
public static String TAG = Activity.class.getCanonicalName();
|
public static String TAG = Activity.class.getCanonicalName();
|
||||||
|
|
||||||
@@ -212,60 +200,7 @@ public class SDLActivity extends Activity implements OnKeyListener
|
|||||||
|
|
||||||
setStorage.create().show();
|
setStorage.create().show();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void importDeckOptions()
|
|
||||||
{
|
|
||||||
AlertDialog.Builder importDeck = new AlertDialog.Builder(this);
|
|
||||||
importDeck.setTitle("Choose Deck to Import:");
|
|
||||||
File root = new File(System.getenv("EXTERNAL_STORAGE")+"/Download");
|
|
||||||
File[] files = root.listFiles();
|
|
||||||
for( File f : files)
|
|
||||||
{
|
|
||||||
if( !myresult.contains(f.toString()) && (f.toString().contains(".txt")||f.toString().contains(".dck")||f.toString().contains(".dec")))
|
|
||||||
myresult.add(f.toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
//get first item?
|
|
||||||
if(!myresult.isEmpty())
|
|
||||||
myclickedItem = myresult.get(0).toString();
|
|
||||||
|
|
||||||
importDeck.setSingleChoiceItems(myresult.toArray(new String[myresult.size()]), 0, new DialogInterface.OnClickListener()
|
|
||||||
{
|
|
||||||
public void onClick(DialogInterface dialog, int item)
|
|
||||||
{
|
|
||||||
myclickedItem = myresult.get(item).toString();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
importDeck.setPositiveButton("Import Deck", new DialogInterface.OnClickListener()
|
|
||||||
{
|
|
||||||
public void onClick(DialogInterface dialog, int which)
|
|
||||||
{
|
|
||||||
processSelectedDeck( myclickedItem );
|
|
||||||
if (mSurface == null)
|
|
||||||
mSingleton.initializeGame();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
importDeck.create().show();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void processSelectedDeck(String mypath)
|
|
||||||
{
|
|
||||||
AlertDialog.Builder infoDialog = new AlertDialog.Builder(this);
|
|
||||||
infoDialog.setTitle("Imported Deck:");
|
|
||||||
String activePath = sdcardPath;
|
|
||||||
if(activePath == ""){
|
|
||||||
activePath = internalPath;
|
|
||||||
}
|
|
||||||
|
|
||||||
File f = new File(mypath);
|
|
||||||
//Call the deck importer....
|
|
||||||
String state = DeckImporter.importDeck(f, mypath, activePath);
|
|
||||||
infoDialog.setMessage(state);
|
|
||||||
infoDialog.show();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void checkStorageLocationPreference()
|
private void checkStorageLocationPreference()
|
||||||
{
|
{
|
||||||
SharedPreferences settings = getSharedPreferences(kWagicSharedPreferencesKey, MODE_PRIVATE);
|
SharedPreferences settings = getSharedPreferences(kWagicSharedPreferencesKey, MODE_PRIVATE);
|
||||||
@@ -399,8 +334,7 @@ public class SDLActivity extends Activity implements OnKeyListener
|
|||||||
public boolean onCreateOptionsMenu(Menu menu)
|
public boolean onCreateOptionsMenu(Menu menu)
|
||||||
{
|
{
|
||||||
SubMenu settingsMenu = menu.addSubMenu(Menu.NONE, 1, 1, "Settings");
|
SubMenu settingsMenu = menu.addSubMenu(Menu.NONE, 1, 1, "Settings");
|
||||||
menu.add(Menu.NONE, 2, 2, "Import");
|
menu.add(Menu.NONE, 2, 2, "About");
|
||||||
menu.add(Menu.NONE, 3, 3, "About");
|
|
||||||
settingsMenu.add(kStorageDataOptionsMenuId, kStorageDataOptionsMenuId, Menu.NONE, "Storage Data Options");
|
settingsMenu.add(kStorageDataOptionsMenuId, kStorageDataOptionsMenuId, Menu.NONE, "Storage Data Options");
|
||||||
// buildStorageOptionsMenu(settingsMenu);
|
// buildStorageOptionsMenu(settingsMenu);
|
||||||
|
|
||||||
@@ -416,9 +350,6 @@ public class SDLActivity extends Activity implements OnKeyListener
|
|||||||
{
|
{
|
||||||
displayStorageOptions();
|
displayStorageOptions();
|
||||||
} else if (itemId == 2)
|
} else if (itemId == 2)
|
||||||
{
|
|
||||||
importDeckOptions();
|
|
||||||
} else if (itemId == 3)
|
|
||||||
{
|
{
|
||||||
// display some info about the app
|
// display some info about the app
|
||||||
AlertDialog.Builder infoDialog = new AlertDialog.Builder(this);
|
AlertDialog.Builder infoDialog = new AlertDialog.Builder(this);
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 820 KiB After Width: | Height: | Size: 820 KiB |
|
Before Width: | Height: | Size: 235 KiB After Width: | Height: | Size: 235 KiB |
|
Before Width: | Height: | Size: 630 KiB After Width: | Height: | Size: 630 KiB |
|
Before Width: | Height: | Size: 233 KiB After Width: | Height: | Size: 233 KiB |
|
Before Width: | Height: | Size: 417 KiB After Width: | Height: | Size: 417 KiB |
|
Before Width: | Height: | Size: 235 KiB After Width: | Height: | Size: 235 KiB |
|
Before Width: | Height: | Size: 235 KiB After Width: | Height: | Size: 235 KiB |
@@ -1,20 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>NSPrincipalClass</key>
|
|
||||||
<string>NSApplication</string>
|
|
||||||
<key>CFBundlePackageType</key>
|
|
||||||
<string>APPL</string>
|
|
||||||
<key>CFBundleGetInfoString</key>
|
|
||||||
<string>Created by Qt/QMake</string>
|
|
||||||
<key>CFBundleSignature</key>
|
|
||||||
<string>????</string>
|
|
||||||
<key>CFBundleExecutable</key>
|
|
||||||
<string>wagic.launcher</string>
|
|
||||||
<key>CFBundleIdentifier</key>
|
|
||||||
<string>wagic.wagic</string>
|
|
||||||
<key>NOTE</key>
|
|
||||||
<string>This file was generated by Qt/QMake.</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
cd ${0%/*/*}/Resources
|
|
||||||
#cd ../Resources
|
|
||||||
exec ../MacOS/wagic -platformpluginpath ../PlugIns >> ../logs/out.log 2> ../logs/err.log
|
|
||||||
@@ -1,11 +1,5 @@
|
|||||||
#NAME:Kill by Numbers
|
#NAME:Kill by Numbers
|
||||||
#DESC:They just keep multiplying.
|
#DESC:They just keep multiplying.
|
||||||
#HINT:castpriority(enchantment,instant,sorcery,artifact,creature)
|
|
||||||
#HINT:dontattackwith(Rhys the Redeemed)
|
|
||||||
#HINT:dontblockwith(Rhys the Redeemed)
|
|
||||||
#HINT:dontattackwith(Kazandu Tuskcaller)
|
|
||||||
#HINT:dontblockwith(Kazandu Tuskcaller)
|
|
||||||
|
|
||||||
Mox Emerald (LEA) *2
|
Mox Emerald (LEA) *2
|
||||||
Mox Pearl (LEA) *2
|
Mox Pearl (LEA) *2
|
||||||
Forest (LEA) *15
|
Forest (LEA) *15
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 522 KiB After Width: | Height: | Size: 70 KiB |
|
Before Width: | Height: | Size: 8.5 KiB |
|
Before Width: | Height: | Size: 122 KiB After Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 151 KiB After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 233 KiB |
|
Before Width: | Height: | Size: 63 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 140 KiB |
|
Before Width: | Height: | Size: 5.7 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 7.0 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 132 KiB |
|
Before Width: | Height: | Size: 117 KiB After Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 95 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 53 KiB |
|
Before Width: | Height: | Size: 405 KiB After Width: | Height: | Size: 142 KiB |
|
Before Width: | Height: | Size: 150 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 177 KiB After Width: | Height: | Size: 110 KiB |
|
Before Width: | Height: | Size: 8.7 KiB |
|
Before Width: | Height: | Size: 489 KiB After Width: | Height: | Size: 115 KiB |
|
Before Width: | Height: | Size: 76 KiB |
|
Before Width: | Height: | Size: 4.0 KiB |
|
Before Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 514 KiB After Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 514 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 514 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 514 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 514 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 514 KiB After Width: | Height: | Size: 33 KiB |
@@ -5,6 +5,7 @@ wallpapers/wagic1.jpg
|
|||||||
wallpapers/kaioshin_garruk.jpg
|
wallpapers/kaioshin_garruk.jpg
|
||||||
wallpapers/kaioshin_jace.jpg
|
wallpapers/kaioshin_jace.jpg
|
||||||
graphics/shop.jpg
|
graphics/shop.jpg
|
||||||
|
themes/Classic/backdrop.jpg
|
||||||
wallpapers/kaioshin_ravager.jpg
|
wallpapers/kaioshin_ravager.jpg
|
||||||
wallpapers/kaioshin_elsXIII.jpg
|
wallpapers/kaioshin_elsXIII.jpg
|
||||||
wallpapers/kaioshin_sorin.jpg
|
wallpapers/kaioshin_sorin.jpg
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 125 KiB |
|
Before Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 46 KiB |
|
Before Width: | Height: | Size: 76 KiB |
|
Before Width: | Height: | Size: 51 KiB |
|
Before Width: | Height: | Size: 54 KiB |
|
Before Width: | Height: | Size: 49 KiB |
|
Before Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 24 KiB |
@@ -1 +0,0 @@
|
|||||||
here are the old themes.
|
|
||||||
@@ -13,12 +13,8 @@ auto=flashbackrule
|
|||||||
auto=retracerule
|
auto=retracerule
|
||||||
auto=suspendrule
|
auto=suspendrule
|
||||||
auto=morphrule
|
auto=morphrule
|
||||||
auto=payzerorule
|
|
||||||
auto=overloadrule
|
|
||||||
auto=attackrule
|
auto=attackrule
|
||||||
auto=attackcostrule
|
|
||||||
auto=blockrule
|
auto=blockrule
|
||||||
auto=blockcostrule
|
|
||||||
auto=combattriggerrule
|
auto=combattriggerrule
|
||||||
auto=legendrule
|
auto=legendrule
|
||||||
auto=planeswalkerrule
|
auto=planeswalkerrule
|
||||||
|
|||||||
@@ -12,12 +12,8 @@ auto=flashbackrule
|
|||||||
auto=retracerule
|
auto=retracerule
|
||||||
auto=suspendrule
|
auto=suspendrule
|
||||||
auto=morphrule
|
auto=morphrule
|
||||||
auto=payzerorule
|
|
||||||
auto=overloadrule
|
|
||||||
auto=attackrule
|
auto=attackrule
|
||||||
auto=attackcostrule
|
|
||||||
auto=blockrule
|
auto=blockrule
|
||||||
auto=blockcostrule
|
|
||||||
auto=combattriggerrule
|
auto=combattriggerrule
|
||||||
auto=legendrule
|
auto=legendrule
|
||||||
auto=planeswalkerrule
|
auto=planeswalkerrule
|
||||||
|
|||||||
@@ -42,10 +42,6 @@
|
|||||||
<item name="types" >
|
<item name="types" >
|
||||||
<position x="22" y="49"/>
|
<position x="22" y="49"/>
|
||||||
</item>
|
</item>
|
||||||
<item name="cardid" >
|
|
||||||
<position x="22" y="237"/>
|
|
||||||
<formattedtext>mtgid</formattedtext>
|
|
||||||
</item>
|
|
||||||
<item name="expansionrarity" >
|
<item name="expansionrarity" >
|
||||||
<position x="22" y="255"/>
|
<position x="22" y="255"/>
|
||||||
<formattedtext>expansion rarity</formattedtext>
|
<formattedtext>expansion rarity</formattedtext>
|
||||||
|
|||||||
@@ -16,12 +16,9 @@ auto=flashbackrule
|
|||||||
auto=retracerule
|
auto=retracerule
|
||||||
auto=suspendrule
|
auto=suspendrule
|
||||||
auto=morphrule
|
auto=morphrule
|
||||||
auto=payzerorule
|
auto=playfromgraveyardrule
|
||||||
auto=overloadrule
|
|
||||||
auto=attackrule
|
auto=attackrule
|
||||||
auto=attackcostrule
|
|
||||||
auto=blockrule
|
auto=blockrule
|
||||||
auto=blockcostrule
|
|
||||||
auto=combattriggerrule
|
auto=combattriggerrule
|
||||||
auto=legendrule
|
auto=legendrule
|
||||||
auto=planeswalkerrule
|
auto=planeswalkerrule
|
||||||
@@ -35,7 +32,6 @@ auto=lifelinkrule
|
|||||||
auto=deathtouchrule
|
auto=deathtouchrule
|
||||||
auto=soulbondrule
|
auto=soulbondrule
|
||||||
auto=dredgerule
|
auto=dredgerule
|
||||||
auto=bestowrule
|
|
||||||
|
|
||||||
[PLAYERS]
|
[PLAYERS]
|
||||||
life:20
|
life:20
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
[meta]
|
[meta]
|
||||||
author=Wagic Team
|
author=Wagic Team
|
||||||
name=Tenth Edition
|
name=10th Edition
|
||||||
year=2007
|
year=2007
|
||||||
total=383
|
|
||||||
[/meta]
|
[/meta]
|
||||||
[card]
|
[card]
|
||||||
primitive=Abundance
|
primitive=Abundance
|
||||||
@@ -60,11 +59,6 @@ id=129465
|
|||||||
rarity=U
|
rarity=U
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Angel's Feather
|
|
||||||
id=129466
|
|
||||||
rarity=U
|
|
||||||
[/card]
|
|
||||||
[card]
|
|
||||||
primitive=Angelic Blessing
|
primitive=Angelic Blessing
|
||||||
id=129711
|
id=129711
|
||||||
rarity=C
|
rarity=C
|
||||||
@@ -80,6 +74,11 @@ id=129671
|
|||||||
rarity=C
|
rarity=C
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
|
primitive=Angel's Feather
|
||||||
|
id=129466
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
primitive=Arcane Teachings
|
primitive=Arcane Teachings
|
||||||
id=130530
|
id=130530
|
||||||
rarity=U
|
rarity=U
|
||||||
@@ -575,16 +574,16 @@ id=134762
|
|||||||
rarity=C
|
rarity=C
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Furnace Whelp
|
|
||||||
id=130386
|
|
||||||
rarity=U
|
|
||||||
[/card]
|
|
||||||
[card]
|
|
||||||
primitive=Furnace of Rath
|
primitive=Furnace of Rath
|
||||||
id=129566
|
id=129566
|
||||||
rarity=R
|
rarity=R
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
|
primitive=Furnace Whelp
|
||||||
|
id=130386
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
primitive=Gaea's Herald
|
primitive=Gaea's Herald
|
||||||
id=129789
|
id=129789
|
||||||
rarity=R
|
rarity=R
|
||||||
@@ -960,16 +959,16 @@ id=135272
|
|||||||
rarity=R
|
rarity=R
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Might Weaver
|
|
||||||
id=130996
|
|
||||||
rarity=U
|
|
||||||
[/card]
|
|
||||||
[card]
|
|
||||||
primitive=Might of Oaks
|
primitive=Might of Oaks
|
||||||
id=129642
|
id=129642
|
||||||
rarity=R
|
rarity=R
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
|
primitive=Might Weaver
|
||||||
|
id=130996
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
primitive=Millstone
|
primitive=Millstone
|
||||||
id=129643
|
id=129643
|
||||||
rarity=R
|
rarity=R
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
[meta]
|
[meta]
|
||||||
author=Wagic Team
|
author=Wagic Team
|
||||||
name=Unlimited Edition
|
name=2nd Edition
|
||||||
year=1993
|
year=1993
|
||||||
total=302
|
|
||||||
[/meta]
|
[/meta]
|
||||||
[card]
|
[card]
|
||||||
primitive=Air Elemental
|
primitive=Air Elemental
|
||||||
@@ -461,7 +460,7 @@ rarity=R
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Forest
|
primitive=Forest
|
||||||
id=888
|
id=890
|
||||||
rarity=L
|
rarity=L
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
@@ -471,7 +470,7 @@ rarity=L
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Forest
|
primitive=Forest
|
||||||
id=890
|
id=888
|
||||||
rarity=L
|
rarity=L
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
@@ -645,13 +644,8 @@ id=756
|
|||||||
rarity=C
|
rarity=C
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Island Sanctuary
|
|
||||||
id=854
|
|
||||||
rarity=R
|
|
||||||
[/card]
|
|
||||||
[card]
|
|
||||||
primitive=Island
|
primitive=Island
|
||||||
id=894
|
id=896
|
||||||
rarity=L
|
rarity=L
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
@@ -661,10 +655,15 @@ rarity=L
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Island
|
primitive=Island
|
||||||
id=896
|
id=894
|
||||||
rarity=L
|
rarity=L
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
|
primitive=Island Sanctuary
|
||||||
|
id=854
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
primitive=Ivory Cup
|
primitive=Ivory Cup
|
||||||
id=619
|
id=619
|
||||||
rarity=U
|
rarity=U
|
||||||
@@ -846,7 +845,7 @@ rarity=C
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Mountain
|
primitive=Mountain
|
||||||
id=891
|
id=893
|
||||||
rarity=L
|
rarity=L
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
@@ -856,7 +855,7 @@ rarity=L
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Mountain
|
primitive=Mountain
|
||||||
id=893
|
id=891
|
||||||
rarity=L
|
rarity=L
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
@@ -976,7 +975,7 @@ rarity=C
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Plains
|
primitive=Plains
|
||||||
id=897
|
id=899
|
||||||
rarity=L
|
rarity=L
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
@@ -986,7 +985,7 @@ rarity=L
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Plains
|
primitive=Plains
|
||||||
id=899
|
id=897
|
||||||
rarity=L
|
rarity=L
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
@@ -1105,13 +1104,13 @@ id=866
|
|||||||
rarity=C
|
rarity=C
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Savannah Lions
|
primitive=Savannah
|
||||||
id=867
|
id=881
|
||||||
rarity=R
|
rarity=R
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Savannah
|
primitive=Savannah Lions
|
||||||
id=881
|
id=867
|
||||||
rarity=R
|
rarity=R
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
@@ -1241,7 +1240,7 @@ rarity=R
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Swamp
|
primitive=Swamp
|
||||||
id=875
|
id=877
|
||||||
rarity=L
|
rarity=L
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
@@ -1251,7 +1250,7 @@ rarity=L
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Swamp
|
primitive=Swamp
|
||||||
id=877
|
id=875
|
||||||
rarity=L
|
rarity=L
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
[meta]
|
[meta]
|
||||||
author=Wagic Team
|
author=Wagic Team
|
||||||
name=Fourth Edition
|
name=4th Edition
|
||||||
year=1995
|
year=1995
|
||||||
total=378
|
|
||||||
[/meta]
|
[/meta]
|
||||||
[card]
|
[card]
|
||||||
primitive=Abomination
|
primitive=Abomination
|
||||||
@@ -75,13 +74,13 @@ id=2144
|
|||||||
rarity=C
|
rarity=C
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Armageddon Clock
|
primitive=Armageddon
|
||||||
id=2018
|
id=2320
|
||||||
rarity=R
|
rarity=R
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Armageddon
|
primitive=Armageddon Clock
|
||||||
id=2320
|
id=2018
|
||||||
rarity=R
|
rarity=R
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
@@ -510,13 +509,13 @@ id=2041
|
|||||||
rarity=R
|
rarity=R
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=El-Hajjaj
|
primitive=Elder Land Wurm
|
||||||
id=2101
|
id=2339
|
||||||
rarity=R
|
rarity=R
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Elder Land Wurm
|
primitive=El-Hajjaj
|
||||||
id=2339
|
id=2101
|
||||||
rarity=R
|
rarity=R
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
@@ -631,7 +630,7 @@ rarity=R
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Forest
|
primitive=Forest
|
||||||
id=2377
|
id=2379
|
||||||
rarity=L
|
rarity=L
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
@@ -641,7 +640,7 @@ rarity=L
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Forest
|
primitive=Forest
|
||||||
id=2379
|
id=2377
|
||||||
rarity=L
|
rarity=L
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
@@ -840,18 +839,8 @@ id=2220
|
|||||||
rarity=C
|
rarity=C
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Island Fish Jasconius
|
|
||||||
id=2161
|
|
||||||
rarity=R
|
|
||||||
[/card]
|
|
||||||
[card]
|
|
||||||
primitive=Island Sanctuary
|
|
||||||
id=2346
|
|
||||||
rarity=R
|
|
||||||
[/card]
|
|
||||||
[card]
|
|
||||||
primitive=Island
|
primitive=Island
|
||||||
id=2389
|
id=2391
|
||||||
rarity=L
|
rarity=L
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
@@ -861,10 +850,20 @@ rarity=L
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Island
|
primitive=Island
|
||||||
id=2391
|
id=2389
|
||||||
rarity=L
|
rarity=L
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
|
primitive=Island Fish Jasconius
|
||||||
|
id=2161
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Island Sanctuary
|
||||||
|
id=2346
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
primitive=Ivory Cup
|
primitive=Ivory Cup
|
||||||
id=2050
|
id=2050
|
||||||
rarity=U
|
rarity=U
|
||||||
@@ -1106,7 +1105,7 @@ rarity=C
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Mountain
|
primitive=Mountain
|
||||||
id=2381
|
id=2383
|
||||||
rarity=L
|
rarity=L
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
@@ -1116,7 +1115,7 @@ rarity=L
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Mountain
|
primitive=Mountain
|
||||||
id=2383
|
id=2381
|
||||||
rarity=L
|
rarity=L
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
@@ -1246,7 +1245,7 @@ rarity=C
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Plains
|
primitive=Plains
|
||||||
id=2384
|
id=2386
|
||||||
rarity=L
|
rarity=L
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
@@ -1256,7 +1255,7 @@ rarity=L
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Plains
|
primitive=Plains
|
||||||
id=2386
|
id=2384
|
||||||
rarity=L
|
rarity=L
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
@@ -1546,7 +1545,7 @@ rarity=C
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Swamp
|
primitive=Swamp
|
||||||
id=2374
|
id=2376
|
||||||
rarity=L
|
rarity=L
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
@@ -1556,7 +1555,7 @@ rarity=L
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Swamp
|
primitive=Swamp
|
||||||
id=2376
|
id=2374
|
||||||
rarity=L
|
rarity=L
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
|
|||||||
@@ -1,9 +1,7 @@
|
|||||||
[meta]
|
[meta]
|
||||||
author=Wagic Team
|
author=Wagic Team
|
||||||
name=Fifth Dawn
|
|
||||||
block=Mirrodin
|
|
||||||
year=2004
|
year=2004
|
||||||
total=165
|
block=Mirror
|
||||||
[/meta]
|
[/meta]
|
||||||
[card]
|
[card]
|
||||||
primitive=Abuna's Chant
|
primitive=Abuna's Chant
|
||||||
|
|||||||
@@ -1,15 +1,9 @@
|
|||||||
[meta]
|
[meta]
|
||||||
author=Wagic Team
|
author=Wagic Team
|
||||||
name=Fifth Edition
|
name=5th Edition
|
||||||
year=1997
|
year=1997
|
||||||
total=449
|
|
||||||
[/meta]
|
[/meta]
|
||||||
[card]
|
[card]
|
||||||
primitive=AEther Storm
|
|
||||||
id=3891
|
|
||||||
rarity=U
|
|
||||||
[/card]
|
|
||||||
[card]
|
|
||||||
primitive=Abbey Gargoyles
|
primitive=Abbey Gargoyles
|
||||||
id=4098
|
id=4098
|
||||||
rarity=U
|
rarity=U
|
||||||
@@ -25,6 +19,11 @@ id=4175
|
|||||||
rarity=R
|
rarity=R
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
|
primitive=AEther Storm
|
||||||
|
id=3891
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
primitive=Air Elemental
|
primitive=Air Elemental
|
||||||
id=3892
|
id=3892
|
||||||
rarity=U
|
rarity=U
|
||||||
@@ -55,16 +54,16 @@ id=3759
|
|||||||
rarity=C
|
rarity=C
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=An-Havva Constable
|
|
||||||
id=3960
|
|
||||||
rarity=R
|
|
||||||
[/card]
|
|
||||||
[card]
|
|
||||||
primitive=Angry Mob
|
primitive=Angry Mob
|
||||||
id=4101
|
id=4101
|
||||||
rarity=U
|
rarity=U
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
|
primitive=An-Havva Constable
|
||||||
|
id=3960
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
primitive=Animate Dead
|
primitive=Animate Dead
|
||||||
id=3823
|
id=3823
|
||||||
rarity=U
|
rarity=U
|
||||||
@@ -430,11 +429,6 @@ id=3835
|
|||||||
rarity=U
|
rarity=U
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=D'Avenant Archer
|
|
||||||
id=4120
|
|
||||||
rarity=C
|
|
||||||
[/card]
|
|
||||||
[card]
|
|
||||||
primitive=Dance of Many
|
primitive=Dance of Many
|
||||||
id=3899
|
id=3899
|
||||||
rarity=R
|
rarity=R
|
||||||
@@ -460,6 +454,11 @@ id=3836
|
|||||||
rarity=C
|
rarity=C
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
|
primitive=D'Avenant Archer
|
||||||
|
id=4120
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
primitive=Death Speakers
|
primitive=Death Speakers
|
||||||
id=4121
|
id=4121
|
||||||
rarity=C
|
rarity=C
|
||||||
@@ -735,23 +734,18 @@ id=3976
|
|||||||
rarity=C
|
rarity=C
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Force Spike
|
|
||||||
id=3909
|
|
||||||
rarity=C
|
|
||||||
[/card]
|
|
||||||
[card]
|
|
||||||
primitive=Force of Nature
|
primitive=Force of Nature
|
||||||
id=3977
|
id=3977
|
||||||
rarity=R
|
rarity=R
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Forest
|
primitive=Force Spike
|
||||||
id=4171
|
id=3909
|
||||||
rarity=L
|
rarity=C
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Forest
|
primitive=Forest
|
||||||
id=4172
|
id=4174
|
||||||
rarity=L
|
rarity=L
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
@@ -761,7 +755,12 @@ rarity=L
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Forest
|
primitive=Forest
|
||||||
id=4174
|
id=4172
|
||||||
|
rarity=L
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Forest
|
||||||
|
id=4171
|
||||||
rarity=L
|
rarity=L
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
@@ -900,13 +899,13 @@ id=4182
|
|||||||
rarity=U
|
rarity=U
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Healing Salve
|
primitive=Heal
|
||||||
id=4130
|
id=4129
|
||||||
rarity=C
|
rarity=C
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Heal
|
primitive=Healing Salve
|
||||||
id=4129
|
id=4130
|
||||||
rarity=C
|
rarity=C
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
@@ -1055,18 +1054,8 @@ id=3988
|
|||||||
rarity=C
|
rarity=C
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Island Sanctuary
|
|
||||||
id=4136
|
|
||||||
rarity=R
|
|
||||||
[/card]
|
|
||||||
[card]
|
|
||||||
primitive=Island
|
primitive=Island
|
||||||
id=4199
|
id=4202
|
||||||
rarity=L
|
|
||||||
[/card]
|
|
||||||
[card]
|
|
||||||
primitive=Island
|
|
||||||
id=4200
|
|
||||||
rarity=L
|
rarity=L
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
@@ -1076,10 +1065,20 @@ rarity=L
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Island
|
primitive=Island
|
||||||
id=4202
|
id=4200
|
||||||
rarity=L
|
rarity=L
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
|
primitive=Island
|
||||||
|
id=4199
|
||||||
|
rarity=L
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Island Sanctuary
|
||||||
|
id=4136
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
primitive=Ivory Cup
|
primitive=Ivory Cup
|
||||||
id=3792
|
id=3792
|
||||||
rarity=U
|
rarity=U
|
||||||
@@ -1365,18 +1364,8 @@ id=4072
|
|||||||
rarity=C
|
rarity=C
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Mountain Goat
|
|
||||||
id=4073
|
|
||||||
rarity=C
|
|
||||||
[/card]
|
|
||||||
[card]
|
|
||||||
primitive=Mountain
|
primitive=Mountain
|
||||||
id=4195
|
id=4198
|
||||||
rarity=L
|
|
||||||
[/card]
|
|
||||||
[card]
|
|
||||||
primitive=Mountain
|
|
||||||
id=4196
|
|
||||||
rarity=L
|
rarity=L
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
@@ -1386,10 +1375,20 @@ rarity=L
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Mountain
|
primitive=Mountain
|
||||||
id=4198
|
id=4196
|
||||||
rarity=L
|
rarity=L
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
|
primitive=Mountain
|
||||||
|
id=4195
|
||||||
|
rarity=L
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Mountain Goat
|
||||||
|
id=4073
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
primitive=Murk Dwellers
|
primitive=Murk Dwellers
|
||||||
id=3863
|
id=3863
|
||||||
rarity=C
|
rarity=C
|
||||||
@@ -1546,12 +1545,7 @@ rarity=C
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Plains
|
primitive=Plains
|
||||||
id=4203
|
id=4206
|
||||||
rarity=L
|
|
||||||
[/card]
|
|
||||||
[card]
|
|
||||||
primitive=Plains
|
|
||||||
id=4204
|
|
||||||
rarity=L
|
rarity=L
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
@@ -1561,7 +1555,12 @@ rarity=L
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Plains
|
primitive=Plains
|
||||||
id=4206
|
id=4204
|
||||||
|
rarity=L
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Plains
|
||||||
|
id=4203
|
||||||
rarity=L
|
rarity=L
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
@@ -1795,16 +1794,16 @@ id=3810
|
|||||||
rarity=U
|
rarity=U
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Shatterstorm
|
|
||||||
id=4087
|
|
||||||
rarity=U
|
|
||||||
[/card]
|
|
||||||
[card]
|
|
||||||
primitive=Shatter
|
primitive=Shatter
|
||||||
id=4086
|
id=4086
|
||||||
rarity=C
|
rarity=C
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
|
primitive=Shatterstorm
|
||||||
|
id=4087
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
primitive=Shield Bearer
|
primitive=Shield Bearer
|
||||||
id=4159
|
id=4159
|
||||||
rarity=C
|
rarity=C
|
||||||
@@ -1921,12 +1920,7 @@ rarity=U
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Swamp
|
primitive=Swamp
|
||||||
id=4167
|
id=4170
|
||||||
rarity=L
|
|
||||||
[/card]
|
|
||||||
[card]
|
|
||||||
primitive=Swamp
|
|
||||||
id=4168
|
|
||||||
rarity=L
|
rarity=L
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
@@ -1936,7 +1930,12 @@ rarity=L
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Swamp
|
primitive=Swamp
|
||||||
id=4170
|
id=4168
|
||||||
|
rarity=L
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Swamp
|
||||||
|
id=4167
|
||||||
rarity=L
|
rarity=L
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
|
|||||||
@@ -1,15 +1,9 @@
|
|||||||
[meta]
|
[meta]
|
||||||
author=Wagic Team
|
author=Wagic Team
|
||||||
name=Classic Sixth Edition
|
name=6th Edition
|
||||||
year=1999
|
year=1999
|
||||||
total=350
|
|
||||||
[/meta]
|
[/meta]
|
||||||
[card]
|
[card]
|
||||||
primitive=AEther Flash
|
|
||||||
id=15447
|
|
||||||
rarity=U
|
|
||||||
[/card]
|
|
||||||
[card]
|
|
||||||
primitive=Abduction
|
primitive=Abduction
|
||||||
id=14526
|
id=14526
|
||||||
rarity=U
|
rarity=U
|
||||||
@@ -30,6 +24,11 @@ id=14727
|
|||||||
rarity=R
|
rarity=R
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
|
primitive=AEther Flash
|
||||||
|
id=15447
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
primitive=Agonizing Memories
|
primitive=Agonizing Memories
|
||||||
id=14586
|
id=14586
|
||||||
rarity=U
|
rarity=U
|
||||||
@@ -125,13 +124,13 @@ id=14628
|
|||||||
rarity=U
|
rarity=U
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Blighted Shaman
|
primitive=Blight
|
||||||
id=15385
|
id=15399
|
||||||
rarity=U
|
rarity=U
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Blight
|
primitive=Blighted Shaman
|
||||||
id=15399
|
id=15385
|
||||||
rarity=U
|
rarity=U
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
@@ -290,11 +289,6 @@ id=15404
|
|||||||
rarity=R
|
rarity=R
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=D'Avenant Archer
|
|
||||||
id=14472
|
|
||||||
rarity=C
|
|
||||||
[/card]
|
|
||||||
[card]
|
|
||||||
primitive=Dancing Scimitar
|
primitive=Dancing Scimitar
|
||||||
id=14773
|
id=14773
|
||||||
rarity=R
|
rarity=R
|
||||||
@@ -310,6 +304,11 @@ id=14552
|
|||||||
rarity=R
|
rarity=R
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
|
primitive=D'Avenant Archer
|
||||||
|
id=14472
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
primitive=Deflection
|
primitive=Deflection
|
||||||
id=16438
|
id=16438
|
||||||
rarity=R
|
rarity=R
|
||||||
@@ -535,16 +534,16 @@ id=14626
|
|||||||
rarity=C
|
rarity=C
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Flashfires
|
|
||||||
id=16446
|
|
||||||
rarity=U
|
|
||||||
[/card]
|
|
||||||
[card]
|
|
||||||
primitive=Flash
|
primitive=Flash
|
||||||
id=16440
|
id=16440
|
||||||
rarity=R
|
rarity=R
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
|
primitive=Flashfires
|
||||||
|
id=16446
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
primitive=Flight
|
primitive=Flight
|
||||||
id=14515
|
id=14515
|
||||||
rarity=C
|
rarity=C
|
||||||
@@ -555,13 +554,13 @@ id=14776
|
|||||||
rarity=R
|
rarity=R
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Fog Elemental
|
primitive=Fog
|
||||||
id=16433
|
id=14682
|
||||||
rarity=C
|
rarity=C
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Fog
|
primitive=Fog Elemental
|
||||||
id=14682
|
id=16433
|
||||||
rarity=C
|
rarity=C
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
@@ -995,11 +994,6 @@ id=15442
|
|||||||
rarity=U
|
rarity=U
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Mountain Goat
|
|
||||||
id=16442
|
|
||||||
rarity=C
|
|
||||||
[/card]
|
|
||||||
[card]
|
|
||||||
primitive=Mountain
|
primitive=Mountain
|
||||||
id=14745
|
id=14745
|
||||||
rarity=L
|
rarity=L
|
||||||
@@ -1020,6 +1014,11 @@ id=14748
|
|||||||
rarity=L
|
rarity=L
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
|
primitive=Mountain Goat
|
||||||
|
id=16442
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
primitive=Mystic Compass
|
primitive=Mystic Compass
|
||||||
id=15435
|
id=15435
|
||||||
rarity=U
|
rarity=U
|
||||||
@@ -1365,16 +1364,16 @@ id=14670
|
|||||||
rarity=C
|
rarity=C
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Shatterstorm
|
|
||||||
id=11497
|
|
||||||
rarity=R
|
|
||||||
[/card]
|
|
||||||
[card]
|
|
||||||
primitive=Shatter
|
primitive=Shatter
|
||||||
id=14614
|
id=14614
|
||||||
rarity=C
|
rarity=C
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
|
primitive=Shatterstorm
|
||||||
|
id=11497
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
primitive=Shock
|
primitive=Shock
|
||||||
id=14609
|
id=14609
|
||||||
rarity=C
|
rarity=C
|
||||||
|
|||||||
@@ -1,15 +1,9 @@
|
|||||||
[meta]
|
[meta]
|
||||||
author=Wagic Team
|
author=Wagic Team
|
||||||
name=Seventh Edition
|
name=7th Edition
|
||||||
year=2001
|
year=2001
|
||||||
total=350
|
|
||||||
[/meta]
|
[/meta]
|
||||||
[card]
|
[card]
|
||||||
primitive=AEther Flash
|
|
||||||
id=25678
|
|
||||||
rarity=U
|
|
||||||
[/card]
|
|
||||||
[card]
|
|
||||||
primitive=Abyssal Horror
|
primitive=Abyssal Horror
|
||||||
id=13111
|
id=13111
|
||||||
rarity=R
|
rarity=R
|
||||||
@@ -25,6 +19,11 @@ id=11140
|
|||||||
rarity=R
|
rarity=R
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
|
primitive=AEther Flash
|
||||||
|
id=25678
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
primitive=Agonizing Memories
|
primitive=Agonizing Memories
|
||||||
id=12994
|
id=12994
|
||||||
rarity=U
|
rarity=U
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
[meta]
|
[meta]
|
||||||
author=Wagic Team
|
author=Wagic Team
|
||||||
name=Eighth Edition
|
name=8th Edition
|
||||||
year=2003
|
year=2003
|
||||||
total=357
|
|
||||||
[/meta]
|
[/meta]
|
||||||
[card]
|
[card]
|
||||||
primitive=Abyssal Specter
|
primitive=Abyssal Specter
|
||||||
@@ -895,16 +894,16 @@ id=45316
|
|||||||
rarity=U
|
rarity=U
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Merchant Scroll
|
|
||||||
id=45275
|
|
||||||
rarity=U
|
|
||||||
[/card]
|
|
||||||
[card]
|
|
||||||
primitive=Merchant of Secrets
|
primitive=Merchant of Secrets
|
||||||
id=45231
|
id=45231
|
||||||
rarity=C
|
rarity=C
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
|
primitive=Merchant Scroll
|
||||||
|
id=45275
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
primitive=Might of Oaks
|
primitive=Might of Oaks
|
||||||
id=45452
|
id=45452
|
||||||
rarity=R
|
rarity=R
|
||||||
@@ -1275,16 +1274,16 @@ id=45187
|
|||||||
rarity=C
|
rarity=C
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Sage Owl
|
|
||||||
id=45226
|
|
||||||
rarity=C
|
|
||||||
[/card]
|
|
||||||
[card]
|
|
||||||
primitive=Sage of Lat-Nam
|
primitive=Sage of Lat-Nam
|
||||||
id=45269
|
id=45269
|
||||||
rarity=R
|
rarity=R
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
|
primitive=Sage Owl
|
||||||
|
id=45226
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
primitive=Salt Marsh
|
primitive=Salt Marsh
|
||||||
id=45492
|
id=45492
|
||||||
rarity=U
|
rarity=U
|
||||||
@@ -1375,13 +1374,13 @@ id=45494
|
|||||||
rarity=U
|
rarity=U
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Shock Troops
|
primitive=Shock
|
||||||
id=45350
|
id=45352
|
||||||
rarity=C
|
rarity=C
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Shock
|
primitive=Shock Troops
|
||||||
id=45352
|
id=45350
|
||||||
rarity=C
|
rarity=C
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
|
|||||||