diff options
author | Carsten Teibes | 2015-03-09 00:19:36 +0100 |
---|---|---|
committer | Carsten Teibes | 2015-03-09 00:19:36 +0100 |
commit | a7e2c0fb327104692ad3b0adc650ec02333ff947 (patch) | |
tree | bfb61fd3061469836140f97428f8d9871e1c12a9 | |
download | aur-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-- | .SRCINFO | 22 | ||||
-rw-r--r-- | PKGBUILD | 49 | ||||
-rw-r--r-- | zelda-olb-datafolders.patch | 908 | ||||
-rw-r--r-- | zelda-olb.desktop | 8 |
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; |