diff --git a/games/rocksndiamonds/Makefile b/games/rocksndiamonds/Makefile index 4f2a5e918fb3..93e8c473eb7c 100644 --- a/games/rocksndiamonds/Makefile +++ b/games/rocksndiamonds/Makefile @@ -1,116 +1,113 @@ PORTNAME= rocksndiamonds -PORTVERSION= 3.3.1.2 -PORTREVISION= 5 +DISTVERSION= 3.3.1.2 +PORTREVISION= 6 CATEGORIES= games MASTER_SITES= http://www.artsoft.org/RELEASES/unix/rocksndiamonds/:game \ http://www.artsoft.org/RELEASES/rocksndiamonds/levels/:levels_artsoft \ SF/nemysisfreebsdp/${CATEGORIES}/${PORTNAME}/ # Please contact the MAINTAINER if a Level is missing DISTFILES= ${PORTNAME}-${DISTVERSION}${EXTRACT_SUFX}:game \ rnd_jue-3.3.0.0${EXTRACT_SUFX}:game \ ${LEVELS_ARTSOFT:S/$/.zip/}:levels_artsoft \ ${LEVELS_BD_FANS:S/$/.zip/} \ Tutorial_Alpha.zip \ ${PORTNAME}_icons.zip DIST_SUBDIR= ${PORTNAME} EXTRACT_ONLY= ${PORTNAME}-${DISTVERSION}${EXTRACT_SUFX} \ rnd_jue-3.3.0.0.tar.gz \ ${PORTNAME}_icons.zip MAINTAINER= ports@FreeBSD.org COMMENT= Colorful Boulderdash'n'Emerald Mine'n'Sokoban'n'Stuff WWW= https://www.artsoft.org/rocksndiamonds/ LICENSE= GPLv2 LICENSE_FILE= ${WRKSRC}/COPYING -BROKEN_FreeBSD_13= ld: error: duplicate symbol: setup -BROKEN_FreeBSD_14= ld: error: duplicate symbol: setup - LIB_DEPENDS= libsmpeg.so:multimedia/smpeg EXTRACT_DEPENDS=${UNZIP_CMD}:archivers/unzip USES= gmake gnome iconv sdl USE_SDL= image mixer net sdl MAKE_ARGS= CC="${CC}" MAKE="${MAKE_CMD}" OPTIONS="${CFLAGS}" \ RO_GAME_DIR="${DATADIR}" \ X11_PATH="${LOCALBASE}" ALL_TARGET= sdl SUB_FILES= pkg-message LEVELS_ARTSOFT= Sokoban-1.0.0 Contributions-1.2.0 LEVELS_BD_FANS= Bug_Hunter Classic_Boulderdash Classic_Sokoban Classic_Supaplex \ Colourful_World Love_Pac Maniac_Mines Negundo_Dash Pipemania \ Rockfighter Step_Puzzles Super_Jetset_Willy_Bros_3 \ Through_the_Ages Trucky_Cargos_v0.1 Walpurgis_Collection \ rnd_the_h_world PORTDOCS= * DOCSRCDIR1= ${WRKSRC} DOC_FILES1= CREDITS ChangeLog README DOCSRCDIR2= ${WRKSRC}/docs/elements DOCSDIR2= ${DOCSDIR}/docs/elements DOC_FILES2= *.txt ICON_SIZES= 32x32 48x48 64x64 72x72 96x96 DESKTOP_ENTRIES="Rocks'n'Diamonds" "" "${PORTNAME}" \ "${PORTNAME}" "Game;ArcadeGame;" "" OPTIONS_DEFINE= DOCS post-extract-script: @${MKDIR} ${WRKDIR}/${PORTNAME} @(cd ${WRKDIR}/rnd_jue*/levels/rnd_jue && ${RM} -r jue_sobigo) @(cd ${WRKDIR}/rnd_jue*/levels && ${COPYTREE_SHARE} rnd_jue \ ${WRKDIR}/${PORTNAME}) .for l in ${LEVELS_ARTSOFT:S/$/.zip/} ${LEVELS_BD_FANS:S/$/.zip/} @${UNZIP_CMD} -qo -d ${WRKDIR}/${PORTNAME} ${_DISTDIR}/${l} .endfor @${UNZIP_CMD} -qo -d ${WRKDIR}/${PORTNAME}/Tutorials \ ${_DISTDIR}/Tutorial_Alpha.zip @(cd ${WRKDIR}/${PORTNAME}/Tutorials && \ ${MV} "Tutorial Alpha" rnd_tutorial_alpha) @${RM} ${WRKDIR}/${PORTNAME}/Readme.txt post-patch: @${REINPLACE_CMD} \ -e 's|sdl-config|$${SDL_CONFIG}|g' ${WRKSRC}/src/Makefile @${REINPLACE_CMD} \ -e 's|machine/soundcard.h|sys/soundcard.h|' \ ${WRKSRC}/src/libgame/sound.c @${REINPLACE_CMD} \ -e 's|machine/joystick.h|sys/joystick.h|' \ ${WRKSRC}/src/libgame/joystick.c do-install: ${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${STAGEDIR}${PREFIX}/bin/ ${INSTALL_MAN} ${WRKSRC}/${PORTNAME}.1 ${STAGEDIR}${MAN1PREFIX}/man/man1/ .for dir in graphics levels music sounds @(cd ${WRKSRC} && ${COPYTREE_SHARE} ${dir} ${STAGEDIR}${DATADIR}) .endfor @cd ${WRKDIR}/${PORTNAME} && ${COPYTREE_SHARE} . \ ${STAGEDIR}${DATADIR}/levels/ .for s in ${ICON_SIZES} @${MKDIR} ${STAGEDIR}${PREFIX}/share/icons/hicolor/${s}/apps/ ${INSTALL_DATA} ${WRKDIR}/${PORTNAME}_${s}.png \ ${STAGEDIR}${PREFIX}/share/icons/hicolor/${s}/apps/${PORTNAME}.png .endfor - ${LN} -sf ${PREFIX}/share/icons/hicolor/48x48/apps/${PORTNAME}.png \ + ${RLN} ${STAGEDIR}${PREFIX}/share/icons/hicolor/48x48/apps/${PORTNAME}.png \ ${STAGEDIR}${PREFIX}/share/pixmaps/ @${MKDIR} ${STAGEDIR}${DOCSDIR} ${INSTALL_DATA} ${DOC_FILES1:S|^|${DOCSRCDIR1}/|} ${STAGEDIR}${DOCSDIR} @${MKDIR} ${STAGEDIR}${DOCSDIR2} ${INSTALL_DATA} ${DOC_FILES2:S|^|${DOCSRCDIR2}/|} ${STAGEDIR}${DOCSDIR2} @cd ${STAGEDIR}${PREFIX} && ${FIND} ${DATADIR_REL}/levels \ -type f >> ${TMPPLIST} .include diff --git a/games/rocksndiamonds/files/patch-src_main.c b/games/rocksndiamonds/files/patch-src_main.c new file mode 100644 index 000000000000..01d8b5a15c09 --- /dev/null +++ b/games/rocksndiamonds/files/patch-src_main.c @@ -0,0 +1,36 @@ +--- src/main.c.orig 2013-11-19 20:09:56 UTC ++++ src/main.c +@@ -42,12 +42,12 @@ int key_joystick_mapping = 0; + + #if 1 + #if NEW_SCROLL +-boolean redraw[2 + MAX_LEV_FIELDX + 2][2 + MAX_LEV_FIELDY + 2]; ++extern boolean redraw[2 + MAX_LEV_FIELDX + 2][2 + MAX_LEV_FIELDY + 2]; + #else +-boolean redraw[MAX_LEV_FIELDX + 2][MAX_LEV_FIELDY + 2]; ++extern boolean redraw[MAX_LEV_FIELDX + 2][MAX_LEV_FIELDY + 2]; + #endif + #else +-boolean redraw[MAX_BUF_XSIZE][MAX_BUF_YSIZE]; ++extern boolean redraw[MAX_BUF_XSIZE][MAX_BUF_YSIZE]; + #endif + int redraw_x1 = 0, redraw_y1 = 0; + +@@ -79,7 +79,7 @@ short ExplodeDelay[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; + int RunnerVisit[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; + int PlayerVisit[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; + +-int GfxFrame[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; ++extern int GfxFrame[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; + int GfxRandom[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; + int GfxElement[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; + int GfxAction[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +@@ -140,7 +140,7 @@ struct LevelInfo level, level_template; + struct PlayerInfo stored_player[MAX_PLAYERS], *local_player = NULL; + struct HiScore highscore[MAX_SCORE_ENTRIES]; + struct TapeInfo tape; +-struct SetupInfo setup; ++extern struct SetupInfo setup; + struct GameInfo game; + struct GlobalInfo global; + struct BorderInfo border;