From 1609df9339929260e1d860b6d38f56f663f02aed Mon Sep 17 00:00:00 2001 From: Mathieu Schroeter Date: Sun, 5 Aug 2018 14:36:35 +0200 Subject: [PATCH] Fix and install the planetblupi manpage --- CMakeLists.txt | 8 ++ cmake/Ronn2Man.cmake | 59 +++++++++++++ planetblupi.1.ronn | 205 +++++++++++++++++++++++++++++++++++++++++++ src/planetblupi.ronn | 155 -------------------------------- 4 files changed, 272 insertions(+), 155 deletions(-) create mode 100644 cmake/Ronn2Man.cmake create mode 100644 planetblupi.1.ronn delete mode 100644 src/planetblupi.ronn diff --git a/CMakeLists.txt b/CMakeLists.txt index 850c0f5..6258620 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,6 +6,7 @@ set (CMAKE_CXX_STANDARD 11) include (GNUInstallDirs) include (${CMAKE_ROOT}/Modules/ExternalProject.cmake) +include ("${CMAKE_SOURCE_DIR}/cmake/Ronn2Man.cmake") include_directories (${CMAKE_INSTALL_PREFIX}/include) include_directories (${CMAKE_INSTALL_PREFIX}/include/SDL2) @@ -274,6 +275,13 @@ foreach (file ${_gmoFiles}) add_dependencies (${planetblupi_OUTPUT} "po-${_lang}") endforeach (file) +######### +# manpage +######### + +add_manpage_target () +manpage(${PROJECT_NAME} 1) + ############## # Installation ############## diff --git a/cmake/Ronn2Man.cmake b/cmake/Ronn2Man.cmake new file mode 100644 index 0000000..1868412 --- /dev/null +++ b/cmake/Ronn2Man.cmake @@ -0,0 +1,59 @@ +# +# Based on work of Emmanuel Roullit +# Copyright 2009, 2012 Emmanuel Roullit. +# Subject to the GPL, version 2. +# +MACRO(ADD_MANPAGE_TARGET) + # It is not possible add a dependency to target 'install' + # Run hard-coded 'make man' when 'make install' is invoked + INSTALL(CODE "EXECUTE_PROCESS(COMMAND make man)") + ADD_CUSTOM_TARGET(man) +ENDMACRO(ADD_MANPAGE_TARGET) + +FIND_PROGRAM(RONN ronn) +FIND_PROGRAM(GZIP gzip) + +IF (NOT RONN OR NOT GZIP) + IF (NOT RONN) + BUILD_WARNING ("ronn not found, manpages won't be generated") + ENDIF(NOT RONN) + IF (NOT GZIP) + BUILD_WARNING ("gzip not found, manpages won't be generated") + ENDIF(NOT GZIP) + # empty macro + MACRO(manpage MANFILE) + ENDMACRO(manpage) + SET (MANPAGES_SUPPORT FALSE) +ELSE (NOT RONN OR NOT GZIP) + MESSAGE (STATUS "Looking for ronn to generate manpages - found") + SET (MANPAGES_SUPPORT TRUE) + + MACRO(manpage RONNFILE SECTION) + SET(RONNFILE_FULL_PATH ${CMAKE_CURRENT_SOURCE_DIR}/${RONNFILE}) + + ADD_CUSTOM_COMMAND( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${RONNFILE}.${SECTION} + DEPENDS ${RONNFILE_FULL_PATH}.${SECTION}.ronn + COMMAND ${RONN} + ARGS -r --pipe ${RONNFILE_FULL_PATH}.${SECTION}.ronn + > ${CMAKE_CURRENT_BINARY_DIR}/${RONNFILE}.${SECTION} + ) + + ADD_CUSTOM_COMMAND( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${RONNFILE}.${SECTION}.gz + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${RONNFILE}.${SECTION} + COMMAND ${GZIP} -c ${CMAKE_CURRENT_BINARY_DIR}/${RONNFILE}.${SECTION} + > ${CMAKE_CURRENT_BINARY_DIR}/${RONNFILE}.${SECTION}.gz + ) + + SET(MANPAGE_TARGET "man-${RONNFILE}") + + ADD_CUSTOM_TARGET(${MANPAGE_TARGET} DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${RONNFILE}.${SECTION}.gz) + ADD_DEPENDENCIES(man ${MANPAGE_TARGET}) + + INSTALL( + FILES ${CMAKE_CURRENT_BINARY_DIR}/${RONNFILE}.${SECTION}.gz + DESTINATION share/man/man${SECTION} + ) + ENDMACRO(manpage RONNFILE SECTION) +ENDIF(NOT RONN OR NOT GZIP) diff --git a/planetblupi.1.ronn b/planetblupi.1.ronn new file mode 100644 index 0000000..c495549 --- /dev/null +++ b/planetblupi.1.ronn @@ -0,0 +1,205 @@ + +planetblupi(1) -- a delirious spell-binding game +================================================ + +## SYNOPSIS + +`planetblupi` [...] + +## DESCRIPTION + +**Planet Blupi** is a strategy and adventure game. It subtly blends action with +thought-provoking challenges. Behind the quiet and gentle facade, you'll enjoy +a fascinating diversion full of surprises. Planet Blupi is ideal for ages +12 to 99.. + +This version contains over 30 missions and a built in editor, which enables you +to construct your own missions. + +## CONFIGURATION + +**Planet Blupi** supports at least GNU/Linux 2.6.32, macOS 10.9 and Microsoft +Windows Vista. If your OS is not listed, maybe it's possible to build yourself +the game. Most Unix and Unix-like OS should be supported. + +For the video output, a 3D accelerated video card is highly recommended. It's +still possible to use pure software rendering in all other cases. + +For the sound card, any cards supported by ALSA, PulseAudio, macOS or +DirectSound should work fine. + +## SCREEN + +The game **Planet Blupi** runs in full screen by using your desktop resolution. +If you are encounting errors, you can start the game by default in windowed +mode. Proceed as follows: + +1. Quit the game **Planet Blupi**. +2. Open the file `share/planetblupi/data/config.json` with a text editor. +3. Replace `fullscreen: true` by `fullscreen: false`. +4. Save and restart the game. + +In this mode the screen is no more scrolled if the mouse touches the window +borders. Use the keyboard arrows instead. + +It's possible to start the game with `--fullscreen off` instead of editing +the `config.json` file. + +An other way is to start the game in legacy mode. With this mode, the game +runs with the original 640x480 resolution. Use `--legacy` on the command +line. + +If the problem persists, maybe you should try to start the game with the +software renderer. Edit the `config.json` file and add `"renderer": "software"` +or start the game with `--renderer software`. + +An other possibility exists. You can try to change the driver used by the +accelerated renderer. By default it uses `"direct3d"`, you can change by +`"opengl"` with `"driver": "opengl"` with the `config.json` file or +`--driver opengl` by command line argument. + +## MOUSE + +The left button is always used in three steps: + + 1. Select a Blupi. + 2. Click where you want him to act. + 3. Click the button corresponding to the required operation. + +If the chosen Blupi is already selected (blue or red circle around him), step 1) +is not necessary. + +You may select several Blupis by maintaining the Shift button +pressed. + +The right button is a shortcut. It orders the selected Blupi to do the most +useful operation on the selected spot. + +## KEYBOARD + + * Arrows: + Scrolls the visible part of the scene. + + * Spacebar: + Shows or hides items. + + * F1: + Describes the goal without interrupting the game. + + * F5: + Normal speed (x1). + + * F6: + Double speed (x2). + + * Home: + Returns to place of mission departure + + * Ctrl+F9..F12: + Bookmarks a spot. + + * F9..F12: + Returns to the corresponding bookmarked spot. + + * Pause: + Temporarily suspends the game (excepted with the hard difficulty). + +When you switch to an other application, the game is automatically paused. + +## MUSIC + +The music is provided in *OGG* and *MIDI* formats. The *OGG* variant is prefered +because the render is the same for all platforms. For purist fanboys, it's +possible to enforce the *MIDI* variant by starting the game with the +`--restore-midi` command line argument. Note that in this case, it's possible +to lose some instruments, it depends of your system. + +You can edit the `share/planetblupi/data/config.json` file and add an entry +`"restoremidi": true`, or simply use the new settings available in the global +settings screen in the game. + +If you want, you can overload all musics with yours by providing *OGG* or *MIDI* +music files in your user directory. + +On Windows, type `%APPDATA%\Epsitec SA\Planet Blupi` in the file browser. +On macOS, look at `~/Library/Application Support/Epsitec SA/Planet Blupi`. +On Linux, look at `~/.local/share/Epsitec SA/Planet Blupi`. + +You can create a `music` sub-directory with your musics. For example: +`%LOCALAPPDATA%\Epsitec SA\Planet Blupi\music\music000.ogg`. + +Only 10 musics are supported: `music000` to `music009`. + +## OPTIONS + + * `-h`, `--help`: + Print this help message and exit. + + * `-V`, `--version`: + Print version and exit. + + * `-s`, `--speed-rate`: + Change the speed rate `[1;2]` (default: `1`). + + * `-t`, `--timer-interval`: + Set the timer interval (refresh). The default value is 50ms. This is an + advanced option because it changes the main events loop frequency. + + * `-f`, `--fullscreen`: + Load in fullscreen `[on;off]` (default: `on`). + + * `-z`, `--zoom`: + Change the window scale (only if fullscreen is `off`) `[1;2]` + (default: `1`). + + * `-l`, `--legacy`: + Start the game in legacy display mode (640x480). + + * `-r`, `--renderer`: + Set a renderer `[auto;software;accelerated]` (default: `auto`). Use the + `software` renderer if the `accelerated` renderer is bugged. Note that you + can try other drivers (option `-d`) before forcing the `software` renderer. + + * `-d`, `--driver`: + Set a driver `[auto;direct3d;direct3d11;opengl;opengles2;opengles]` + (default: `auto`, ignored with `software` renderer). + + * `-c`, `--enable-recorder`: + Enable the recorder feature (F3/F4). When playing, + you can start a record with F3 and stop with F4. + + * `-p`, `--play-record`: + Play a record generated by F3 (`--enable-recorder`). + + * `-b`, `--restore-bugs`: + Restore funny original bugs of older versions < v1.9. It can be very fun + and interesting for speedruns. + + **Tower rays:** with this bug, it's possible to add rays on a map even + without tower. It's possible only when building a new map. + + **Mine flag:** you can build a mine without prospecting if you know exactly + where is the flag case. + + **Enemy control**: you can take the enemy control by going in an enemy + factory while the door is open. + + **Duplicate everything**: this bug is very useful for duplicating objects + by sending the same order to two Blupis. + + **Set fire**: you can add invisible fire on every type of cells (when + building a map). + + * `-m`, `--restore-midi`: + Restore playback based on MIDI music instead of OGG. + +## AUTHOR + +**Planet Blupi** is an original creation of Epsitec SA. + +http://www.blupi.org + +## COPYRIGHT + +planetblupi is Copyright (C) 1997, Daniel Roux & EPSITEC SA and +Copyright (C) 2017-2018, Mathieu Schroeter diff --git a/src/planetblupi.ronn b/src/planetblupi.ronn deleted file mode 100644 index 7ab5c71..0000000 --- a/src/planetblupi.ronn +++ /dev/null @@ -1,155 +0,0 @@ - -planetblupi(1) -- a delirious spell-binding game -================================================ - -## SYNOPSIS - -`planetblupi` [...] - -## DESCRIPTION - -**Planet Blupi** is a strategy and adventure game. It subtly blends action with -thought-provoking challenges. Behind the quiet and gentle facade, you'll enjoy -a fascinating diversion full of surprises. Planet Blupi is ideal for ages -12 to 99.. - -This version contains over 30 missions and a built in editor, which enables you -to construct your own missions. - -## OPTIONS - - * `-h`, `--help`: - Print this help message and exit. - - * `-V`, `--version`: - Print version and exit. - - * `-s`, `--speed-rate`: - Change the speed rate [1;2] (default: 1). - - * `-t`, `--timer-interval`: - Set the timer interval (refresh). - - * `-f`, `--fullscreen`: - Load in fullscreen [on;off] (default: on). - - * `-z`, `--zoom`: - Change the window scale (only if fullscreen is off) [1;2] (default: 1). - - * `-l`, `--legacy`: - Start the game in legacy display mode (640x480). - - * `-r`, `--renderer`: - Set a renderer [auto;software;accelerated] (default: auto). - - * `-d`, `--driver`: - Set a driver [auto;direct3d;direct3d11;opengl;opengles2;opengles] (default: - auto, ignored with software renderer). - - * `-c`, `--enable-recorder`: - Enable the recorder feature (F3/F4). - - * `-p`, `--play-record`: - Play a record generated by F3 (--enable-recorder). - - * `-b`, `--restore-bugs`: - Restore funny original bugs of older versions < v1.9. - - * `-m`, `--restore-midi`: - Restore playback based on MIDI music instead of OGG. - -## CONFIGURATION - -**Planet Blupi** supports at least *GNU/Linux 2.6.32*, *macOS 10.9* and -*Microsoft Windows Vista*. If your OS is not listed, maybe it's possible to -build yourself the game. Most Unix and Unix-like OS should be supported. - -For the video ourput, a 3D accelerated video card is highly recommended. It's -still possible to use pure software rendering in all other cases. - -For the sound card, any cards supported by ALSA, PulseAudio, macOS or -DirectSound should be fine. - -## MOUSE - -The left button is always used in three steps: - - 1. Select a Blupi. - 2. Click where you want him to act. - 3. Click the button corresponding to the required operation. - -If the chosen Blupi is already selected (blue or red circle around him), step 1) -is not necessary. - -You may select several Blupis by maintaining the Shift button -pressed. - -The right button is a shortcut. It orders the selected Blupi to do the most -useful operation on the selected spot. - -## KEYBOARD - - * Arrows: - Scrolls the visible part of the scene. - - * Spacebar: - Shows or hides items. - - * F1: - Describes the goal without interrupting the game. - - * F5: - Normal speed (x1). - - * F6: - Double speed (x2). - - * Home: - Returns to place of mission departure - - * Ctrl+F9..F12: - Bookmarks a spot. - - * F9..F12: - Returns to the corresponding bookmarked spot. - - * Pause: - Temporarily suspends the game (excepted with the hard difficulty). - -When you switch to an other application, the game is automatically paused. - -## MUSIC - -The music is provided in OGG and MIDI formats. The OGG variant is prefered -because the render is the same for all platforms. For purist fanboys, it's -possible to enforce the MIDI variant by starting the game with the -`--restore-midi` command line argument. Note that in this case, it's possible -to lose some instruments, it depends of your system. - -You can edit the `share/planetblupi/data/config.json` file and add an entry -`"restoremidi": true`, or simply use the new settings available in the global -settings screen in the game. - -If you want, you can overload all musics with yours by providing OGG or MIDI -music files in your user directory. - -On Windows, type `%APPDATA%\Epsitec SA\Planet Blupi` in the file browser. -On macOS, look at `~/Library/Application Support/Epsitec SA/Planet Blupi`. -On Linux, look at `~/.local/share/Epsitec SA/Planet Blupi`. - -You can create a `music` sub-directory with your music. For example: -`%LOCALAPPDATA%\Epsitec SA\Planet Blupi\music\music000.ogg`. - -Only 10 musics are supported: `music000` to `music009`. - -## AUTHOR - -**Planet Blupi** is an original creation of Epsitec SA. - -http://www.blupi.org -info@blupi.org - -## COPYRIGHT - -planetblupi is Copyright (C) 1997, Daniel Roux & EPSITEC SA and -Copyright (C) 2017-2018, Mathieu Schroeter