diff options
author | nia <nia@pkgsrc.org> | 2020-09-30 08:07:56 +0000 |
---|---|---|
committer | nia <nia@pkgsrc.org> | 2020-09-30 08:07:56 +0000 |
commit | cc1dd1075846e793ec79a5adc0171d4332df24f3 (patch) | |
tree | 409976267920c91ddc72b0bfc58e73f2d50deb21 /games | |
parent | 9dce196bd94853e4d26fdc060be9b14356d997e2 (diff) | |
download | pkgsrc-cc1dd1075846e793ec79a5adc0171d4332df24f3.tar.gz |
games: Add nxengine-evo
Cave Story (Doukutsu Monogatari) is a classic freeware metroidvania
platform-adventure video game by Daisuke "Pixel" Amaya.
This is a somewhat upgraded/refactored version of NXEngine, a complete
open-source clone/rewrite of Cave Story.
Diffstat (limited to 'games')
-rw-r--r-- | games/Makefile | 3 | ||||
-rw-r--r-- | games/nxengine-evo/DESCR | 5 | ||||
-rw-r--r-- | games/nxengine-evo/Makefile | 57 | ||||
-rw-r--r-- | games/nxengine-evo/PLIST | 673 | ||||
-rw-r--r-- | games/nxengine-evo/distinfo | 12 | ||||
-rw-r--r-- | games/nxengine-evo/files/nxengine-evo.desktop | 9 | ||||
-rw-r--r-- | games/nxengine-evo/files/nxengine-evo.sh.in | 8 | ||||
-rw-r--r-- | games/nxengine-evo/patches/patch-src_pause_dialog.cpp | 21 | ||||
-rw-r--r-- | games/nxengine-evo/patches/patch-src_sound_Pixtone.cpp | 39 |
9 files changed, 826 insertions, 1 deletions
diff --git a/games/Makefile b/games/Makefile index 832f0744c78..23b85d858cf 100644 --- a/games/Makefile +++ b/games/Makefile @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.493 2020/09/12 22:14:15 wiz Exp $ +# $NetBSD: Makefile,v 1.494 2020/09/30 08:07:56 nia Exp $ # COMMENT= Games @@ -300,6 +300,7 @@ SUBDIR+= ninvaders SUBDIR+= not_pacman SUBDIR+= not_tetris SUBDIR+= nudoku +SUBDIR+= nxengine-evo SUBDIR+= omega SUBDIR+= onscripter SUBDIR+= openhexagon diff --git a/games/nxengine-evo/DESCR b/games/nxengine-evo/DESCR new file mode 100644 index 00000000000..73878f8229a --- /dev/null +++ b/games/nxengine-evo/DESCR @@ -0,0 +1,5 @@ +Cave Story (Doukutsu Monogatari) is a classic freeware metroidvania +platform-adventure video game by Daisuke "Pixel" Amaya. + +This is a somewhat upgraded/refactored version of NXEngine, a complete +open-source clone/rewrite of Cave Story. diff --git a/games/nxengine-evo/Makefile b/games/nxengine-evo/Makefile new file mode 100644 index 00000000000..10137b44f6d --- /dev/null +++ b/games/nxengine-evo/Makefile @@ -0,0 +1,57 @@ +# $NetBSD: Makefile,v 1.1 2020/09/30 08:07:56 nia Exp $ + +PKGNAME= nxengine-evo-2.6.4 +CATEGORIES= games +GITHUB_TAG= v${PKGVERSION_NOREV} +DIST_SUBDIR= ${PKGNAME_NOREV} +DISTFILES+= nxengine-evo.tar.gz +DISTFILES+= cavestoryen.zip +SITES.nxengine-evo.tar.gz= \ + -https://github.com/nxengine/nxengine-evo/archive/v${PKGVERSION_NOREV}.tar.gz +SITES.cavestoryen.zip= \ + -https://www.cavestory.org/downloads/cavestoryen.zip + +MAINTAINER= nia@NetBSD.org +HOMEPAGE= https://github.com/nxengine/nxengine-evo +COMMENT= Complete rewrite of the platform-adventure game Cave Story +LICENSE= gnu-gpl-v3 + +USE_CMAKE= yes +USE_TOOLS+= pax +USE_LANGUAGES= c c++ + +CMAKE_ARGS+= -DCMAKE_BUILD_TYPE="Release" + +INSTALLATION_DIRS+= bin +INSTALLATION_DIRS+= libexec +INSTALLATION_DIRS+= share/applications +INSTALLATION_DIRS+= share/icons/hicolor/128x128/apps +INSTALLATION_DIRS+= share/nxengine-evo/data + +pre-configure: + ${SED} -e 's,@PREFIX@,${PREFIX},g' \ + < ${FILESDIR}/nxengine-evo.sh.in > \ + ${WRKDIR}/nxengine-evo.sh + +do-install: + ${INSTALL_PROGRAM} ${WRKSRC}/bin/nx \ + ${DESTDIR}${PREFIX}/share/nxengine-evo/nxengine-evo + ${INSTALL_SCRIPT} ${WRKDIR}/nxengine-evo.sh \ + ${DESTDIR}${PREFIX}/bin/nxengine-evo + ${INSTALL_DATA} ${WRKSRC}/vita/sce_sys/icon0.png \ + ${DESTDIR}${PREFIX}/share/icons/hicolor/128x128/apps/nxengine-evo.png + ${INSTALL_DATA} ${FILESDIR}/nxengine-evo.desktop \ + ${DESTDIR}${PREFIX}/share/applications + cd ${WRKDIR}/CaveStory && ${PAX} -rw -pp . \ + ${DESTDIR}${PREFIX}/share/nxengine-evo + cd ${WRKSRC}/data && ${PAX} -rw -pp . \ + ${DESTDIR}${PREFIX}/share/nxengine-evo/data + cd ${DESTDIR}${PREFIX}/share/nxengine-evo && ${WRKSRC}/bin/extract + +.include "../../audio/SDL2_mixer/buildlink3.mk" +.include "../../devel/SDL2/buildlink3.mk" +.include "../../devel/zlib/buildlink3.mk" +.include "../../graphics/hicolor-icon-theme/buildlink3.mk" +.include "../../graphics/png/buildlink3.mk" +.include "../../mk/pthread.buildlink3.mk" +.include "../../mk/bsd.pkg.mk" diff --git a/games/nxengine-evo/PLIST b/games/nxengine-evo/PLIST new file mode 100644 index 00000000000..1904200ee14 --- /dev/null +++ b/games/nxengine-evo/PLIST @@ -0,0 +1,673 @@ +@comment $NetBSD: PLIST,v 1.1 2020/09/30 08:07:56 nia Exp $ +bin/nxengine-evo +share/applications/nxengine-evo.desktop +share/icons/hicolor/128x128/apps/nxengine-evo.png +share/nxengine-evo/Config.dat +share/nxengine-evo/DoConfig.exe +share/nxengine-evo/Doukutsu.exe +share/nxengine-evo/Manual.html +share/nxengine-evo/Manual/Display.html +share/nxengine-evo/Manual/Ditch.html +share/nxengine-evo/Manual/Ditch.png +share/nxengine-evo/Manual/DoukutsuL.html +share/nxengine-evo/Manual/Dummy.html +share/nxengine-evo/Manual/Enemy.png +share/nxengine-evo/Manual/Intro.html +share/nxengine-evo/Manual/Item.html +share/nxengine-evo/Manual/KeyControl.html +share/nxengine-evo/Manual/MyChar.png +share/nxengine-evo/Manual/Status.png +share/nxengine-evo/Manual/Thumbs.db +share/nxengine-evo/Manual/Title.png +share/nxengine-evo/Manual/Troubleshooting.html +share/nxengine-evo/Manual/itemBox.png +share/nxengine-evo/Manual/itemDisk.png +share/nxengine-evo/Manual/itemEnergy.png +share/nxengine-evo/Manual/itemHeart.png +share/nxengine-evo/Manual/itemMax.png +share/nxengine-evo/Manual/itemMissile.png +share/nxengine-evo/Manual/itemServer.png +share/nxengine-evo/Manual/mochiKey.png +share/nxengine-evo/Manual/mochiMap.png +share/nxengine-evo/Manual/mochiRocket.png +share/nxengine-evo/Manual/naoku_curly.png +share/nxengine-evo/Manual/snapAction.png +share/nxengine-evo/Manual/snapDisplay.png +share/nxengine-evo/Manual/snapEscape.png +share/nxengine-evo/Manual/snapMochi.png +share/nxengine-evo/Manual/snapSave.png +share/nxengine-evo/Manual/snapTalk.png +share/nxengine-evo/Manual/snapTitle.png +share/nxengine-evo/OrgView.exe +share/nxengine-evo/Readme.txt +share/nxengine-evo/data/Arms.pbm +share/nxengine-evo/data/ArmsImage.pbm +share/nxengine-evo/data/ArmsItem.tsc +share/nxengine-evo/data/Bullet.pbm +share/nxengine-evo/data/Caret.pbm +share/nxengine-evo/data/Credit.tsc +share/nxengine-evo/data/Face.pbm +share/nxengine-evo/data/Face_0.pbm +share/nxengine-evo/data/Face_1.pbm +share/nxengine-evo/data/Face_2.pbm +share/nxengine-evo/data/Fade.pbm +share/nxengine-evo/data/Head.tsc +share/nxengine-evo/data/ItemImage.pbm +share/nxengine-evo/data/Loading.pbm +share/nxengine-evo/data/MyChar.pbm +share/nxengine-evo/data/Npc/Npc0.pbm +share/nxengine-evo/data/Npc/NpcAlmo1.pbm +share/nxengine-evo/data/Npc/NpcAlmo2.pbm +share/nxengine-evo/data/Npc/NpcBallos.pbm +share/nxengine-evo/data/Npc/NpcBllg.pbm +share/nxengine-evo/data/Npc/NpcCemet.pbm +share/nxengine-evo/data/Npc/NpcCent.pbm +share/nxengine-evo/data/Npc/NpcCurly.pbm +share/nxengine-evo/data/Npc/NpcDark.pbm +share/nxengine-evo/data/Npc/NpcDr.pbm +share/nxengine-evo/data/Npc/NpcEggs1.pbm +share/nxengine-evo/data/Npc/NpcEggs2.pbm +share/nxengine-evo/data/Npc/NpcFrog.pbm +share/nxengine-evo/data/Npc/NpcGuest.pbm +share/nxengine-evo/data/Npc/NpcHell.pbm +share/nxengine-evo/data/Npc/NpcHeri.pbm +share/nxengine-evo/data/Npc/NpcIronH.pbm +share/nxengine-evo/data/Npc/NpcIsland.pbm +share/nxengine-evo/data/Npc/NpcKings.pbm +share/nxengine-evo/data/Npc/NpcMaze.pbm +share/nxengine-evo/data/Npc/NpcMiza.pbm +share/nxengine-evo/data/Npc/NpcMoon.pbm +share/nxengine-evo/data/Npc/NpcOmg.pbm +share/nxengine-evo/data/Npc/NpcPlant.pbm +share/nxengine-evo/data/Npc/NpcPress.pbm +share/nxengine-evo/data/Npc/NpcPriest.pbm +share/nxengine-evo/data/Npc/NpcRavil.pbm +share/nxengine-evo/data/Npc/NpcRed.pbm +share/nxengine-evo/data/Npc/NpcRegu.pbm +share/nxengine-evo/data/Npc/NpcSand.pbm +share/nxengine-evo/data/Npc/NpcStream.pbm +share/nxengine-evo/data/Npc/NpcSym.pbm +share/nxengine-evo/data/Npc/NpcToro.pbm +share/nxengine-evo/data/Npc/NpcTwinD.pbm +share/nxengine-evo/data/Npc/NpcWeed.pbm +share/nxengine-evo/data/Npc/NpcX.pbm +share/nxengine-evo/data/Stage/0.pxa +share/nxengine-evo/data/Stage/0.pxe +share/nxengine-evo/data/Stage/0.pxm +share/nxengine-evo/data/Stage/0.tsc +share/nxengine-evo/data/Stage/555.pxe +share/nxengine-evo/data/Stage/Almond.pxa +share/nxengine-evo/data/Stage/Almond.pxe +share/nxengine-evo/data/Stage/Almond.pxm +share/nxengine-evo/data/Stage/Almond.tsc +share/nxengine-evo/data/Stage/Ballo1.pxe +share/nxengine-evo/data/Stage/Ballo1.pxm +share/nxengine-evo/data/Stage/Ballo1.tsc +share/nxengine-evo/data/Stage/Ballo2.pxe +share/nxengine-evo/data/Stage/Ballo2.pxm +share/nxengine-evo/data/Stage/Ballo2.tsc +share/nxengine-evo/data/Stage/Barr.pxa +share/nxengine-evo/data/Stage/Barr.pxe +share/nxengine-evo/data/Stage/Barr.pxm +share/nxengine-evo/data/Stage/Barr.tsc +share/nxengine-evo/data/Stage/Blcny1.pxe +share/nxengine-evo/data/Stage/Blcny1.pxm +share/nxengine-evo/data/Stage/Blcny1.tsc +share/nxengine-evo/data/Stage/Blcny2.pxe +share/nxengine-evo/data/Stage/Blcny2.pxm +share/nxengine-evo/data/Stage/Blcny2.tsc +share/nxengine-evo/data/Stage/Cave.pxa +share/nxengine-evo/data/Stage/Cave.pxe +share/nxengine-evo/data/Stage/Cave.pxm +share/nxengine-evo/data/Stage/Cave.tsc +share/nxengine-evo/data/Stage/Cemet.pxe +share/nxengine-evo/data/Stage/Cemet.pxm +share/nxengine-evo/data/Stage/Cemet.tsc +share/nxengine-evo/data/Stage/Cent.pxa +share/nxengine-evo/data/Stage/Cent.pxe +share/nxengine-evo/data/Stage/Cent.pxm +share/nxengine-evo/data/Stage/Cent.tsc +share/nxengine-evo/data/Stage/CentW.pxe +share/nxengine-evo/data/Stage/CentW.pxm +share/nxengine-evo/data/Stage/CentW.tsc +share/nxengine-evo/data/Stage/Chako.pxe +share/nxengine-evo/data/Stage/Chako.pxm +share/nxengine-evo/data/Stage/Chako.tsc +share/nxengine-evo/data/Stage/Clock.pxe +share/nxengine-evo/data/Stage/Clock.pxm +share/nxengine-evo/data/Stage/Clock.tsc +share/nxengine-evo/data/Stage/Comu.pxe +share/nxengine-evo/data/Stage/Comu.pxm +share/nxengine-evo/data/Stage/Comu.tsc +share/nxengine-evo/data/Stage/Cook.pxm +share/nxengine-evo/data/Stage/Cthu.pxe +share/nxengine-evo/data/Stage/Cthu.pxm +share/nxengine-evo/data/Stage/Cthu.tsc +share/nxengine-evo/data/Stage/Cthu2.pxe +share/nxengine-evo/data/Stage/Cthu2.pxm +share/nxengine-evo/data/Stage/Cthu2.tsc +share/nxengine-evo/data/Stage/Curly.pxe +share/nxengine-evo/data/Stage/Curly.pxm +share/nxengine-evo/data/Stage/Curly.tsc +share/nxengine-evo/data/Stage/CurlyS.pxe +share/nxengine-evo/data/Stage/CurlyS.pxm +share/nxengine-evo/data/Stage/CurlyS.tsc +share/nxengine-evo/data/Stage/Dark.pxe +share/nxengine-evo/data/Stage/Dark.pxm +share/nxengine-evo/data/Stage/Dark.tsc +share/nxengine-evo/data/Stage/Drain.pxe +share/nxengine-evo/data/Stage/Drain.pxm +share/nxengine-evo/data/Stage/Drain.tsc +share/nxengine-evo/data/Stage/EgEnd1.pxe +share/nxengine-evo/data/Stage/EgEnd1.pxm +share/nxengine-evo/data/Stage/EgEnd1.tsc +share/nxengine-evo/data/Stage/EgEnd2.pxe +share/nxengine-evo/data/Stage/EgEnd2.pxm +share/nxengine-evo/data/Stage/EgEnd2.tsc +share/nxengine-evo/data/Stage/Egg1.pxe +share/nxengine-evo/data/Stage/Egg1.pxm +share/nxengine-evo/data/Stage/Egg1.tsc +share/nxengine-evo/data/Stage/Egg6.pxe +share/nxengine-evo/data/Stage/Egg6.pxm +share/nxengine-evo/data/Stage/Egg6.tsc +share/nxengine-evo/data/Stage/EggIn.pxa +share/nxengine-evo/data/Stage/EggR.pxe +share/nxengine-evo/data/Stage/EggR.pxm +share/nxengine-evo/data/Stage/EggR.tsc +share/nxengine-evo/data/Stage/EggR2.pxe +share/nxengine-evo/data/Stage/EggR2.pxm +share/nxengine-evo/data/Stage/EggR2.tsc +share/nxengine-evo/data/Stage/EggX.pxa +share/nxengine-evo/data/Stage/EggX.pxe +share/nxengine-evo/data/Stage/EggX.pxm +share/nxengine-evo/data/Stage/EggX.tsc +share/nxengine-evo/data/Stage/EggX2.pxe +share/nxengine-evo/data/Stage/EggX2.pxm +share/nxengine-evo/data/Stage/EggX2.tsc +share/nxengine-evo/data/Stage/Eggs.pxa +share/nxengine-evo/data/Stage/Eggs.pxe +share/nxengine-evo/data/Stage/Eggs.pxm +share/nxengine-evo/data/Stage/Eggs.tsc +share/nxengine-evo/data/Stage/Eggs2.pxe +share/nxengine-evo/data/Stage/Eggs2.pxm +share/nxengine-evo/data/Stage/Eggs2.tsc +share/nxengine-evo/data/Stage/Fall.pxa +share/nxengine-evo/data/Stage/Fall.pxe +share/nxengine-evo/data/Stage/Fall.pxm +share/nxengine-evo/data/Stage/Fall.tsc +share/nxengine-evo/data/Stage/Frog.pxe +share/nxengine-evo/data/Stage/Frog.pxm +share/nxengine-evo/data/Stage/Frog.tsc +share/nxengine-evo/data/Stage/Gard.pxa +share/nxengine-evo/data/Stage/Gard.pxe +share/nxengine-evo/data/Stage/Gard.pxm +share/nxengine-evo/data/Stage/Gard.tsc +share/nxengine-evo/data/Stage/Hell.pxa +share/nxengine-evo/data/Stage/Hell1.pxe +share/nxengine-evo/data/Stage/Hell1.pxm +share/nxengine-evo/data/Stage/Hell1.tsc +share/nxengine-evo/data/Stage/Hell2.pxe +share/nxengine-evo/data/Stage/Hell2.pxm +share/nxengine-evo/data/Stage/Hell2.tsc +share/nxengine-evo/data/Stage/Hell3.pxe +share/nxengine-evo/data/Stage/Hell3.pxm +share/nxengine-evo/data/Stage/Hell3.tsc +share/nxengine-evo/data/Stage/Hell4.pxe +share/nxengine-evo/data/Stage/Hell4.pxm +share/nxengine-evo/data/Stage/Hell4.tsc +share/nxengine-evo/data/Stage/Hell42.pxe +share/nxengine-evo/data/Stage/Hell42.pxm +share/nxengine-evo/data/Stage/Hell42.tsc +share/nxengine-evo/data/Stage/Island.pxe +share/nxengine-evo/data/Stage/Island.pxm +share/nxengine-evo/data/Stage/Island.tsc +share/nxengine-evo/data/Stage/Itoh.pxe +share/nxengine-evo/data/Stage/Itoh.pxm +share/nxengine-evo/data/Stage/Itoh.tsc +share/nxengine-evo/data/Stage/Jail.pxa +share/nxengine-evo/data/Stage/Jail1.pxe +share/nxengine-evo/data/Stage/Jail1.pxm +share/nxengine-evo/data/Stage/Jail1.tsc +share/nxengine-evo/data/Stage/Jail2.pxe +share/nxengine-evo/data/Stage/Jail2.pxm +share/nxengine-evo/data/Stage/Jail2.tsc +share/nxengine-evo/data/Stage/Jenka1.pxe +share/nxengine-evo/data/Stage/Jenka1.pxm +share/nxengine-evo/data/Stage/Jenka1.tsc +share/nxengine-evo/data/Stage/Jenka2.pxe +share/nxengine-evo/data/Stage/Jenka2.pxm +share/nxengine-evo/data/Stage/Jenka2.tsc +share/nxengine-evo/data/Stage/Kings.pxe +share/nxengine-evo/data/Stage/Kings.pxm +share/nxengine-evo/data/Stage/Kings.tsc +share/nxengine-evo/data/Stage/Labo.pxa +share/nxengine-evo/data/Stage/Little.pxe +share/nxengine-evo/data/Stage/Little.pxm +share/nxengine-evo/data/Stage/Little.tsc +share/nxengine-evo/data/Stage/Lounge.pxe +share/nxengine-evo/data/Stage/Lounge.pxm +share/nxengine-evo/data/Stage/Lounge.tsc +share/nxengine-evo/data/Stage/Malco.pxe +share/nxengine-evo/data/Stage/Malco.pxm +share/nxengine-evo/data/Stage/Malco.tsc +share/nxengine-evo/data/Stage/Mapi.pxe +share/nxengine-evo/data/Stage/Mapi.pxm +share/nxengine-evo/data/Stage/Mapi.tsc +share/nxengine-evo/data/Stage/Maze.pxa +share/nxengine-evo/data/Stage/MazeA.pxe +share/nxengine-evo/data/Stage/MazeA.pxm +share/nxengine-evo/data/Stage/MazeA.tsc +share/nxengine-evo/data/Stage/MazeB.pxe +share/nxengine-evo/data/Stage/MazeB.pxm +share/nxengine-evo/data/Stage/MazeB.tsc +share/nxengine-evo/data/Stage/MazeD.pxe +share/nxengine-evo/data/Stage/MazeD.pxm +share/nxengine-evo/data/Stage/MazeD.tsc +share/nxengine-evo/data/Stage/MazeH.pxe +share/nxengine-evo/data/Stage/MazeH.pxm +share/nxengine-evo/data/Stage/MazeH.tsc +share/nxengine-evo/data/Stage/MazeI.pxe +share/nxengine-evo/data/Stage/MazeI.pxm +share/nxengine-evo/data/Stage/MazeI.tsc +share/nxengine-evo/data/Stage/MazeM.pxe +share/nxengine-evo/data/Stage/MazeM.pxm +share/nxengine-evo/data/Stage/MazeM.tsc +share/nxengine-evo/data/Stage/MazeO.pxe +share/nxengine-evo/data/Stage/MazeO.pxm +share/nxengine-evo/data/Stage/MazeO.tsc +share/nxengine-evo/data/Stage/MazeS.pxe +share/nxengine-evo/data/Stage/MazeS.pxm +share/nxengine-evo/data/Stage/MazeS.tsc +share/nxengine-evo/data/Stage/MazeW.pxe +share/nxengine-evo/data/Stage/MazeW.pxm +share/nxengine-evo/data/Stage/MazeW.tsc +share/nxengine-evo/data/Stage/MiBox.pxe +share/nxengine-evo/data/Stage/MiBox.pxm +share/nxengine-evo/data/Stage/MiBox.tsc +share/nxengine-evo/data/Stage/Mimi.pxa +share/nxengine-evo/data/Stage/Mimi.pxe +share/nxengine-evo/data/Stage/Mimi.pxm +share/nxengine-evo/data/Stage/Mimi.tsc +share/nxengine-evo/data/Stage/Momo.pxe +share/nxengine-evo/data/Stage/Momo.pxm +share/nxengine-evo/data/Stage/Momo.tsc +share/nxengine-evo/data/Stage/New.pxe +share/nxengine-evo/data/Stage/Oside.pxa +share/nxengine-evo/data/Stage/Oside.pxe +share/nxengine-evo/data/Stage/Oside.pxm +share/nxengine-evo/data/Stage/Oside.tsc +share/nxengine-evo/data/Stage/Ostep.pxe +share/nxengine-evo/data/Stage/Ostep.pxm +share/nxengine-evo/data/Stage/Ostep.tsc +share/nxengine-evo/data/Stage/Pens.pxa +share/nxengine-evo/data/Stage/Pens1.pxe +share/nxengine-evo/data/Stage/Pens1.pxm +share/nxengine-evo/data/Stage/Pens1.tsc +share/nxengine-evo/data/Stage/Pens2.pxe +share/nxengine-evo/data/Stage/Pens2.pxm +share/nxengine-evo/data/Stage/Pens2.tsc +share/nxengine-evo/data/Stage/Pixel.pxe +share/nxengine-evo/data/Stage/Pixel.pxm +share/nxengine-evo/data/Stage/Pixel.tsc +share/nxengine-evo/data/Stage/Plant.pxe +share/nxengine-evo/data/Stage/Plant.pxm +share/nxengine-evo/data/Stage/Plant.tsc +share/nxengine-evo/data/Stage/Pole.pxe +share/nxengine-evo/data/Stage/Pole.pxm +share/nxengine-evo/data/Stage/Pole.tsc +share/nxengine-evo/data/Stage/Pool.pxe +share/nxengine-evo/data/Stage/Pool.pxm +share/nxengine-evo/data/Stage/Pool.tsc +share/nxengine-evo/data/Stage/Prefa1.pxe +share/nxengine-evo/data/Stage/Prefa1.pxm +share/nxengine-evo/data/Stage/Prefa1.tsc +share/nxengine-evo/data/Stage/Prefa2.pxe +share/nxengine-evo/data/Stage/Prefa2.pxm +share/nxengine-evo/data/Stage/Prefa2.tsc +share/nxengine-evo/data/Stage/Priso1.pxe +share/nxengine-evo/data/Stage/Priso1.pxm +share/nxengine-evo/data/Stage/Priso1.tsc +share/nxengine-evo/data/Stage/Priso2.pxe +share/nxengine-evo/data/Stage/Priso2.pxm +share/nxengine-evo/data/Stage/Priso2.tsc +share/nxengine-evo/data/Stage/Prt0.pbm +share/nxengine-evo/data/Stage/PrtAlmond.pbm +share/nxengine-evo/data/Stage/PrtBarr.pbm +share/nxengine-evo/data/Stage/PrtCave.pbm +share/nxengine-evo/data/Stage/PrtCent.pbm +share/nxengine-evo/data/Stage/PrtEggIn.pbm +share/nxengine-evo/data/Stage/PrtEggX.pbm +share/nxengine-evo/data/Stage/PrtEggs.pbm +share/nxengine-evo/data/Stage/PrtFall.pbm +share/nxengine-evo/data/Stage/PrtGard.pbm +share/nxengine-evo/data/Stage/PrtHell.pbm +share/nxengine-evo/data/Stage/PrtJail.pbm +share/nxengine-evo/data/Stage/PrtLabo.pbm +share/nxengine-evo/data/Stage/PrtMaze.pbm +share/nxengine-evo/data/Stage/PrtMimi.pbm +share/nxengine-evo/data/Stage/PrtOside.pbm +share/nxengine-evo/data/Stage/PrtPens.pbm +share/nxengine-evo/data/Stage/PrtRiver.pbm +share/nxengine-evo/data/Stage/PrtSand.pbm +share/nxengine-evo/data/Stage/PrtStore.pbm +share/nxengine-evo/data/Stage/PrtWeed.pbm +share/nxengine-evo/data/Stage/PrtWhite.pbm +share/nxengine-evo/data/Stage/Ring1.pxe +share/nxengine-evo/data/Stage/Ring1.pxm +share/nxengine-evo/data/Stage/Ring1.tsc +share/nxengine-evo/data/Stage/Ring2.pxe +share/nxengine-evo/data/Stage/Ring2.pxm +share/nxengine-evo/data/Stage/Ring2.tsc +share/nxengine-evo/data/Stage/Ring3.pxe +share/nxengine-evo/data/Stage/Ring3.pxm +share/nxengine-evo/data/Stage/Ring3.tsc +share/nxengine-evo/data/Stage/River.pxa +share/nxengine-evo/data/Stage/River.pxe +share/nxengine-evo/data/Stage/River.pxm +share/nxengine-evo/data/Stage/River.tsc +share/nxengine-evo/data/Stage/Sand.pxa +share/nxengine-evo/data/Stage/Sand.pxe +share/nxengine-evo/data/Stage/Sand.pxm +share/nxengine-evo/data/Stage/Sand.tsc +share/nxengine-evo/data/Stage/SandE.pxe +share/nxengine-evo/data/Stage/SandE.pxm +share/nxengine-evo/data/Stage/SandE.tsc +share/nxengine-evo/data/Stage/Santa.pxe +share/nxengine-evo/data/Stage/Santa.pxm +share/nxengine-evo/data/Stage/Santa.tsc +share/nxengine-evo/data/Stage/Shelt.pxa +share/nxengine-evo/data/Stage/Shelt.pxe +share/nxengine-evo/data/Stage/Shelt.pxm +share/nxengine-evo/data/Stage/Shelt.tsc +share/nxengine-evo/data/Stage/Start.pxe +share/nxengine-evo/data/Stage/Start.pxm +share/nxengine-evo/data/Stage/Start.tsc +share/nxengine-evo/data/Stage/Statue.pxe +share/nxengine-evo/data/Stage/Statue.pxm +share/nxengine-evo/data/Stage/Statue.tsc +share/nxengine-evo/data/Stage/Store.pxa +share/nxengine-evo/data/Stage/Stream.pxe +share/nxengine-evo/data/Stage/Stream.pxm +share/nxengine-evo/data/Stage/Stream.tsc +share/nxengine-evo/data/Stage/Weed.pxa +share/nxengine-evo/data/Stage/Weed.pxe +share/nxengine-evo/data/Stage/Weed.pxm +share/nxengine-evo/data/Stage/Weed.tsc +share/nxengine-evo/data/Stage/WeedB.pxe +share/nxengine-evo/data/Stage/WeedB.pxm +share/nxengine-evo/data/Stage/WeedB.tsc +share/nxengine-evo/data/Stage/WeedD.pxe +share/nxengine-evo/data/Stage/WeedD.pxm +share/nxengine-evo/data/Stage/WeedD.tsc +share/nxengine-evo/data/Stage/WeedS.pxe +share/nxengine-evo/data/Stage/WeedS.pxm +share/nxengine-evo/data/Stage/WeedS.tsc +share/nxengine-evo/data/Stage/White.pxa +share/nxengine-evo/data/Stage/e_Blcn.pxe +share/nxengine-evo/data/Stage/e_Blcn.pxm +share/nxengine-evo/data/Stage/e_Blcn.tsc +share/nxengine-evo/data/Stage/e_Ceme.pxe +share/nxengine-evo/data/Stage/e_Ceme.pxm +share/nxengine-evo/data/Stage/e_Ceme.tsc +share/nxengine-evo/data/Stage/e_Jenk.pxe +share/nxengine-evo/data/Stage/e_Jenk.pxm +share/nxengine-evo/data/Stage/e_Jenk.tsc +share/nxengine-evo/data/Stage/e_Labo.pxe +share/nxengine-evo/data/Stage/e_Labo.pxm +share/nxengine-evo/data/Stage/e_Labo.tsc +share/nxengine-evo/data/Stage/e_Malc.pxe +share/nxengine-evo/data/Stage/e_Malc.pxm +share/nxengine-evo/data/Stage/e_Malc.tsc +share/nxengine-evo/data/Stage/e_Maze.pxe +share/nxengine-evo/data/Stage/e_Maze.pxm +share/nxengine-evo/data/Stage/e_Maze.tsc +share/nxengine-evo/data/Stage/e_Sky.pxe +share/nxengine-evo/data/Stage/e_Sky.pxm +share/nxengine-evo/data/Stage/e_Sky.tsc +share/nxengine-evo/data/StageImage.pbm +share/nxengine-evo/data/StageMeta/Ballo2.json +share/nxengine-evo/data/StageMeta/CentW.json +share/nxengine-evo/data/StageMeta/Chako.json +share/nxengine-evo/data/StageMeta/Clock.json +share/nxengine-evo/data/StageMeta/Comu.json +share/nxengine-evo/data/StageMeta/Cthu.json +share/nxengine-evo/data/StageMeta/Cthu2.json +share/nxengine-evo/data/StageMeta/Curly.json +share/nxengine-evo/data/StageMeta/CurlyS.json +share/nxengine-evo/data/StageMeta/Dark.json +share/nxengine-evo/data/StageMeta/Drain.json +share/nxengine-evo/data/StageMeta/EgEnd1.json +share/nxengine-evo/data/StageMeta/EgEnd2.json +share/nxengine-evo/data/StageMeta/EggR.json +share/nxengine-evo/data/StageMeta/EggR2.json +share/nxengine-evo/data/StageMeta/EggX.json +share/nxengine-evo/data/StageMeta/EggX2.json +share/nxengine-evo/data/StageMeta/Frog.json +share/nxengine-evo/data/StageMeta/Gard.json +share/nxengine-evo/data/StageMeta/Hell1.json +share/nxengine-evo/data/StageMeta/Hell4.json +share/nxengine-evo/data/StageMeta/Hell42.json +share/nxengine-evo/data/StageMeta/Itoh.json +share/nxengine-evo/data/StageMeta/Jail1.json +share/nxengine-evo/data/StageMeta/Jail2.json +share/nxengine-evo/data/StageMeta/Jenka1.json +share/nxengine-evo/data/StageMeta/Jenka2.json +share/nxengine-evo/data/StageMeta/Little.json +share/nxengine-evo/data/StageMeta/Lounge.json +share/nxengine-evo/data/StageMeta/Malco.json +share/nxengine-evo/data/StageMeta/Mapi.json +share/nxengine-evo/data/StageMeta/MazeA.json +share/nxengine-evo/data/StageMeta/MazeB.json +share/nxengine-evo/data/StageMeta/MazeD.json +share/nxengine-evo/data/StageMeta/MazeH.json +share/nxengine-evo/data/StageMeta/MazeI.json +share/nxengine-evo/data/StageMeta/MazeO.json +share/nxengine-evo/data/StageMeta/MazeS.json +share/nxengine-evo/data/StageMeta/Momo.json +share/nxengine-evo/data/StageMeta/Pens1.json +share/nxengine-evo/data/StageMeta/Pens2.json +share/nxengine-evo/data/StageMeta/Pixel.json +share/nxengine-evo/data/StageMeta/Plant.json +share/nxengine-evo/data/StageMeta/Pole.json +share/nxengine-evo/data/StageMeta/Prefa1.json +share/nxengine-evo/data/StageMeta/Prefa2.json +share/nxengine-evo/data/StageMeta/Shelt.json +share/nxengine-evo/data/StageMeta/Start.json +share/nxengine-evo/data/StageMeta/Statue.json +share/nxengine-evo/data/StageMeta/WeedD.json +share/nxengine-evo/data/StageMeta/WeedS.json +share/nxengine-evo/data/StageMeta/e_Malc.json +share/nxengine-evo/data/StageMeta/e_Maze.json +share/nxengine-evo/data/StageSelect.tsc +share/nxengine-evo/data/TextBox.pbm +share/nxengine-evo/data/Title.pbm +share/nxengine-evo/data/bk0.pbm +share/nxengine-evo/data/bkBlack.pbm +share/nxengine-evo/data/bkBlue.pbm +share/nxengine-evo/data/bkFall.pbm +share/nxengine-evo/data/bkFog.pbm +share/nxengine-evo/data/bkFog480fix.pbm +share/nxengine-evo/data/bkGard.pbm +share/nxengine-evo/data/bkGray.pbm +share/nxengine-evo/data/bkGreen.pbm +share/nxengine-evo/data/bkHellish.pbm +share/nxengine-evo/data/bkHellish480fix.pbm +share/nxengine-evo/data/bkLight.pbm +share/nxengine-evo/data/bkLight480fix.pbm +share/nxengine-evo/data/bkMaze.pbm +share/nxengine-evo/data/bkMoon.pbm +share/nxengine-evo/data/bkMoon480fix.pbm +share/nxengine-evo/data/bkRed.pbm +share/nxengine-evo/data/bkSunset.pbm +share/nxengine-evo/data/bkSunset480fix.pbm +share/nxengine-evo/data/bkWater.pbm +share/nxengine-evo/data/casts.pbm +share/nxengine-evo/data/endpic/credit01.bmp +share/nxengine-evo/data/endpic/credit01m.bmp +share/nxengine-evo/data/endpic/credit02.bmp +share/nxengine-evo/data/endpic/credit02m.bmp +share/nxengine-evo/data/endpic/credit03.bmp +share/nxengine-evo/data/endpic/credit03m.bmp +share/nxengine-evo/data/endpic/credit04.bmp +share/nxengine-evo/data/endpic/credit05.bmp +share/nxengine-evo/data/endpic/credit06.bmp +share/nxengine-evo/data/endpic/credit07.bmp +share/nxengine-evo/data/endpic/credit08.bmp +share/nxengine-evo/data/endpic/credit09.bmp +share/nxengine-evo/data/endpic/credit10.bmp +share/nxengine-evo/data/endpic/credit11.bmp +share/nxengine-evo/data/endpic/credit12.bmp +share/nxengine-evo/data/endpic/credit14.bmp +share/nxengine-evo/data/endpic/credit15.bmp +share/nxengine-evo/data/endpic/credit16.bmp +share/nxengine-evo/data/endpic/credit17.bmp +share/nxengine-evo/data/endpic/credit18.bmp +share/nxengine-evo/data/endpic/pixel.bmp +share/nxengine-evo/data/font_1.fnt +share/nxengine-evo/data/font_1_0.png +share/nxengine-evo/data/font_2.fnt +share/nxengine-evo/data/font_2_0.png +share/nxengine-evo/data/font_3.fnt +share/nxengine-evo/data/font_3_0.png +share/nxengine-evo/data/font_3_1.png +share/nxengine-evo/data/font_4.fnt +share/nxengine-evo/data/font_4_0.png +share/nxengine-evo/data/font_5.fnt +share/nxengine-evo/data/font_5_0.png +share/nxengine-evo/data/music.json +share/nxengine-evo/data/music_dirs.json +share/nxengine-evo/data/npc.tbl +share/nxengine-evo/data/org/access.org +share/nxengine-evo/data/org/anzen.org +share/nxengine-evo/data/org/balcony.org +share/nxengine-evo/data/org/ballos.org +share/nxengine-evo/data/org/bdown.org +share/nxengine-evo/data/org/cemetery.org +share/nxengine-evo/data/org/curly.org +share/nxengine-evo/data/org/dr.org +share/nxengine-evo/data/org/ending.org +share/nxengine-evo/data/org/escape.org +share/nxengine-evo/data/org/fanfale1.org +share/nxengine-evo/data/org/fanfale2.org +share/nxengine-evo/data/org/fanfale3.org +share/nxengine-evo/data/org/fireeye.org +share/nxengine-evo/data/org/gameover.org +share/nxengine-evo/data/org/ginsuke.org +share/nxengine-evo/data/org/grand.org +share/nxengine-evo/data/org/gravity.org +share/nxengine-evo/data/org/hell.org +share/nxengine-evo/data/org/ironh.org +share/nxengine-evo/data/org/jenka.org +share/nxengine-evo/data/org/jenka2.org +share/nxengine-evo/data/org/kodou.org +share/nxengine-evo/data/org/lastbt3.org +share/nxengine-evo/data/org/lastbtl.org +share/nxengine-evo/data/org/lastcave.org +share/nxengine-evo/data/org/marine.org +share/nxengine-evo/data/org/maze.org +share/nxengine-evo/data/org/mdown2.org +share/nxengine-evo/data/org/mura.org +share/nxengine-evo/data/org/oside.org +share/nxengine-evo/data/org/plant.org +share/nxengine-evo/data/org/quiet.org +share/nxengine-evo/data/org/requiem.org +share/nxengine-evo/data/org/toroko.org +share/nxengine-evo/data/org/vivi.org +share/nxengine-evo/data/org/wanpak2.org +share/nxengine-evo/data/org/wanpaku.org +share/nxengine-evo/data/org/weed.org +share/nxengine-evo/data/org/white.org +share/nxengine-evo/data/org/zonbie.org +share/nxengine-evo/data/pxt/fx01.pxt +share/nxengine-evo/data/pxt/fx02.pxt +share/nxengine-evo/data/pxt/fx03.pxt +share/nxengine-evo/data/pxt/fx04.pxt +share/nxengine-evo/data/pxt/fx05.pxt +share/nxengine-evo/data/pxt/fx06.pxt +share/nxengine-evo/data/pxt/fx07.pxt +share/nxengine-evo/data/pxt/fx0b.pxt +share/nxengine-evo/data/pxt/fx0c.pxt +share/nxengine-evo/data/pxt/fx0e.pxt +share/nxengine-evo/data/pxt/fx0f.pxt +share/nxengine-evo/data/pxt/fx10.pxt +share/nxengine-evo/data/pxt/fx11.pxt +share/nxengine-evo/data/pxt/fx12.pxt +share/nxengine-evo/data/pxt/fx14.pxt +share/nxengine-evo/data/pxt/fx15.pxt +share/nxengine-evo/data/pxt/fx16.pxt +share/nxengine-evo/data/pxt/fx17.pxt +share/nxengine-evo/data/pxt/fx18.pxt +share/nxengine-evo/data/pxt/fx19.pxt +share/nxengine-evo/data/pxt/fx1a.pxt +share/nxengine-evo/data/pxt/fx1b.pxt +share/nxengine-evo/data/pxt/fx1c.pxt +share/nxengine-evo/data/pxt/fx1d.pxt +share/nxengine-evo/data/pxt/fx1e.pxt +share/nxengine-evo/data/pxt/fx1f.pxt +share/nxengine-evo/data/pxt/fx20.pxt +share/nxengine-evo/data/pxt/fx21.pxt +share/nxengine-evo/data/pxt/fx22.pxt +share/nxengine-evo/data/pxt/fx23.pxt +share/nxengine-evo/data/pxt/fx25.pxt +share/nxengine-evo/data/pxt/fx26.pxt +share/nxengine-evo/data/pxt/fx27.pxt +share/nxengine-evo/data/pxt/fx28.pxt +share/nxengine-evo/data/pxt/fx29.pxt +share/nxengine-evo/data/pxt/fx2a.pxt +share/nxengine-evo/data/pxt/fx2b.pxt +share/nxengine-evo/data/pxt/fx2c.pxt +share/nxengine-evo/data/pxt/fx2d.pxt +share/nxengine-evo/data/pxt/fx2e.pxt +share/nxengine-evo/data/pxt/fx2f.pxt +share/nxengine-evo/data/pxt/fx30.pxt +share/nxengine-evo/data/pxt/fx31.pxt +share/nxengine-evo/data/pxt/fx32.pxt +share/nxengine-evo/data/pxt/fx33.pxt +share/nxengine-evo/data/pxt/fx34.pxt +share/nxengine-evo/data/pxt/fx35.pxt +share/nxengine-evo/data/pxt/fx36.pxt +share/nxengine-evo/data/pxt/fx37.pxt +share/nxengine-evo/data/pxt/fx38.pxt +share/nxengine-evo/data/pxt/fx39.pxt +share/nxengine-evo/data/pxt/fx3a.pxt +share/nxengine-evo/data/pxt/fx3b.pxt +share/nxengine-evo/data/pxt/fx3c.pxt +share/nxengine-evo/data/pxt/fx3d.pxt +share/nxengine-evo/data/pxt/fx3e.pxt +share/nxengine-evo/data/pxt/fx3f.pxt +share/nxengine-evo/data/pxt/fx40.pxt +share/nxengine-evo/data/pxt/fx41.pxt +share/nxengine-evo/data/pxt/fx46.pxt +share/nxengine-evo/data/pxt/fx47.pxt +share/nxengine-evo/data/pxt/fx48.pxt +share/nxengine-evo/data/pxt/fx64.pxt +share/nxengine-evo/data/pxt/fx65.pxt +share/nxengine-evo/data/pxt/fx66.pxt +share/nxengine-evo/data/pxt/fx67.pxt +share/nxengine-evo/data/pxt/fx68.pxt +share/nxengine-evo/data/pxt/fx69.pxt +share/nxengine-evo/data/pxt/fx6a.pxt +share/nxengine-evo/data/pxt/fx6b.pxt +share/nxengine-evo/data/pxt/fx6c.pxt +share/nxengine-evo/data/pxt/fx6d.pxt +share/nxengine-evo/data/pxt/fx6e.pxt +share/nxengine-evo/data/pxt/fx6f.pxt +share/nxengine-evo/data/pxt/fx70.pxt +share/nxengine-evo/data/pxt/fx71.pxt +share/nxengine-evo/data/pxt/fx72.pxt +share/nxengine-evo/data/pxt/fx73.pxt +share/nxengine-evo/data/pxt/fx74.pxt +share/nxengine-evo/data/pxt/fx75.pxt +share/nxengine-evo/data/pxt/fx96.pxt +share/nxengine-evo/data/pxt/fx97.pxt +share/nxengine-evo/data/pxt/fx98.pxt +share/nxengine-evo/data/pxt/fx99.pxt +share/nxengine-evo/data/pxt/fx9a.pxt +share/nxengine-evo/data/pxt/fx9b.pxt +share/nxengine-evo/data/sprites.sif +share/nxengine-evo/data/stage.dat +share/nxengine-evo/data/system.json +share/nxengine-evo/data/tilekey.dat +share/nxengine-evo/data/wavetable.dat +share/nxengine-evo/nxengine-evo +@pkgdir libexec diff --git a/games/nxengine-evo/distinfo b/games/nxengine-evo/distinfo new file mode 100644 index 00000000000..19b6d257ba4 --- /dev/null +++ b/games/nxengine-evo/distinfo @@ -0,0 +1,12 @@ +$NetBSD: distinfo,v 1.1 2020/09/30 08:07:56 nia Exp $ + +SHA1 (nxengine-evo-2.6.4/cavestoryen.zip) = aa9aca14e95914acc9799b651b5f5bd21847edb1 +RMD160 (nxengine-evo-2.6.4/cavestoryen.zip) = 46b23d2a102784004c0950a8d844ced26c6dc4b1 +SHA512 (nxengine-evo-2.6.4/cavestoryen.zip) = 9c7c2c6c8114974df14b1dce379b86da48caf299716e1de3d743e47c3ac6a8c13c4a0ada85778e69f11c2428f991dcbfcb0020212279f9c1787260102988cbc3 +Size (nxengine-evo-2.6.4/cavestoryen.zip) = 1136575 bytes +SHA1 (nxengine-evo-2.6.4/nxengine-evo.tar.gz) = 1fb3efd2990f5fd61eecb6c9a7f28b053fc69562 +RMD160 (nxengine-evo-2.6.4/nxengine-evo.tar.gz) = 972e4d4bd7c7233d54825f2ca6d5436922d56f15 +SHA512 (nxengine-evo-2.6.4/nxengine-evo.tar.gz) = e931d6ea6a726edecc75223139dd0a4b1eef840eca599b74146a98b7aa34f38dc5c627d3c65dd25ac23ce86531ce0a3a06a30814256743c035955c69641cae65 +Size (nxengine-evo-2.6.4/nxengine-evo.tar.gz) = 3329255 bytes +SHA1 (patch-src_pause_dialog.cpp) = 2228fa863249d70a0cc15ec610bc18d6dca516f9 +SHA1 (patch-src_sound_Pixtone.cpp) = a6936619d8e1ac147b2dc8ec64b55a348cdf2c84 diff --git a/games/nxengine-evo/files/nxengine-evo.desktop b/games/nxengine-evo/files/nxengine-evo.desktop new file mode 100644 index 00000000000..7e6383a7df9 --- /dev/null +++ b/games/nxengine-evo/files/nxengine-evo.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Type=Application +Encoding=UTF-8 +Name=NXEngine-evo +Comment=Complete rewrite of the platform-adventure game Cave Story +Icon=nxengine-evo +Exec=nxengine-evo +Terminal=false +Categories=Game;AdventureGame; diff --git a/games/nxengine-evo/files/nxengine-evo.sh.in b/games/nxengine-evo/files/nxengine-evo.sh.in new file mode 100644 index 00000000000..bdd8577c3c6 --- /dev/null +++ b/games/nxengine-evo/files/nxengine-evo.sh.in @@ -0,0 +1,8 @@ +#!/bin/sh +if [ -n "${XDG_DATA_HOME}" ]; then + DIR="${XDG_DATA_HOME}/nxengine/nxengine-evo" +else + DIR="${HOME}/.local/share/nxengine/nxengine-evo" +fi +mkdir -p "${DIR}" && cd "@PREFIX@/share/nxengine-evo" && \ + exec "@PREFIX@/share/nxengine-evo/${0##*/}" "$@" diff --git a/games/nxengine-evo/patches/patch-src_pause_dialog.cpp b/games/nxengine-evo/patches/patch-src_pause_dialog.cpp new file mode 100644 index 00000000000..e274a4491cd --- /dev/null +++ b/games/nxengine-evo/patches/patch-src_pause_dialog.cpp @@ -0,0 +1,21 @@ +$NetBSD: patch-src_pause_dialog.cpp,v 1.1 2020/09/30 08:07:57 nia Exp $ + +[PATCH] Fix use after free. See #161 + +https://github.com/nxengine/nxengine-evo/commit/f2135e34461eb8bcc74e3a4493840421ed15bca8.patch + +--- src/pause/dialog.cpp.orig 2019-04-08 14:37:06.000000000 +0000 ++++ src/pause/dialog.cpp +@@ -260,10 +260,10 @@ void Dialog::RunInput() + } + else if ((item->type == OD_ACTIVATED) && item->activate && (dir == 0)) + { +- (*item->activate)(item, dir); +- + if (item->update) + (*item->update)(item); ++ ++ (*item->activate)(item, dir); + } + else if ((item->type == OD_CHOICE) && item->activate && (dir != 0)) + { diff --git a/games/nxengine-evo/patches/patch-src_sound_Pixtone.cpp b/games/nxengine-evo/patches/patch-src_sound_Pixtone.cpp new file mode 100644 index 00000000000..a876fc7d907 --- /dev/null +++ b/games/nxengine-evo/patches/patch-src_sound_Pixtone.cpp @@ -0,0 +1,39 @@ +$NetBSD: patch-src_sound_Pixtone.cpp,v 1.1 2020/09/30 08:07:57 nia Exp $ + +[PATCH] Fix buffer overflow + +https://github.com/nxengine/nxengine-evo/commit/75b8b8e3b067fd354baa903332f2a3254d1cc017.patch + +--- src/sound/Pixtone.cpp.orig 2019-04-08 14:37:06.000000000 +0000 ++++ src/sound/Pixtone.cpp +@@ -17,6 +17,8 @@ + #include <cstdlib> + #include <cstring> + #include <functional> ++#include <iomanip> ++#include <sstream> + #include <vector> + + // using std::fgetc; +@@ -274,7 +276,6 @@ bool Pixtone::init() + wave[MOD_NOISE].table[i] = (signed char)(seed >> 16) / 2; // Pseudorandom + } + +- char fname[80]; + uint32_t slot; + + stat("Loading Sound FX..."); +@@ -282,10 +283,11 @@ bool Pixtone::init() + std::string path = ResourceManager::getInstance()->getPathForDir("pxt/"); + for (slot = 1; slot <= NUM_SOUNDS; slot++) + { +- sprintf(fname, "%sfx%02x.pxt", path.c_str(), slot); ++ std::ostringstream filename; ++ filename << path << "fx" << std::hex << std::setw(2) << std::setfill('0') << slot << ".pxt"; + stPXSound snd; + +- if (!snd.load(fname)) ++ if (!snd.load(filename.str())) + continue; + snd.render(); + |