summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorCarsten Teibes2015-03-09 00:19:36 +0100
committerCarsten Teibes2015-03-09 00:19:36 +0100
commita7e2c0fb327104692ad3b0adc650ec02333ff947 (patch)
treebfb61fd3061469836140f97428f8d9871e1c12a9
downloadaur-a7e2c0fb327104692ad3b0adc650ec02333ff947.tar.gz
[add] zelda-olb 3.6
Add a patch to support loading from a shared data folder and saving in the users $HOME directory.
-rw-r--r--.SRCINFO22
-rw-r--r--PKGBUILD49
-rw-r--r--zelda-olb-datafolders.patch908
-rw-r--r--zelda-olb.desktop8
4 files changed, 987 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..9a7002538590
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,22 @@
+pkgbase = zelda-olb
+ pkgdesc = 'Zelda: Oni Link Begins' is a fan-made Zelda Game (english version)
+ pkgver = 3.6
+ pkgrel = 1
+ url = http://www.zeldaroth.fr/
+ arch = i686
+ arch = x86_64
+ license = unknown
+ makedepends = imagemagick
+ depends = sdl_gfx
+ depends = sdl_mixer
+ depends = sdl_image
+ conflicts = zelda-olb-fr
+ source = http://www.zeldaroth.fr/us/files/OLB/Linux/ZeldaOLB_US-src-linux.zip
+ source = zelda-olb-datafolders.patch
+ source = zelda-olb.desktop
+ sha256sums = 57b48f3e9e7432283e71a54f02106f93b859b0012c41b78b5be8e88086ae4bd6
+ sha256sums = 13674437bc0bc659ef28613421e3f02b7a37a606aecd9d684c8c8acbcdc49782
+ sha256sums = bfeb1d7f3b42efa68ed6a89af450294332bdeb7222dd0d972a88221411829967
+
+pkgname = zelda-olb
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..a6be122dc7b6
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,49 @@
+# Maintainer: carstene1ns <arch carsten-teibes de> - http://git.io/ctPKG
+
+pkgname=zelda-olb
+pkgver=3.6
+pkgrel=1
+pkgdesc="'Zelda: Oni Link Begins' is a fan-made Zelda Game (english version)"
+url="http://www.zeldaroth.fr/"
+arch=('i686' 'x86_64')
+license=('unknown')
+depends=('sdl_gfx' 'sdl_mixer' 'sdl_image')
+makedepends=("imagemagick")
+conflicts=("$pkgname-fr")
+source=("http://www.zeldaroth.fr/us/files/OLB/Linux/ZeldaOLB_US-src-linux.zip"
+ "$pkgname-datafolders.patch"
+ "$pkgname.desktop")
+sha256sums=('57b48f3e9e7432283e71a54f02106f93b859b0012c41b78b5be8e88086ae4bd6'
+ '13674437bc0bc659ef28613421e3f02b7a37a606aecd9d684c8c8acbcdc49782'
+ 'bfeb1d7f3b42efa68ed6a89af450294332bdeb7222dd0d972a88221411829967')
+
+prepare() {
+ # use user's $HOME for saves and load data from /usr/share/zelda-olb
+ patch -Np0 < $pkgname-datafolders.patch
+
+ # add our $CFLAGS
+ cd ZeldaOLB_US-src-linux/src
+ sed 's|CFLAGS =|CFLAGS +=|' -i Makefile
+
+ # create an icon
+ convert data/images/logos/fond.png -thumbnail '48x48' -background transparent \
+ -gravity center -extent 48x48 "$srcdir"/$pkgname.png
+}
+
+build() {
+ make -C ZeldaOLB_US-src-linux/src
+}
+
+package() {
+ cd ZeldaOLB_US-src-linux/src
+
+ install -Dm755 ZeldaOLB "$pkgdir"/usr/bin/$pkgname
+ # support for the old executable name
+ ln -s $pkgname "$pkgdir"/usr/bin/zolb
+
+ install -d "$pkgdir"/usr/share/$pkgname
+ cp -rup data/{images,map,music,sound} "$pkgdir"/usr/share/$pkgname
+
+ install -Dm644 "$srcdir/"$pkgname.png "$pkgdir"/usr/share/pixmaps/$pkgname.png
+ install -Dm644 "$srcdir/"$pkgname.desktop "$pkgdir"/usr/share/applications/$pkgname.desktop
+}
diff --git a/zelda-olb-datafolders.patch b/zelda-olb-datafolders.patch
new file mode 100644
index 000000000000..4070bad0e98c
--- /dev/null
+++ b/zelda-olb-datafolders.patch
@@ -0,0 +1,908 @@
+diff -Naur ZeldaOLB_US-src-linux.orig/src/Audio.cpp ZeldaOLB_US-src-linux/src/Audio.cpp
+--- ZeldaOLB_US-src-linux.orig/src/Audio.cpp 2008-09-20 11:37:10.000000000 +0200
++++ ZeldaOLB_US-src-linux/src/Audio.cpp 2015-03-08 20:13:27.435612570 +0100
+@@ -53,50 +53,50 @@
+ void Audio::loadSounds() {
+ sons = new Mix_Chunk*[44];
+
+- sons[0] = Mix_LoadWAV("data/sound/text.ogg"); // lettres
+- sons[1] = Mix_LoadWAV("data/sound/menu1.ogg"); // menu 1
+- sons[2] = Mix_LoadWAV("data/sound/menu2.ogg"); // menu 2
+- sons[3] = Mix_LoadWAV("data/sound/menu3.ogg"); // menu 3
+- sons[4] = Mix_LoadWAV("data/sound/menu4.ogg"); // menu 4
+- sons[5] = Mix_LoadWAV("data/sound/timewarp.ogg"); // time retour
+- sons[6] = Mix_LoadWAV("data/sound/tombe.ogg"); // tombe (ennemi)
+- sons[7] = Mix_LoadWAV("data/sound/hitenemy.ogg"); //shot 1
+- sons[8] = Mix_LoadWAV("data/sound/killenemy.ogg"); // shot 2
+- sons[9] = Mix_LoadWAV("data/sound/surprise.ogg"); // surprise
+- sons[10] = Mix_LoadWAV("data/sound/monte.ogg"); // monte
+- sons[11] = Mix_LoadWAV("data/sound/descend.ogg"); // descend
+- sons[12] = Mix_LoadWAV("data/sound/chute.ogg"); // chute
+- sons[13] = Mix_LoadWAV("data/sound/item.ogg"); // item
+- sons[14] = Mix_LoadWAV("data/sound/rupee.ogg"); // rubis
+- sons[15] = Mix_LoadWAV("data/sound/heart.ogg"); // coeur
+- sons[16] = Mix_LoadWAV("data/sound/bomb.ogg"); // bombe
+- sons[17] = Mix_LoadWAV("data/sound/textnext.ogg"); // suite texte
+- sons[18] = Mix_LoadWAV("data/sound/textend.ogg"); // fin texte
+- sons[19] = Mix_LoadWAV("data/sound/happy.ogg"); // trouve objet
+- sons[20] = Mix_LoadWAV("data/sound/door.ogg"); // ouvre porte
+- sons[21] = Mix_LoadWAV("data/sound/pics.ogg"); // pics contre mur
+- sons[22] = Mix_LoadWAV("data/sound/sword.ogg"); // Epée
+- sons[23] = Mix_LoadWAV("data/sound/SwordCharging.ogg"); // chargée
+- sons[24] = Mix_LoadWAV("data/sound/Sword360.ogg"); // spin
+- sons[25] = Mix_LoadWAV("data/sound/shoot.ogg"); // flèche
+- sons[26] = Mix_LoadWAV("data/sound/hookshot.ogg"); // grappin
+- sons[27] = Mix_LoadWAV("data/sound/stamp.ogg"); // pose bombe
+- sons[28] = Mix_LoadWAV("data/sound/magic.ogg"); // magie
+- sons[29] = Mix_LoadWAV("data/sound/burn.ogg"); // brËšle
+- sons[30] = Mix_LoadWAV("data/sound/hammer.ogg"); // marteau
+- sons[31] = Mix_LoadWAV("data/sound/plouf.ogg"); // plouf
+- sons[32] = Mix_LoadWAV("data/sound/danger.ogg"); // danger
+- sons[33] = Mix_LoadWAV("data/sound/hurt.ogg"); // link se blesse
+- sons[34] = Mix_LoadWAV("data/sound/porte.ogg"); // porte objet
+- sons[35] = Mix_LoadWAV("data/sound/lance.ogg"); // lance objet
+- sons[36] = Mix_LoadWAV("data/sound/casse.ogg"); // casse objet
+- sons[37] = Mix_LoadWAV("data/sound/charge.ogg"); // charge magie
+- sons[38] = Mix_LoadWAV("data/sound/buisson.ogg"); // coupe buisson
+- sons[39] = Mix_LoadWAV("data/sound/pousse.ogg"); // pousse caisse
+- sons[40] = Mix_LoadWAV("data/sound/envol.ogg"); // chant envol
+- sons[41] = Mix_LoadWAV("data/sound/vide.ogg"); // hymne vide
+- sons[42] = Mix_LoadWAV("data/sound/masque.ogg"); // chant esprit
+- sons[43] = Mix_LoadWAV("data/sound/splash.ogg"); // ...
++ sons[0] = Mix_LoadWAV("/usr/share/zelda-olb/sound/text.ogg"); // lettres
++ sons[1] = Mix_LoadWAV("/usr/share/zelda-olb/sound/menu1.ogg"); // menu 1
++ sons[2] = Mix_LoadWAV("/usr/share/zelda-olb/sound/menu2.ogg"); // menu 2
++ sons[3] = Mix_LoadWAV("/usr/share/zelda-olb/sound/menu3.ogg"); // menu 3
++ sons[4] = Mix_LoadWAV("/usr/share/zelda-olb/sound/menu4.ogg"); // menu 4
++ sons[5] = Mix_LoadWAV("/usr/share/zelda-olb/sound/timewarp.ogg"); // time retour
++ sons[6] = Mix_LoadWAV("/usr/share/zelda-olb/sound/tombe.ogg"); // tombe (ennemi)
++ sons[7] = Mix_LoadWAV("/usr/share/zelda-olb/sound/hitenemy.ogg"); //shot 1
++ sons[8] = Mix_LoadWAV("/usr/share/zelda-olb/sound/killenemy.ogg"); // shot 2
++ sons[9] = Mix_LoadWAV("/usr/share/zelda-olb/sound/surprise.ogg"); // surprise
++ sons[10] = Mix_LoadWAV("/usr/share/zelda-olb/sound/monte.ogg"); // monte
++ sons[11] = Mix_LoadWAV("/usr/share/zelda-olb/sound/descend.ogg"); // descend
++ sons[12] = Mix_LoadWAV("/usr/share/zelda-olb/sound/chute.ogg"); // chute
++ sons[13] = Mix_LoadWAV("/usr/share/zelda-olb/sound/item.ogg"); // item
++ sons[14] = Mix_LoadWAV("/usr/share/zelda-olb/sound/rupee.ogg"); // rubis
++ sons[15] = Mix_LoadWAV("/usr/share/zelda-olb/sound/heart.ogg"); // coeur
++ sons[16] = Mix_LoadWAV("/usr/share/zelda-olb/sound/bomb.ogg"); // bombe
++ sons[17] = Mix_LoadWAV("/usr/share/zelda-olb/sound/textnext.ogg"); // suite texte
++ sons[18] = Mix_LoadWAV("/usr/share/zelda-olb/sound/textend.ogg"); // fin texte
++ sons[19] = Mix_LoadWAV("/usr/share/zelda-olb/sound/happy.ogg"); // trouve objet
++ sons[20] = Mix_LoadWAV("/usr/share/zelda-olb/sound/door.ogg"); // ouvre porte
++ sons[21] = Mix_LoadWAV("/usr/share/zelda-olb/sound/pics.ogg"); // pics contre mur
++ sons[22] = Mix_LoadWAV("/usr/share/zelda-olb/sound/sword.ogg"); // Epée
++ sons[23] = Mix_LoadWAV("/usr/share/zelda-olb/sound/SwordCharging.ogg"); // chargée
++ sons[24] = Mix_LoadWAV("/usr/share/zelda-olb/sound/Sword360.ogg"); // spin
++ sons[25] = Mix_LoadWAV("/usr/share/zelda-olb/sound/shoot.ogg"); // flèche
++ sons[26] = Mix_LoadWAV("/usr/share/zelda-olb/sound/hookshot.ogg"); // grappin
++ sons[27] = Mix_LoadWAV("/usr/share/zelda-olb/sound/stamp.ogg"); // pose bombe
++ sons[28] = Mix_LoadWAV("/usr/share/zelda-olb/sound/magic.ogg"); // magie
++ sons[29] = Mix_LoadWAV("/usr/share/zelda-olb/sound/burn.ogg"); // brËšle
++ sons[30] = Mix_LoadWAV("/usr/share/zelda-olb/sound/hammer.ogg"); // marteau
++ sons[31] = Mix_LoadWAV("/usr/share/zelda-olb/sound/plouf.ogg"); // plouf
++ sons[32] = Mix_LoadWAV("/usr/share/zelda-olb/sound/danger.ogg"); // danger
++ sons[33] = Mix_LoadWAV("/usr/share/zelda-olb/sound/hurt.ogg"); // link se blesse
++ sons[34] = Mix_LoadWAV("/usr/share/zelda-olb/sound/porte.ogg"); // porte objet
++ sons[35] = Mix_LoadWAV("/usr/share/zelda-olb/sound/lance.ogg"); // lance objet
++ sons[36] = Mix_LoadWAV("/usr/share/zelda-olb/sound/casse.ogg"); // casse objet
++ sons[37] = Mix_LoadWAV("/usr/share/zelda-olb/sound/charge.ogg"); // charge magie
++ sons[38] = Mix_LoadWAV("/usr/share/zelda-olb/sound/buisson.ogg"); // coupe buisson
++ sons[39] = Mix_LoadWAV("/usr/share/zelda-olb/sound/pousse.ogg"); // pousse caisse
++ sons[40] = Mix_LoadWAV("/usr/share/zelda-olb/sound/envol.ogg"); // chant envol
++ sons[41] = Mix_LoadWAV("/usr/share/zelda-olb/sound/vide.ogg"); // hymne vide
++ sons[42] = Mix_LoadWAV("/usr/share/zelda-olb/sound/masque.ogg"); // chant esprit
++ sons[43] = Mix_LoadWAV("/usr/share/zelda-olb/sound/splash.ogg"); // ...
+ }
+
+ void Audio::freeSounds() {
+@@ -137,51 +137,51 @@
+
+ Mix_Music* Audio::choixMusique(int id) {
+ switch (id) {
+- case 1 : return Mix_LoadMUS("data/music/Foret.mid");
+- case 2 : return Mix_LoadMUS("data/music/Plaine.mid");
+- case 3 : return Mix_LoadMUS("data/music/Villageest.mid");
+- case 4 : return Mix_LoadMUS("data/music/Vallee.mid");
+- case 5 : return Mix_LoadMUS("data/music/Desert.mid");
+- case 6 : return Mix_LoadMUS("data/music/Lac.mid");
+- case 7 : return Mix_LoadMUS("data/music/Rauru.mid");
+- case 8 : return Mix_LoadMUS("data/music/Chateau.mid");
+- case 9 : return Mix_LoadMUS("data/music/PlaineO.mid");
+- case 10 : return Mix_LoadMUS("data/music/Marais.mid");
+- case 11 : return Mix_LoadMUS("data/music/Ombre.mid");
+- case 12 : return Mix_LoadMUS("data/music/Secret.mid");
+- case 13 : return Mix_LoadMUS("data/music/Mido.mid");
+- case 14 : return Mix_LoadMUS("data/music/Mont.mid");
+- case 15 : case 17 : return Mix_LoadMUS("data/music/Donjon1.mid");
+- case 18 : return Mix_LoadMUS("data/music/Manoir.mid");
+- case 19 : return Mix_LoadMUS("data/music/Ordinn.mid");
+- case 20 : return Mix_LoadMUS("data/music/Colisee.mid");
+- case 21 : return Mix_LoadMUS("data/music/Lanelle.mid");
+- case 22 : return Mix_LoadMUS("data/music/DFinal.mid");
+- case 23 : return Mix_LoadMUS("data/music/DDesert.mid");
+- case 24 : return Mix_LoadMUS("data/music/Glace.mid");
+- case 25 : return Mix_LoadMUS("data/music/Farore.mid");
+- case 26 : return Mix_LoadMUS("data/music/Xanto.mid");
+- case 27 : return Mix_LoadMUS("data/music/DSecret.mid");
+- case 28 : return Mix_LoadMUS("data/music/TourD.mid");
++ case 1 : return Mix_LoadMUS("/usr/share/zelda-olb/music/Foret.mid");
++ case 2 : return Mix_LoadMUS("/usr/share/zelda-olb/music/Plaine.mid");
++ case 3 : return Mix_LoadMUS("/usr/share/zelda-olb/music/Villageest.mid");
++ case 4 : return Mix_LoadMUS("/usr/share/zelda-olb/music/Vallee.mid");
++ case 5 : return Mix_LoadMUS("/usr/share/zelda-olb/music/Desert.mid");
++ case 6 : return Mix_LoadMUS("/usr/share/zelda-olb/music/Lac.mid");
++ case 7 : return Mix_LoadMUS("/usr/share/zelda-olb/music/Rauru.mid");
++ case 8 : return Mix_LoadMUS("/usr/share/zelda-olb/music/Chateau.mid");
++ case 9 : return Mix_LoadMUS("/usr/share/zelda-olb/music/PlaineO.mid");
++ case 10 : return Mix_LoadMUS("/usr/share/zelda-olb/music/Marais.mid");
++ case 11 : return Mix_LoadMUS("/usr/share/zelda-olb/music/Ombre.mid");
++ case 12 : return Mix_LoadMUS("/usr/share/zelda-olb/music/Secret.mid");
++ case 13 : return Mix_LoadMUS("/usr/share/zelda-olb/music/Mido.mid");
++ case 14 : return Mix_LoadMUS("/usr/share/zelda-olb/music/Mont.mid");
++ case 15 : case 17 : return Mix_LoadMUS("/usr/share/zelda-olb/music/Donjon1.mid");
++ case 18 : return Mix_LoadMUS("/usr/share/zelda-olb/music/Manoir.mid");
++ case 19 : return Mix_LoadMUS("/usr/share/zelda-olb/music/Ordinn.mid");
++ case 20 : return Mix_LoadMUS("/usr/share/zelda-olb/music/Colisee.mid");
++ case 21 : return Mix_LoadMUS("/usr/share/zelda-olb/music/Lanelle.mid");
++ case 22 : return Mix_LoadMUS("/usr/share/zelda-olb/music/DFinal.mid");
++ case 23 : return Mix_LoadMUS("/usr/share/zelda-olb/music/DDesert.mid");
++ case 24 : return Mix_LoadMUS("/usr/share/zelda-olb/music/Glace.mid");
++ case 25 : return Mix_LoadMUS("/usr/share/zelda-olb/music/Farore.mid");
++ case 26 : return Mix_LoadMUS("/usr/share/zelda-olb/music/Xanto.mid");
++ case 27 : return Mix_LoadMUS("/usr/share/zelda-olb/music/DSecret.mid");
++ case 28 : return Mix_LoadMUS("/usr/share/zelda-olb/music/TourD.mid");
+ case 16 : case 29 : case 31 : case 32 : case 33 : case 34 : case 35 :
+ case 36 : case 37 : case 38 : case 40 : case 41 : case 42 : case 43 :
+- return Mix_LoadMUS("data/music/Cave.mid");
+- case 30 : case 39 : return Mix_LoadMUS("data/music/Fee.mid");
+- case 44 : return Mix_LoadMUS("data/music/Pit.mid");
++ return Mix_LoadMUS("/usr/share/zelda-olb/music/Cave.mid");
++ case 30 : case 39 : return Mix_LoadMUS("/usr/share/zelda-olb/music/Fee.mid");
++ case 44 : return Mix_LoadMUS("/usr/share/zelda-olb/music/Pit.mid");
+ case 45 : case 46 : case 54 : case 57 : case 58 : case 63 : case 64 :
+- case 66 : case 67 : case 71 : return Mix_LoadMUS("data/music/Maison.mid");
++ case 66 : case 67 : case 71 : return Mix_LoadMUS("/usr/share/zelda-olb/music/Maison.mid");
+ case 52 : case 56 : case 61 : case 70 :
+- return Mix_LoadMUS("data/music/Potion.mid");
+- case 48 : case 53 : return Mix_LoadMUS("data/music/Bar.mid");
+- case 49 : case 62 : case 68 : case 79 : return Mix_LoadMUS("data/music/Maire.mid");
++ return Mix_LoadMUS("/usr/share/zelda-olb/music/Potion.mid");
++ case 48 : case 53 : return Mix_LoadMUS("/usr/share/zelda-olb/music/Bar.mid");
++ case 49 : case 62 : case 68 : case 79 : return Mix_LoadMUS("/usr/share/zelda-olb/music/Maire.mid");
+ case 50 : case 51 : case 59 : case 60 : case 65 : case 69 :
+- return Mix_LoadMUS("data/music/Magasin.mid");
+- case 47 : return Mix_LoadMUS("data/music/Jeu.mid");
+- case 55 : return Mix_LoadMUS("data/music/Triste.mid");
+- case 80 : return Mix_LoadMUS("data/music/Titre.mid");
+- case 90 : return Mix_LoadMUS("data/music/Selection.mid");
+- case 100 : return Mix_LoadMUS("data/music/Debut.mid");
+- default : return Mix_LoadMUS("data/music/Maison.mid");
++ return Mix_LoadMUS("/usr/share/zelda-olb/music/Magasin.mid");
++ case 47 : return Mix_LoadMUS("/usr/share/zelda-olb/music/Jeu.mid");
++ case 55 : return Mix_LoadMUS("/usr/share/zelda-olb/music/Triste.mid");
++ case 80 : return Mix_LoadMUS("/usr/share/zelda-olb/music/Titre.mid");
++ case 90 : return Mix_LoadMUS("/usr/share/zelda-olb/music/Selection.mid");
++ case 100 : return Mix_LoadMUS("/usr/share/zelda-olb/music/Debut.mid");
++ default : return Mix_LoadMUS("/usr/share/zelda-olb/music/Maison.mid");
+ }
+ }
+
+@@ -207,15 +207,15 @@
+
+ Mix_Music* Audio::choixSpecial(int id) {
+ switch (id) {
+- case 1 : return Mix_LoadMUS("data/music/Boss.mid");
+- case 2 : return Mix_LoadMUS("data/music/Mort.mid");
+- case 3 : return Mix_LoadMUS("data/music/Epee.mid");
+- case 4 : return Mix_LoadMUS("data/music/BossF.mid");
+- case 5 : return Mix_LoadMUS("data/music/Fin.mid");
+- case 6 : return Mix_LoadMUS("data/music/BossM.mid");
+- case 7 : return Mix_LoadMUS("data/music/Area81.mid");
+- case 8 : return Mix_LoadMUS("data/music/OniLink.mid");
+- default : return Mix_LoadMUS("data/music/Boss.mid");
++ case 1 : return Mix_LoadMUS("/usr/share/zelda-olb/music/Boss.mid");
++ case 2 : return Mix_LoadMUS("/usr/share/zelda-olb/music/Mort.mid");
++ case 3 : return Mix_LoadMUS("/usr/share/zelda-olb/music/Epee.mid");
++ case 4 : return Mix_LoadMUS("/usr/share/zelda-olb/music/BossF.mid");
++ case 5 : return Mix_LoadMUS("/usr/share/zelda-olb/music/Fin.mid");
++ case 6 : return Mix_LoadMUS("/usr/share/zelda-olb/music/BossM.mid");
++ case 7 : return Mix_LoadMUS("/usr/share/zelda-olb/music/Area81.mid");
++ case 8 : return Mix_LoadMUS("/usr/share/zelda-olb/music/OniLink.mid");
++ default : return Mix_LoadMUS("/usr/share/zelda-olb/music/Boss.mid");
+ }
+ }
+
+diff -Naur ZeldaOLB_US-src-linux.orig/src/Caisse.cpp ZeldaOLB_US-src-linux/src/Caisse.cpp
+--- ZeldaOLB_US-src-linux.orig/src/Caisse.cpp 2008-09-20 19:33:20.000000000 +0200
++++ ZeldaOLB_US-src-linux/src/Caisse.cpp 2015-03-08 20:13:27.435612570 +0100
+@@ -22,7 +22,7 @@
+ Caisse::Caisse(Jeu* jeu, int type, int i, int j) : gpJeu(jeu), id(type),
+ pousseX(0), pousseY(0), direction(N) {
+ x=i; y=j; w=16; h=16; xdep=x; ydep=y;
+- image = IMG_Load("data/images/objet/caisse.png");
++ image = IMG_Load("/usr/share/zelda-olb/images/objet/caisse.png");
+ sx = ((type-1)%3)*w;
+ sy = ((type-1)/3)*h;
+ }
+diff -Naur ZeldaOLB_US-src-linux.orig/src/Carte.cpp ZeldaOLB_US-src-linux/src/Carte.cpp
+--- ZeldaOLB_US-src-linux.orig/src/Carte.cpp 2009-01-21 22:38:56.000000000 +0100
++++ ZeldaOLB_US-src-linux/src/Carte.cpp 2015-03-08 20:13:27.435612570 +0100
+@@ -30,7 +30,7 @@
+ && gpJeu->getMonde()->regionValue(1)==0) ||
+ (zone==28 && gpJeu->getMonde()->regionValue(0)==140*16
+ && gpJeu->getMonde()->regionValue(1)==105*16)) {
+- SDL_Surface* tmp = IMG_Load("data/images/carte/monde.png");
++ SDL_Surface* tmp = IMG_Load("/usr/share/zelda-olb/images/carte/monde.png");
+ src.w = 320; src.h = 240; src.x = 0; src.y = 0; dst.y = 0; dst.x = 0;
+ SDL_BlitSurface(tmp, &src, image, &dst);
+ SDL_FreeSurface(tmp);
+@@ -39,7 +39,7 @@
+ if (gpJeu->getKeyboard()->getMode() == 22) {
+ gpJeu->getKeyboard()->setTelep(0); return;}
+
+- tmp = IMG_Load("data/images/carte/link.png");
++ tmp = IMG_Load("/usr/share/zelda-olb/images/carte/link.png");
+ SDL_SetColorKey(tmp,SDL_SRCCOLORKEY,SDL_MapRGB(tmp->format,0,0,255));
+ src.w = 14; src.h = 12; src.x = 0; src.y = 0;
+
+@@ -123,7 +123,7 @@
+ SDL_Rect dst;
+ Joueur* gpJoueur = gpJeu->getJoueur();
+
+- SDL_Surface* tmp = IMG_Load("data/images/carte/donjon.png");
++ SDL_Surface* tmp = IMG_Load("/usr/share/zelda-olb/images/carte/donjon.png");
+ src.w = 320; src.h = 240; src.x = 0; src.y = 0; dst.y = 0; dst.x = 0;
+ SDL_BlitSurface(tmp, &src, image, &dst);
+ SDL_FreeSurface(tmp);
+@@ -149,7 +149,7 @@
+ case 13 : src.h=48; src.y=0; dst.y-=32; break;
+ }
+
+- SDL_Surface* tmp = IMG_Load("data/images/carte/level.png");
++ SDL_Surface* tmp = IMG_Load("/usr/share/zelda-olb/images/carte/level.png");
+ SDL_BlitSurface(tmp, &src, image, &dst);
+ SDL_FreeSurface(tmp);
+
+@@ -165,12 +165,12 @@
+ }
+ src.h = 16; src.w = 32;src.x = 0;src.y=32-levely*16;dst.x = 40; dst.y = 96-levely*16;
+
+- tmp = IMG_Load("data/images/carte/level2.png");
++ tmp = IMG_Load("/usr/share/zelda-olb/images/carte/level2.png");
+ SDL_BlitSurface(tmp, &src, image, &dst);
+ SDL_FreeSurface(tmp);
+
+ //étage de link
+- tmp = IMG_Load("data/images/carte/link.png");
++ tmp = IMG_Load("/usr/share/zelda-olb/images/carte/link.png");
+ SDL_SetColorKey(tmp,SDL_SRCCOLORKEY,SDL_MapRGB(tmp->format,0,0,255));
+ src.h = 12; src.w = 14;src.x = 0;src.y=0;
+ dst.x = 25; dst.y = 98-gpJeu->getMonde()->etage()*16;
+@@ -214,7 +214,7 @@
+ if (zone < 23) os << (zone-15+1); else os << (zone-15+2);
+ os2 << levely;
+
+- SDL_Surface* tmp = IMG_Load(("data/images/carte/d"+os.str()+"e"+os2.str()+".png").c_str());
++ SDL_Surface* tmp = IMG_Load(("/usr/share/zelda-olb/images/carte/d"+os.str()+"e"+os2.str()+".png").c_str());
+ src.x=0; src.y=0; src.w=tmp->w; src.h=tmp->h; dst.y = 48+dy*16; dst.x = 128+dx*16;
+ SDL_BlitSurface(tmp, &src, image, &dst);
+ SDL_FreeSurface(tmp);
+@@ -222,7 +222,7 @@
+
+ if ((zone-15)!=11 || levely==0) {
+
+- tmp = IMG_Load(("data/images/carte/nd"+os.str()+"e"+os2.str()+".png").c_str());
++ tmp = IMG_Load(("/usr/share/zelda-olb/images/carte/nd"+os.str()+"e"+os2.str()+".png").c_str());
+
+ int di=0;
+ int dj=0;
+@@ -262,7 +262,7 @@
+
+ //étage de link
+ if (gpJeu->getMonde()->etage() == levely && ((zone-15)!=11 || levely==0)) {
+- tmp = IMG_Load("data/images/carte/link.png");
++ tmp = IMG_Load("/usr/share/zelda-olb/images/carte/link.png");
+ SDL_SetColorKey(tmp,SDL_SRCCOLORKEY,SDL_MapRGB(tmp->format,0,0,255));
+ src.h = 12; src.w = 14;src.x = 0;src.y=0;
+ dst.x = 128+(dx-di)*16+(gpJoueur->getX()/20)-6;
+@@ -280,7 +280,7 @@
+ int zone = gpJeu->getZone();
+ Joueur* gpJoueur = gpJeu->getJoueur();
+
+- SDL_Surface* tmp = IMG_Load("data/images/carte/boussole.png");
++ SDL_Surface* tmp = IMG_Load("/usr/share/zelda-olb/images/carte/boussole.png");
+ SDL_SetColorKey(tmp,SDL_SRCCOLORKEY,SDL_MapRGB(tmp->format,0,0,255));
+
+ switch (zone-15) {
+@@ -949,7 +949,7 @@
+
+
+
+- SDL_Surface* tmp = IMG_Load("data/images/carte/link.png");
++ SDL_Surface* tmp = IMG_Load("/usr/share/zelda-olb/images/carte/link.png");
+ SDL_SetColorKey(tmp,SDL_SRCCOLORKEY,SDL_MapRGB(tmp->format,0,0,255));
+ src.w = 14; src.h = 12; src.x = 0; src.y = 0;
+
+diff -Naur ZeldaOLB_US-src-linux.orig/src/Encyclopedie.cpp ZeldaOLB_US-src-linux/src/Encyclopedie.cpp
+--- ZeldaOLB_US-src-linux.orig/src/Encyclopedie.cpp 2009-01-21 22:38:56.000000000 +0100
++++ ZeldaOLB_US-src-linux/src/Encyclopedie.cpp 2015-03-08 20:13:27.435612570 +0100
+@@ -12,7 +12,7 @@
+
+ Encyclopedie::Encyclopedie(Jeu* jeu) : gpJeu(jeu), page(0), gpEnnemi(0) {
+ image = SDL_CreateRGBSurface(SDL_HWSURFACE, 320, 240, 32, 0, 0, 0, 0);
+- imageCadre = IMG_Load("data/images/logos/cadres.png");
++ imageCadre = IMG_Load("/usr/share/zelda-olb/images/logos/cadres.png");
+ gpEnnemi = new Ennemi(gpJeu, 0, 0, 0, true);
+ }
+
+diff -Naur ZeldaOLB_US-src-linux.orig/src/Ennemi.cpp ZeldaOLB_US-src-linux/src/Ennemi.cpp
+--- ZeldaOLB_US-src-linux.orig/src/Ennemi.cpp 2009-03-15 13:57:31.000000000 +0100
++++ ZeldaOLB_US-src-linux/src/Ennemi.cpp 2015-03-08 20:13:27.438945950 +0100
+@@ -31,7 +31,7 @@
+ else {
+ ostringstream im;
+ im << id;
+- image = IMG_Load(("data/images/ennemi/ennemi" + im.str() + ".png").c_str());
++ image = IMG_Load(("/usr/share/zelda-olb/images/ennemi/ennemi" + im.str() + ".png").c_str());
+ if (id != 70)
+ SDL_SetColorKey(image,SDL_SRCCOLORKEY,SDL_MapRGB(image->format,0,0,255));
+ chargeIm = true;
+diff -Naur ZeldaOLB_US-src-linux.orig/src/Generique.cpp ZeldaOLB_US-src-linux/src/Generique.cpp
+--- ZeldaOLB_US-src-linux.orig/src/Generique.cpp 2009-03-15 13:56:26.000000000 +0100
++++ ZeldaOLB_US-src-linux/src/Generique.cpp 2015-03-08 20:13:27.438945950 +0100
+@@ -16,14 +16,14 @@
+ imageFin = NULL;
+ imageArbre = NULL;
+ image = SDL_CreateRGBSurface(SDL_HWSURFACE, 320, 240, 32, 0, 0, 0, 0);
+- imageTitre = IMG_Load("data/images/logos/titre.png");
++ imageTitre = IMG_Load("/usr/share/zelda-olb/images/logos/titre.png");
+ SDL_SetColorKey(imageTitre,SDL_SRCCOLORKEY,SDL_MapRGB(imageTitre->format,0,0,255));
+- imageCurseur = IMG_Load("data/images/logos/curseur.png");
++ imageCurseur = IMG_Load("/usr/share/zelda-olb/images/logos/curseur.png");
+ SDL_SetColorKey(imageCurseur,SDL_SRCCOLORKEY,SDL_MapRGB(imageCurseur->format,0,0,255));
+- imageNiveau = IMG_Load("data/images/logos/niveau.png");
++ imageNiveau = IMG_Load("/usr/share/zelda-olb/images/logos/niveau.png");
+ SDL_SetColorKey(imageNiveau,SDL_SRCCOLORKEY,SDL_MapRGB(imageNiveau->format,0,0,255));
+- imageFee = IMG_Load("data/images/logos/fee.png");
+- imageCadre = IMG_Load("data/images/logos/cadres.png");
++ imageFee = IMG_Load("/usr/share/zelda-olb/images/logos/fee.png");
++ imageCadre = IMG_Load("/usr/share/zelda-olb/images/logos/cadres.png");
+ imageFond1 = NULL;
+ imageFond2 = NULL;
+ for (int i = 0; i < 5; i++) imageIntro[i]=NULL;
+@@ -44,7 +44,7 @@
+ }
+
+ void Generique::drawFin(SDL_Surface* gpScreen) {
+- if (!imageFin) imageFin = IMG_Load("data/images/logos/fin.png");
++ if (!imageFin) imageFin = IMG_Load("/usr/share/zelda-olb/images/logos/fin.png");
+ SDL_Rect dst; dst.x = 0; dst.y = 0;
+ SDL_BlitSurface(imageFin, NULL, gpScreen, &dst);
+ gpJeu->getTexte()->draw(gpScreen);
+@@ -52,17 +52,17 @@
+
+ void Generique::initLogo() {
+ SDL_Rect dst;
+- SDL_Surface* logo = IMG_Load("data/images/logos/logo.png");
++ SDL_Surface* logo = IMG_Load("/usr/share/zelda-olb/images/logos/logo.png");
+ dst.x = 0; dst.y = 0; SDL_BlitSurface(logo, NULL, image, &dst);
+ SDL_FreeSurface(logo);
+ }
+
+ void Generique::initTitre() {
+ SDL_Rect dst;
+- SDL_Surface* fond = IMG_Load("data/images/logos/fond.png");
++ SDL_Surface* fond = IMG_Load("/usr/share/zelda-olb/images/logos/fond.png");
+ dst.x = 0; dst.y = 0; SDL_BlitSurface(fond, NULL, image, &dst);
+ SDL_FreeSurface(fond);
+- SDL_Surface* logo = IMG_Load("data/images/logos/titre.png");
++ SDL_Surface* logo = IMG_Load("/usr/share/zelda-olb/images/logos/titre.png");
+ SDL_SetColorKey(logo,SDL_SRCCOLORKEY,SDL_MapRGB(logo->format,0,0,255));
+ logo = SDL_DisplayFormat(logo);
+ dst.x = 86; dst.y = 45; SDL_BlitSurface(logo, NULL, image, &dst);
+@@ -116,10 +116,10 @@
+ gpJeu->affiche(image, "RECORDS", 215, 200);
+
+ //stats :
+- SDL_Surface* imageStat = IMG_Load("data/images/statut/statut.png");
++ SDL_Surface* imageStat = IMG_Load("/usr/share/zelda-olb/images/statut/statut.png");
+ SDL_SetColorKey(imageStat,SDL_SRCCOLORKEY,SDL_MapRGB(imageStat->format,0,0,255));
+- SDL_Surface* inventaire = IMG_Load("data/images/statut/inventaire.png");
+- SDL_Surface* objets = IMG_Load("data/images/statut/objets.png");
++ SDL_Surface* inventaire = IMG_Load("/usr/share/zelda-olb/images/statut/inventaire.png");
++ SDL_Surface* objets = IMG_Load("/usr/share/zelda-olb/images/statut/objets.png");
+
+ for (int i = 0; i < 3; i++) {
+ Joueur* gpJoueur = new Joueur(gpJeu,i+1);
+@@ -289,7 +289,7 @@
+ gpJeu->affiche(image, "RETURN", 63, 200);
+ gpJeu->affiche(image, "ERASE", 215, 200);
+
+- SDL_Surface* objets = IMG_Load("data/images/statut/objets.png");
++ SDL_Surface* objets = IMG_Load("/usr/share/zelda-olb/images/statut/objets.png");
+
+ //triforce
+ src.y=0; src.w=17; src.h=16;
+@@ -326,15 +326,15 @@
+
+ void Generique::initIntro() {
+ if (imageFond1==NULL) {
+- imageFond1 = IMG_Load("data/images/logos/fond1.png");
++ imageFond1 = IMG_Load("/usr/share/zelda-olb/images/logos/fond1.png");
+ SDL_SetColorKey(imageFond1,SDL_SRCCOLORKEY,SDL_MapRGB(imageFond1->format,0,0,255));}
+- if (imageFond2==NULL) imageFond2 = IMG_Load("data/images/logos/fond2.png");
++ if (imageFond2==NULL) imageFond2 = IMG_Load("/usr/share/zelda-olb/images/logos/fond2.png");
+
+ ostringstream oss;
+ for (int i = 0; i < 5; i++) {
+ if (imageIntro[i]==NULL) {
+ oss.str(""); oss << (i+1);
+- imageIntro[i] = IMG_Load(("data/images/logos/intro" + oss.str() + ".png").c_str());
++ imageIntro[i] = IMG_Load(("/usr/share/zelda-olb/images/logos/intro" + oss.str() + ".png").c_str());
+ }
+ }
+
+@@ -587,7 +587,7 @@
+
+ void Generique::initScore() {
+ SDL_FreeSurface(imageArbre);
+- imageArbre = IMG_Load("data/images/logos/arbre.png");
++ imageArbre = IMG_Load("/usr/share/zelda-olb/images/logos/arbre.png");
+ image = SDL_CreateRGBSurface(SDL_HWSURFACE, 320, 240, 32, 0, 0, 0, 0);
+
+ SDL_Rect dst;
+diff -Naur ZeldaOLB_US-src-linux.orig/src/Jeu.cpp ZeldaOLB_US-src-linux/src/Jeu.cpp
+--- ZeldaOLB_US-src-linux.orig/src/Jeu.cpp 2009-04-26 23:27:16.000000000 +0200
++++ ZeldaOLB_US-src-linux/src/Jeu.cpp 2015-03-08 20:13:27.438945950 +0100
+@@ -25,7 +25,7 @@
+ phg[0] = 0;
+ phg[1] = 0;
+
+- imageObjets = IMG_Load("data/images/objet/objets.png");
++ imageObjets = IMG_Load("/usr/share/zelda-olb/images/objet/objets.png");
+ SDL_SetColorKey(imageObjets,SDL_SRCCOLORKEY,SDL_MapRGB(imageObjets->format,0,0,255));
+
+ gpProjectile = NULL; gpObjet = NULL; gpSnipe = NULL; gpCaisse = NULL; gpEnnemi = NULL;
+diff -Naur ZeldaOLB_US-src-linux.orig/src/Joueur.cpp ZeldaOLB_US-src-linux/src/Joueur.cpp
+--- ZeldaOLB_US-src-linux.orig/src/Joueur.cpp 2009-03-15 13:49:57.000000000 +0100
++++ ZeldaOLB_US-src-linux/src/Joueur.cpp 2015-03-08 20:13:27.442279332 +0100
+@@ -29,9 +29,9 @@
+ glisse(0), vitesse(0), oldxg(0), oldyg(0), immo(false), loader(false), verse(0),
+ raplaplat(0), asile(0), gel(0) {
+ image = NULL;
+- imageSpin = IMG_Load("data/images/link/spin.png");
++ imageSpin = IMG_Load("/usr/share/zelda-olb/images/link/spin.png");
+ SDL_SetColorKey(imageSpin,SDL_SRCCOLORKEY,SDL_MapRGB(imageSpin->format,0,0,255));
+- imageObjets = IMG_Load("data/images/link/objets.png");
++ imageObjets = IMG_Load("/usr/share/zelda-olb/images/link/objets.png");
+ SDL_SetColorKey(imageObjets,SDL_SRCCOLORKEY,SDL_MapRGB(imageObjets->format,0,0,255));
+ x=152;y=72;w=16;h=24;viemax=6;vie=viemax;magie=magiemax;
+ for (int i = 0; i < 29; i++) coeur[i]=0;
+@@ -135,7 +135,7 @@
+ if (tps > 359999) tps = 359999;
+ ostringstream im;
+ im << numSave;
+- ofstream f(("data/save/olb" + im.str() + ".dat").c_str(),ios::out | ios::binary);
++ ofstream f((string(getenv("HOME"))+"/.zolb/olb" + im.str() + ".dat").c_str(),ios::out | ios::binary);
+ f.write((char *)&tps,sizeof(int));
+ f.write((char *)&zone,sizeof(int));
+ f.write((char *)&xd,sizeof(int));
+@@ -190,7 +190,7 @@
+ int zone;
+ ostringstream im;
+ im << numSave;
+- ifstream f(("data/save/olb" + im.str() + ".dat").c_str(),ios::in | ios::binary);
++ ifstream f((string(getenv("HOME"))+"/.zolb/olb" + im.str() + ".dat").c_str(),ios::in | ios::binary);
+ if(!f.is_open()) return;
+ f.read((char *)&temps,sizeof(int));
+ f.read((char *)&zone,sizeof(int)); gpJeu->setZone(zone);
+@@ -311,7 +311,7 @@
+ void Joueur::draw(SDL_Surface* gpScreen) {
+
+ if (!getOnilink() && getAvancement()==16) {
+- imageTmp = IMG_Load("data/images/ennemi/ennemi75.png");
++ imageTmp = IMG_Load("/usr/share/zelda-olb/images/ennemi/ennemi75.png");
+ SDL_SetColorKey(imageTmp,SDL_SRCCOLORKEY,SDL_MapRGB(imageTmp->format,0,0,255));
+ }
+ if (getAvancement()>=16 && getAvancement()<62) {
+@@ -713,10 +713,10 @@
+ im << bouclier;
+ if (oni) {
+ if (hasObjet(O_MASQUE)==2)
+- boucl = new Bouclier(IMG_Load("data/images/link/bouclierOni2.png"), 10);
+- else boucl = new Bouclier(IMG_Load("data/images/link/bouclierOni.png"), 10);
++ boucl = new Bouclier(IMG_Load("/usr/share/zelda-olb/images/link/bouclierOni2.png"), 10);
++ else boucl = new Bouclier(IMG_Load("/usr/share/zelda-olb/images/link/bouclierOni.png"), 10);
+ }
+- else boucl = new Bouclier(IMG_Load(("data/images/link/bouclier" + im.str() + ".png").c_str()), bouclier);
++ else boucl = new Bouclier(IMG_Load(("/usr/share/zelda-olb/images/link/bouclier" + im.str() + ".png").c_str()), bouclier);
+ }
+
+ void Joueur::setTunique(int t) {
+@@ -724,8 +724,8 @@
+ SDL_FreeSurface(image);
+ std::ostringstream im;
+ im << tunique;
+- if (oni) image = IMG_Load("data/images/link/onilink.png");
+- else image = IMG_Load(("data/images/link/link" + im.str() + ".png").c_str());
++ if (oni) image = IMG_Load("/usr/share/zelda-olb/images/link/onilink.png");
++ else image = IMG_Load(("/usr/share/zelda-olb/images/link/link" + im.str() + ".png").c_str());
+ SDL_SetColorKey(image,SDL_SRCCOLORKEY,SDL_MapRGB(image->format,0,0,255));
+ }
+
+@@ -736,10 +736,10 @@
+ std::ostringstream im;
+ im << epee;
+ if (oni) {
+- if (hasObjet(O_MASQUE)==2) imageEpee = IMG_Load("data/images/link/epeeOni2.png");
+- else imageEpee = IMG_Load("data/images/link/epeeOni.png");
++ if (hasObjet(O_MASQUE)==2) imageEpee = IMG_Load("/usr/share/zelda-olb/images/link/epeeOni2.png");
++ else imageEpee = IMG_Load("/usr/share/zelda-olb/images/link/epeeOni.png");
+ }
+- else imageEpee = IMG_Load(("data/images/link/epee" + im.str() + ".png").c_str());
++ else imageEpee = IMG_Load(("/usr/share/zelda-olb/images/link/epee" + im.str() + ".png").c_str());
+ SDL_SetColorKey(imageEpee,SDL_SRCCOLORKEY,SDL_MapRGB(imageEpee->format,0,0,255));
+ }
+
+diff -Naur ZeldaOLB_US-src-linux.orig/src/Keyboard.cpp ZeldaOLB_US-src-linux/src/Keyboard.cpp
+--- ZeldaOLB_US-src-linux.orig/src/Keyboard.cpp 2009-03-15 13:46:19.000000000 +0100
++++ ZeldaOLB_US-src-linux/src/Keyboard.cpp 2015-03-08 20:30:06.733072473 +0100
+@@ -28,7 +28,7 @@
+ }
+
+ void Keyboard::saveP() {
+- ofstream f("data/save/system.dat",ios::out | ios::binary);
++ ofstream f((string(getenv("HOME")) + "/.zolb/system.dat").c_str(),ios::out | ios::binary);
+ f.write((char *)&volume,sizeof(int));
+ f.write((char *)&volson,sizeof(int));
+ f.write((char *)&temps,sizeof(int));
+@@ -37,7 +37,7 @@
+ }
+
+ void Keyboard::loadP() {
+- ifstream f("data/save/system.dat",ios::in | ios::binary);
++ ifstream f((string(getenv("HOME")) + "/.zolb/system.dat").c_str(),ios::in | ios::binary);
+ if(!f.is_open()) return;
+ f.read((char *)&volume,sizeof(int));
+ f.read((char *)&volson,sizeof(int));
+@@ -47,7 +47,7 @@
+ }
+
+ void Keyboard::loadOldP() {
+- ifstream f("../Zelda Return of the Hylian/data/save/system.dat",ios::in | ios::binary);
++ ifstream f((string(getenv("HOME")) + "/.zroth/system.dat").c_str(),ios::out | ios::binary);
+ if(!f.is_open()) return;
+ int i;
+ f.read((char *)&i,sizeof(int));
+@@ -623,7 +623,7 @@
+ if (keys[SDLK_RETURN] && tmp == 0) {
+ if (ligneVal==0) {
+ ostringstream oss; oss << (ligne+1);
+- remove(("data/save/olb" + oss.str() + ".dat").c_str());
++ remove((string(getenv("HOME"))+"/.zolb/olb" + oss.str() + ".dat").c_str());
+ mode = 4; gpJeu->getGenerique()->initSelection();
+ gpJeu->getAudio()->playSound(2);
+ }
+diff -Naur ZeldaOLB_US-src-linux.orig/src/main.cpp ZeldaOLB_US-src-linux/src/main.cpp
+--- ZeldaOLB_US-src-linux.orig/src/main.cpp 2009-03-15 13:36:06.000000000 +0100
++++ ZeldaOLB_US-src-linux/src/main.cpp 2015-03-08 20:24:33.381711180 +0100
+@@ -12,8 +12,12 @@
+ #include <SDL/SDL_rotozoom.h>
+
+ #include <iostream>
+-#include <cstdlib>
++#include <cstdlib>
+ #include <ctime>
++#include <sys/stat.h>
++#include <sys/types.h>
++#include <unistd.h>
++#include <sys/errno.h>
+
+ #include "Keyboard.h"
+ #include "Generique.h"
+@@ -27,7 +31,7 @@
+ //if(SDL_InitSubSystem(SDL_INIT_AUDIO) == -1) *SOUND = false;
+
+ SDL_WM_SetCaption("Oni Link Begins",NULL);
+- SDL_Surface* icon = SDL_LoadBMP("data/images/logos/graal.ico");
++ SDL_Surface* icon = SDL_LoadBMP("/usr/share/zelda-olb/images/logos/graal.ico");
+ SDL_SetColorKey(icon,SDL_SRCCOLORKEY,SDL_MapRGB(icon->format,0,0,0));
+ SDL_WM_SetIcon(icon,NULL);
+
+@@ -40,7 +44,15 @@
+ if (argc && argv); //pour éviter un warning.....
+
+ std::srand(std::time(NULL));
+-
++
++ // create folder for save files
++ string user_home = string(getenv("HOME"));
++ if (access((user_home + "/.zolb/").c_str(), F_OK) != 0) {
++ if (errno == ENOENT) {
++ mkdir((user_home + "/.zolb").c_str(), 0700);
++ }
++ }
++
+ SDL_Rect src;
+ SDL_Rect dst;
+ src.w=640; src.h=480; src.y=0;src.x=0;dst.x=0; dst.y=0;
+diff -Naur ZeldaOLB_US-src-linux.orig/src/Menu.cpp ZeldaOLB_US-src-linux/src/Menu.cpp
+--- ZeldaOLB_US-src-linux.orig/src/Menu.cpp 2009-03-08 21:46:58.000000000 +0100
++++ ZeldaOLB_US-src-linux/src/Menu.cpp 2015-03-08 20:13:27.442279332 +0100
+@@ -25,10 +25,10 @@
+ Menu::Menu(Jeu* jeu) : gpJeu(jeu), sens(0), val(0), anim(0) {
+ lastAnimTime = SDL_GetTicks();
+
+- imageCadre = IMG_Load("data/images/menu/bord.png");
+- imageCoeur = IMG_Load("data/images/menu/coeur.png");
+- imageObjets = IMG_Load("data/images/statut/objets.png");
+- imageInventaire = IMG_Load("data/images/statut/inventaire.png");
++ imageCadre = IMG_Load("/usr/share/zelda-olb/images/menu/bord.png");
++ imageCoeur = IMG_Load("/usr/share/zelda-olb/images/menu/coeur.png");
++ imageObjets = IMG_Load("/usr/share/zelda-olb/images/statut/objets.png");
++ imageInventaire = IMG_Load("/usr/share/zelda-olb/images/statut/inventaire.png");
+
+ SDL_SetColorKey(imageCadre,SDL_SRCCOLORKEY,SDL_MapRGB(imageCadre->format,0,0,255));
+ SDL_SetColorKey(imageCoeur,SDL_SRCCOLORKEY,SDL_MapRGB(imageCoeur->format,0,0,255));
+diff -Naur ZeldaOLB_US-src-linux.orig/src/Monde.cpp ZeldaOLB_US-src-linux/src/Monde.cpp
+--- ZeldaOLB_US-src-linux.orig/src/Monde.cpp 2009-03-15 13:45:35.000000000 +0100
++++ ZeldaOLB_US-src-linux/src/Monde.cpp 2015-03-08 20:13:27.445612712 +0100
+@@ -30,23 +30,23 @@
+ for (int i = 0; i < 5; i++) {
+ std::ostringstream im;
+ im << (i+1);
+- image[i] = IMG_Load(("data/images/motifs/image" + im.str() + ".png").c_str());
++ image[i] = IMG_Load(("/usr/share/zelda-olb/images/motifs/image" + im.str() + ".png").c_str());
+ SDL_SetColorKey(image[i],SDL_SRCCOLORKEY,SDL_MapRGB(image[i]->format,0,0,255));
+ }
+
+ imagetransit = SDL_CreateRGBSurface(SDL_HWSURFACE, 320, 240, 32, 0, 0, 0, 0);
+
+- imagelevel = IMG_Load("data/images/menu/level.png");
++ imagelevel = IMG_Load("/usr/share/zelda-olb/images/menu/level.png");
+ SDL_SetColorKey(imagelevel,SDL_SRCCOLORKEY,SDL_MapRGB(imagelevel->format,0,0,255));
+
+- imageSpe[0] = IMG_Load("data/images/motifs/fond.png");
+- imageSpe[1] = IMG_Load("data/images/motifs/fond2.png");
+- imageSpe[2] = IMG_Load("data/images/motifs/fond3.png");
+- imageSpe[3] = IMG_Load("data/images/motifs/eclair.png");
+- imageSpe[4] = IMG_Load("data/images/motifs/pluie1.png");
+- imageSpe[5] = IMG_Load("data/images/motifs/pluie2.png");
+- imageSpe[6] = IMG_Load("data/images/motifs/pluie3.png");
+- imageSpe[7] = IMG_Load("data/images/motifs/ciel.png");
++ imageSpe[0] = IMG_Load("/usr/share/zelda-olb/images/motifs/fond.png");
++ imageSpe[1] = IMG_Load("/usr/share/zelda-olb/images/motifs/fond2.png");
++ imageSpe[2] = IMG_Load("/usr/share/zelda-olb/images/motifs/fond3.png");
++ imageSpe[3] = IMG_Load("/usr/share/zelda-olb/images/motifs/eclair.png");
++ imageSpe[4] = IMG_Load("/usr/share/zelda-olb/images/motifs/pluie1.png");
++ imageSpe[5] = IMG_Load("/usr/share/zelda-olb/images/motifs/pluie2.png");
++ imageSpe[6] = IMG_Load("/usr/share/zelda-olb/images/motifs/pluie3.png");
++ imageSpe[7] = IMG_Load("/usr/share/zelda-olb/images/motifs/ciel.png");
+
+ for (int i = 3; i < 8; i++)
+ SDL_SetColorKey(imageSpe[i],SDL_SRCCOLORKEY,SDL_MapRGB(imageSpe[i]->format,0,0,255));
+@@ -3045,7 +3045,7 @@
+
+ std::ostringstream oss;
+ oss << zone;
+- std::string result = "data/map/carte" + oss.str() + ".map";
++ std::string result = "/usr/share/zelda-olb/map/carte" + oss.str() + ".map";
+ std::ifstream file(result.c_str());
+
+ file >> largeur;
+diff -Naur ZeldaOLB_US-src-linux.orig/src/Pnj.cpp ZeldaOLB_US-src-linux/src/Pnj.cpp
+--- ZeldaOLB_US-src-linux.orig/src/Pnj.cpp 2008-09-20 11:35:34.000000000 +0200
++++ ZeldaOLB_US-src-linux/src/Pnj.cpp 2015-03-08 20:13:27.445612712 +0100
+@@ -22,7 +22,7 @@
+ if (id) {
+ ostringstream im;
+ im << id;
+- image = IMG_Load(("data/images/personnage/personnage" + im.str() + ".png").c_str());
++ image = IMG_Load(("/usr/share/zelda-olb/images/personnage/personnage" + im.str() + ".png").c_str());
+ SDL_SetColorKey(image,SDL_SRCCOLORKEY,SDL_MapRGB(image->format,0,0,255));
+ x=i; y=j; saveEmpl(); animmax=1;
+ init();
+diff -Naur ZeldaOLB_US-src-linux.orig/src/Projectile.cpp ZeldaOLB_US-src-linux/src/Projectile.cpp
+--- ZeldaOLB_US-src-linux.orig/src/Projectile.cpp 2009-03-15 13:40:40.000000000 +0100
++++ ZeldaOLB_US-src-linux/src/Projectile.cpp 2015-03-08 20:13:27.445612712 +0100
+@@ -408,39 +408,39 @@
+ switch (type) {
+ case 1 : //flèche
+ case 2 : //flèche argent
+- if (id == 1) image = IMG_Load("data/images/objet/projectiles.png");
+- else image = IMG_Load("data/images/objet/projectilesarg.png");
++ if (id == 1) image = IMG_Load("/usr/share/zelda-olb/images/objet/projectiles.png");
++ else image = IMG_Load("/usr/share/zelda-olb/images/objet/projectilesarg.png");
+ w=16; h=16;
+ if (direction == N || direction == S) {zx=4; zy=0; zw=7; zh=16;}
+ else {zx=0; zy=4; zw=16; zh=7;}
+ break;
+ case 3 : //grappin
+- image = IMG_Load("data/images/objet/grappin.png");
++ image = IMG_Load("/usr/share/zelda-olb/images/objet/grappin.png");
+ w=12; h=12;
+ if (direction == N || direction == S) {zx=0; zy=0; zw=12; zh=8;}
+ else {zx=0; zy=0; zw=8; zh=12;}
+ chmax=208;
+ break;
+ case 4 : //bombe
+- image = IMG_Load("data/images/objet/bombe.png");
++ image = IMG_Load("/usr/share/zelda-olb/images/objet/bombe.png");
+ w=16; h=16;
+ zx=0; zy=0; zw=16; zh=16;
+ max=30;
+ break;
+ case 5 : //baguette de feu
+ case 6 : //baguette de glace
+- image = IMG_Load("data/images/objet/magie.png");
++ image = IMG_Load("/usr/share/zelda-olb/images/objet/magie.png");
+ w=17; h=17;
+ zx=0; zy=0; zw=17; zh=17;
+ break;
+ case 7 : //flamme
+- image = IMG_Load("data/images/objet/feu.png");
++ image = IMG_Load("/usr/share/zelda-olb/images/objet/feu.png");
+ w=16; h=16;
+ zx=0; zy=0; zw=16; zh=16;
+ max=5;
+ break;
+ case 8 : //plouf
+- image = IMG_Load("data/images/objet/plouf.png");
++ image = IMG_Load("/usr/share/zelda-olb/images/objet/plouf.png");
+ w=16; h=16;
+ zx=0; zy=0; zw=16; zh=16;
+ vanim=40;
+@@ -451,38 +451,38 @@
+ case 10 :
+ case 11 :
+ case 12 :
+- image = IMG_Load("data/images/objet/buisson.png");
++ image = IMG_Load("/usr/share/zelda-olb/images/objet/buisson.png");
+ w=27; h=43;
+ zx=0; zy=0; zw=27; zh=43;
+ max=6;
+ gpJeu->getAudio()->playSound(38);
+ break;
+ case 15 : //explosion fumée blanche
+- image = IMG_Load("data/images/ennemi/explo.png");
++ image = IMG_Load("/usr/share/zelda-olb/images/ennemi/explo.png");
+ w=28; h=28;
+ zx=0; zy=0; zw=w; zh=h;
+ max=6; vanim=60;
+ break;
+ case 16 : //explosion fumée rose
+- image = IMG_Load("data/images/link/exploLapin.png");
++ image = IMG_Load("/usr/share/zelda-olb/images/link/exploLapin.png");
+ w=28; h=28;
+ zx=0; zy=0; zw=w; zh=h;
+ max=3; vanim=60;
+ break;
+ case 17 : //explosion fumée viloette
+- image = IMG_Load("data/images/link/exploOni.png");
++ image = IMG_Load("/usr/share/zelda-olb/images/link/exploOni.png");
+ w=28; h=28;
+ zx=0; zy=0; zw=w; zh=h;
+ max=3; vanim=60;
+ break;
+ case 19 : //explosion glace
+- image = IMG_Load("data/images/link/gel.png");
++ image = IMG_Load("/usr/share/zelda-olb/images/link/gel.png");
+ w=42; h=36;
+ zx=0; zy=0; zw=w; zh=h;
+ max=0; vanim=120;
+ break;
+ case 20 : //explosion sang
+- image = IMG_Load("data/images/link/splash.png");
++ image = IMG_Load("/usr/share/zelda-olb/images/link/splash.png");
+ w=32; h=32;
+ zx=0; zy=0; zw=w; zh=h;
+ max=4; vanim=120;
+@@ -493,7 +493,7 @@
+ case 24 :
+ case 25 :
+ case 26 :
+- image = IMG_Load("data/images/link/objets.png");
++ image = IMG_Load("/usr/share/zelda-olb/images/link/objets.png");
+ w=16; h=16;
+ zx=0; zy=0; zw=16; zh=16;
+ chmax=64;
+diff -Naur ZeldaOLB_US-src-linux.orig/src/Snipe.cpp ZeldaOLB_US-src-linux/src/Snipe.cpp
+--- ZeldaOLB_US-src-linux.orig/src/Snipe.cpp 2009-03-15 13:39:37.000000000 +0100
++++ ZeldaOLB_US-src-linux/src/Snipe.cpp 2015-03-08 20:13:27.445612712 +0100
+@@ -30,53 +30,53 @@
+ switch (id) {
+ case 1 : // boule de feu petite
+ w=7; h=7; force=2; renvoyable=true;
+- image = IMG_Load("data/images/objet/projectiles2.png");
++ image = IMG_Load("/usr/share/zelda-olb/images/objet/projectiles2.png");
+ break;
+ case 2 : // boule de feu petite droite
+ if (angly!=0) {h=16;w=7;}
+ if (anglx!=0) {h=7;w=16;}
+ force=4; max=1;
+- image = IMG_Load("data/images/objet/projectiles3.png");
++ image = IMG_Load("/usr/share/zelda-olb/images/objet/projectiles3.png");
+ break;
+ case 3 : // arc magique
+ if (angly!=0) {h=8;w=16;}
+ if (anglx!=0) {h=16;w=8;}
+ force=4; max=1; renvoyable=true; element=ENNEMI;
+- image = IMG_Load("data/images/objet/projectiles4.png");
++ image = IMG_Load("/usr/share/zelda-olb/images/objet/projectiles4.png");
+ break;
+ case 4 : // boulet
+ w=8; h=13; force=2; element=PROJECTILE;
+- image = IMG_Load("data/images/objet/projectiles5.png");
++ image = IMG_Load("/usr/share/zelda-olb/images/objet/projectiles5.png");
+ break;
+ case 5 : // boule magique
+ w=16; h=16; force=7; renvoyable=true; element=ENNEMI; max=1;
+- image = IMG_Load("data/images/objet/projectiles6.png");
++ image = IMG_Load("/usr/share/zelda-olb/images/objet/projectiles6.png");
+ break;
+ case 6 : // eclair
+ w=83; h=148; force=9; element=ENNEMI; max=4; anglx=0; angly=0;
+- image = IMG_Load("data/images/objet/projectiles8.png");
++ image = IMG_Load("/usr/share/zelda-olb/images/objet/projectiles8.png");
+ break;
+ case 7 : // lapin
+ w=22; h=22; force=0; element=LAPIN; max=1;
+- image = IMG_Load("data/images/objet/projectiles7.png");
++ image = IMG_Load("/usr/share/zelda-olb/images/objet/projectiles7.png");
+ break;
+ case 8 : // boule de feu violette
+ w=7; h=7; force=0; renvoyable=true; element=DEMI;
+- image = IMG_Load("data/images/objet/projectiles9.png");
++ image = IMG_Load("/usr/share/zelda-olb/images/objet/projectiles9.png");
+ break;
+ case 9 : // boule de feu bleue
+ w=7; h=7; force=0; renvoyable=true; element=COLERE;
+- image = IMG_Load("data/images/objet/projectiles10.png");
++ image = IMG_Load("/usr/share/zelda-olb/images/objet/projectiles10.png");
+ break;
+ case 10 : // boule de feu grosse
+ case 11 : // boule de glace grosse
+ if (id==10) {force=8; element=FEU;} else {force=6; element=COUP_GLACE;}
+ w=16; h=16; renvoyable=true; max=1;
+- image = IMG_Load("data/images/objet/projectiles11.png");
++ image = IMG_Load("/usr/share/zelda-olb/images/objet/projectiles11.png");
+ break;
+ case 12 : // boule de feu verte
+ w=7; h=7; force=0; renvoyable=true; element=MORTEL;
+- image = IMG_Load("data/images/objet/projectiles12.png");
++ image = IMG_Load("/usr/share/zelda-olb/images/objet/projectiles12.png");
+ break;
+ }
+
+diff -Naur ZeldaOLB_US-src-linux.orig/src/Statut.cpp ZeldaOLB_US-src-linux/src/Statut.cpp
+--- ZeldaOLB_US-src-linux.orig/src/Statut.cpp 2009-01-21 22:38:56.000000000 +0100
++++ ZeldaOLB_US-src-linux/src/Statut.cpp 2015-03-08 20:13:27.445612712 +0100
+@@ -21,9 +21,9 @@
+ Statut::Statut(Jeu* jeu) : gpJeu(jeu), jauge(false), valjauge(0), maxjauge(10), nivjauge(50),
+ valjauge2(0), maxjauge2(10), nivjauge2(60), dec(0) {
+
+- imageStatut = IMG_Load("data/images/statut/statut.png");
+- imageChiffre = IMG_Load("data/images/statut/chiffres.png");
+- imageInventaire = IMG_Load("data/images/statut/inventaire.png");
++ imageStatut = IMG_Load("/usr/share/zelda-olb/images/statut/statut.png");
++ imageChiffre = IMG_Load("/usr/share/zelda-olb/images/statut/chiffres.png");
++ imageInventaire = IMG_Load("/usr/share/zelda-olb/images/statut/inventaire.png");
+
+ SDL_SetColorKey(imageStatut,SDL_SRCCOLORKEY,SDL_MapRGB(imageStatut->format,0,0,255));
+ SDL_SetColorKey(imageChiffre,SDL_SRCCOLORKEY,SDL_MapRGB(imageChiffre->format,0,0,255));
+diff -Naur ZeldaOLB_US-src-linux.orig/src/Texte.cpp ZeldaOLB_US-src-linux/src/Texte.cpp
+--- ZeldaOLB_US-src-linux.orig/src/Texte.cpp 2009-03-15 13:38:20.000000000 +0100
++++ ZeldaOLB_US-src-linux/src/Texte.cpp 2015-03-08 20:13:27.445612712 +0100
+@@ -21,9 +21,9 @@
+ Texte::Texte(Jeu* jeu) : gpJeu(jeu), vitesse(40), av(0), x(0), y(0), w(0), h(0),
+ id(0), idsuiv(0), def(false), cadre(false), texte(""), buffer("") {
+ lastAnimTime = SDL_GetTicks();
+- imageFont = IMG_Load("data/images/texte/font.png");
++ imageFont = IMG_Load("/usr/share/zelda-olb/images/texte/font.png");
+ SDL_SetColorKey(imageFont,SDL_SRCCOLORKEY,SDL_MapRGB(imageFont->format,0,0,255));
+- imageCoeur = IMG_Load("data/images/menu/coeur.png");
++ imageCoeur = IMG_Load("/usr/share/zelda-olb/images/menu/coeur.png");
+ SDL_SetColorKey(imageCoeur,SDL_SRCCOLORKEY,SDL_MapRGB(imageCoeur->format,0,0,255));
+ }
+
diff --git a/zelda-olb.desktop b/zelda-olb.desktop
new file mode 100644
index 000000000000..22611b2db9de
--- /dev/null
+++ b/zelda-olb.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Type=Application
+Name=Zelda: Oni Link Begins
+Comment=Second Game in a series of fan-made Zelda Games
+Exec=zelda-olb
+Icon=zelda-olb
+Terminal=false
+Categories=Game;AdventureGame;