diff --git a/infraarcana/Makefile b/infraarcana/Makefile index fc2089bbdf..ed89286c61 100644 --- a/infraarcana/Makefile +++ b/infraarcana/Makefile @@ -1,10 +1,18 @@ # $NetBSD: Makefile,v 1.1 2015/08/19 19:42:29 yhardy Exp $ -DISTNAME= ia-17.0 -PKGNAME= infraarcana-17.0 +DISTNAME= ia-18.2 +PKGNAME= infraarcana-18.2 CATEGORIES= games -MASTER_SITES= ${MASTER_SITE_GITHUB:=InfraArcana/} +MASTER_SITES= ${MASTER_SITE_GITHUB:=martin-tornqvist/} +GITHUB_PROJECT= ia GITHUB_TAG= v${PKGVERSION_NOREV} +DIST_SUBDIR= ${PKGBASE} +DISTFILES= ${DEFAULT_DISTFILES} rl_utils-${RLUTILSVER}.zip + +RLUTILSVER= 757bef657fa43e2d7f41192e07227a00c62236e4 + +SITES.rl_utils-${RLUTILSVER}.zip= \ + -${MASTER_SITES:=rl_utils/archive/${RLUTILSVER}.zip} MAINTAINER= pkgsrc-users@NetBSD.org HOMEPAGE= https://sites.google.com/site/infraarcana/ @@ -18,31 +26,38 @@ USE_TOOLS+= gmake USE_GAMESGROUP= yes INSTALLATION_DIRS+= bin -INSTALLATION_DIRS+= share/InfraArcanum -INSTALLATION_DIRS+= share/InfraArcanum/audio -INSTALLATION_DIRS+= share/InfraArcanum/data -INSTALLATION_DIRS+= share/InfraArcanum/images +INSTALLATION_DIRS+= share/InfraArcana +INSTALLATION_DIRS+= share/InfraArcana/audio +INSTALLATION_DIRS+= share/InfraArcana/data +INSTALLATION_DIRS+= share/InfraArcana/images + +# See patches/patch-Makefile +BUILD_MAKE_FLAGS+= X11_LDFLAGS=${X11_LDFLAGS:Q} + +post-extract: + ${UNZIP_CMD} -d ${WRKSRC}/rl_utils ${DISTDIR}/${DIST_SUBDIR}/rl_utils-${RLUTILSVER}.zip + cd ${WRKSRC}/rl_utils && ${MV} rl_utils-${RLUTILSVER}/* . post-build: - ${SED} -e 's,@PREFIX@,${PREFIX},g' < ${FILESDIR}/infraarcanum.sh > ${WRKSRC}/infraarcanum.sh + ${SED} -e 's,@PREFIX@,${PREFIX},g' < ${FILESDIR}/infraarcana.sh > ${WRKSRC}/infraarcana.sh ${TOUCH} ${WRKSRC}/target/data/highscores do-install: - ${INSTALL_GAME} ${WRKSRC}/target/ia ${DESTDIR}${PREFIX}/share/InfraArcanum + ${INSTALL_GAME} ${WRKSRC}/target/ia ${DESTDIR}${PREFIX}/share/InfraArcana for f in ${WRKSRC}/target/*.txt; do \ - ${INSTALL_DATA} $$f ${DESTDIR}${PREFIX}/share/InfraArcanum/$${f##*/}; \ + ${INSTALL_DATA} $$f ${DESTDIR}${PREFIX}/share/InfraArcana/$${f##*/}; \ done for f in ${WRKSRC}/target/audio/*; do \ - ${INSTALL_DATA} $$f ${DESTDIR}${PREFIX}/share/InfraArcanum/audio/$${f##*/}; \ + ${INSTALL_DATA} $$f ${DESTDIR}${PREFIX}/share/InfraArcana/audio/$${f##*/}; \ done for f in ${WRKSRC}/target/images/*; do \ - ${INSTALL_DATA} $$f ${DESTDIR}${PREFIX}/share/InfraArcanum/images/$${f##*/}; \ + ${INSTALL_DATA} $$f ${DESTDIR}${PREFIX}/share/InfraArcana/images/$${f##*/}; \ done - ${INSTALL_GAME_DATA} ${WRKSRC}/target/ascii_graveyard ${DESTDIR}${PREFIX}/share/InfraArcanum/ - ${INSTALL_GAME_DATA} ${WRKSRC}/target/data/highscores ${DESTDIR}${PREFIX}/share/InfraArcanum/data/ - ${INSTALL_SCRIPT} ${WRKSRC}/infraarcanum.sh ${DESTDIR}${PREFIX}/bin/infraarcanum + ${INSTALL_GAME_DATA} ${WRKSRC}/target/data/highscores ${DESTDIR}${PREFIX}/share/InfraArcana/data/ + ${INSTALL_GAME_DATA} ${WRKSRC}/target/data/save ${DESTDIR}${PREFIX}/share/InfraArcana/data/ + ${INSTALL_SCRIPT} ${WRKSRC}/infraarcana.sh ${DESTDIR}${PREFIX}/bin/infraarcana -.include "../../audio/SDL_mixer/buildlink3.mk" -.include "../../devel/SDL/buildlink3.mk" -.include "../../graphics/SDL_image/buildlink3.mk" +.include "../../audio/SDL2_mixer/buildlink3.mk" +.include "../../devel/SDL2/buildlink3.mk" +.include "../../graphics/SDL2_image/buildlink3.mk" .include "../../mk/bsd.pkg.mk" diff --git a/infraarcana/PLIST b/infraarcana/PLIST index ce917fee19..d02f9d92ae 100644 --- a/infraarcana/PLIST +++ b/infraarcana/PLIST @@ -1,103 +1,123 @@ -@comment $NetBSD: PLIST,v 1.1 2015/08/19 19:42:29 yhardy Exp $ -bin/infraarcanum -share/InfraArcanum/ascii_graveyard -share/InfraArcanum/audio/Musica_Cthulhiana-Fragment-Madness.ogg -share/InfraArcanum/audio/amb_001.ogg -share/InfraArcanum/audio/amb_002.ogg -share/InfraArcanum/audio/amb_003.ogg -share/InfraArcanum/audio/amb_004.ogg -share/InfraArcanum/audio/amb_005.ogg -share/InfraArcanum/audio/amb_006.ogg -share/InfraArcanum/audio/amb_007.ogg -share/InfraArcanum/audio/amb_008.ogg -share/InfraArcanum/audio/amb_009.ogg -share/InfraArcanum/audio/amb_010.ogg -share/InfraArcanum/audio/amb_011.ogg -share/InfraArcanum/audio/amb_012.ogg -share/InfraArcanum/audio/amb_013.ogg -share/InfraArcanum/audio/amb_014.ogg -share/InfraArcanum/audio/amb_015.ogg -share/InfraArcanum/audio/amb_016.ogg -share/InfraArcanum/audio/amb_017.ogg -share/InfraArcanum/audio/amb_018.ogg -share/InfraArcanum/audio/amb_019.ogg -share/InfraArcanum/audio/amb_020.ogg -share/InfraArcanum/audio/amb_021.ogg -share/InfraArcanum/audio/amb_022.ogg -share/InfraArcanum/audio/amb_023.ogg -share/InfraArcanum/audio/amb_024.ogg -share/InfraArcanum/audio/amb_025.ogg -share/InfraArcanum/audio/amb_026.ogg -share/InfraArcanum/audio/amb_027.ogg -share/InfraArcanum/audio/amb_028.ogg -share/InfraArcanum/audio/amb_029.ogg -share/InfraArcanum/audio/amb_030.ogg -share/InfraArcanum/audio/amb_031.ogg -share/InfraArcanum/audio/amb_032.ogg -share/InfraArcanum/audio/amb_033.ogg -share/InfraArcanum/audio/amb_034.ogg -share/InfraArcanum/audio/amb_035.ogg -share/InfraArcanum/audio/amb_036.ogg -share/InfraArcanum/audio/amb_037.ogg -share/InfraArcanum/audio/sfx_ape.ogg -share/InfraArcanum/audio/sfx_backpack.ogg -share/InfraArcanum/audio/sfx_bossVoice1.ogg -share/InfraArcanum/audio/sfx_bossVoice2.ogg -share/InfraArcanum/audio/sfx_death.ogg -share/InfraArcanum/audio/sfx_dogSnarl.ogg -share/InfraArcanum/audio/sfx_doorBang.ogg -share/InfraArcanum/audio/sfx_doorBreak.ogg -share/InfraArcanum/audio/sfx_doorClose.ogg -share/InfraArcanum/audio/sfx_doorOpen.ogg -share/InfraArcanum/audio/sfx_electricLantern.ogg -share/InfraArcanum/audio/sfx_explosion.ogg -share/InfraArcanum/audio/sfx_explosionMolotov.ogg -share/InfraArcanum/audio/sfx_flappingWings.ogg -share/InfraArcanum/audio/sfx_fountainDrink.ogg -share/InfraArcanum/audio/sfx_ghoulGrowl.ogg -share/InfraArcanum/audio/sfx_glop.ogg -share/InfraArcanum/audio/sfx_hitCorpseBreak.ogg -share/InfraArcanum/audio/sfx_hitHard.ogg -share/InfraArcanum/audio/sfx_hitMedium.ogg -share/InfraArcanum/audio/sfx_hitSharp.ogg -share/InfraArcanum/audio/sfx_hitSmall.ogg -share/InfraArcanum/audio/sfx_insanityRising.ogg -share/InfraArcanum/audio/sfx_machineGunFire.ogg -share/InfraArcanum/audio/sfx_machineGunReload.ogg -share/InfraArcanum/audio/sfx_metalClank.ogg -share/InfraArcanum/audio/sfx_migoGun.ogg -share/InfraArcanum/audio/sfx_missHeavy.ogg -share/InfraArcanum/audio/sfx_missLight.ogg -share/InfraArcanum/audio/sfx_missMedium.ogg -share/InfraArcanum/audio/sfx_oozeGurgle.ogg -share/InfraArcanum/audio/sfx_pickup.ogg -share/InfraArcanum/audio/sfx_pistolFire.ogg -share/InfraArcanum/audio/sfx_pistolReload.ogg -share/InfraArcanum/audio/sfx_potionQuaff.ogg -share/InfraArcanum/audio/sfx_ricochet.ogg -share/InfraArcanum/audio/sfx_shotgunPumpFire.ogg -share/InfraArcanum/audio/sfx_shotgunReload.ogg -share/InfraArcanum/audio/sfx_shotgunSawedOffFire.ogg -share/InfraArcanum/audio/sfx_spellGeneric.ogg -share/InfraArcanum/audio/sfx_spikeGun.ogg -share/InfraArcanum/audio/sfx_tombOpen.ogg -share/InfraArcanum/audio/sfx_wolfHowl.ogg -share/InfraArcanum/audio/sfx_zombieGrowl.ogg -share/InfraArcanum/contact.txt -share/InfraArcanum/credits.txt -share/InfraArcanum/data/highscores -share/InfraArcanum/ia -share/InfraArcanum/images/11x19.png -share/InfraArcanum/images/11x22.png -share/InfraArcanum/images/12x24.png -share/InfraArcanum/images/16x24_DOS.png -share/InfraArcanum/images/16x24_typewriter.png -share/InfraArcanum/images/16x24_v1.png -share/InfraArcanum/images/16x24_v2.png -share/InfraArcanum/images/16x24_v3.png -share/InfraArcanum/images/8x12_DOS.png -share/InfraArcanum/images/gfx_16x24.png -share/InfraArcanum/images/main_menu_logo.png -share/InfraArcanum/license.txt -share/InfraArcanum/manual.txt -share/InfraArcanum/release_history.txt +@comment $NetBSD$ +bin/infraarcana +share/InfraArcana/audio/amb_001.ogg +share/InfraArcana/audio/amb_002.ogg +share/InfraArcana/audio/amb_003.ogg +share/InfraArcana/audio/amb_004.ogg +share/InfraArcana/audio/amb_005.ogg +share/InfraArcana/audio/amb_006.ogg +share/InfraArcana/audio/amb_007.ogg +share/InfraArcana/audio/amb_008.ogg +share/InfraArcana/audio/amb_009.ogg +share/InfraArcana/audio/amb_010.ogg +share/InfraArcana/audio/amb_011.ogg +share/InfraArcana/audio/amb_012.ogg +share/InfraArcana/audio/amb_013.ogg +share/InfraArcana/audio/amb_014.ogg +share/InfraArcana/audio/amb_015.ogg +share/InfraArcana/audio/amb_016.ogg +share/InfraArcana/audio/amb_017.ogg +share/InfraArcana/audio/amb_018.ogg +share/InfraArcana/audio/amb_019.ogg +share/InfraArcana/audio/amb_020.ogg +share/InfraArcana/audio/amb_021.ogg +share/InfraArcana/audio/amb_022.ogg +share/InfraArcana/audio/amb_023.ogg +share/InfraArcana/audio/amb_024.ogg +share/InfraArcana/audio/amb_025.ogg +share/InfraArcana/audio/amb_026.ogg +share/InfraArcana/audio/amb_027.ogg +share/InfraArcana/audio/amb_028.ogg +share/InfraArcana/audio/amb_029.ogg +share/InfraArcana/audio/amb_030.ogg +share/InfraArcana/audio/amb_031.ogg +share/InfraArcana/audio/amb_032.ogg +share/InfraArcana/audio/amb_033.ogg +share/InfraArcana/audio/amb_034.ogg +share/InfraArcana/audio/amb_035.ogg +share/InfraArcana/audio/amb_036.ogg +share/InfraArcana/audio/amb_037.ogg +share/InfraArcana/audio/amb_038.ogg +share/InfraArcana/audio/amb_039.ogg +share/InfraArcana/audio/amb_040.ogg +share/InfraArcana/audio/amb_041.ogg +share/InfraArcana/audio/amb_042.ogg +share/InfraArcana/audio/amb_043.ogg +share/InfraArcana/audio/amb_044.ogg +share/InfraArcana/audio/amb_045.ogg +share/InfraArcana/audio/amb_046.ogg +share/InfraArcana/audio/amb_047.ogg +share/InfraArcana/audio/amb_048.ogg +share/InfraArcana/audio/amb_049.ogg +share/InfraArcana/audio/amb_050.ogg +share/InfraArcana/audio/musica_cthulhiana-fragment-madness.ogg +share/InfraArcana/audio/sfx_ape.ogg +share/InfraArcana/audio/sfx_backpack.ogg +share/InfraArcana/audio/sfx_bite.ogg +share/InfraArcana/audio/sfx_boss_voice1.ogg +share/InfraArcana/audio/sfx_boss_voice2.ogg +share/InfraArcana/audio/sfx_death.ogg +share/InfraArcana/audio/sfx_dog_snarl.ogg +share/InfraArcana/audio/sfx_door_bang.ogg +share/InfraArcana/audio/sfx_door_break.ogg +share/InfraArcana/audio/sfx_door_close.ogg +share/InfraArcana/audio/sfx_door_open.ogg +share/InfraArcana/audio/sfx_electric_lantern.ogg +share/InfraArcana/audio/sfx_explosion.ogg +share/InfraArcana/audio/sfx_explosion_molotov.ogg +share/InfraArcana/audio/sfx_flapping_wings.ogg +share/InfraArcana/audio/sfx_fountain_drink.ogg +share/InfraArcana/audio/sfx_gas.ogg +share/InfraArcana/audio/sfx_ghoul_growl.ogg +share/InfraArcana/audio/sfx_glop.ogg +share/InfraArcana/audio/sfx_hiss.ogg +share/InfraArcana/audio/sfx_hit_corpse_break.ogg +share/InfraArcana/audio/sfx_hit_hard.ogg +share/InfraArcana/audio/sfx_hit_medium.ogg +share/InfraArcana/audio/sfx_hit_sharp.ogg +share/InfraArcana/audio/sfx_hit_small.ogg +share/InfraArcana/audio/sfx_insanity_rising.ogg +share/InfraArcana/audio/sfx_machine_gun_fire.ogg +share/InfraArcana/audio/sfx_machine_gun_reload.ogg +share/InfraArcana/audio/sfx_metal_clank.ogg +share/InfraArcana/audio/sfx_migo_gun.ogg +share/InfraArcana/audio/sfx_miss_heavy.ogg +share/InfraArcana/audio/sfx_miss_light.ogg +share/InfraArcana/audio/sfx_miss_medium.ogg +share/InfraArcana/audio/sfx_ooze_gurgle.ogg +share/InfraArcana/audio/sfx_pickup.ogg +share/InfraArcana/audio/sfx_pistol_fire.ogg +share/InfraArcana/audio/sfx_pistol_reload.ogg +share/InfraArcana/audio/sfx_potion_quaff.ogg +share/InfraArcana/audio/sfx_ricochet.ogg +share/InfraArcana/audio/sfx_shotgun_pump_fire.ogg +share/InfraArcana/audio/sfx_shotgun_reload.ogg +share/InfraArcana/audio/sfx_shotgun_sawed_off_fire.ogg +share/InfraArcana/audio/sfx_spell_generic.ogg +share/InfraArcana/audio/sfx_spell_shield_break.ogg +share/InfraArcana/audio/sfx_spike_gun.ogg +share/InfraArcana/audio/sfx_tomb_open.ogg +share/InfraArcana/audio/sfx_wolf_howl.ogg +share/InfraArcana/audio/sfx_zombie_growl.ogg +share/InfraArcana/contact.txt +share/InfraArcana/credits.txt +share/InfraArcana/data/highscores +share/InfraArcana/data/save +share/InfraArcana/ia +share/InfraArcana/images/11x19.png +share/InfraArcana/images/11x22.png +share/InfraArcana/images/12x24.png +share/InfraArcana/images/16x24_DOS.png +share/InfraArcana/images/16x24_typewriter_v1.png +share/InfraArcana/images/16x24_typewriter_v2.png +share/InfraArcana/images/16x24_v1.png +share/InfraArcana/images/16x24_v2.png +share/InfraArcana/images/16x24_v3.png +share/InfraArcana/images/8x12_DOS.png +share/InfraArcana/images/SPECIAL_ELITE_License.txt +share/InfraArcana/images/gfx_16x24.png +share/InfraArcana/images/main_menu_logo.png +share/InfraArcana/images/skull.png +share/InfraArcana/license.txt +share/InfraArcana/manual.txt +share/InfraArcana/release_history.txt diff --git a/infraarcana/distinfo b/infraarcana/distinfo index c9fc61396a..2d2e903103 100644 --- a/infraarcana/distinfo +++ b/infraarcana/distinfo @@ -1,7 +1,14 @@ $NetBSD: distinfo,v 1.1 2015/08/19 19:42:29 yhardy Exp $ -SHA1 (ia-17.0.tar.gz) = 27cf4e37cf727367899208ad3cec67d2e4c28027 -RMD160 (ia-17.0.tar.gz) = ec57372405bc8f106aa6f1ff0616c1da4f214d78 -Size (ia-17.0.tar.gz) = 19962153 bytes -SHA1 (patch-src_Config.cpp) = 3de8baf11b217d8640d921b468be579451592896 -SHA1 (patch-src_SaveHandling.cpp) = e57e5674ec255c7205d6d8992a4e32d69134c3d2 +SHA1 (infraarcana/ia-18.2.tar.gz) = 73e21a3c41b130d937b123268678765612b7c7da +RMD160 (infraarcana/ia-18.2.tar.gz) = 9b7d499506246fe1246e562c4cf81ee64f3630d4 +SHA512 (infraarcana/ia-18.2.tar.gz) = 4a6d09c0836ad0337e0e92e1f554551c2f93c65767779072abce9d9482b5aabc20da14eeb66bfda80d18254e1b42b71c93c4c1da8b5e449ce526db07be73885d +Size (infraarcana/ia-18.2.tar.gz) = 33576360 bytes +SHA1 (infraarcana/rl_utils-757bef657fa43e2d7f41192e07227a00c62236e4.zip) = bc96a273a940cd218b9f7ea0819eda2ef45cc920 +RMD160 (infraarcana/rl_utils-757bef657fa43e2d7f41192e07227a00c62236e4.zip) = 51ba0809f8fb915164039eb396a68d34534f9515 +SHA512 (infraarcana/rl_utils-757bef657fa43e2d7f41192e07227a00c62236e4.zip) = 9ad70df01991302fa2b33739c1971072447daf65db1fc5d550208be7f31037bc2558a4f83b2eb5f769a127743949b177b9ac8c979d33c4da80cea3a5edacbf97 +Size (infraarcana/rl_utils-757bef657fa43e2d7f41192e07227a00c62236e4.zip) = 13629 bytes +SHA1 (patch-Makefile) = fee6998b86b63e1e67ee3d55561865d2f4565013 +SHA1 (patch-src_config.cpp) = ac2ee03728e5dc0e7cd851bd5f9ef0392ae27f22 +SHA1 (patch-src_input.cpp) = a84f3c470d08c9fa84de766fd951286a93dc1855 +SHA1 (patch-src_save__handling.cpp) = 634c7a6db5870861e0d8e1a70a341776c16464a6 diff --git a/infraarcana/files/infraarcana.sh b/infraarcana/files/infraarcana.sh new file mode 100644 index 0000000000..b7e22f3450 --- /dev/null +++ b/infraarcana/files/infraarcana.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +cd @PREFIX@/share/InfraArcana && exec ./ia "$@" diff --git a/infraarcana/files/infraarcanum.sh b/infraarcana/files/infraarcanum.sh deleted file mode 100644 index 27f068ab47..0000000000 --- a/infraarcana/files/infraarcanum.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -cd @PREFIX@/share/InfraArcanum && exec ./ia diff --git a/infraarcana/patches/patch-Makefile b/infraarcana/patches/patch-Makefile new file mode 100644 index 0000000000..71b18f6484 --- /dev/null +++ b/infraarcana/patches/patch-Makefile @@ -0,0 +1,15 @@ +$NetBSD$ + +Add X11 search path for libraries. +Is this a bug in devel/SDL2 ? + +--- Makefile.orig 2016-07-02 15:42:10.000000000 +0000 ++++ Makefile +@@ -91,6 +91,7 @@ release debug: LD_FLAGS = \ + $(shell sdl2-config --libs) \ + -lSDL2_image \ + -lSDL2_mixer \ ++ ${X11_LDFLAGS} \ + # + + # Executable diff --git a/infraarcana/patches/patch-src_Config.cpp b/infraarcana/patches/patch-src_Config.cpp deleted file mode 100644 index 948783963e..0000000000 --- a/infraarcana/patches/patch-src_Config.cpp +++ /dev/null @@ -1,50 +0,0 @@ -$NetBSD: patch-src_Config.cpp,v 1.1 2015/08/19 19:42:29 yhardy Exp $ - -Store config in home directory - ---- src/Config.cpp.orig 2015-02-18 19:24:13.000000000 +0000 -+++ src/Config.cpp -@@ -2,6 +2,7 @@ - - #include "Init.h" - -+#include - #include - #include - -@@ -472,7 +473,16 @@ void draw(const MenuBrowser* const brows - void readFile(vector& lines) - { - ifstream file; -- file.open("data/config"); -+ -+ char *home = getenv("HOME"); -+ string config = "data/config"; -+ if (home != NULL) -+ { -+ config = home; -+ config += "/.ia_config"; -+ } -+ -+ file.open(config); - if (file.is_open()) - { - string line; -@@ -563,8 +573,16 @@ void setAllVariablesFromLines(vector& lines) - { - ofstream file; -- file.open("data/config", ios::trunc); - -+ char *home = getenv("HOME"); -+ string config = "data/config"; -+ if (home != NULL) -+ { -+ config = home; -+ config += "/.ia_config"; -+ } -+ -+ file.open(config, ios::trunc); - for (size_t i = 0; i < lines.size(); ++i) - { - file << lines[i]; diff --git a/infraarcana/patches/patch-src_SaveHandling.cpp b/infraarcana/patches/patch-src_SaveHandling.cpp deleted file mode 100644 index c9cf20a63a..0000000000 --- a/infraarcana/patches/patch-src_SaveHandling.cpp +++ /dev/null @@ -1,49 +0,0 @@ -$NetBSD: patch-src_SaveHandling.cpp,v 1.1 2015/08/19 19:42:29 yhardy Exp $ - -Store saves in home directory - ---- src/SaveHandling.cpp.orig 2015-02-18 19:24:13.000000000 +0000 -+++ src/SaveHandling.cpp -@@ -1,5 +1,6 @@ - #include "SaveHandling.h" - -+#include - #include - #include - -@@ -73,7 +74,16 @@ void setupGameFromLines(vector& - void writeFile(const vector& lines) - { - ofstream file; -- file.open("data/save", ios::trunc); -+ -+ char *home = getenv("HOME"); -+ string save = "data/save"; -+ if (home != NULL) -+ { -+ save = home; -+ save += "/.ia_save"; -+ } -+ -+ file.open(save, ios::trunc); - - if (file.is_open()) - { -@@ -91,7 +101,16 @@ void readFile(vector& lines) - lines.clear(); - - string curLine; -- ifstream file("data/save"); -+ -+ char *home = getenv("HOME"); -+ string save = "data/save"; -+ if (home != NULL) -+ { -+ save = home; -+ save += "/.ia_save"; -+ } -+ -+ ifstream file(save); - if (file.is_open()) - { - while (getline(file, curLine)) {lines.push_back(curLine);} diff --git a/infraarcana/patches/patch-src_config.cpp b/infraarcana/patches/patch-src_config.cpp new file mode 100644 index 0000000000..ee90481e8d --- /dev/null +++ b/infraarcana/patches/patch-src_config.cpp @@ -0,0 +1,42 @@ +$NetBSD: patch-src_Config.cpp,v 1.1 2015/08/19 19:42:29 yhardy Exp $ + +Store config in home directory + +--- src/config.cpp.orig 2016-07-02 15:42:10.000000000 +0000 ++++ src/config.cpp +@@ -512,7 +512,16 @@ void draw(const Menu_browser* const brow + void read_file(std::vector& lines) + { + std::ifstream file; +- file.open("data/config"); ++ char *home = getenv("HOME"); ++ std::string config = "data/config"; ++ ++ if (home != NULL) ++ { ++ config = home; ++ config += "/.ia_config"; ++ } ++ ++ file.open(config); + + if (file.is_open()) + { +@@ -605,7 +614,16 @@ void set_variables_from_lines(std::vecto + void write_lines_to_file(std::vector& lines) + { + std::ofstream file; +- file.open("data/config", std::ios::trunc); ++ char *home = getenv("HOME"); ++ std::string config = "data/config"; ++ ++ if (home != NULL) ++ { ++ config = home; ++ config += "/.ia_config"; ++ } ++ ++ file.open(config, std::ios::trunc); + + for (size_t i = 0; i < lines.size(); ++i) + { diff --git a/infraarcana/patches/patch-src_input.cpp b/infraarcana/patches/patch-src_input.cpp new file mode 100644 index 0000000000..67dfedd7c5 --- /dev/null +++ b/infraarcana/patches/patch-src_input.cpp @@ -0,0 +1,240 @@ +$NetBSD$ + +SDL_StartTextInput() does not seem to provide the keys as expected, +so work around the problem by using the key codes (this does not +ignore SDL_TEXTINPUT events, it handles the case when SDL_KEYDOWN +is sent instead). + +It looks like devel/SDL2 must depend on inputmethod/ibus for +SDL_StartTextInput() to work as expected (*cringe*). Alternatively, +we need to define X_HAVE_UTF8_STRING when compiling devel/SDL and +devel/SDL2, but the configure scripts don't provide a means to +enable this flag (and I could not get the input to work with this +flag - so I am not sure if the problem is solved in this case). + +--- src/input.cpp.orig 2016-07-02 15:42:10.000000000 +0000 ++++ src/input.cpp +@@ -1295,6 +1295,223 @@ Key_data input(const bool IS_O_RETURN) + } + break; + ++ case SDLK_QUOTE: ++ if (IS_SHIFT_HELD && !is_done) ++ { ++ ret = Key_data('"', sdl_key, IS_SHIFT_HELD, IS_CTRL_HELD); ++ is_done = true; ++ } ++ case SDLK_COMMA: ++ if (IS_SHIFT_HELD && !is_done) ++ { ++ ret = Key_data('<', sdl_key, IS_SHIFT_HELD, IS_CTRL_HELD); ++ is_done = true; ++ } ++ case SDLK_MINUS: ++ if (IS_SHIFT_HELD && !is_done) ++ { ++ ret = Key_data('_', sdl_key, IS_SHIFT_HELD, IS_CTRL_HELD); ++ is_done = true; ++ } ++ case SDLK_PERIOD: ++ if (IS_SHIFT_HELD && !is_done) ++ { ++ ret = Key_data('>', sdl_key, IS_SHIFT_HELD, IS_CTRL_HELD); ++ is_done = true; ++ } ++ case SDLK_SLASH: ++ if (IS_SHIFT_HELD && !is_done) ++ { ++ ret = Key_data('?', sdl_key, IS_SHIFT_HELD, IS_CTRL_HELD); ++ is_done = true; ++ } ++ case SDLK_0: ++ if (IS_SHIFT_HELD && !is_done) ++ { ++ ret = Key_data(')', sdl_key, IS_SHIFT_HELD, IS_CTRL_HELD); ++ is_done = true; ++ } ++ case SDLK_1: ++ if (IS_SHIFT_HELD && !is_done) ++ { ++ ret = Key_data('!', sdl_key, IS_SHIFT_HELD, IS_CTRL_HELD); ++ is_done = true; ++ } ++ case SDLK_2: ++ if (IS_SHIFT_HELD && !is_done) ++ { ++ ret = Key_data('@', sdl_key, IS_SHIFT_HELD, IS_CTRL_HELD); ++ is_done = true; ++ } ++ case SDLK_3: ++ if (IS_SHIFT_HELD && !is_done) ++ { ++ ret = Key_data('#', sdl_key, IS_SHIFT_HELD, IS_CTRL_HELD); ++ is_done = true; ++ } ++ case SDLK_4: ++ if (IS_SHIFT_HELD && !is_done) ++ { ++ ret = Key_data('$', sdl_key, IS_SHIFT_HELD, IS_CTRL_HELD); ++ is_done = true; ++ } ++ case SDLK_5: ++ if (IS_SHIFT_HELD && !is_done) ++ { ++ ret = Key_data('%', sdl_key, IS_SHIFT_HELD, IS_CTRL_HELD); ++ is_done = true; ++ } ++ case SDLK_6: ++ if (IS_SHIFT_HELD && !is_done) ++ { ++ ret = Key_data('^', sdl_key, IS_SHIFT_HELD, IS_CTRL_HELD); ++ is_done = true; ++ } ++ case SDLK_7: ++ if (IS_SHIFT_HELD && !is_done) ++ { ++ ret = Key_data('&', sdl_key, IS_SHIFT_HELD, IS_CTRL_HELD); ++ is_done = true; ++ } ++ case SDLK_8: ++ if (IS_SHIFT_HELD && !is_done) ++ { ++ ret = Key_data('*', sdl_key, IS_SHIFT_HELD, IS_CTRL_HELD); ++ is_done = true; ++ } ++ case SDLK_9: ++ if (IS_SHIFT_HELD && !is_done) ++ { ++ ret = Key_data('(', sdl_key, IS_SHIFT_HELD, IS_CTRL_HELD); ++ is_done = true; ++ } ++ case SDLK_SEMICOLON: ++ if (IS_SHIFT_HELD && !is_done) ++ { ++ ret = Key_data(':', sdl_key, IS_SHIFT_HELD, IS_CTRL_HELD); ++ is_done = true; ++ } ++ case SDLK_EQUALS: ++ if (IS_SHIFT_HELD && !is_done) ++ { ++ ret = Key_data('+', sdl_key, IS_SHIFT_HELD, IS_CTRL_HELD); ++ is_done = true; ++ } ++ case SDLK_LEFTBRACKET: ++ if (IS_SHIFT_HELD && !is_done) ++ { ++ ret = Key_data('{', sdl_key, IS_SHIFT_HELD, IS_CTRL_HELD); ++ is_done = true; ++ } ++ case SDLK_BACKSLASH: ++ if (IS_SHIFT_HELD && !is_done) ++ { ++ ret = Key_data('|', sdl_key, IS_SHIFT_HELD, IS_CTRL_HELD); ++ is_done = true; ++ } ++ case SDLK_RIGHTBRACKET: ++ if (IS_SHIFT_HELD && !is_done) ++ { ++ ret = Key_data('}', sdl_key, IS_SHIFT_HELD, IS_CTRL_HELD); ++ is_done = true; ++ } ++ case SDLK_BACKQUOTE: ++ if (IS_SHIFT_HELD && !is_done) ++ { ++ ret = Key_data('~', sdl_key, IS_SHIFT_HELD, IS_CTRL_HELD); ++ is_done = true; ++ } ++ case SDLK_a: ++ case SDLK_b: ++ case SDLK_c: ++ case SDLK_d: ++ case SDLK_e: ++ case SDLK_f: ++ case SDLK_g: ++ case SDLK_h: ++ case SDLK_i: ++ case SDLK_j: ++ case SDLK_k: ++ case SDLK_l: ++ case SDLK_m: ++ case SDLK_n: ++ case SDLK_o: ++ case SDLK_p: ++ case SDLK_q: ++ case SDLK_r: ++ case SDLK_s: ++ case SDLK_t: ++ case SDLK_u: ++ case SDLK_v: ++ case SDLK_w: ++ case SDLK_x: ++ case SDLK_y: ++ case SDLK_z: ++ if (IS_SHIFT_HELD && !is_done) ++ { ++ ret = Key_data(sdl_key-32, sdl_key, IS_SHIFT_HELD, IS_CTRL_HELD); ++ is_done = true; ++ } ++ if (!is_done) ++ { ++ ret = Key_data(sdl_key, sdl_key, IS_SHIFT_HELD, IS_CTRL_HELD); ++ is_done = true; ++ } ++ break; ++ ++ case SDLK_KP_DIVIDE: ++ ret = Key_data('/', sdl_key, IS_SHIFT_HELD, IS_CTRL_HELD); ++ is_done = true; ++ break; ++ case SDLK_KP_MULTIPLY: ++ ret = Key_data('*', sdl_key, IS_SHIFT_HELD, IS_CTRL_HELD); ++ is_done = true; ++ break; ++ case SDLK_KP_MINUS: ++ ret = Key_data('-', sdl_key, IS_SHIFT_HELD, IS_CTRL_HELD); ++ is_done = true; ++ break; ++ case SDLK_KP_PLUS: ++ ret = Key_data('+', sdl_key, IS_SHIFT_HELD, IS_CTRL_HELD); ++ is_done = true; ++ break; ++ case SDLK_KP_1: ++ ret = Key_data('1', sdl_key, IS_SHIFT_HELD, IS_CTRL_HELD); ++ is_done = true; ++ break; ++ case SDLK_KP_2: ++ ret = Key_data('2', sdl_key, IS_SHIFT_HELD, IS_CTRL_HELD); ++ is_done = true; ++ break; ++ case SDLK_KP_3: ++ ret = Key_data('3', sdl_key, IS_SHIFT_HELD, IS_CTRL_HELD); ++ is_done = true; ++ break; ++ case SDLK_KP_4: ++ ret = Key_data('4', sdl_key, IS_SHIFT_HELD, IS_CTRL_HELD); ++ is_done = true; ++ break; ++ case SDLK_KP_5: ++ ret = Key_data('5', sdl_key, IS_SHIFT_HELD, IS_CTRL_HELD); ++ is_done = true; ++ break; ++ case SDLK_KP_6: ++ ret = Key_data('6', sdl_key, IS_SHIFT_HELD, IS_CTRL_HELD); ++ is_done = true; ++ break; ++ case SDLK_KP_7: ++ ret = Key_data('7', sdl_key, IS_SHIFT_HELD, IS_CTRL_HELD); ++ is_done = true; ++ break; ++ case SDLK_KP_8: ++ ret = Key_data('8', sdl_key, IS_SHIFT_HELD, IS_CTRL_HELD); ++ is_done = true; ++ break; ++ case SDLK_KP_9: ++ ret = Key_data('9', sdl_key, IS_SHIFT_HELD, IS_CTRL_HELD); ++ is_done = true; ++ break; ++ + case SDLK_SPACE: + case SDLK_BACKSPACE: + case SDLK_TAB: diff --git a/infraarcana/patches/patch-src_save__handling.cpp b/infraarcana/patches/patch-src_save__handling.cpp new file mode 100644 index 0000000000..454a6caa2c --- /dev/null +++ b/infraarcana/patches/patch-src_save__handling.cpp @@ -0,0 +1,42 @@ +$NetBSD: patch-src_SaveHandling.cpp,v 1.1 2015/08/19 19:42:29 yhardy Exp $ + +Store saves in home directory + +--- src/save_handling.cpp.orig 2016-07-02 15:42:10.000000000 +0000 ++++ src/save_handling.cpp +@@ -104,8 +104,16 @@ void load_modules() + void write_file() + { + std::ofstream file; ++ char *home = getenv("HOME"); ++ std::string save = "data/save"; + +- file.open("data/save", std::ios::trunc); ++ if (home != NULL) ++ { ++ save = home; ++ save += "/.ia_save"; ++ } ++ ++ file.open(save, std::ios::trunc); + + if (file.is_open()) + { +@@ -125,7 +133,16 @@ void write_file() + + void read_file() + { +- std::ifstream file("data/save"); ++ char *home = getenv("HOME"); ++ std::string save = "data/save"; ++ ++ if (home != NULL) ++ { ++ save = home; ++ save += "/.ia_save"; ++ } ++ ++ std::ifstream file(save); + + if (file.is_open()) + {