1
0
mirror of https://github.com/blupi-games/planetblupi synced 2024-12-30 10:15:36 +01:00

Compare commits

..

102 Commits

Author SHA1 Message Date
Mathieu Schroeter
01ea0c1941
Improve appdata.xml quality 2024-11-17 23:09:15 +01:00
Mathieu Schroeter
69da47f0ad
Do not check for appdata.xml 2024-11-17 23:08:48 +01:00
Mathieu Schroeter
0a838512e8
Install desktop file as usual with AppImage 2024-11-17 23:08:31 +01:00
Mathieu Schroeter
45987adf8a
Revert "Adapt build to the latest appimagetool"
This reverts commit f2f50f23fa236598bc9e6c94016e0edfd72f7a89.
2024-11-15 23:12:01 +01:00
Mathieu Schroeter
f2f50f23fa
Adapt build to the latest appimagetool 2024-11-15 22:04:14 +01:00
Mathieu Schroeter
fa0bfae755
Prepare v1.15.1 with bugfixes 2024-04-23 22:26:22 +02:00
Mathieu Schroeter
6cbc66911a
Use lowercase for consistency 2023-12-21 22:43:34 +01:00
Mathieu Schroeter
77039c79ba
Fix copy after rename 2023-12-21 21:54:26 +01:00
Mathieu Schroeter
e9a919c0d9
Sync license files with Blupimania 2023-12-21 18:23:36 +01:00
Mathieu Schroeter
0c31e3cc41
Fix french mistake 2023-12-21 18:06:25 +01:00
Mathieu Schroeter
82978b2816
Change platinum, platinium and Platinum to Platinium 2023-11-30 23:07:11 +01:00
Mathieu Schroeter
c94710b8e9
Update musics with the dos/win soundfont 2023-11-22 23:14:17 +01:00
Mathieu Schroeter
909ca17cff
Fix for notarization 2023-11-22 23:04:46 +01:00
Mathieu Schroeter
8c0ca39d2a
Enable the window icon on Linux 2023-10-05 23:03:54 +02:00
Mathieu Schroeter
db8a509180
Fix README, etc 2023-10-05 22:31:59 +02:00
Mathieu Schroeter
36ace496f1
Add SDL2_ttf license 2023-08-28 19:46:45 +00:00
Mathieu Schroeter
da65c7bb24
Prepare the final 1.15 2023-08-28 21:35:25 +02:00
Mathieu Schroeter
be73fbe164
Fix height for some macOS versions 2023-08-26 23:52:51 +02:00
Mathieu Schroeter
9578adf7d0
Sync all translations 2023-08-26 23:49:34 +02:00
Mathieu Schroeter
3b767ddd03 Fix codesigning for notarization 2023-08-26 00:24:42 +02:00
Mathieu Schroeter
b39bfa4952
Experiment a change that should work on all platforms 2023-06-28 23:03:00 +02:00
Mathieu Schroeter
b5a58f1a0c Fix DMG generation 2023-06-28 22:54:18 +02:00
Mathieu Schroeter
d450417902
Remove directive which is unsupported by llvm-ld 2023-06-28 21:38:15 +02:00
Mathieu Schroeter
da13271d5e Sync CPack NSIS with latest CMake 2023-06-25 18:14:38 +02:00
Mathieu Schroeter
7ff45eacde Fix missing sha256 for win signature 2023-06-25 15:37:52 +02:00
Mathieu Schroeter
e81024089d Fix https urls 2023-06-25 15:37:36 +02:00
Mathieu Schroeter
2a3188cbe8 Sign for sha256 2023-06-25 15:00:06 +02:00
Mathieu Schroeter
8eb60488ce
Cosmetics 2023-06-20 22:31:14 +02:00
Mathieu Schroeter
abd4439ce5
Remove unused font 2023-06-20 22:27:41 +02:00
Mathieu Schroeter
1e8e8213a7
Cosmetic: apply clang-format 2023-06-20 22:19:25 +02:00
Mathieu Schroeter
914878634a
Prevent button overlap on the flags 2023-06-19 23:55:31 +02:00
Mathieu Schroeter
0e91b1a82f
Add spain and arab flags 2023-06-19 22:38:15 +02:00
Mathieu Schroeter
e90b07c350 Set minimal linker flags for static windows build 2023-06-16 23:21:46 +02:00
Mathieu Schroeter
f685f8fd27 Use x# everywhere
It fixes (by the way) a problem with the cache and arab|hebrew
when sometimes it's detected as RTL.
2023-06-16 23:01:09 +02:00
Mathieu Schroeter
2cc4760ee5 Add a function to dispose the fonts 2023-06-15 22:45:29 +02:00
Mathieu Schroeter
95ff92c7d5 Experiment a fix for the Windows build 2023-06-15 22:44:56 +02:00
Mathieu Schroeter
4852911d17
Update AR translations 2022-11-14 21:41:30 +01:00
Mathieu Schroeter
91b8f69b55
Use a second sound for the hammer
It's fine with the normal speed.
2022-10-31 22:50:12 +01:00
Mathieu Schroeter
353800ec5a
Increase sound fade from 500ms to 800ms (bis) 2022-10-31 22:19:40 +01:00
Mathieu Schroeter
8d1236fbba
Increase sound fade from 500ms to 800ms 2022-10-31 22:12:09 +01:00
Mathieu Schroeter
77c0a6ee3b
Fix sound for ennemies on trap 2022-10-31 22:11:37 +01:00
Mathieu Schroeter
df94bc86e4
Fix UTF-8 in spanish translations 2022-10-30 23:28:47 +01:00
Mathieu Schroeter
29fb97f336
Do not stop the sound immediatly when an entity is deleted
otherwise the trap sound is lost.
2022-10-30 23:15:23 +01:00
Mathieu Schroeter
91c8a778ba
Bump for the next version (1.15.0-rc1) 2022-10-30 21:11:13 +01:00
Mathieu Schroeter
3696269040
Initial integration of the spanish (complete) translation
Thanks to https://github.com/elPatrixF
2022-10-30 21:04:56 +01:00
Mathieu Schroeter
041f413d4b
Cosmetics 2022-10-22 22:14:41 +02:00
Mathieu Schroeter
b09ff326d1
Clear the font cache on locale change 2022-10-22 22:14:28 +02:00
Mathieu Schroeter
745f3c3cd0
Fix arabic and hebrew y offset 2022-10-22 18:45:40 +02:00
Mathieu Schroeter
2be0ed6be4
Use standard ascii x character 2022-10-22 18:39:10 +02:00
Mathieu Schroeter
c0060c495a
Restore appropriate tooltip offset for legacy mode 2022-10-22 18:36:15 +02:00
Mathieu Schroeter
df91ad1c84
Restore old font bitmaps when the game is in legacy mode
Arabic is disabled in this mode.
2022-10-22 18:35:56 +02:00
Mathieu Schroeter
e619f998ac
Improve tooltip position with RTL languages 2022-10-22 18:15:22 +02:00
Mathieu Schroeter
c5685dcf00
Fix bad reversing of '(' 2022-10-22 18:02:38 +02:00
Mathieu Schroeter
67d7e250c1
Fix font arabic size 2022-10-22 17:40:39 +02:00
Mathieu Schroeter
283611fe11
Fix a bit arabic 2022-10-22 17:40:21 +02:00
Mathieu Schroeter
13abf6dd61
Add missing character when english is reversed 2022-09-29 23:40:31 +02:00
Mathieu Schroeter
8887b8bbd8
Fix arabic again 2022-09-29 23:36:15 +02:00
Mathieu Schroeter
68b6ae2a33
Try to reverse/restore properly non LTR textes 2022-09-29 23:35:14 +02:00
Mathieu Schroeter
ce4cdbcab5
Replace http by https for the main website 2022-09-29 23:08:06 +02:00
Mathieu Schroeter
4d9aa8c7c6
Fix numbering in arabic translations 2022-09-29 23:02:51 +02:00
Mathieu Schroeter
cd74d4dbfc
Experiment reversing for latin words (and arabic numbers) 2022-09-27 00:13:59 +02:00
Mathieu Schroeter
e4c73d03b0
Prefer std::string over const char *
We need here a mutable string for latin words reversing
in arabic and hebrew texts.
2022-09-26 23:51:09 +02:00
Mathieu Schroeter
31bac11079
Remove unused argument (dead code) 2022-09-26 23:44:08 +02:00
Mathieu Schroeter
bbb79e1037
Provide fonts with the new text renderer 2022-09-26 23:14:09 +02:00
Mathieu Schroeter
275af9524d
Retrieve the width and height when creating the texture 2022-07-17 00:24:11 +02:00
Mathieu Schroeter
1f4f156bf4
Update copyright date 2022-07-17 00:23:29 +02:00
Mathieu Schroeter
f500c63f68
Cosmetic + remove dead code 2022-07-15 23:02:00 +02:00
Mathieu Schroeter
16981e228c
Cosmetic 2022-07-15 22:55:38 +02:00
Mathieu Schroeter
cb02c87542
Fix use of TexText destructor by using shared pointers 2022-07-15 22:55:28 +02:00
Mathieu Schroeter
fd31c67bbe
Remove unused variables 2022-07-15 18:06:41 +02:00
Mathieu Schroeter
8a8fa56f3f
Add an experimental cache in order to improve the perf 2022-07-15 17:57:14 +02:00
Mathieu Schroeter
7f3e6b7ae4
Use CMake instead of pkg-config with SDL2 (it's mandatory for SDL2_TTF) 2022-07-13 00:27:52 +02:00
Mathieu Schroeter
485b64616c
Adapt appdata.xml to the latest restrictions 2022-07-13 00:25:43 +02:00
Mathieu Schroeter
cd66e24d31
Cosmetic 2022-07-10 23:14:53 +02:00
Mathieu Schroeter
990c1931c1
Convert to RGB in order to restore the visibility with the new SDL2 2022-07-10 23:14:29 +02:00
Mathieu Schroeter
9839ccfdf8
Add support for arabic 2022-07-10 23:04:45 +02:00
Mathieu Schroeter
8d30f8578a
Fix linking with SDL_ttf 2022-07-10 23:04:13 +02:00
Mathieu Schroeter
b2c54962e3
Merge branch 'wip/arab' 2022-07-09 00:17:41 +02:00
Mathieu Schroeter
f1bff6abda
Begin work to use SDL_ttf 2022-07-09 00:15:53 +02:00
Mathieu Schroeter
0631474c23
Add initial stuff to use SDL_ttf 2022-06-24 23:53:36 +02:00
Mathieu Schroeter
aa72ce3acf
Add experiment for arab support (but broken because ligatures are not supported) 2022-06-24 23:23:07 +02:00
Mathieu Schroeter
e9c99fbad9
Restor numpad direction like arrow keys (with or without numlock)
It fixes the issue #101.
2022-01-14 23:35:15 +01:00
Mathieu Schroeter
58d18d52b2
Cosmetic 2022-01-14 23:34:10 +01:00
Mathieu Schroeter
d5cf8820ef
Cosmetic 2022-01-14 23:26:40 +01:00
Mathieu Schroeter
b8e2eae480
Reduce space between lines with the little font 2022-01-14 23:26:32 +01:00
Mathieu Schroeter
806645251d
Fix static linking with libpulse and shm 2022-01-14 23:18:15 +01:00
Mathieu Schroeter
428c84a29e
Merge pull request #100 from punctdan/patch-1
Thank you
2021-06-14 16:17:15 +02:00
punctdan
108ce5ca76
Level 10 description error #78
Changed "north-east" to "north-west".
2021-06-14 16:55:44 +03:00
Mathieu Schroeter
0e0d5fe8b5
Merge branch 'jummy0-negative-x-dynamite-crash' 2021-02-18 23:19:32 +01:00
jummy
c0ffb16d12
Fix crash bug with dynamite/bomb/electro at X=0
GOAL_EXPLOSE1, GOAL_EXPLOSE2, and GOAL_ELECTRO now perform bounds checking before trying to create an explosion.
2021-02-18 23:19:14 +01:00
Mathieu Schroeter
fc01379290
Stop movie on RETURN
It fixes issue https://github.com/blupi-games/planetblupi/issues/80
2021-01-14 23:40:09 +01:00
Mathieu Schroeter
e89c75126a
Update copyright dates 2021-01-14 23:32:51 +01:00
Mathieu Schroeter
ab8d95039f
Add new bug which can be enabled with --restore-bugs 2021-01-14 23:32:31 +01:00
Mathieu Schroeter
f07d064cc9
Prevent time bom duplication
it fixes issue https://github.com/blupi-games/planetblupi/issues/82
2021-01-14 23:26:20 +01:00
Mathieu Schroeter
3f63af434e
Add missing trap'bomb with the carry action fix
See https://github.com/blupi-games/planetblupi/issues/20
2021-01-14 22:59:32 +01:00
Mathieu Schroeter
da3caa9e6c
Merge pull request #94 from jummy0/master
Improved little.png font with a black border and change
the line spacing by the way
2021-01-14 22:45:02 +01:00
jummy
f6db5a5eba improved Little.png font 2021-01-12 13:51:01 -06:00
Mathieu Schroeter
9796c1c754
Merge pull request #86 from OdyX/find-sdl2
Avoid making assumptions about location of SDL2 headers
2020-07-03 23:15:05 +02:00
Simon McVittie
bc6fe4b150
Avoid making assumptions about location of SDL2 headers
It is not an API guarantee that the SDL2 headers will be found in
${prefix}/include/SDL2, or that SDL2 is installed in the same prefix
as planetblupi itself. Ask pkg-config instead.

Signed-off-by: Simon McVittie <smcv@debian.org>
Bug-Debian: https://bugs.debian.org/952105
Forwarded: no
2020-03-09 21:23:13 +01:00
Mathieu Schroeter
a8a4e00d13
Merge pull request #85 from BLooperZ/patch-1
fix level 10 description
2020-02-03 22:45:59 +01:00
Niv Baehr
0d911b460c
fix level 10 description
see: https://github.com/blupi-games/planetblupi/issues/78
2020-02-02 23:57:43 +02:00
Mathieu Schroeter
108c19a7ef Bump CMake version for NSIS 2019-10-17 07:40:33 +02:00
136 changed files with 6375 additions and 377 deletions

View File

@ -9,13 +9,12 @@ 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)
link_directories (${CMAKE_INSTALL_PREFIX}/lib)
project (planetblupi)
set (PB_VERSION_MAJOR 1)
set (PB_VERSION_MINOR 14)
set (PB_VERSION_PATCH 2)
set (PB_VERSION_MINOR 15)
set (PB_VERSION_PATCH 1)
set (PB_VERSION_EXTRA "")
set (PB_PRODUCT_NAME "Planet Blupi")
set (PB_PACKAGE_NAME "planetblupi")
@ -44,13 +43,11 @@ if (APPIMAGE_APPRUN_PROGRAM AND APPIMAGE_ASSISTANT_PROGRAM)
set (USE_APPIMAGE ON)
endif ()
if (NOT USE_APPIMAGE)
configure_file (
"${PROJECT_SOURCE_DIR}/resources/linux/application.desktop.in"
"${CMAKE_CURRENT_BINARY_DIR}/${PB_PACKAGE_NAME}.desktop"
@ONLY
)
endif ()
configure_file (
"${PROJECT_SOURCE_DIR}/resources/linux/application.desktop.in"
"${CMAKE_CURRENT_BINARY_DIR}/${PB_PACKAGE_NAME}.desktop"
@ONLY
)
set (planetblupi_OUTPUT planetblupi)
@ -93,22 +90,27 @@ else ()
)
endif ()
file (COPY resources/image DESTINATION share/planetblupi)
file (COPY resources/fonts DESTINATION share/planetblupi)
if (NOT BUILD_JS)
file (COPY resources/movie DESTINATION share/planetblupi)
endif ()
file (COPY resources/sound DESTINATION share/planetblupi)
file (COPY resources/music DESTINATION share/planetblupi)
file (COPY LICENSE.all DESTINATION share/doc/planetblupi)
file (COPY COPYING DESTINATION share/doc/planetblupi)
file (COPY CREDITS DESTINATION share/doc/planetblupi)
file (RENAME "${CMAKE_BINARY_DIR}/share/doc/planetblupi/LICENSE.all"
"${CMAKE_BINARY_DIR}/share/doc/planetblupi/copyright")
if (BUILD_LINUX)
file (COPY resources/icon/hicolor DESTINATION share/icons)
file (
COPY resources/linux/${PB_PACKAGE_NAME}.appdata.xml
COPY resources/linux/org.blupi.${PB_PACKAGE_NAME}.appdata.xml
DESTINATION share/metainfo
)
file (
COPY ${CMAKE_CURRENT_BINARY_DIR}/${PB_PACKAGE_NAME}.desktop
DESTINATION share/applications
)
endif ()
# Windows stuff
@ -152,12 +154,34 @@ include_directories (${SDLKitchensink_INCLUDE_DIRS})
find_package (PkgConfig REQUIRED)
if (NOT BUILD_JS)
pkg_search_module (SDL2 REQUIRED sdl2)
set (planetblupi_DEPS ${planetblupi_DEPS} ${SDL2_STATIC_LIBRARIES})
pkg_search_module (SDL2_IMAGE REQUIRED SDL2_image)
set (planetblupi_DEPS ${planetblupi_DEPS} ${SDL2_IMAGE_STATIC_LIBRARIES})
pkg_search_module (SDL2_MIXER REQUIRED SDL2_mixer)
set (planetblupi_DEPS ${planetblupi_DEPS} ${SDL2_MIXER_STATIC_LIBRARIES})
set (SDL2_DIR "${CMAKE_INSTALL_PREFIX}/lib/cmake/SDL2")
set (SDL2_image_DIR "${CMAKE_INSTALL_PREFIX}/lib/cmake/SDL2_image")
set (SDL2_ttf_DIR "${CMAKE_INSTALL_PREFIX}/lib/cmake/SDL2_ttf")
set (SDL2_mixer_DIR "${CMAKE_INSTALL_PREFIX}/lib/cmake/SDL2_mixer")
if ("${STATIC_BUILD}")
find_package (SDL2 REQUIRED NO_DEFAULT_PATH)
include_directories (${SDL2_INCLUDE_DIRS})
set (planetblupi_DEPS ${planetblupi_DEPS} ${SDL2_STATIC_LIBRARIES})
find_package (SDL2_image REQUIRED NO_DEFAULT_PATH)
include_directories (${SDL2_IMAGE_INCLUDE_DIRS})
set (planetblupi_DEPS ${planetblupi_DEPS} SDL2_image::SDL2_image-static)
find_package (SDL2_ttf REQUIRED NO_DEFAULT_PATH)
include_directories (${SDL2_TTF_INCLUDE_DIRS})
set (planetblupi_DEPS ${planetblupi_DEPS} SDL2_ttf::SDL2_ttf-static)
find_package (SDL2_mixer REQUIRED NO_DEFAULT_PATH)
include_directories (${SDL2_MIXER_INCLUDE_DIRS})
set (planetblupi_DEPS ${planetblupi_DEPS} SDL2_mixer::SDL2_mixer-static)
else ()
find_package (SDL2 REQUIRED)
include_directories (${SDL2_INCLUDE_DIRS})
find_package (SDL2_image REQUIRED)
include_directories (${SDL2_IMAGE_INCLUDE_DIRS})
find_package (SDL2_ttf REQUIRED)
include_directories (${SDL2_TTF_INCLUDE_DIRS})
find_package (SDL2_mixer REQUIRED)
include_directories (${SDL2_MIXER_INCLUDE_DIRS})
endif ()
endif ()
if (${PB_HTTP_VERSION_CHECK})
@ -190,6 +214,13 @@ if ("${STATIC_BUILD}")
${Intl_LIBRARIES}
${Iconv_LIBRARIES}
)
# For the static SDL2::TTF
set (planetblupi_DEPS ${planetblupi_DEPS}
-lz
-lfreetype
-lharfbuzz
)
endif ()
if (${PB_HTTP_VERSION_CHECK})
@ -222,15 +253,23 @@ if ("${STATIC_BUILD}")
if (BUILD_LINUX)
list (APPEND planetblupi_DEPS
${ALSA_STATIC_LIBRARIES}
${PULSE_STATIC_LIBRARIES}
${PULSE_STATIC_LIBRARIES} -lrt
)
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L${CMAKE_INSTALL_PREFIX}/lib/pulseaudio")
endif ()
if (BUILD_WINDOWS)
# Missing SDL2 static dependencies
list (APPEND planetblupi_DEPS
-lwinmm -limm32 -lsetupapi -lversion
)
endif ()
else ()
set (planetblupi_DEPS
${SDL2_LIBRARIES}
${SDL2_MIXER_LIBRARIES}
${SDL2_IMAGE_LIBRARIES}
${SDL2_TTF_LIBRARIES}
${CURL_LIBRARIES}
${SDLKitchensink_LIBRARIES}
pthread
@ -309,26 +348,25 @@ if (NOT BUILD_JS)
PATTERN "world*.dev.blp"
)
install (DIRECTORY resources/image DESTINATION share/planetblupi)
install (DIRECTORY resources/fonts DESTINATION share/planetblupi)
install (DIRECTORY resources/movie DESTINATION share/planetblupi)
install (DIRECTORY resources/sound DESTINATION share/planetblupi)
install (DIRECTORY resources/music DESTINATION share/planetblupi)
install (FILES LICENSE.all DESTINATION share/doc/planetblupi RENAME copyright)
install (FILES COPYING DESTINATION share/doc/planetblupi)
install (FILES CREDITS DESTINATION share/doc/planetblupi)
if (BUILD_LINUX)
install (DIRECTORY resources/icon/hicolor DESTINATION share/icons)
install (
FILES resources/linux/${PB_PACKAGE_NAME}.appdata.xml
FILES resources/linux/org.blupi.${PB_PACKAGE_NAME}.appdata.xml
DESTINATION share/metainfo
)
endif ()
if (NOT USE_APPIMAGE)
install (
FILES ${CMAKE_CURRENT_BINARY_DIR}/${PB_PACKAGE_NAME}.desktop
DESTINATION share/applications
)
endif ()
install (
FILES ${CMAKE_CURRENT_BINARY_DIR}/${PB_PACKAGE_NAME}.desktop
DESTINATION share/applications
)
# Copy libwinpthread-1.dll which seems not be linkable statically
if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows" AND MINGW)
@ -366,10 +404,10 @@ if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release" AND "${STATIC_BUILD}")
set (CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\resources\\\\nsis\\\\installer.bmp")
set (CPACK_NSIS_COMPRESSOR "/SOLID lzma")
set (CPACK_NSIS_INSTALLED_ICON_NAME "bin\\\\planetblupi.exe")
set (CPACK_NSIS_URL_INFO_ABOUT "http://www.blupi.org")
set (CPACK_NSIS_URL_INFO_ABOUT "https://www.blupi.org")
set (CPACK_NSIS_MUI_FINISHPAGE_RUN "planetblupi")
if (SIGN_APP)
set (CPACK_NSIS_SIGN_UNINSTALLER "sign -a -fd sha1 -t http://time.certum.pl -v")
set (CPACK_NSIS_SIGN_UNINSTALLER "sign -a -fd sha256 -t http://time.certum.pl -v")
endif ()
include (CPack)
@ -379,7 +417,7 @@ if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release" AND "${STATIC_BUILD}")
add_custom_command (TARGET planetblupi
POST_BUILD
COMMAND ${SIGNTOOL_EXECUTABLE}
sign -a -fd sha1 -t http://time.certum.pl -v
sign -a -fd sha256 -t http://time.certum.pl -v
"${CMAKE_BINARY_DIR}/planetblupi.exe")
endif ()
@ -391,7 +429,7 @@ if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release" AND "${STATIC_BUILD}")
add_custom_command (TARGET planetblupi
POST_BUILD
COMMAND ${SIGNTOOL_EXECUTABLE}
sign -a -fd sha1 -t http://time.certum.pl
sign -a -fd sha256 -t http://time.certum.pl
"${CMAKE_BINARY_DIR}/${INSTALLER_FILE_NAME}.exe")
endif ()
elseif (APPLE)
@ -402,6 +440,9 @@ if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release" AND "${STATIC_BUILD}")
set (CPACK_BUNDLE_STARTUP_COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/resources/darwin/Planet Blupi")
if (SIGN_APP)
set (CPACK_BUNDLE_APPLE_CERT_APP "Developer ID Application: Mathieu Schroeter")
set (CPACK_BUNDLE_APPLE_CODESIGN_PARAMETER "--deep -f --options runtime --timestamp")
set (CPACK_BUNDLE_APPLE_CODESIGN_FILES "/Contents/Resources/bin/planetblupi")
set (CPACK_APPLE_BUNDLE_ID "planetblupi")
endif ()
set (CPACK_PACKAGE_FILE_NAME "planetblupi-${PB_VERSION_MAJOR}.${PB_VERSION_MINOR}.${PB_VERSION_PATCH}${PB_VERSION_EXTRA}")

View File

@ -3,21 +3,24 @@
| Years | People |
| --------- | ---------------------------------------------------------------- |
| | **Developers** |
| 1997 | Daniel Roux and Denis Dumoulin |
| 2017-2019 | Mathieu Schroeter |
| 1997 | Daniel Roux, Denis Dumoulin |
| 2017-2023 | Mathieu Schroeter |
| | |
| | **Voices** |
| 1997 | Daniel Roux, David Besuchet, Michael Walz and Garry Goodman |
| 1997 | Daniel Roux, David Besuchet, Michael Walz, Garry Goodman |
| 2022 | elPatrixF _(@github)_ |
| | |
| | **Translators** |
| 1997 | Christian Alleyn, Michael Walz, David Besuchet, Cedric Freeman, |
| | Adrienne Magnin and Wendy de Pauli |
| 2005 | Rodolfo Andrade de Oliveira and Vanessa Alexandre Vieira |
| 2017 | Catia Guidi and Mateusz Lis |
| 2019 | punctdan _(@github)_ and TheShwarma _(@twitter)_ |
| | Adrienne Magnin, Wendy de Pauli |
| 2005 | Rodolfo Andrade de Oliveira, Vanessa Alexandre Vieira |
| 2017 | Catia Guidi, Mateusz Lis |
| 2019 | punctdan _(@github)_, TheShwarma _(@twitter)_, |
| | BLooperZ _(@github)_ |
| 2022 | elPatrixF _(@github)_, WindowsNinetyTen _(@github)_ |
| | |
| | **Missions** |
| 1997 | Daniel Roux, Adrien Roux and Denis Dumoulin |
| 1997 | Daniel Roux, Adrien Roux, Denis Dumoulin |
| | |
| | **Testers** |
| 1997 | Denis Dumoulin, Adrien Roux, Michael Walz, René Beuchat, |
@ -26,4 +29,4 @@
| | Michael Bloch, Florian Stutzmann, Fabrice Bodmer, |
| | Rachel Besuchet, Pauline Rochat, Antoine Richoy, |
| | Fabrice Marquis, Steve Guex, Simon Lopez, David Piot, |
| | Yves Burgos and Jeremy Kull |
| | Yves Burgos, Jeremy Kull |

View File

@ -17,7 +17,7 @@ This game is linked on some static libraries:
zlib (own license)
Planet Blupi is licensed under GPLv3, see LICENSE.all/copyright for details.
Planet Blupi is licensed under GPLv3+, see LICENSE.all/copyright for details.
GNU GENERAL PUBLIC LICENSE

View File

@ -14,12 +14,13 @@ List of all licenses, concerns Planet Blupi and dependencies
* libvorbis -- https://xiph.org/downloads/
* SDL_kitchensink -- https://github.com/katajakasa/SDL_kitchensink
* SDL2 -- https://www.libsdl.org
* SDL2_image -- https://www.libsdl.org/projects/SDL_image/
* SDL2_mixer -- https://www.libsdl.org/projects/SDL_mixer/
* SDL2_image -- https://github.com/libsdl-org/SDL_image
* SDL2_mixer -- https://github.com/libsdl-org/SDL_mixer
* SDL2_ttf -- https://github.com/libsdl-org/SDL_ttf
* zlib -- https://zlib.net/
######################################################################
# Planet Blupi - LICENSE
# Planet Blupi is licensed under GPLv3+
######################################################################
GNU GENERAL PUBLIC LICENSE
@ -3635,6 +3636,28 @@ freely, subject to the following restrictions:
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
######################################################################
# SDL2_ttf - LICENSE
######################################################################
Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
######################################################################
# zlib - LICENSE
######################################################################

View File

@ -14,11 +14,11 @@ yours for example) `share/locale/fr/LC_MESSAGES/` and put your `.mo` file in
this directory. You can replace an other lang if you like.
> Under Windows OS, you should find the french translations in
> `C:\Program Files\Planet Blupi\share\locale\fr\LC_MESSAGES\`.
> `C:\Program Files\Planet Blupi\share\locale\fr\LC_MESSAGES\`.
> With macOS it's possible to open the `Planet Blupi.app` and update the file
> directly in the `.app`. But note that it breaks the application signature. To
> start the game, maybe it's necessary to open via the context menu for by
> passing the macOS security.
> passing the macOS security.
> For Linux you must unpack the AppImage file somewhere for changing the files.
Then start the game, the interface will use your new translation if you select
@ -51,6 +51,10 @@ don't forget to provide this one.
lang = "Português";
else if (locale == "he")
lang = "עברית";
else if (locale == "ar")
lang = "العربية";
else if (locale == "es")
lang = "Español";
```
## The missions

388
cmake/FindSDL2.cmake Normal file
View File

@ -0,0 +1,388 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
# Copyright 2019 Amine Ben Hassouna <amine.benhassouna@gmail.com>
# Copyright 2000-2019 Kitware, Inc. and Contributors
# All rights reserved.
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of Kitware, Inc. nor the names of Contributors
# may be used to endorse or promote products derived from this
# software without specific prior written permission.
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#[=======================================================================[.rst:
FindSDL2
--------
Locate SDL2 library
This module defines the following 'IMPORTED' targets:
::
SDL2::Core
The SDL2 library, if found.
Libraries should link to SDL2::Core
SDL2::Main
The SDL2main library, if found.
Applications should link to SDL2::Main instead of SDL2::Core
This module will set the following variables in your project:
::
SDL2_LIBRARIES, the name of the library to link against
SDL2_INCLUDE_DIRS, where to find SDL.h
SDL2_FOUND, if false, do not try to link to SDL2
SDL2MAIN_FOUND, if false, do not try to link to SDL2main
SDL2_VERSION_STRING, human-readable string containing the version of SDL2
This module responds to the following cache variables:
::
SDL2_PATH
Set a custom SDL2 Library path (default: empty)
SDL2_NO_DEFAULT_PATH
Disable search SDL2 Library in default path.
If SDL2_PATH (default: ON)
Else (default: OFF)
SDL2_INCLUDE_DIR
SDL2 headers path.
SDL2_LIBRARY
SDL2 Library (.dll, .so, .a, etc) path.
SDL2MAIN_LIBRAY
SDL2main Library (.a) path.
SDL2_BUILDING_LIBRARY
This flag is useful only when linking to SDL2_LIBRARIES insead of
SDL2::Main. It is required only when building a library that links to
SDL2_LIBRARIES, because only applications need main() (No need to also
link to SDL2main).
If this flag is defined, then no SDL2main will be added to SDL2_LIBRARIES
and no SDL2::Main target will be created.
Don't forget to include SDLmain.h and SDLmain.m in your project for the
OS X framework based version. (Other versions link to -lSDL2main which
this module will try to find on your behalf.) Also for OS X, this
module will automatically add the -framework Cocoa on your behalf.
Additional Note: If you see an empty SDL2_LIBRARY in your project
configuration, it means CMake did not find your SDL2 library
(SDL2.dll, libsdl2.so, SDL2.framework, etc). Set SDL2_LIBRARY to point
to your SDL2 library, and configure again. Similarly, if you see an
empty SDL2MAIN_LIBRARY, you should set this value as appropriate. These
values are used to generate the final SDL2_LIBRARIES variable and the
SDL2::Core and SDL2::Main targets, but when these values are unset,
SDL2_LIBRARIES, SDL2::Core and SDL2::Main does not get created.
$SDL2DIR is an environment variable that would correspond to the
./configure --prefix=$SDL2DIR used in building SDL2. l.e.galup 9-20-02
Created by Amine Ben Hassouna:
Adapt FindSDL.cmake to SDL2 (FindSDL2.cmake).
Add cache variables for more flexibility:
SDL2_PATH, SDL2_NO_DEFAULT_PATH (for details, see doc above).
Mark 'Threads' as a required dependency for non-OSX systems.
Modernize the FindSDL2.cmake module by creating specific targets:
SDL2::Core and SDL2::Main (for details, see doc above).
Original FindSDL.cmake module:
Modified by Eric Wing. Added code to assist with automated building
by using environmental variables and providing a more
controlled/consistent search behavior. Added new modifications to
recognize OS X frameworks and additional Unix paths (FreeBSD, etc).
Also corrected the header search path to follow "proper" SDL
guidelines. Added a search for SDLmain which is needed by some
platforms. Added a search for threads which is needed by some
platforms. Added needed compile switches for MinGW.
On OSX, this will prefer the Framework version (if found) over others.
People will have to manually change the cache value of SDL2_LIBRARY to
override this selection or set the SDL2_PATH variable or the CMake
environment CMAKE_INCLUDE_PATH to modify the search paths.
Note that the header path has changed from SDL/SDL.h to just SDL.h
This needed to change because "proper" SDL convention is #include
"SDL.h", not <SDL/SDL.h>. This is done for portability reasons
because not all systems place things in SDL/ (see FreeBSD).
#]=======================================================================]
# Define options for searching SDL2 Library in a custom path
set(SDL2_PATH "" CACHE STRING "Custom SDL2 Library path")
set(_SDL2_NO_DEFAULT_PATH OFF)
if(SDL2_PATH)
set(_SDL2_NO_DEFAULT_PATH ON)
endif()
set(SDL2_NO_DEFAULT_PATH ${_SDL2_NO_DEFAULT_PATH}
CACHE BOOL "Disable search SDL2 Library in default path")
unset(_SDL2_NO_DEFAULT_PATH)
set(SDL2_NO_DEFAULT_PATH_CMD)
if(SDL2_NO_DEFAULT_PATH)
set(SDL2_NO_DEFAULT_PATH_CMD NO_DEFAULT_PATH)
endif()
# Search for the SDL2 include directory
find_path(SDL2_INCLUDE_DIR SDL.h
HINTS
ENV SDL2DIR
${SDL2_NO_DEFAULT_PATH_CMD}
PATH_SUFFIXES SDL2
# path suffixes to search inside ENV{SDL2DIR}
include/SDL2 include
PATHS ${SDL2_PATH}
DOC "Where the SDL2 headers can be found"
)
set(SDL2_INCLUDE_DIRS "${SDL2_INCLUDE_DIR}")
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(VC_LIB_PATH_SUFFIX lib/x64)
else()
set(VC_LIB_PATH_SUFFIX lib/x86)
endif()
# SDL-2.0 is the name used by FreeBSD ports...
# don't confuse it for the version number.
find_library(SDL2_LIBRARY
NAMES SDL2 SDL-2.0
HINTS
ENV SDL2DIR
${SDL2_NO_DEFAULT_PATH_CMD}
PATH_SUFFIXES lib ${VC_LIB_PATH_SUFFIX}
PATHS ${SDL2_PATH}
DOC "Where the SDL2 Library can be found"
)
set(SDL2_LIBRARIES "${SDL2_LIBRARY}")
if(NOT SDL2_BUILDING_LIBRARY)
if(NOT SDL2_INCLUDE_DIR MATCHES ".framework")
# Non-OS X framework versions expect you to also dynamically link to
# SDL2main. This is mainly for Windows and OS X. Other (Unix) platforms
# seem to provide SDL2main for compatibility even though they don't
# necessarily need it.
if(SDL2_PATH)
set(SDL2MAIN_LIBRARY_PATHS "${SDL2_PATH}")
endif()
if(NOT SDL2_NO_DEFAULT_PATH)
set(SDL2MAIN_LIBRARY_PATHS
/sw
/opt/local
/opt/csw
/opt
"${SDL2MAIN_LIBRARY_PATHS}"
)
endif()
find_library(SDL2MAIN_LIBRARY
NAMES SDL2main
HINTS
ENV SDL2DIR
${SDL2_NO_DEFAULT_PATH_CMD}
PATH_SUFFIXES lib ${VC_LIB_PATH_SUFFIX}
PATHS ${SDL2MAIN_LIBRARY_PATHS}
DOC "Where the SDL2main library can be found"
)
unset(SDL2MAIN_LIBRARY_PATHS)
endif()
endif()
# SDL2 may require threads on your system.
# The Apple build may not need an explicit flag because one of the
# frameworks may already provide it.
# But for non-OSX systems, I will use the CMake Threads package.
if(NOT APPLE)
find_package(Threads QUIET)
if(NOT Threads_FOUND)
set(SDL2_THREADS_NOT_FOUND "Could NOT find Threads (Threads is required by SDL2).")
if(SDL2_FIND_REQUIRED)
message(FATAL_ERROR ${SDL2_THREADS_NOT_FOUND})
else()
if(NOT SDL2_FIND_QUIETLY)
message(STATUS ${SDL2_THREADS_NOT_FOUND})
endif()
return()
endif()
unset(SDL2_THREADS_NOT_FOUND)
endif()
endif()
# MinGW needs an additional link flag, -mwindows
# It's total link flags should look like -lmingw32 -lSDL2main -lSDL2 -mwindows
if(MINGW)
set(MINGW32_LIBRARY mingw32 "-mwindows" CACHE STRING "link flags for MinGW")
endif()
if(SDL2_LIBRARY)
# For SDL2main
if(SDL2MAIN_LIBRARY AND NOT SDL2_BUILDING_LIBRARY)
list(FIND SDL2_LIBRARIES "${SDL2MAIN_LIBRARY}" _SDL2_MAIN_INDEX)
if(_SDL2_MAIN_INDEX EQUAL -1)
set(SDL2_LIBRARIES "${SDL2MAIN_LIBRARY}" ${SDL2_LIBRARIES})
endif()
unset(_SDL2_MAIN_INDEX)
endif()
# For OS X, SDL2 uses Cocoa as a backend so it must link to Cocoa.
# CMake doesn't display the -framework Cocoa string in the UI even
# though it actually is there if I modify a pre-used variable.
# I think it has something to do with the CACHE STRING.
# So I use a temporary variable until the end so I can set the
# "real" variable in one-shot.
if(APPLE)
set(SDL2_LIBRARIES ${SDL2_LIBRARIES} -framework Cocoa)
endif()
# For threads, as mentioned Apple doesn't need this.
# In fact, there seems to be a problem if I used the Threads package
# and try using this line, so I'm just skipping it entirely for OS X.
if(NOT APPLE)
set(SDL2_LIBRARIES ${SDL2_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
endif()
# For MinGW library
if(MINGW)
set(SDL2_LIBRARIES ${MINGW32_LIBRARY} ${SDL2_LIBRARIES})
endif()
endif()
# Read SDL2 version
if(SDL2_INCLUDE_DIR AND EXISTS "${SDL2_INCLUDE_DIR}/SDL_version.h")
file(STRINGS "${SDL2_INCLUDE_DIR}/SDL_version.h" SDL2_VERSION_MAJOR_LINE REGEX "^#define[ \t]+SDL_MAJOR_VERSION[ \t]+[0-9]+$")
file(STRINGS "${SDL2_INCLUDE_DIR}/SDL_version.h" SDL2_VERSION_MINOR_LINE REGEX "^#define[ \t]+SDL_MINOR_VERSION[ \t]+[0-9]+$")
file(STRINGS "${SDL2_INCLUDE_DIR}/SDL_version.h" SDL2_VERSION_PATCH_LINE REGEX "^#define[ \t]+SDL_PATCHLEVEL[ \t]+[0-9]+$")
string(REGEX REPLACE "^#define[ \t]+SDL_MAJOR_VERSION[ \t]+([0-9]+)$" "\\1" SDL2_VERSION_MAJOR "${SDL2_VERSION_MAJOR_LINE}")
string(REGEX REPLACE "^#define[ \t]+SDL_MINOR_VERSION[ \t]+([0-9]+)$" "\\1" SDL2_VERSION_MINOR "${SDL2_VERSION_MINOR_LINE}")
string(REGEX REPLACE "^#define[ \t]+SDL_PATCHLEVEL[ \t]+([0-9]+)$" "\\1" SDL2_VERSION_PATCH "${SDL2_VERSION_PATCH_LINE}")
set(SDL2_VERSION_STRING ${SDL2_VERSION_MAJOR}.${SDL2_VERSION_MINOR}.${SDL2_VERSION_PATCH})
unset(SDL2_VERSION_MAJOR_LINE)
unset(SDL2_VERSION_MINOR_LINE)
unset(SDL2_VERSION_PATCH_LINE)
unset(SDL2_VERSION_MAJOR)
unset(SDL2_VERSION_MINOR)
unset(SDL2_VERSION_PATCH)
endif()
include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL2
REQUIRED_VARS SDL2_LIBRARY SDL2_INCLUDE_DIR
VERSION_VAR SDL2_VERSION_STRING)
if(SDL2MAIN_LIBRARY)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL2main
REQUIRED_VARS SDL2MAIN_LIBRARY SDL2_INCLUDE_DIR
VERSION_VAR SDL2_VERSION_STRING)
endif()
mark_as_advanced(SDL2_PATH
SDL2_NO_DEFAULT_PATH
SDL2_LIBRARY
SDL2MAIN_LIBRARY
SDL2_INCLUDE_DIR
SDL2_BUILDING_LIBRARY)
# SDL2:: targets (SDL2::Core and SDL2::Main)
if(SDL2_FOUND)
# SDL2::Core target
if(SDL2_LIBRARY AND NOT TARGET SDL2::Core)
add_library(SDL2::Core UNKNOWN IMPORTED)
set_target_properties(SDL2::Core PROPERTIES
IMPORTED_LOCATION "${SDL2_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIR}")
if(APPLE)
# For OS X, SDL2 uses Cocoa as a backend so it must link to Cocoa.
# For more details, please see above.
set_property(TARGET SDL2::Core APPEND PROPERTY
INTERFACE_LINK_OPTIONS -framework Cocoa)
else()
# For threads, as mentioned Apple doesn't need this.
# For more details, please see above.
set_property(TARGET SDL2::Core APPEND PROPERTY
INTERFACE_LINK_LIBRARIES Threads::Threads)
endif()
endif()
# SDL2::Main target
# Applications should link to SDL2::Main instead of SDL2::Core
# For more details, please see above.
if(NOT SDL2_BUILDING_LIBRARY AND NOT TARGET SDL2::Main)
if(SDL2_INCLUDE_DIR MATCHES ".framework" OR NOT SDL2MAIN_LIBRARY)
add_library(SDL2::Main INTERFACE IMPORTED)
set_property(TARGET SDL2::Main PROPERTY
INTERFACE_LINK_LIBRARIES SDL2::Core)
elseif(SDL2MAIN_LIBRARY)
# MinGW requires that the mingw32 library is specified before the
# libSDL2main.a static library when linking.
# The SDL2::MainInternal target is used internally to make sure that
# CMake respects this condition.
add_library(SDL2::MainInternal UNKNOWN IMPORTED)
set_property(TARGET SDL2::MainInternal PROPERTY
IMPORTED_LOCATION "${SDL2MAIN_LIBRARY}")
set_property(TARGET SDL2::MainInternal PROPERTY
INTERFACE_LINK_LIBRARIES SDL2::Core)
add_library(SDL2::Main INTERFACE IMPORTED)
if(MINGW)
# MinGW needs an additional link flag '-mwindows' and link to mingw32
set_property(TARGET SDL2::Main PROPERTY
INTERFACE_LINK_LIBRARIES "mingw32" "-mwindows")
endif()
set_property(TARGET SDL2::Main APPEND PROPERTY
INTERFACE_LINK_LIBRARIES SDL2::MainInternal)
endif()
endif()
endif()

222
cmake/FindSDL2_image.cmake Normal file
View File

@ -0,0 +1,222 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
# Copyright 2019 Amine Ben Hassouna <amine.benhassouna@gmail.com>
# Copyright 2000-2019 Kitware, Inc. and Contributors
# All rights reserved.
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of Kitware, Inc. nor the names of Contributors
# may be used to endorse or promote products derived from this
# software without specific prior written permission.
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#[=======================================================================[.rst:
FindSDL2_image
--------------
Locate SDL2_image library
This module defines the following 'IMPORTED' target:
::
SDL2::Image
The SDL2_image library, if found.
Have SDL2::Core as a link dependency.
This module will set the following variables in your project:
::
SDL2_IMAGE_LIBRARIES, the name of the library to link against
SDL2_IMAGE_INCLUDE_DIRS, where to find the headers
SDL2_IMAGE_FOUND, if false, do not try to link against
SDL2_IMAGE_VERSION_STRING - human-readable string containing the
version of SDL2_image
This module responds to the following cache variables:
::
SDL2_IMAGE_PATH
Set a custom SDL2_image Library path (default: empty)
SDL2_IMAGE_NO_DEFAULT_PATH
Disable search SDL2_image Library in default path.
If SDL2_IMAGE_PATH (default: ON)
Else (default: OFF)
SDL2_IMAGE_INCLUDE_DIR
SDL2_image headers path.
SDL2_IMAGE_LIBRARY
SDL2_image Library (.dll, .so, .a, etc) path.
Additional Note: If you see an empty SDL2_IMAGE_LIBRARY in your project
configuration, it means CMake did not find your SDL2_image library
(SDL2_image.dll, libsdl2_image.so, etc). Set SDL2_IMAGE_LIBRARY to point
to your SDL2_image library, and configure again. This value is used to
generate the final SDL2_IMAGE_LIBRARIES variable and the SDL2::Image target,
but when this value is unset, SDL2_IMAGE_LIBRARIES and SDL2::Image does not
get created.
$SDL2IMAGEDIR is an environment variable that would correspond to the
./configure --prefix=$SDL2IMAGEDIR used in building SDL2_image.
$SDL2DIR is an environment variable that would correspond to the
./configure --prefix=$SDL2DIR used in building SDL2.
Created by Amine Ben Hassouna:
Adapt FindSDL_image.cmake to SDL2_image (FindSDL2_image.cmake).
Add cache variables for more flexibility:
SDL2_IMAGE_PATH, SDL2_IMAGE_NO_DEFAULT_PATH (for details, see doc above).
Add SDL2 as a required dependency.
Modernize the FindSDL2_image.cmake module by creating a specific target:
SDL2::Image (for details, see doc above).
Original FindSDL_image.cmake module:
Created by Eric Wing. This was influenced by the FindSDL.cmake
module, but with modifications to recognize OS X frameworks and
additional Unix paths (FreeBSD, etc).
#]=======================================================================]
# SDL2 Library required
find_package(SDL2 QUIET)
if(NOT SDL2_FOUND)
set(SDL2_IMAGE_SDL2_NOT_FOUND "Could NOT find SDL2 (SDL2 is required by SDL2_image).")
if(SDL2_image_FIND_REQUIRED)
message(FATAL_ERROR ${SDL2_IMAGE_SDL2_NOT_FOUND})
else()
if(NOT SDL2_image_FIND_QUIETLY)
message(STATUS ${SDL2_IMAGE_SDL2_NOT_FOUND})
endif()
return()
endif()
unset(SDL2_IMAGE_SDL2_NOT_FOUND)
endif()
# Define options for searching SDL2_image Library in a custom path
set(SDL2_IMAGE_PATH "" CACHE STRING "Custom SDL2_image Library path")
set(_SDL2_IMAGE_NO_DEFAULT_PATH OFF)
if(SDL2_IMAGE_PATH)
set(_SDL2_IMAGE_NO_DEFAULT_PATH ON)
endif()
set(SDL2_IMAGE_NO_DEFAULT_PATH ${_SDL2_IMAGE_NO_DEFAULT_PATH}
CACHE BOOL "Disable search SDL2_image Library in default path")
unset(_SDL2_IMAGE_NO_DEFAULT_PATH)
set(SDL2_IMAGE_NO_DEFAULT_PATH_CMD)
if(SDL2_IMAGE_NO_DEFAULT_PATH)
set(SDL2_IMAGE_NO_DEFAULT_PATH_CMD NO_DEFAULT_PATH)
endif()
# Search for the SDL2_image include directory
find_path(SDL2_IMAGE_INCLUDE_DIR SDL_image.h
HINTS
ENV SDL2IMAGEDIR
ENV SDL2DIR
${SDL2_IMAGE_NO_DEFAULT_PATH_CMD}
PATH_SUFFIXES SDL2
# path suffixes to search inside ENV{SDL2DIR}
# and ENV{SDL2IMAGEDIR}
include/SDL2 include
PATHS ${SDL2_IMAGE_PATH}
DOC "Where the SDL2_image headers can be found"
)
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(VC_LIB_PATH_SUFFIX lib/x64)
else()
set(VC_LIB_PATH_SUFFIX lib/x86)
endif()
# Search for the SDL2_image library
find_library(SDL2_IMAGE_LIBRARY
NAMES SDL2_image
HINTS
ENV SDL2IMAGEDIR
ENV SDL2DIR
${SDL2_IMAGE_NO_DEFAULT_PATH_CMD}
PATH_SUFFIXES lib ${VC_LIB_PATH_SUFFIX}
PATHS ${SDL2_IMAGE_PATH}
DOC "Where the SDL2_image Library can be found"
)
# Read SDL2_image version
if(SDL2_IMAGE_INCLUDE_DIR AND EXISTS "${SDL2_IMAGE_INCLUDE_DIR}/SDL_image.h")
file(STRINGS "${SDL2_IMAGE_INCLUDE_DIR}/SDL_image.h" SDL2_IMAGE_VERSION_MAJOR_LINE REGEX "^#define[ \t]+SDL_IMAGE_MAJOR_VERSION[ \t]+[0-9]+$")
file(STRINGS "${SDL2_IMAGE_INCLUDE_DIR}/SDL_image.h" SDL2_IMAGE_VERSION_MINOR_LINE REGEX "^#define[ \t]+SDL_IMAGE_MINOR_VERSION[ \t]+[0-9]+$")
file(STRINGS "${SDL2_IMAGE_INCLUDE_DIR}/SDL_image.h" SDL2_IMAGE_VERSION_PATCH_LINE REGEX "^#define[ \t]+SDL_IMAGE_PATCHLEVEL[ \t]+[0-9]+$")
string(REGEX REPLACE "^#define[ \t]+SDL_IMAGE_MAJOR_VERSION[ \t]+([0-9]+)$" "\\1" SDL2_IMAGE_VERSION_MAJOR "${SDL2_IMAGE_VERSION_MAJOR_LINE}")
string(REGEX REPLACE "^#define[ \t]+SDL_IMAGE_MINOR_VERSION[ \t]+([0-9]+)$" "\\1" SDL2_IMAGE_VERSION_MINOR "${SDL2_IMAGE_VERSION_MINOR_LINE}")
string(REGEX REPLACE "^#define[ \t]+SDL_IMAGE_PATCHLEVEL[ \t]+([0-9]+)$" "\\1" SDL2_IMAGE_VERSION_PATCH "${SDL2_IMAGE_VERSION_PATCH_LINE}")
set(SDL2_IMAGE_VERSION_STRING ${SDL2_IMAGE_VERSION_MAJOR}.${SDL2_IMAGE_VERSION_MINOR}.${SDL2_IMAGE_VERSION_PATCH})
unset(SDL2_IMAGE_VERSION_MAJOR_LINE)
unset(SDL2_IMAGE_VERSION_MINOR_LINE)
unset(SDL2_IMAGE_VERSION_PATCH_LINE)
unset(SDL2_IMAGE_VERSION_MAJOR)
unset(SDL2_IMAGE_VERSION_MINOR)
unset(SDL2_IMAGE_VERSION_PATCH)
endif()
set(SDL2_IMAGE_LIBRARIES ${SDL2_IMAGE_LIBRARY})
set(SDL2_IMAGE_INCLUDE_DIRS ${SDL2_IMAGE_INCLUDE_DIR})
include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL2_image
REQUIRED_VARS SDL2_IMAGE_LIBRARIES SDL2_IMAGE_INCLUDE_DIRS
VERSION_VAR SDL2_IMAGE_VERSION_STRING)
mark_as_advanced(SDL2_IMAGE_PATH
SDL2_IMAGE_NO_DEFAULT_PATH
SDL2_IMAGE_LIBRARY
SDL2_IMAGE_INCLUDE_DIR)
if(SDL2_IMAGE_FOUND)
# SDL2::Image target
if(SDL2_IMAGE_LIBRARY AND NOT TARGET SDL2::Image)
add_library(SDL2::Image UNKNOWN IMPORTED)
set_target_properties(SDL2::Image PROPERTIES
IMPORTED_LOCATION "${SDL2_IMAGE_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${SDL2_IMAGE_INCLUDE_DIR}"
INTERFACE_LINK_LIBRARIES SDL2::Core)
endif()
endif()

220
cmake/FindSDL2_mixer.cmake Normal file
View File

@ -0,0 +1,220 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
# Copyright 2019 Amine Ben Hassouna <amine.benhassouna@gmail.com>
# Copyright 2000-2019 Kitware, Inc. and Contributors
# All rights reserved.
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of Kitware, Inc. nor the names of Contributors
# may be used to endorse or promote products derived from this
# software without specific prior written permission.
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#[=======================================================================[.rst:
FindSDL2_mixer
--------------
Locate SDL2_mixer library
This module defines the following 'IMPORTED' target:
::
SDL2::Mixer
The SDL2_mixer library, if found.
Have SDL2::Core as a link dependency.
This module will set the following variables in your project:
::
SDL2_MIXER_LIBRARIES, the name of the library to link against
SDL2_MIXER_INCLUDE_DIRS, where to find the headers
SDL2_MIXER_FOUND, if false, do not try to link against
SDL2_MIXER_VERSION_STRING - human-readable string containing the
version of SDL2_mixer
This module responds to the following cache variables:
::
SDL2_MIXER_PATH
Set a custom SDL2_mixer Library path (default: empty)
SDL2_MIXER_NO_DEFAULT_PATH
Disable search SDL2_mixer Library in default path.
If SDL2_MIXER_PATH (default: ON)
Else (default: OFF)
SDL2_MIXER_INCLUDE_DIR
SDL2_mixer headers path.
SDL2_MIXER_LIBRARY
SDL2_mixer Library (.dll, .so, .a, etc) path.
Additional Note: If you see an empty SDL2_MIXER_LIBRARY in your project
configuration, it means CMake did not find your SDL2_mixer library
(SDL2_mixer.dll, libsdl2_mixer.so, etc). Set SDL2_MIXER_LIBRARY to point
to your SDL2_mixer library, and configure again. This value is used to
generate the final SDL2_MIXER_LIBRARIES variable and the SDL2::Mixer target,
but when this value is unset, SDL2_MIXER_LIBRARIES and SDL2::Mixer does not
get created.
$SDL2MIXERDIR is an environment variable that would correspond to the
./configure --prefix=$SDL2MIXERDIR used in building SDL2_mixer.
$SDL2DIR is an environment variable that would correspond to the
./configure --prefix=$SDL2DIR used in building SDL2.
Created by Amine Ben Hassouna:
Adapt FindSDL_mixer.cmake to SDL2_mixer (FindSDL2_mixer.cmake).
Add cache variables for more flexibility:
SDL2_MIXER_PATH, SDL2_MIXER_NO_DEFAULT_PATH (for details, see doc above).
Add SDL2 as a required dependency.
Modernize the FindSDL2_mixer.cmake module by creating a specific target:
SDL2::Mixer (for details, see doc above).
Original FindSDL_mixer.cmake module:
Created by Eric Wing. This was influenced by the FindSDL.cmake
module, but with modifications to recognize OS X frameworks and
additional Unix paths (FreeBSD, etc).
#]=======================================================================]
# SDL2 Library required
find_package(SDL2 QUIET)
if(NOT SDL2_FOUND)
set(SDL2_MIXER_SDL2_NOT_FOUND "Could NOT find SDL2 (SDL2 is required by SDL2_mixer).")
if(SDL2_mixer_FIND_REQUIRED)
message(FATAL_ERROR ${SDL2_MIXER_SDL2_NOT_FOUND})
else()
if(NOT SDL2_mixer_FIND_QUIETLY)
message(STATUS ${SDL2_MIXER_SDL2_NOT_FOUND})
endif()
return()
endif()
unset(SDL2_MIXER_SDL2_NOT_FOUND)
endif()
# Define options for searching SDL2_mixer Library in a custom path
set(SDL2_MIXER_PATH "" CACHE STRING "Custom SDL2_mixer Library path")
set(_SDL2_MIXER_NO_DEFAULT_PATH OFF)
if(SDL2_MIXER_PATH)
set(_SDL2_MIXER_NO_DEFAULT_PATH ON)
endif()
set(SDL2_MIXER_NO_DEFAULT_PATH ${_SDL2_MIXER_NO_DEFAULT_PATH}
CACHE BOOL "Disable search SDL2_mixer Library in default path")
unset(_SDL2_MIXER_NO_DEFAULT_PATH)
set(SDL2_MIXER_NO_DEFAULT_PATH_CMD)
if(SDL2_MIXER_NO_DEFAULT_PATH)
set(SDL2_MIXER_NO_DEFAULT_PATH_CMD NO_DEFAULT_PATH)
endif()
# Search for the SDL2_mixer include directory
find_path(SDL2_MIXER_INCLUDE_DIR SDL_mixer.h
HINTS
ENV SDL2MIXERDIR
ENV SDL2DIR
${SDL2_MIXER_NO_DEFAULT_PATH_CMD}
PATH_SUFFIXES SDL2
# path suffixes to search inside ENV{SDL2DIR}
# and ENV{SDL2MIXERDIR}
include/SDL2 include
PATHS ${SDL2_MIXER_PATH}
DOC "Where the SDL2_mixer headers can be found"
)
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(VC_LIB_PATH_SUFFIX lib/x64)
else()
set(VC_LIB_PATH_SUFFIX lib/x86)
endif()
# Search for the SDL2_mixer library
find_library(SDL2_MIXER_LIBRARY
NAMES SDL2_mixer
HINTS
ENV SDL2MIXERDIR
ENV SDL2DIR
${SDL2_MIXER_NO_DEFAULT_PATH_CMD}
PATH_SUFFIXES lib ${VC_LIB_PATH_SUFFIX}
PATHS ${SDL2_MIXER_PATH}
DOC "Where the SDL2_mixer Library can be found"
)
# Read SDL2_mixer version
if(SDL2_MIXER_INCLUDE_DIR AND EXISTS "${SDL2_MIXER_INCLUDE_DIR}/SDL_mixer.h")
file(STRINGS "${SDL2_MIXER_INCLUDE_DIR}/SDL_mixer.h" SDL2_MIXER_VERSION_MAJOR_LINE REGEX "^#define[ \t]+SDL_MIXER_MAJOR_VERSION[ \t]+[0-9]+$")
file(STRINGS "${SDL2_MIXER_INCLUDE_DIR}/SDL_mixer.h" SDL2_MIXER_VERSION_MINOR_LINE REGEX "^#define[ \t]+SDL_MIXER_MINOR_VERSION[ \t]+[0-9]+$")
file(STRINGS "${SDL2_MIXER_INCLUDE_DIR}/SDL_mixer.h" SDL2_MIXER_VERSION_PATCH_LINE REGEX "^#define[ \t]+SDL_MIXER_PATCHLEVEL[ \t]+[0-9]+$")
string(REGEX REPLACE "^#define[ \t]+SDL_MIXER_MAJOR_VERSION[ \t]+([0-9]+)$" "\\1" SDL2_MIXER_VERSION_MAJOR "${SDL2_MIXER_VERSION_MAJOR_LINE}")
string(REGEX REPLACE "^#define[ \t]+SDL_MIXER_MINOR_VERSION[ \t]+([0-9]+)$" "\\1" SDL2_MIXER_VERSION_MINOR "${SDL2_MIXER_VERSION_MINOR_LINE}")
string(REGEX REPLACE "^#define[ \t]+SDL_MIXER_PATCHLEVEL[ \t]+([0-9]+)$" "\\1" SDL2_MIXER_VERSION_PATCH "${SDL2_MIXER_VERSION_PATCH_LINE}")
set(SDL2_MIXER_VERSION_STRING ${SDL2_MIXER_VERSION_MAJOR}.${SDL2_MIXER_VERSION_MINOR}.${SDL2_MIXER_VERSION_PATCH})
unset(SDL2_MIXER_VERSION_MAJOR_LINE)
unset(SDL2_MIXER_VERSION_MINOR_LINE)
unset(SDL2_MIXER_VERSION_PATCH_LINE)
unset(SDL2_MIXER_VERSION_MAJOR)
unset(SDL2_MIXER_VERSION_MINOR)
unset(SDL2_MIXER_VERSION_PATCH)
endif()
set(SDL2_MIXER_LIBRARIES ${SDL2_MIXER_LIBRARY})
set(SDL2_MIXER_INCLUDE_DIRS ${SDL2_MIXER_INCLUDE_DIR})
include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL2_mixer
REQUIRED_VARS SDL2_MIXER_LIBRARIES SDL2_MIXER_INCLUDE_DIRS
VERSION_VAR SDL2_MIXER_VERSION_STRING)
mark_as_advanced(SDL2_MIXER_PATH
SDL2_MIXER_NO_DEFAULT_PATH
SDL2_MIXER_LIBRARY
SDL2_MIXER_INCLUDE_DIR)
if(SDL2_MIXER_FOUND)
# SDL2::Mixer target
if(SDL2_MIXER_LIBRARY AND NOT TARGET SDL2::Mixer)
add_library(SDL2::Mixer UNKNOWN IMPORTED)
set_target_properties(SDL2::Mixer PROPERTIES
IMPORTED_LOCATION "${SDL2_MIXER_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${SDL2_MIXER_INCLUDE_DIR}"
INTERFACE_LINK_LIBRARIES SDL2::Core)
endif()
endif()

222
cmake/FindSDL2_ttf.cmake Normal file
View File

@ -0,0 +1,222 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
# Copyright 2019 Amine Ben Hassouna <amine.benhassouna@gmail.com>
# Copyright 2000-2019 Kitware, Inc. and Contributors
# All rights reserved.
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of Kitware, Inc. nor the names of Contributors
# may be used to endorse or promote products derived from this
# software without specific prior written permission.
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#[=======================================================================[.rst:
FindSDL2_ttf
------------
Locate SDL2_ttf library
This module defines the following 'IMPORTED' target:
::
SDL2::TTF
The SDL2_ttf library, if found.
Have SDL2::Core as a link dependency.
This module will set the following variables in your project:
::
SDL2_TTF_LIBRARIES, the name of the library to link against
SDL2_TTF_INCLUDE_DIRS, where to find the headers
SDL2_TTF_FOUND, if false, do not try to link against
SDL2_TTF_VERSION_STRING - human-readable string containing the
version of SDL2_ttf
This module responds to the following cache variables:
::
SDL2_TTF_PATH
Set a custom SDL2_ttf Library path (default: empty)
SDL2_TTF_NO_DEFAULT_PATH
Disable search SDL2_ttf Library in default path.
If SDL2_TTF_PATH (default: ON)
Else (default: OFF)
SDL2_TTF_INCLUDE_DIR
SDL2_ttf headers path.
SDL2_TTF_LIBRARY
SDL2_ttf Library (.dll, .so, .a, etc) path.
Additional Note: If you see an empty SDL2_TTF_LIBRARY in your project
configuration, it means CMake did not find your SDL2_ttf library
(SDL2_ttf.dll, libsdl2_ttf.so, etc). Set SDL2_TTF_LIBRARY to point
to your SDL2_ttf library, and configure again. This value is used to
generate the final SDL2_TTF_LIBRARIES variable and the SDL2::TTF target,
but when this value is unset, SDL2_TTF_LIBRARIES and SDL2::TTF does not
get created.
$SDL2TTFDIR is an environment variable that would correspond to the
./configure --prefix=$SDL2TTFDIR used in building SDL2_ttf.
$SDL2DIR is an environment variable that would correspond to the
./configure --prefix=$SDL2DIR used in building SDL2.
Created by Amine Ben Hassouna:
Adapt FindSDL_ttf.cmake to SDL2_ttf (FindSDL2_ttf.cmake).
Add cache variables for more flexibility:
SDL2_TTF_PATH, SDL2_TTF_NO_DEFAULT_PATH (for details, see doc above).
Add SDL2 as a required dependency.
Modernize the FindSDL2_ttf.cmake module by creating a specific target:
SDL2::TTF (for details, see doc above).
Original FindSDL_ttf.cmake module:
Created by Eric Wing. This was influenced by the FindSDL.cmake
module, but with modifications to recognize OS X frameworks and
additional Unix paths (FreeBSD, etc).
#]=======================================================================]
# SDL2 Library required
find_package(SDL2 QUIET)
if(NOT SDL2_FOUND)
set(SDL2_TTF_SDL2_NOT_FOUND "Could NOT find SDL2 (SDL2 is required by SDL2_ttf).")
if(SDL2_ttf_FIND_REQUIRED)
message(FATAL_ERROR ${SDL2_TTF_SDL2_NOT_FOUND})
else()
if(NOT SDL2_ttf_FIND_QUIETLY)
message(STATUS ${SDL2_TTF_SDL2_NOT_FOUND})
endif()
return()
endif()
unset(SDL2_TTF_SDL2_NOT_FOUND)
endif()
# Define options for searching SDL2_ttf Library in a custom path
set(SDL2_TTF_PATH "" CACHE STRING "Custom SDL2_ttf Library path")
set(_SDL2_TTF_NO_DEFAULT_PATH OFF)
if(SDL2_TTF_PATH)
set(_SDL2_TTF_NO_DEFAULT_PATH ON)
endif()
set(SDL2_TTF_NO_DEFAULT_PATH ${_SDL2_TTF_NO_DEFAULT_PATH}
CACHE BOOL "Disable search SDL2_ttf Library in default path")
unset(_SDL2_TTF_NO_DEFAULT_PATH)
set(SDL2_TTF_NO_DEFAULT_PATH_CMD)
if(SDL2_TTF_NO_DEFAULT_PATH)
set(SDL2_TTF_NO_DEFAULT_PATH_CMD NO_DEFAULT_PATH)
endif()
# Search for the SDL2_ttf include directory
find_path(SDL2_TTF_INCLUDE_DIR SDL_ttf.h
HINTS
ENV SDL2TTFDIR
ENV SDL2DIR
${SDL2_TTF_NO_DEFAULT_PATH_CMD}
PATH_SUFFIXES SDL2
# path suffixes to search inside ENV{SDL2DIR}
# and ENV{SDL2TTFDIR}
include/SDL2 include
PATHS ${SDL2_TTF_PATH}
DOC "Where the SDL2_ttf headers can be found"
)
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(VC_LIB_PATH_SUFFIX lib/x64)
else()
set(VC_LIB_PATH_SUFFIX lib/x86)
endif()
# Search for the SDL2_ttf library
find_library(SDL2_TTF_LIBRARY
NAMES SDL2_ttf
HINTS
ENV SDL2TTFDIR
ENV SDL2DIR
${SDL2_TTF_NO_DEFAULT_PATH_CMD}
PATH_SUFFIXES lib ${VC_LIB_PATH_SUFFIX}
PATHS ${SDL2_TTF_PATH}
DOC "Where the SDL2_ttf Library can be found"
)
# Read SDL2_ttf version
if(SDL2_TTF_INCLUDE_DIR AND EXISTS "${SDL2_TTF_INCLUDE_DIR}/SDL_ttf.h")
file(STRINGS "${SDL2_TTF_INCLUDE_DIR}/SDL_ttf.h" SDL2_TTF_VERSION_MAJOR_LINE REGEX "^#define[ \t]+SDL_TTF_MAJOR_VERSION[ \t]+[0-9]+$")
file(STRINGS "${SDL2_TTF_INCLUDE_DIR}/SDL_ttf.h" SDL2_TTF_VERSION_MINOR_LINE REGEX "^#define[ \t]+SDL_TTF_MINOR_VERSION[ \t]+[0-9]+$")
file(STRINGS "${SDL2_TTF_INCLUDE_DIR}/SDL_ttf.h" SDL2_TTF_VERSION_PATCH_LINE REGEX "^#define[ \t]+SDL_TTF_PATCHLEVEL[ \t]+[0-9]+$")
string(REGEX REPLACE "^#define[ \t]+SDL_TTF_MAJOR_VERSION[ \t]+([0-9]+)$" "\\1" SDL2_TTF_VERSION_MAJOR "${SDL2_TTF_VERSION_MAJOR_LINE}")
string(REGEX REPLACE "^#define[ \t]+SDL_TTF_MINOR_VERSION[ \t]+([0-9]+)$" "\\1" SDL2_TTF_VERSION_MINOR "${SDL2_TTF_VERSION_MINOR_LINE}")
string(REGEX REPLACE "^#define[ \t]+SDL_TTF_PATCHLEVEL[ \t]+([0-9]+)$" "\\1" SDL2_TTF_VERSION_PATCH "${SDL2_TTF_VERSION_PATCH_LINE}")
set(SDL2_TTF_VERSION_STRING ${SDL2_TTF_VERSION_MAJOR}.${SDL2_TTF_VERSION_MINOR}.${SDL2_TTF_VERSION_PATCH})
unset(SDL2_TTF_VERSION_MAJOR_LINE)
unset(SDL2_TTF_VERSION_MINOR_LINE)
unset(SDL2_TTF_VERSION_PATCH_LINE)
unset(SDL2_TTF_VERSION_MAJOR)
unset(SDL2_TTF_VERSION_MINOR)
unset(SDL2_TTF_VERSION_PATCH)
endif()
set(SDL2_TTF_LIBRARIES ${SDL2_TTF_LIBRARY})
set(SDL2_TTF_INCLUDE_DIRS ${SDL2_TTF_INCLUDE_DIR})
include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL2_ttf
REQUIRED_VARS SDL2_TTF_LIBRARIES SDL2_TTF_INCLUDE_DIRS
VERSION_VAR SDL2_TTF_VERSION_STRING)
mark_as_advanced(SDL2_TTF_PATH
SDL2_TTF_NO_DEFAULT_PATH
SDL2_TTF_LIBRARY
SDL2_TTF_INCLUDE_DIR)
if(SDL2_TTF_FOUND)
# SDL2::TTF target
if(SDL2_TTF_LIBRARY AND NOT TARGET SDL2::TTF)
add_library(SDL2::TTF UNKNOWN IMPORTED)
set_target_properties(SDL2::TTF PROPERTIES
IMPORTED_LOCATION "${SDL2_TTF_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${SDL2_TTF_INCLUDE_DIR}"
INTERFACE_LINK_LIBRARIES SDL2::Core)
endif()
endif()

View File

@ -134,16 +134,16 @@ macro (APPIMAGE_PACKAGE TARGET APPIMAGE_TITLE APPIMAGE_DISPLAYNAME CONFIGDIR DAT
)
if (SIGN_APP)
set (APPIMGKITARGS "-s")
set (APPIMGKITARGS -s -n)
else ()
set (APPIMGKITARGS "")
set (APPIMGKITARGS -n)
endif ()
# Do the actual packaging step with AppImageKit
add_custom_command (
TARGET ${TARGET}
POST_BUILD
COMMAND "${APPIMAGE_ASSISTANT_PROGRAM}" "${APPIMGKITARGS}" "${APPIMAGE_INTERMEDIATE_DIR}" "${APPIMAGE_FINAL_NAME}"
COMMAND "${APPIMAGE_ASSISTANT_PROGRAM}" ${APPIMGKITARGS} "${APPIMAGE_INTERMEDIATE_DIR}" "${APPIMAGE_FINAL_NAME}"
)
install (

View File

@ -187,12 +187,16 @@ Only 10 musics are supported: `music000` to `music009`.
**Duplicate everything**: this bug is very useful for duplicating objects
by sending the same order to two Blupis.
**Duplicate time bomb**: you can duplicate an amorced bomb by taking.
**Take trapped ennemy**: it's possible to take a trapped enemy; it's useless
but possible.
**Set fire**: you can add invisible fire on every type of cells (when
building a map).
**Duplicate bombs**: duplicate a bomb just before the explosion.
* `-m`, `--restore-midi`:
Restore playback based on MIDI music instead of OGG.
@ -203,9 +207,9 @@ Only 10 musics are supported: `music000` to `music009`.
**Planet Blupi** is an original creation of Epsitec SA.
http://www.blupi.org <info@blupi.org>
https://www.blupi.org <info@blupi.org>
## COPYRIGHT
planetblupi is Copyright (C) 1997, Daniel Roux & EPSITEC SA and
Copyright (C) 2017-2018, Mathieu Schroeter
Copyright (C) 2017-2023, Mathieu Schroeter

View File

@ -12,5 +12,7 @@
<string>@CPACK_BUNDLE_NAME@</string>
<key>CFBundleIconFile</key>
<string>@BUNDLE_ICON_REF@</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
</dict>
</plist>

View File

@ -35,10 +35,9 @@ on run argv
open
update without registering applications
tell container window
set sidebar width to 0
set statusbar visible to false
set toolbar visible to false
set the bounds to { 400, 100, 900, 465 }
set its sidebar width to 0
set its toolbar visible to false
set the bounds to { 400, 100, 900, 480 }
set position of item "Planet Blupi.app" to { 133, 200 }
set position of item "Applications" to { 378, 200 }
end tell

File diff suppressed because it is too large Load Diff

View File

@ -903,7 +903,7 @@ clicking on each Blupi.
1|
1| Platinium....
1|
1|The platinium, which is placed
1|The Platinium, which is placed
2|next to the robot's rocket,
2|will give him access to enemy
2|technology.
@ -911,7 +911,7 @@ clicking on each Blupi.
2|Goal:
2|Bring a cube of platinum onto
2|Bring a cube of Platinium onto
2|the striped paving stones.
@25
@ -929,13 +929,13 @@ clicking on each Blupi.
2|is far in the east. You will
2|have to blow up a barrier to
2|be able to get hold of the
2|platinium.
2|Platinium.
2|
2|Bring the platinium back to
2|Bring the Platinium back to
2|base camp.
#26
1|The cube of Platinum will give
1|The cube of Platinium will give
1|you access to enemy technology
1|so use it correctly.
@ -951,7 +951,7 @@ clicking on each Blupi.
1|Clues:
1|
1|Make a helping robot with the
1|cube of platinum in the factory
1|cube of Platinium in the factory
1|and make a time bomb.
1|
1|Take the robot and the bomb.

File diff suppressed because it is too large Load Diff

View File

@ -440,7 +440,7 @@ $6
1|מטרה:
1|
1|להגיע אל האי שנמצא בצפון
1|מזרח, ושם לפוצץ את הגדר.
1|מערב, ושם לפוצץ את הגדר.
1|
2|כל מה שצריך לעשות עכשיו זה

View File

@ -436,7 +436,7 @@ Blupi'yi aynı anda seçebilirsin.
#10
1|Hedef:
1|
1|Kuzeydoğudaki adaya ulaş ve
1|Kuzeybatıdaki adaya ulaş ve
1|kazıklı çiti havaya uçur.
2|Şimdi yapman gereken tek şey,
@ -1093,4 +1093,4 @@ Blupi'yi aynı anda seçebilirsin.
2|
2|Yapman gereken son şey bir
2|köprü yapmak, böylece robot,
2|roketine geri dönebilir.
2|roketine geri dönebilir.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

93
resources/fonts/OFL.txt Normal file
View File

@ -0,0 +1,93 @@
Copyright 2018 The Chakra Petch Project Authors (https://github.com/m4rc1e/Chakra-Petch.git)
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 156 KiB

After

Width:  |  Height:  |  Size: 178 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

After

Width:  |  Height:  |  Size: 175 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 155 KiB

After

Width:  |  Height:  |  Size: 177 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 206 KiB

After

Width:  |  Height:  |  Size: 199 KiB

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop-application">
<id>org.blupi.planetblupi</id>
<name>Planet Blupi</name>
<summary>Planet Blupi - A delirious spell-binding game</summary>
<metadata_license>MIT</metadata_license>
<project_license>GPL-3.0-or-later</project_license>
<description>
<p>
Planet Blupi is a strategy and adventure game. It subtly blends action with thought-provoking challenges. Behind the quiet and gentle facade, you&apos;ll enjoy a fascinating diversion full of surprises.
</p>
</description>
<url type="homepage">https://blupi.org</url>
<launchable type="desktop-id">planetblupi.desktop</launchable>
<screenshots>
<screenshot type="default">
<image>https://blupi.org/download/screen/planetblupi.png</image>
</screenshot>
</screenshots>
<provides>
<id>planetblupi.desktop</id>
<binary>planetblupi</binary>
</provides>
</component>

View File

@ -1,21 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop-application">
<id>planetblupi</id>
<metadata_license>MIT</metadata_license>
<project_license>GPL-3.0+</project_license>
<name>Planet Blupi</name>
<summary>Planet Blupi - A delirious spell-binding game</summary>
<description>
<p>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.</p>
</description>
<launchable type="desktop-id">planetblupi.desktop</launchable>
<url type="homepage">http://blupi.org/</url>
<screenshots>
<screenshot type="default">
<image>http://devel.schroetersa.ch/blupi.org/download/screen/planetblupi.png</image>
</screenshot>
</screenshots>
<provides>
<id>planetblupi.desktop</id>
</provides>
</component>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -30,6 +30,7 @@
;--------------------------------
;General
!ifdef INNER
Name "@CPACK_NSIS_PACKAGE_NAME@"
OutFile "${TEMPINSTALLER}.exe"
SetCompress off ; for speed
!else
@ -70,12 +71,14 @@
RequestExecutionLevel admin
@CPACK_NSIS_DEFINES@
@CPACK_NSIS_MANIFEST_DPI_AWARE_CODE@
@CPACK_NSIS_BRANDING_TEXT_CODE@
!include Sections.nsh
;--- Component support macros: ---
; The code for the add/remove functionality is from:
; http://nsis.sourceforge.net/Add/Remove_Functionality
; https://nsis.sourceforge.io/Add/Remove_Functionality
; It has been modified slightly and extended to provide
; inter-component dependencies.
Var AR_SecFlags
@ -410,7 +413,7 @@ Function un.RemoveFromPath
FunctionEnd
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Uninstall sutff
; Uninstall stuff
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
###########################################
@ -514,15 +517,15 @@ Done:
Exch $R1
FunctionEnd
Function ConditionalAddToRegisty
Function ConditionalAddToRegistry
Pop $0
Pop $1
StrCmp "$0" "" ConditionalAddToRegisty_EmptyString
StrCmp "$0" "" ConditionalAddToRegistry_EmptyString
WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" \
"$1" "$0"
;MessageBox MB_OK "Set Registry: '$1' to '$0'"
DetailPrint "Set install registry entry: '$1' to '$0'"
ConditionalAddToRegisty_EmptyString:
ConditionalAddToRegistry_EmptyString:
FunctionEnd
;--------------------------------
@ -552,28 +555,21 @@ Function DownloadFile
FunctionEnd
!endif
;--------------------------------
; Installation types
@CPACK_NSIS_INSTALLATION_TYPES@
;--------------------------------
; Component sections
@CPACK_NSIS_COMPONENT_SECTIONS@
;--------------------------------
; Define some macro setting for the gui
@CPACK_NSIS_INSTALLER_MUI_ICON_CODE@
@CPACK_NSIS_INSTALLER_ICON_CODE@
@CPACK_NSIS_INSTALLER_MUI_WELCOMEFINISH_CODE@
@CPACK_NSIS_INSTALLER_MUI_UNWELCOMEFINISH_CODE@
@CPACK_NSIS_INSTALLER_MUI_COMPONENTS_DESC@
@CPACK_NSIS_INSTALLER_MUI_FINISHPAGE_RUN_CODE@
;--------------------------------
;Pages
@CPACK_NSIS_INSTALLER_WELCOME_TITLE_CODE@
@CPACK_NSIS_INSTALLER_WELCOME_TITLE_3LINES_CODE@
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "@CPACK_RESOURCE_FILE_LICENSE@"
@CPACK_NSIS_LICENSE_PAGE@
Page custom InstallOptionsPage
!insertmacro MUI_PAGE_DIRECTORY
@ -586,32 +582,38 @@ FunctionEnd
@CPACK_NSIS_PAGE_COMPONENTS@
!insertmacro MUI_PAGE_INSTFILES
@CPACK_NSIS_INSTALLER_FINISH_TITLE_CODE@
@CPACK_NSIS_INSTALLER_FINISH_TITLE_3LINES_CODE@
!insertmacro MUI_PAGE_FINISH
!ifdef INNER
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!endif
;--------------------------------
;Languages
!insertmacro MUI_LANGUAGE "English" ;first language is the default language
!insertmacro MUI_LANGUAGE "Afrikaans"
!insertmacro MUI_LANGUAGE "Albanian"
!insertmacro MUI_LANGUAGE "Arabic"
!insertmacro MUI_LANGUAGE "Asturian"
!insertmacro MUI_LANGUAGE "Basque"
!insertmacro MUI_LANGUAGE "Belarusian"
!insertmacro MUI_LANGUAGE "Bosnian"
!insertmacro MUI_LANGUAGE "Breton"
!insertmacro MUI_LANGUAGE "Bulgarian"
!insertmacro MUI_LANGUAGE "Catalan"
!insertmacro MUI_LANGUAGE "Corsican"
!insertmacro MUI_LANGUAGE "Croatian"
!insertmacro MUI_LANGUAGE "Czech"
!insertmacro MUI_LANGUAGE "Danish"
!insertmacro MUI_LANGUAGE "Dutch"
!insertmacro MUI_LANGUAGE "Esperanto"
!insertmacro MUI_LANGUAGE "Estonian"
!insertmacro MUI_LANGUAGE "Farsi"
!insertmacro MUI_LANGUAGE "Finnish"
!insertmacro MUI_LANGUAGE "French"
!insertmacro MUI_LANGUAGE "Galician"
!insertmacro MUI_LANGUAGE "German"
!insertmacro MUI_LANGUAGE "Greek"
!insertmacro MUI_LANGUAGE "Hebrew"
@ -630,25 +632,31 @@ FunctionEnd
!insertmacro MUI_LANGUAGE "Malay"
!insertmacro MUI_LANGUAGE "Mongolian"
!insertmacro MUI_LANGUAGE "Norwegian"
!insertmacro MUI_LANGUAGE "NorwegianNynorsk"
!insertmacro MUI_LANGUAGE "Pashto"
!insertmacro MUI_LANGUAGE "Polish"
!insertmacro MUI_LANGUAGE "Portuguese"
!insertmacro MUI_LANGUAGE "PortugueseBR"
!insertmacro MUI_LANGUAGE "Romanian"
!insertmacro MUI_LANGUAGE "Russian"
!insertmacro MUI_LANGUAGE "ScotsGaelic"
!insertmacro MUI_LANGUAGE "Serbian"
!insertmacro MUI_LANGUAGE "SerbianLatin"
!insertmacro MUI_LANGUAGE "SimpChinese"
!insertmacro MUI_LANGUAGE "Slovak"
!insertmacro MUI_LANGUAGE "Slovenian"
!insertmacro MUI_LANGUAGE "Spanish"
!insertmacro MUI_LANGUAGE "SpanishInternational"
!insertmacro MUI_LANGUAGE "Swedish"
!insertmacro MUI_LANGUAGE "Tatar"
!insertmacro MUI_LANGUAGE "Thai"
!insertmacro MUI_LANGUAGE "TradChinese"
!insertmacro MUI_LANGUAGE "Turkish"
!insertmacro MUI_LANGUAGE "Ukrainian"
!insertmacro MUI_LANGUAGE "Uzbek"
!insertmacro MUI_LANGUAGE "Vietnamese"
!insertmacro MUI_LANGUAGE "Welsh"
;--------------------------------
;Reserve Files
@ -659,6 +667,17 @@ FunctionEnd
ReserveFile "NSIS.InstallOptions.ini"
!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
; for UserInfo::GetName and UserInfo::GetAccountType
ReserveFile /plugin 'UserInfo.dll'
;--------------------------------
; Installation types
@CPACK_NSIS_INSTALLATION_TYPES@
;--------------------------------
; Component sections
@CPACK_NSIS_COMPONENT_SECTIONS@
@CPACK_NSIS_INSTALLER_MUI_COMPONENTS_DESC@
;--------------------------------
;Installer Sections
@ -679,44 +698,44 @@ Section "-Core installation"
!endif
Push "DisplayName"
Push "@CPACK_NSIS_DISPLAY_NAME@"
Call ConditionalAddToRegisty
Call ConditionalAddToRegistry
Push "DisplayVersion"
Push "@CPACK_PACKAGE_VERSION@"
Call ConditionalAddToRegisty
Call ConditionalAddToRegistry
Push "Publisher"
Push "@CPACK_PACKAGE_VENDOR@"
Call ConditionalAddToRegisty
Call ConditionalAddToRegistry
Push "UninstallString"
Push "$INSTDIR\Uninstall.exe"
Call ConditionalAddToRegisty
Call ConditionalAddToRegistry
Push "NoRepair"
Push "1"
Call ConditionalAddToRegisty
Call ConditionalAddToRegistry
!ifdef CPACK_NSIS_ADD_REMOVE
;Create add/remove functionality
Push "ModifyPath"
Push "$INSTDIR\AddRemove.exe"
Call ConditionalAddToRegisty
Call ConditionalAddToRegistry
!else
Push "NoModify"
Push "1"
Call ConditionalAddToRegisty
Call ConditionalAddToRegistry
!endif
; Optional registration
Push "DisplayIcon"
Push "$INSTDIR\@CPACK_NSIS_INSTALLED_ICON_NAME@"
Call ConditionalAddToRegisty
Call ConditionalAddToRegistry
Push "HelpLink"
Push "@CPACK_NSIS_HELP_LINK@"
Call ConditionalAddToRegisty
Call ConditionalAddToRegistry
Push "URLInfoAbout"
Push "@CPACK_NSIS_URL_INFO_ABOUT@"
Call ConditionalAddToRegisty
Call ConditionalAddToRegistry
Push "Contact"
Push "@CPACK_NSIS_CONTACT@"
Call ConditionalAddToRegisty
Call ConditionalAddToRegistry
!insertmacro MUI_INSTALLOPTIONS_READ $INSTALL_DESKTOP "NSIS.InstallOptions.ini" "Field 5" "State"
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
@ -734,19 +753,19 @@ Section "-Core installation"
; Write special uninstall registry entries
Push "StartMenu"
Push "$STARTMENU_FOLDER"
Call ConditionalAddToRegisty
Call ConditionalAddToRegistry
Push "DoNotAddToPath"
Push "$DO_NOT_ADD_TO_PATH"
Call ConditionalAddToRegisty
Call ConditionalAddToRegistry
Push "AddToPathAllUsers"
Push "$ADD_TO_PATH_ALL_USERS"
Call ConditionalAddToRegisty
Call ConditionalAddToRegistry
Push "AddToPathCurrentUser"
Push "$ADD_TO_PATH_CURRENT_USER"
Call ConditionalAddToRegisty
Call ConditionalAddToRegistry
Push "InstallToDesktop"
Push "$INSTALL_DESKTOP"
Call ConditionalAddToRegisty
Call ConditionalAddToRegistry
!insertmacro MUI_STARTMENU_WRITE_END
@ -882,7 +901,7 @@ Section "Uninstall"
@CPACK_NSIS_DELETE_ICONS@
@CPACK_NSIS_DELETE_ICONS_EXTRA@
;Delete empty start menu parent diretories
;Delete empty start menu parent directories
StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP"
startMenuDeleteLoop:
@ -895,13 +914,13 @@ Section "Uninstall"
StrCmp "$MUI_TEMP" "$SMPROGRAMS" startMenuDeleteLoopDone startMenuDeleteLoop
startMenuDeleteLoopDone:
; If the user changed the shortcut, then untinstall may not work. This should
; If the user changed the shortcut, then uninstall may not work. This should
; try to fix it.
StrCpy $MUI_TEMP "$START_MENU"
Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk"
@CPACK_NSIS_DELETE_ICONS_EXTRA@
;Delete empty start menu parent diretories
;Delete empty start menu parent directories
StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP"
secondStartMenuDeleteLoop:

View File

@ -1,8 +1,8 @@
#!/bin/sh
CMAKE_VERSION=3.12
CMAKE_VERSION=3.15
mv /C/msys64/mingw64/share/cmake-$CMAKE_VERSION/Modules/NSIS.template.in /C/msys64/mingw64/share/cmake-$CMAKE_VERSION/Modules/NSIS.template.in.orig
mv /C/msys64/mingw32/share/cmake-$CMAKE_VERSION/Modules/NSIS.template.in /C/msys64/mingw32/share/cmake-$CMAKE_VERSION/Modules/NSIS.template.in.orig
cp $(dirname $0)/NSIS.template.in /C/msys64/mingw64/share/cmake-$CMAKE_VERSION/Modules/NSIS.template.in
cp $(dirname $0)/NSIS.template.in /C/msys64/mingw32/share/cmake-$CMAKE_VERSION/Modules/NSIS.template.in
mv /C/msys64/mingw64/share/cmake/Modules/Internal/CPack/NSIS.template.in /C/msys64/mingw64/share/cmake/Modules/Internal/CPack/NSIS.template.in.orig
mv /C/msys64/mingw32/share/cmake/Modules/Internal/CPack/NSIS.template.in /C/msys64/mingw32/share/cmake/Modules/Internal/CPack/NSIS.template.in.orig
cp $(dirname $0)/NSIS.template.in /C/msys64/mingw64/share/cmake/Modules/Internal/CPack/NSIS.template.in
cp $(dirname $0)/NSIS.template.in /C/msys64/mingw32/share/cmake/Modules/Internal/CPack/NSIS.template.in

977
resources/po/ar.po Normal file
View File

@ -0,0 +1,977 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-11-30 23:00+0100\n"
"PO-Revision-Date: 2022-04-28 14:38-0400\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: ar\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\n"
"X-Generator: Poedit 3.0.1\n"
msgid " - FFmpeg (LGPLv2.1)"
msgstr " - FFmpeg (LGPLv2.1)"
msgid " - GNU/gettext and GNU/libiconv (GPLv3)"
msgstr " - GNU/gettext and GNU/libiconv (GPLv3)"
msgid " - SDL2, SDL2_image, SDL2_mixer and SDL2_ttf (zlib license)"
msgstr " - SDL2, SDL2_image, SDL2_mixer and SDL2_ttf (zlib license)"
msgid " - SDL_kitchensink (MIT)"
msgstr " - SDL_kitchensink (MIT)"
msgid " - argagg (MIT)"
msgstr " - argagg (MIT)"
msgid " - libasound (LGPLv2.1)"
msgstr " - libasound (LGPLv2.1)"
msgid " - libcurl (MIT/X derivate)"
msgstr " - libcurl (MIT/X derivate)"
msgid " - libogg and libvorbis (own license)"
msgstr " - libogg and libvorbis (own license)"
msgid " - libpng (own license)"
msgstr " - libpng (own license)"
msgid " - libpulse (LGPLv2.1)"
msgstr " - libpulse (LGPLv2.1)"
msgid " - libsndfile (LGPLv3)"
msgstr " - libsndfile (LGPLv3)"
msgid " - zlib (own license)"
msgstr " - zlib (own license)"
msgid "(isolated tower)"
msgstr "(برج معزول)"
msgid ""
"1: Cut down a tree \n"
"2: Build a bridge"
msgstr ""
"1: قطع شجرة\n"
"2: بنى حسرًا"
msgid ""
"1: Cut down a tree \n"
"2: Make a boat"
msgstr ""
"1: قطع شجرة\n"
"2: بنى قاربًا"
msgid ""
"1: Cut down a tree \n"
"2: Make a palisade"
msgstr ""
"1: قطع شجرة\n"
"2: بنى حاجزًا"
msgid ""
"1: Extract iron\n"
"2: Make a Jeep"
msgstr ""
"1: استخراج حديدًا\n"
"2: بنى جيب"
msgid ""
"1: Extract iron\n"
"2: Make a bomb"
msgstr ""
"1: استخراج حديدًا\n"
"2: صنع قنبلة"
msgid ""
"1: Extract iron\n"
"2: Make an armour"
msgstr ""
"1: استخراج حديدًا\n"
"2: بنى جرعًا"
msgid ""
"1: Grow tomatoes\n"
"2: Eat"
msgstr ""
"1: زراعة اطماطم\n"
"2: أكل"
msgid ""
"1: Make a bunch\n"
"2: Transform"
msgstr ""
"1: جمع\n"
"2: تغيير"
msgid ""
"1: Take\n"
"2: Build a bridge"
msgstr ""
"1: تخذ\n"
"2: بنى جسرًا"
msgid ""
"1: Take\n"
"2: Build palisade"
msgstr ""
"1: تخذ\n"
"2: بنى حاجزًا"
msgid ""
"1: Take\n"
"2: Make a boat"
msgstr ""
"1: تخذ\n"
"2: بنى حسرًا"
msgid ""
"1: Take\n"
"2: Transform"
msgstr ""
"1: تخذ\n"
"2: تحويل"
msgid ""
"1|Drop Platinium on striped \n"
"1|paving stones."
msgstr ""
"1| أوقع بلاتين على\n"
"1| حجار المخططة."
msgid ""
"1|Drop planks on striped \n"
"1|paving stones."
msgstr ""
"1| اخفض الألواح على\n"
"1| حجار مخططة."
msgid ""
"1|Drop tomatoes on striped \n"
"1|paving stones."
msgstr ""
"1| انزع الطماطم على\n"
"1| حجار المخططة."
msgid ""
"1|Each Blupi in\n"
"1|his house."
msgstr ""
"1| كل بلوفي\n"
"1| ببيته."
msgid ""
"1|Go on striped\n"
"1|paving stones."
msgstr ""
"1| اذهب إلى\n"
"1| حجار مخططة."
msgid "1|Goal :"
msgstr "1| هدف:"
msgid ""
"1|Kill all\n"
"1|enemies !"
msgstr ""
"1| اقتل كل\n"
"1| الأعداء!"
msgid ""
"1|Resist until\n"
"1|fire extinction ..."
msgstr ""
"1| مقاومة حتى\n"
"1| اغلاق النار..."
#, c-format
msgid ""
"1|The Blupi population must\n"
"1|be of at least %d Blupi."
msgstr ""
"1 | يجب أن يكون ساكن البلوفيين\n"
"1 | على الأقل %d من بلوفيين."
msgid ""
"1|The robot must reach\n"
"1|the striped paving stones."
msgstr ""
"1 | يجب أن يصل الرجل الآلي\n"
"1 | الحجار المخططة."
msgid "Aliasing"
msgstr "للا تنغيم"
msgid "All licenses are available under share/doc/planetblupi/copyright"
msgstr "كل التراخيص متوفرة بموجب share/doc/planetblupi/copyright"
msgid "Already two teleporters"
msgstr "هناك بالفعل آلتين النقال الآني"
msgid "Another mistake..."
msgstr "خطأ آخر..."
msgid "Anti-aliasing"
msgstr "تنغيم المنحنيات"
msgid "Armour"
msgstr "درع"
msgid "Available buttons"
msgstr "أزرار متوفرة"
msgid "Bang, failed again !"
msgstr "يا للهول! لقد فشلت مرة أخرى!"
msgid "Bank"
msgstr "ضفة"
msgid "Blow up"
msgstr "فجر"
msgid "Blupi"
msgstr "بلوفي"
msgid "Blupi in house"
msgstr "بلوفي ببيت"
msgid "Blupi on striped paving stones"
msgstr "بلوفي على حجار الرصف مخططة"
msgid "Blupi's energy"
msgstr "طاقة بلوفي"
msgid "Blupi's house"
msgstr "بيت بلوفي"
msgid "Boat"
msgstr "قارب"
msgid "Bouncing bomb"
msgstr "قنبلة نطاطة"
msgid "Bridge"
msgstr "جسر"
msgid "Bridge finished"
msgstr "جسر منتهي"
msgid "Buildings"
msgstr "بنايات"
msgid "Bulldozer"
msgstr "جرافة"
msgid "Bunch of flowers"
msgstr "ممجموة من زهور"
msgid "Burnt ground"
msgstr "أرض محترقة"
msgid "Cancel last operation"
msgstr "إلغاء العملية الأخيرة"
msgid "Carve a rock"
msgstr "نحت صخرًا"
msgid "Carve rocks"
msgstr "نحت صخورًا"
msgid ""
"Change the\n"
"display mode"
msgstr ""
"تغيير\n"
"الوضع العرض"
msgid ""
"Change the\n"
"render quality"
msgstr ""
"تغيير\n"
"جودة التوصيل"
msgid ""
"Change the\n"
"window size"
msgstr ""
"تغيير\n"
"الحجم النافذة"
msgid ""
"Choose the\n"
"music format"
msgstr ""
"أختيار\n"
"التنسيق الموسيقى"
msgid "Construct this game"
msgstr "بنى هذه اللعبة"
msgid "Construction"
msgstr "بناء"
msgid "Construction number"
msgstr "رقم البناء"
msgid "Continue this game"
msgstr "أكمل هذه اللعبة"
msgid "Cut down a tree"
msgstr "قطع شجرة"
msgid "Cut down trees"
msgstr "قطع شجرات"
msgid "Decorative plants"
msgstr "نباتات الزينة"
msgid "Delete figure"
msgstr "حذف شكلًا"
msgid "Delete fire"
msgstr "حذف نارًا"
msgid "Delete item"
msgstr "حذف بندًا"
msgid "Demo"
msgstr "تجريب"
msgid "Desert"
msgstr "سهرة"
msgid "Desktop"
msgstr "سطح المكتب"
msgid "Desktop mode"
msgstr "سطح المكتب"
msgid "Difficult"
msgstr "صعب"
msgid "Disable anti-aliasing"
msgstr "تعطيل الصقل"
msgid "Drink"
msgstr "شرب"
msgid "Drop"
msgstr "أوقع"
msgid "Dynamite"
msgstr "المتفجرات"
msgid "E"
msgstr "شر"
msgid "Easy"
msgstr "سهل"
msgid "Eat"
msgstr "أكل"
msgid "Eggs"
msgstr "بيضات"
msgid "Electrocutor"
msgstr "كهربائي"
msgid "Enable anti-aliasing"
msgstr "تفعيل الصقل"
msgid "Ending conditions"
msgstr "شروط النهاية"
msgid "Enemy barrier"
msgstr "حاجز العدو"
msgid "Enemy buildings"
msgstr "بنايات العدو"
msgid "Enemy construction"
msgstr "بناء العدو"
msgid "Enemy ground"
msgstr "أرض العدو"
msgid "Enemy rocket"
msgstr "صاروخ العدو"
msgid "Excellent..."
msgstr "ممتاز..."
msgid "Extract iron"
msgstr "إستخراج حديدًا"
msgid "Faster"
msgstr "أسرع"
msgid "Finish"
msgstr "انتهى"
msgid "Fire"
msgstr "نار"
msgid "Fire out"
msgstr "انطفأت النار"
msgid "Flag"
msgstr "علم"
msgid "Flowers"
msgstr "زهور"
msgid "Forest"
msgstr "غابة"
msgid "Forest under snow"
msgstr "غابة تحت الثلج"
msgid "Fullscreen"
msgstr "شاشة كاملة"
msgid "Game paused"
msgstr "لعبة متوقفة"
msgid "Garden shed"
msgstr "كوخ حديقة"
msgid ""
"Global game\n"
"speed"
msgstr ""
"سرعة\n"
"اللعبة العامة"
msgid "Global settings"
msgstr "الإعدادات العامة"
msgid "Go"
msgstr "ذهب"
msgid "Grow tomatoes"
msgstr "زراعة الطماطم"
msgid "Help"
msgstr "تعليمات"
msgid "Help number"
msgstr "رقم التعليمة"
msgid "Helper robot"
msgstr "رجل آلي المساعدة"
msgid "Ice"
msgstr "جليد"
msgid "Impossible"
msgstr "مستحيل"
#, c-format
msgid "Impossible to win if less than %d Blupi"
msgstr "من المستحيل الفوز إن كان أقل من %d بلوفيين"
msgid "Inadequate ground"
msgstr "أرض لاامناسبة"
msgid "Increase volume"
msgstr "تكبير الصوت"
msgid "Increase window size"
msgstr "تكبير حجم النافذة"
msgid "Incubator"
msgstr "حاضنة"
msgid "Incubator or teleporter"
msgstr "حاضنة أو آلة النقال الآني"
msgid "Inflammable ground"
msgstr "أرض قابلة للاشتعال"
msgid "Insert CD-Rom Planet Blupi and wait a few seconds..."
msgstr "الرجاء إدخال القرص المضغوط الخاص باللعبة وانتظر بضع ثوان..."
msgid ""
"Interface language\n"
"and sounds"
msgstr ""
"لسان الواجهة\n"
"وأصوات"
msgid "Interrupt"
msgstr "قطع"
msgid "Iron"
msgstr "حديد"
msgid "Items"
msgstr "بنود"
msgid "Jeep"
msgstr "جيب"
msgid "Laboratory"
msgstr "معمل"
msgid "Last construction resolved !"
msgstr "تم حل البناء الأخير!"
msgid "Leave Jeep"
msgstr "ترك الجيب"
msgid "Legacy"
msgstr "قديم"
msgid "Legacy mode (640x480)"
msgstr "وضع قديم (640x480)"
#, c-format
msgid "Lost if less than %d Blupi"
msgstr "ضاع إن كان أقل من %d بلوفيين"
msgid "Make a Jeep"
msgstr "بنى جيب"
msgid "Make a helper robot"
msgstr "بنى روبوت مساعد"
msgid "Make a time bomb"
msgstr "بنى قنبلة مزمونة"
msgid "Make armour"
msgstr "بنى درعًا"
msgid "Make bunch of flowers"
msgstr "صنع باقة من الزهور"
msgid "Make bunches of flowers"
msgstr "اصنع باقات من الزهور"
msgid "Master robot"
msgstr "الرجل إلي الأعلى"
msgid "Medical potion"
msgstr "جرعة طبية"
msgid "Midi"
msgstr "حدد وضع النافذة"
msgid "Mine"
msgstr "لغم"
msgid "Miscellaneous ground"
msgstr "أرض متنوعة"
msgid "Mission number"
msgstr "رقم المهمة"
msgid "Mission over..."
msgstr "انتهت المهمة ..."
msgid "Missions"
msgstr "بعثات"
msgid ""
"Music\n"
"volume"
msgstr ""
"شدة\n"
"الموسيقى"
msgid "Music choice"
msgstr "اختيار الموسيقى"
msgid "Music number 1"
msgstr "موسيقى رقم 1"
msgid "Music number 10"
msgstr "موسيقى رقم 10"
msgid "Music number 2"
msgstr "موسيقى رقم 2"
msgid "Music number 3"
msgstr "موسيقى رقم 3"
msgid "Music number 4"
msgstr "موسيقى رقم 4"
msgid "Music number 5"
msgstr "موسيقى رقم 5"
msgid "Music number 6"
msgstr "موسيقى رقم 6"
msgid "Music number 7"
msgstr "موسيقى رقم 7"
msgid "Music number 8"
msgstr "موسيقى رقم 8"
msgid "Music number 9"
msgstr "موسيقى رقم 9"
msgid "N"
msgstr "شم"
#, c-format
msgid "New version available for download on www.blupi.org (v%s)"
msgstr "يتوفر إصدار حديث للتنزيل من www.blupi.org (v%s)"
msgid "Next game"
msgstr "لعبة تالية"
msgid "Next language"
msgstr "لسان التالي"
msgid "Next page"
msgstr "صفحة تالية"
msgid "No"
msgstr "لا"
msgid "No more enemies"
msgstr "لا مزيد من الأعداء"
msgid "No music"
msgstr "لا موسيقى"
msgid "No video"
msgstr "لا فيديو"
msgid "No, not that way !"
msgstr "لا! ليس بهذه الطريقة!"
msgid "No, wrong way ..."
msgstr "لا ، هذه هي الطريقة الخاطئة."
msgid "None"
msgstr "بلا"
msgid "Normal ground"
msgstr "أرض عادي"
msgid "Not available"
msgstr "لامتوفر"
msgid "Not enough energy"
msgstr "ليست طاقة كافية"
msgid "Now go on mission."
msgstr "اذهب الآن في مهمة."
msgid "Occupied ground"
msgstr "أرض مأهولة"
msgid "Ogg"
msgstr "Ogg"
msgid "Open another game"
msgstr "فتر لعبة أحرى"
msgid "Opposite bank no good"
msgstr "بنك مقابل لامناسب"
msgid "Palisade"
msgstr "حاجز"
msgid "Paving stones"
msgstr "حجار الرصف"
msgid "Planet Blupi"
msgstr "الكوكب بلوفي"
msgid "Planet Blupi -- stop"
msgstr "الكوكب بلوفي - وقف"
msgid "Planks"
msgstr "ألواح"
msgid "Planks on striped paving stones"
msgstr "ألواح على حجار الرصف مخططة"
msgid "Platinium"
msgstr "بلاتين"
msgid "Platinium on striped paving stones"
msgstr "بلاتين على حجار الرصف مخططة"
msgid "Play this game"
msgstr "العب هذه اللعبة"
msgid "Poison"
msgstr "سم"
msgid "Prairie"
msgstr "مرج"
msgid "Previous game"
msgstr "لعبة سابقة"
msgid "Previous language"
msgstr "لسان السابق"
msgid "Previous page"
msgstr "صفحة سابقة"
msgid "Prospect for iron"
msgstr "بحث عن حديد"
msgid "Protection tower"
msgstr "برج الحماية"
msgid "Quit"
msgstr "خرج"
msgid "Quit Planet Blupi"
msgstr "خروج من بلوفي"
msgid "Quit construction"
msgstr "إنهاء البناء"
msgid "Quit this game"
msgstr "خروج من هذه اللعبة"
msgid "REC"
msgstr "تسجيل"
msgid "Reduce volume"
msgstr "تقليل الصوت"
msgid "Reduce window size"
msgstr "تصغير حجم النافذة"
msgid "Repeat"
msgstr "إعادة"
msgid "Restart this game"
msgstr "أعد بدء هذه اللعبة"
msgid "Robot on striped paving stones"
msgstr "رجل آلي على حجار الرصف مخططة"
msgid "Rocks"
msgstr "صخور"
msgid "S"
msgstr "ج"
msgid "Save"
msgstr "حفظ"
msgid "Save this game"
msgstr "حفظ هذه اللعبة"
msgid "Scenery choice"
msgstr "اختيار مشهد"
msgid ""
"Scroll speed\n"
"with mouse"
msgstr ""
"سرعة التمرير\n"
"باستخدام الفأرة"
msgid ""
"Select the\n"
"window mode"
msgstr ""
"طريقة الاختيار\n"
"النافذة"
msgid "Settings"
msgstr "إعدادات"
msgid "Show videos"
msgstr "إظهار مقاطع الفيديو"
msgid "Sick Blupi"
msgstr "بلوفي مرضان"
msgid "Skill level"
msgstr "مستوى المهارة"
msgid "Slower"
msgstr "أبطأ"
msgid ""
"Sound effect\n"
"volume"
msgstr ""
"شدة التأثيرات\n"
"الحبال الصوتية"
msgid "Special pavings"
msgstr "تبليط خاص"
msgid "Spider"
msgstr "عنكبوت"
msgid "Starting fire"
msgstr "بدء إطلاق النار"
msgid "Sterile ground"
msgstr "أرض معقمة"
msgid "Sticky trap"
msgstr "مصيدة لزجة"
msgid "Stones"
msgstr "حجار"
msgid "Stop"
msgstr "وقف"
msgid "Striped paving stones"
msgstr "حجار رصف مخططة"
msgid "Take"
msgstr "تخذ"
msgid "Teleporter"
msgstr "آلة النقال الآني"
msgid ""
"This game is an original creation of Epsitec SA, CH-1400 Yverdon-les-Bains"
msgstr "هذه لعبة أصلية من Epsitec SA, CH-1400 Yverdon-les-Bains"
msgid "This game uses statically linked free and open-source libraries:"
msgstr "تستخدم هذه اللعبة مكتبات مفتوحة المصدر ومجانية مرتبطة بشكل ثابت:"
msgid "Time bomb"
msgstr "قنبلة مزمونة"
msgid "Tired Blupi"
msgstr "بلوفي نعسان"
msgid "Tomatoes"
msgstr "طماطم"
msgid "Tomatoes on striped paving stones"
msgstr "طماطم على حجار الرصف مخططة"
msgid "Too close to water"
msgstr "قريب جدا من الماء"
msgid "Training"
msgstr "تمرين"
msgid "Training number"
msgstr "رقم التمرين"
msgid "Transform"
msgstr "تحويل"
msgid "Transport"
msgstr "نقل"
msgid "Trapped enemy"
msgstr "عدو محاصر"
msgid "Tree"
msgstr "شجرة"
msgid "Tree trunks"
msgstr "جذوع الأشجار"
msgid "Use Midi music (original)"
msgstr "إستخدم موسيقى Midi (أصلي)"
msgid "Use Ogg music"
msgstr "إستخدم موسيقى Ogg"
msgid "Version"
msgstr "إصدار"
msgid "Very good, success on all missions !"
msgstr "رائع جدا ، النجاح بكل المهمات!"
msgid "Very good."
msgstr "رائع حقا."
msgid ""
"Video\n"
"sequences"
msgstr ""
"تسلسل\n"
" فيديو"
msgid "Virus"
msgstr "فيروس"
msgid "W"
msgstr "غ"
msgid "Wall"
msgstr "جدار"
msgid "Wall or palisade"
msgstr "جدار أو حاجز"
msgid "Water"
msgstr "ماء"
msgid "We hope you have had as much fun playing the game as we had making it !"
msgstr ""
"نأمل أن تكونوا قد استمتعتم بلعب اللعبة على الأقل بقدر ما استمتعنا بالإنشاء "
"معها!"
msgid "Weapons"
msgstr "أسلحة"
msgid "Well done !"
msgstr "أحسنت!"
msgid "Windowed"
msgstr "نافذة"
msgid "Work done"
msgstr "انتهى العمل"
msgid "Workshop"
msgstr "ورشة عمل"
msgid "Yes"
msgstr "نعم"
msgid "Yes, great ..."
msgstr "نعم، عظيم..."
msgid "You have failed, try again..."
msgstr "لقد فشلتم ، حاول مرة أخرى ..."
msgid "You have played Planet Blupi."
msgstr "لقد لعبتم بلوفي."
#, c-format
msgid "construction %d, time %d"
msgstr "البناء% d زمن%d"
msgid "en"
msgstr "ar"
msgid "free slot"
msgstr "ساقطة بالمجان"
msgid "https://www.blupi.org info@blupi.org"
msgstr "https://www.blupi.org info@blupi.org"
#, c-format
msgid "mission %d, time %d"
msgstr "البناء%d زمن%d"
#, c-format
msgid "training %d, time %d"
msgstr "تمرين%d زمن%d"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-08-08 07:29+0200\n"
"POT-Creation-Date: 2023-11-30 23:00+0100\n"
"PO-Revision-Date: 2017-12-14 23:15+0100\n"
"Last-Translator: \n"
"Language-Team: \n"
@ -24,8 +24,8 @@ msgstr " - FFmpeg (LGPLv2.1)"
msgid " - GNU/gettext and GNU/libiconv (GPLv3)"
msgstr " - GNU/gettext und GNU/libiconv (GPLv3)"
msgid " - SDL2, SDL2_image and SDL2_mixer (zlib license)"
msgstr " - SDL2, SDL2_image und SDL2_mixer (zlib Lizenz)"
msgid " - SDL2, SDL2_image, SDL2_mixer and SDL2_ttf (zlib license)"
msgstr " - SDL2, SDL2_image, SDL2_mixer und SDL2_ttf (zlib Lizenz)"
msgid " - SDL_kitchensink (MIT)"
msgstr " - SDL_kitchensink (MIT)"
@ -141,6 +141,13 @@ msgstr ""
"1: Nehmen\n"
"2: Verarbeiten"
msgid ""
"1|Drop Platinium on striped \n"
"1|paving stones."
msgstr ""
"1|Platinium auf die\n"
"1|gestreiften Quadrate legen."
msgid ""
"1|Drop planks on striped \n"
"1|paving stones."
@ -148,13 +155,6 @@ msgstr ""
"1|Bretter auf die\n"
"1|gestreiften Quadrate legen."
msgid ""
"1|Drop platinium on striped \n"
"1|paving stones."
msgstr ""
"1|Platinium auf die\n"
"1|gestreiften Quadrate legen."
msgid ""
"1|Drop tomatoes on striped \n"
"1|paving stones."
@ -976,8 +976,8 @@ msgstr "de"
msgid "free slot"
msgstr "frei"
msgid "http://www.blupi.org info@blupi.org"
msgstr "http://www.blupi.org info@blupi.org"
msgid "https://www.blupi.org info@blupi.org"
msgstr "https://www.blupi.org info@blupi.org"
#, c-format
msgid "mission %d, time %d"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-08-08 07:29+0200\n"
"POT-Creation-Date: 2023-11-30 23:00+0100\n"
"PO-Revision-Date: 2017-02-27 21:28+0100\n"
"Last-Translator: \n"
"Language-Team: \n"
@ -24,7 +24,7 @@ msgstr ""
msgid " - GNU/gettext and GNU/libiconv (GPLv3)"
msgstr ""
msgid " - SDL2, SDL2_image and SDL2_mixer (zlib license)"
msgid " - SDL2, SDL2_image, SDL2_mixer and SDL2_ttf (zlib license)"
msgstr ""
msgid " - SDL_kitchensink (MIT)"
@ -118,12 +118,12 @@ msgid ""
msgstr ""
msgid ""
"1|Drop planks on striped \n"
"1|Drop Platinium on striped \n"
"1|paving stones."
msgstr ""
msgid ""
"1|Drop platinium on striped \n"
"1|Drop planks on striped \n"
"1|paving stones."
msgstr ""
@ -898,7 +898,7 @@ msgstr "en_US"
msgid "free slot"
msgstr ""
msgid "http://www.blupi.org info@blupi.org"
msgid "https://www.blupi.org info@blupi.org"
msgstr ""
#, c-format

979
resources/po/es.po Normal file
View File

@ -0,0 +1,979 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-11-30 23:00+0100\n"
"PO-Revision-Date: 2022-06-14 14:57-0300\n"
"Last-Translator: \n"
"Language-Team: Español <elpatrixf@hotmail.com>\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.0\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid " - FFmpeg (LGPLv2.1)"
msgstr " - FFmpeg (LGPLv2.1)"
msgid " - GNU/gettext and GNU/libiconv (GPLv3)"
msgstr " - GNU/gettext y GNU/libiconv (GPLv3)"
msgid " - SDL2, SDL2_image, SDL2_mixer and SDL2_ttf (zlib license)"
msgstr " - SDL2, SDL2_image, SDL2_mixer y SDL2_ttf (licencia zlib)"
msgid " - SDL_kitchensink (MIT)"
msgstr " - SDL_kitchensink (MIT)"
msgid " - argagg (MIT)"
msgstr " - argagg (MIT)"
msgid " - libasound (LGPLv2.1)"
msgstr " - libasound (LGPLv2.1)"
msgid " - libcurl (MIT/X derivate)"
msgstr " - libcurl (derivado de MIT/X)"
msgid " - libogg and libvorbis (own license)"
msgstr " - libogg y libvorbis (licencia propia)"
msgid " - libpng (own license)"
msgstr " - libpng (licencia propia)"
msgid " - libpulse (LGPLv2.1)"
msgstr " - libpulse (LGPLv2.1)"
msgid " - libsndfile (LGPLv3)"
msgstr " - libsndfile (LGPLv3)"
msgid " - zlib (own license)"
msgstr " - zlib (licencia propia)"
msgid "(isolated tower)"
msgstr "(torre aislada)"
msgid ""
"1: Cut down a tree \n"
"2: Build a bridge"
msgstr ""
"1: Cortar un árbol\n"
"2: Construir un puente"
msgid ""
"1: Cut down a tree \n"
"2: Make a boat"
msgstr ""
"1: Cortar un árbol\n"
"2: Hacer un bote"
msgid ""
"1: Cut down a tree \n"
"2: Make a palisade"
msgstr ""
"1: Cortar un árbol\n"
"2: Hacer una empalizada"
msgid ""
"1: Extract iron\n"
"2: Make a Jeep"
msgstr ""
"1: Extraer hierro\n"
"2: Hacer un jeep"
msgid ""
"1: Extract iron\n"
"2: Make a bomb"
msgstr ""
"1: Extraer hierro\n"
"2: Hacer una bomba"
msgid ""
"1: Extract iron\n"
"2: Make an armour"
msgstr ""
"1: Extraer hierro\n"
"2: Hacer una armadura"
msgid ""
"1: Grow tomatoes\n"
"2: Eat"
msgstr ""
"1: Plantar tomates\n"
"2: Comer"
msgid ""
"1: Make a bunch\n"
"2: Transform"
msgstr ""
"1: Hacer un ramo\n"
"2: Transformar"
msgid ""
"1: Take\n"
"2: Build a bridge"
msgstr ""
"1: Tomar\n"
"2: Construir un puente"
msgid ""
"1: Take\n"
"2: Build palisade"
msgstr ""
"1: Tomar\n"
"2: Construir empalizada"
msgid ""
"1: Take\n"
"2: Make a boat"
msgstr ""
"1: Tomar\n"
"2: Hacer un bote"
msgid ""
"1: Take\n"
"2: Transform"
msgstr ""
"1: Tomar\n"
"2: Transformar"
msgid ""
"1|Drop Platinium on striped \n"
"1|paving stones."
msgstr ""
"1|Deposita Platinium en\n"
"1|las baldosas rayadas."
msgid ""
"1|Drop planks on striped \n"
"1|paving stones."
msgstr ""
"1|Deposita maderos en\n"
"1|las baldosas rayadas."
msgid ""
"1|Drop tomatoes on striped \n"
"1|paving stones."
msgstr ""
"1|Deposita tomates en\n"
"1|las baldosas rayadas."
msgid ""
"1|Each Blupi in\n"
"1|his house."
msgstr ""
"1|Cada Blupi en\n"
"1|su casa."
msgid ""
"1|Go on striped\n"
"1|paving stones."
msgstr ""
"1|Ve a las baldosas\n"
"1|rayadas."
msgid "1|Goal :"
msgstr "1|Objetivo :"
msgid ""
"1|Kill all\n"
"1|enemies !"
msgstr ""
"1|Matar a todos\n"
"1|los enemigos !"
msgid ""
"1|Resist until\n"
"1|fire extinction ..."
msgstr ""
"1|Aguantar hasta que\n"
"1|se apague el fuego..."
#, c-format
msgid ""
"1|The Blupi population must\n"
"1|be of at least %d Blupi."
msgstr ""
"1|La población de Blupi debe\n"
"1|ser de al menos %d Blupi."
msgid ""
"1|The robot must reach\n"
"1|the striped paving stones."
msgstr ""
"1|El robot debe ir a\n"
"1|las baldosas rayadas."
msgid "Aliasing"
msgstr "Aliasing"
msgid "All licenses are available under share/doc/planetblupi/copyright"
msgstr ""
"Todas las licencias están disponibles bajo share/doc/planetblupi/copyright"
msgid "Already two teleporters"
msgstr "Ya hay dos teletransportadores"
msgid "Another mistake..."
msgstr "Otro error..."
msgid "Anti-aliasing"
msgstr "Anti-aliasing"
msgid "Armour"
msgstr "Armadura"
msgid "Available buttons"
msgstr "Botones disponibles"
msgid "Bang, failed again !"
msgstr "Bum, fallaste otra vez !"
msgid "Bank"
msgstr "Orilla"
msgid "Blow up"
msgstr "Explotar"
msgid "Blupi"
msgstr "Blupi"
msgid "Blupi in house"
msgstr "Blupi en casa"
msgid "Blupi on striped paving stones"
msgstr "Blupi en las baldosas rayadas"
msgid "Blupi's energy"
msgstr "Energía de Blupi"
msgid "Blupi's house"
msgstr "Casa de Blupi"
msgid "Boat"
msgstr "Bote"
msgid "Bouncing bomb"
msgstr "Bomba Saltarina"
msgid "Bridge"
msgstr "Puente"
msgid "Bridge finished"
msgstr "Puente terminado"
msgid "Buildings"
msgstr "Edificios"
msgid "Bulldozer"
msgstr "Topadora"
msgid "Bunch of flowers"
msgstr "Ramo de flores"
msgid "Burnt ground"
msgstr "Tierra arrasada"
msgid "Cancel last operation"
msgstr "Cancelar la última acción"
msgid "Carve a rock"
msgstr "Picar una roca"
msgid "Carve rocks"
msgstr "Picar varias rocas"
msgid ""
"Change the\n"
"display mode"
msgstr ""
"Cambiar el modo\n"
"de pantalla"
msgid ""
"Change the\n"
"render quality"
msgstr ""
"Cambiar la calidad\n"
"de renderizado"
msgid ""
"Change the\n"
"window size"
msgstr ""
"Cambiar el tamaño\n"
"de ventana"
msgid ""
"Choose the\n"
"music format"
msgstr ""
"Elegir el formato\n"
"de música"
msgid "Construct this game"
msgstr "Construir esta partida"
msgid "Construction"
msgstr "Construcción"
msgid "Construction number"
msgstr "Construcción número"
msgid "Continue this game"
msgstr "Continuar esta partida"
msgid "Cut down a tree"
msgstr "Cortar un árbol"
msgid "Cut down trees"
msgstr "Cortar varios árboles"
msgid "Decorative plants"
msgstr "Plantas decorativas"
msgid "Delete figure"
msgstr "Quitar figura"
msgid "Delete fire"
msgstr "Quitar fuego"
msgid "Delete item"
msgstr "Quitar elemento"
msgid "Demo"
msgstr "Demostración"
msgid "Desert"
msgstr "Desierto"
msgid "Desktop"
msgstr "Escritorio"
msgid "Desktop mode"
msgstr "Modo escritorio"
msgid "Difficult"
msgstr "Difícil"
msgid "Disable anti-aliasing"
msgstr "Deshabilitar anti-aliasing"
msgid "Drink"
msgstr "Beber"
msgid "Drop"
msgstr "Dejar"
msgid "Dynamite"
msgstr "Dinamita"
msgid "E"
msgstr "E"
msgid "Easy"
msgstr "Fácil"
msgid "Eat"
msgstr "Comer"
msgid "Eggs"
msgstr "Huevos"
msgid "Electrocutor"
msgstr "Electrocutador"
msgid "Enable anti-aliasing"
msgstr "Habilitar anti-aliasing"
msgid "Ending conditions"
msgstr "Condiciones de victoria"
msgid "Enemy barrier"
msgstr "Barrera enemiga"
msgid "Enemy buildings"
msgstr "Edificios enemigos"
msgid "Enemy construction"
msgstr "Construcción enemiga"
msgid "Enemy ground"
msgstr "Territorio enemigo"
msgid "Enemy rocket"
msgstr "Cohete enemigo"
msgid "Excellent..."
msgstr "Excelente..."
msgid "Extract iron"
msgstr "Extraer hierro"
msgid "Faster"
msgstr "Más rápido"
msgid "Finish"
msgstr "Terminar"
msgid "Fire"
msgstr "Fuego"
msgid "Fire out"
msgstr "Apagar el fuego"
msgid "Flag"
msgstr "Bandera"
msgid "Flowers"
msgstr "Flores"
msgid "Forest"
msgstr "Bosque"
msgid "Forest under snow"
msgstr "Bosque nevado"
msgid "Fullscreen"
msgstr "Pantalla completa"
msgid "Game paused"
msgstr "Juego en pausa"
msgid "Garden shed"
msgstr "Cobertizo"
msgid ""
"Global game\n"
"speed"
msgstr ""
"Velocidad\n"
"global"
msgid "Global settings"
msgstr "Opciones Globales"
msgid "Go"
msgstr "Ir"
msgid "Grow tomatoes"
msgstr "Plantar tomates"
msgid "Help"
msgstr "Ayuda"
msgid "Help number"
msgstr "Ayuda número"
msgid "Helper robot"
msgstr "Robot Ayudante"
msgid "Ice"
msgstr "Hielo"
msgid "Impossible"
msgstr "Imposible"
#, c-format
msgid "Impossible to win if less than %d Blupi"
msgstr "Imposible ganar si hay menos de %d Blupi"
msgid "Inadequate ground"
msgstr "Terreno no adecuado"
msgid "Increase volume"
msgstr "Aumentar volumen"
msgid "Increase window size"
msgstr "Aumentar tamaño de ventana"
msgid "Incubator"
msgstr "Incubador"
msgid "Incubator or teleporter"
msgstr "Incubador o teletransportador"
msgid "Inflammable ground"
msgstr "Terreno inflamable"
msgid "Insert CD-Rom Planet Blupi and wait a few seconds..."
msgstr "Inserte el CD-Rom de Planet Blupi y espere algunos segundos..."
msgid ""
"Interface language\n"
"and sounds"
msgstr ""
"Idioma de interfaz\n"
"y sonidos"
msgid "Interrupt"
msgstr "Interrumpir"
msgid "Iron"
msgstr "Hierro"
msgid "Items"
msgstr "Elementos"
msgid "Jeep"
msgstr "Jeep"
msgid "Laboratory"
msgstr "Laboratorio"
msgid "Last construction resolved !"
msgstr "Construcción final resuelta !"
msgid "Leave Jeep"
msgstr "Salir del Jeep"
msgid "Legacy"
msgstr "Legado"
msgid "Legacy mode (640x480)"
msgstr "Modo legado (640x480)"
#, c-format
msgid "Lost if less than %d Blupi"
msgstr "Pierdes si quedan menos de %d Blupi"
msgid "Make a Jeep"
msgstr "Hacer un Jeep"
msgid "Make a helper robot"
msgstr "Hacer un robot ayudante"
msgid "Make a time bomb"
msgstr "Hacer una bomba de tiempo"
msgid "Make armour"
msgstr "Hacer una armadura"
msgid "Make bunch of flowers"
msgstr "Hacer ramo de flores"
msgid "Make bunches of flowers"
msgstr "Hacer varios ramos de flores"
msgid "Master robot"
msgstr "Robot Maestro"
msgid "Medical potion"
msgstr "Poción médica"
msgid "Midi"
msgstr "Midi"
msgid "Mine"
msgstr "Mina"
msgid "Miscellaneous ground"
msgstr "Terreno misceláneo"
msgid "Mission number"
msgstr "Misión número"
msgid "Mission over..."
msgstr "Misión completada..."
msgid "Missions"
msgstr "Misiones"
msgid ""
"Music\n"
"volume"
msgstr ""
"Volumen de\n"
"música"
msgid "Music choice"
msgstr "Música"
msgid "Music number 1"
msgstr "Música número 1"
msgid "Music number 10"
msgstr "Música número 10"
msgid "Music number 2"
msgstr "Música número 2"
msgid "Music number 3"
msgstr "Música número 3"
msgid "Music number 4"
msgstr "Música número 4"
msgid "Music number 5"
msgstr "Música número 5"
msgid "Music number 6"
msgstr "Música número 6"
msgid "Music number 7"
msgstr "Música número 7"
msgid "Music number 8"
msgstr "Música número 8"
msgid "Music number 9"
msgstr "Música número 9"
msgid "N"
msgstr "N"
#, c-format
msgid "New version available for download on www.blupi.org (v%s)"
msgstr "Nueva versión disponible para descarga en www.blupi.org (v%s)"
msgid "Next game"
msgstr "Siguiente partida"
msgid "Next language"
msgstr "Siguiente idioma"
msgid "Next page"
msgstr "Página siguiente"
msgid "No"
msgstr "No"
msgid "No more enemies"
msgstr "Cero enemigos"
msgid "No music"
msgstr "Sin música"
msgid "No video"
msgstr "Saltar videos"
msgid "No, not that way !"
msgstr "No, así no !"
msgid "No, wrong way ..."
msgstr "No, equivocado ..."
msgid "None"
msgstr "Ninguna"
msgid "Normal ground"
msgstr "Terreno normal"
msgid "Not available"
msgstr "No disponible"
msgid "Not enough energy"
msgstr "Energía insuficiente"
msgid "Now go on mission."
msgstr "Ahora ve a las misiones."
msgid "Occupied ground"
msgstr "Terreno ocupado"
msgid "Ogg"
msgstr "Ogg"
msgid "Open another game"
msgstr "Abrir otra partida"
msgid "Opposite bank no good"
msgstr "Orilla opuesta no es adecuada"
msgid "Palisade"
msgstr "Empalizada"
msgid "Paving stones"
msgstr "Baldosa"
msgid "Planet Blupi"
msgstr "Planet Blupi"
msgid "Planet Blupi -- stop"
msgstr "Planet Blupi -- detener"
msgid "Planks"
msgstr "Maderos"
msgid "Planks on striped paving stones"
msgstr "Maderos en las baldosas rayadas"
msgid "Platinium"
msgstr "Platinium"
msgid "Platinium on striped paving stones"
msgstr "Platinium en las baldosas rayadas"
msgid "Play this game"
msgstr "Jugar esta partida"
msgid "Poison"
msgstr "Veneno"
msgid "Prairie"
msgstr "Pradera"
msgid "Previous game"
msgstr "Partida anterior"
msgid "Previous language"
msgstr "Idioma anterior"
msgid "Previous page"
msgstr "Página anterior"
msgid "Prospect for iron"
msgstr "Buscar hierro"
msgid "Protection tower"
msgstr "Torre de protección"
msgid "Quit"
msgstr "Salir"
msgid "Quit Planet Blupi"
msgstr "Salir de Planet Blupi"
msgid "Quit construction"
msgstr "Salir de construcción"
msgid "Quit this game"
msgstr "Salir de esta partida"
msgid "REC"
msgstr "REC"
msgid "Reduce volume"
msgstr "Reducir volumen"
msgid "Reduce window size"
msgstr "Reducir tamaño de ventana"
msgid "Repeat"
msgstr "Repetir"
msgid "Restart this game"
msgstr "Reiniciar esta partida"
msgid "Robot on striped paving stones"
msgstr "Robot en las baldosas rayadas"
msgid "Rocks"
msgstr "Rocas"
msgid "S"
msgstr "S"
msgid "Save"
msgstr "Guardar"
msgid "Save this game"
msgstr "Guardar esta partida"
msgid "Scenery choice"
msgstr "Escenario"
msgid ""
"Scroll speed\n"
"with mouse"
msgstr ""
"Velocidad de\n"
"arrastre con mouse"
msgid ""
"Select the\n"
"window mode"
msgstr ""
"Elige el modo\n"
"de ventana"
msgid "Settings"
msgstr "Opciones"
msgid "Show videos"
msgstr "Mostrar videos"
msgid "Sick Blupi"
msgstr "Blupi Enfermo"
msgid "Skill level"
msgstr "Nivel de dificultad"
msgid "Slower"
msgstr "Más lento"
msgid ""
"Sound effect\n"
"volume"
msgstr ""
"Volumen de\n"
"sonidos"
msgid "Special pavings"
msgstr "Suelos especiales"
msgid "Spider"
msgstr "Araña"
msgid "Starting fire"
msgstr "Incendio"
msgid "Sterile ground"
msgstr "Tierra estéril"
msgid "Sticky trap"
msgstr "Trampa pegajosa"
msgid "Stones"
msgstr "Piedras"
msgid "Stop"
msgstr "Detener"
msgid "Striped paving stones"
msgstr "Baldosas rayadas"
msgid "Take"
msgstr "Tomar"
msgid "Teleporter"
msgstr "Teletransportador"
msgid ""
"This game is an original creation of Epsitec SA, CH-1400 Yverdon-les-Bains"
msgstr ""
"Este juego es una creación original de Epsitec SA, CH-1400 Yverdon-les-Bains"
msgid "This game uses statically linked free and open-source libraries:"
msgstr ""
"Este juego utiliza librerías gratuitas y open-source vinculadas "
"estáticamente:"
msgid "Time bomb"
msgstr "Bomba de tiempo"
msgid "Tired Blupi"
msgstr "Blupi Agotado"
msgid "Tomatoes"
msgstr "Tomates"
msgid "Tomatoes on striped paving stones"
msgstr "Tomates en las baldosas rayadas"
msgid "Too close to water"
msgstr "Muy cerca del agua"
msgid "Training"
msgstr "Entrenamiento"
msgid "Training number"
msgstr "Entrenamiento número"
msgid "Transform"
msgstr "Transformar"
msgid "Transport"
msgstr "Transporte"
msgid "Trapped enemy"
msgstr "Enemigo atrapado"
msgid "Tree"
msgstr "Árbol"
msgid "Tree trunks"
msgstr "Troncos de árboles"
msgid "Use Midi music (original)"
msgstr "Usar música midi (original)"
msgid "Use Ogg music"
msgstr "Usar música Ogg"
msgid "Version"
msgstr "Version"
msgid "Very good, success on all missions !"
msgstr "Muy bien, éxito en todas las misiones !"
msgid "Very good."
msgstr "Muy bien."
msgid ""
"Video\n"
"sequences"
msgstr ""
"Secuencias\n"
"de video"
msgid "Virus"
msgstr "Virus"
msgid "W"
msgstr "O"
msgid "Wall"
msgstr "Pared"
msgid "Wall or palisade"
msgstr "Pared o empalizada"
msgid "Water"
msgstr "Agua"
msgid "We hope you have had as much fun playing the game as we had making it !"
msgstr ""
"Esperamos te hayas divertido tanto jugándolo como nosotros haciéndolo !"
msgid "Weapons"
msgstr "Armamentos"
msgid "Well done !"
msgstr "Bien hecho !"
msgid "Windowed"
msgstr "Ventana"
msgid "Work done"
msgstr "Trabajo hecho"
msgid "Workshop"
msgstr "Taller"
msgid "Yes"
msgstr "Sí"
msgid "Yes, great ..."
msgstr "Sí, genial ..."
msgid "You have failed, try again..."
msgstr "Has fallado, inténtalo otra vez..."
msgid "You have played Planet Blupi."
msgstr "Has jugado Planet Blupi."
#, c-format
msgid "construction %d, time %d"
msgstr "construcción %d, tiempo %d"
msgid "en"
msgstr "es"
msgid "free slot"
msgstr "ranura disponible"
#, fuzzy
msgid "https://www.blupi.org info@blupi.org"
msgstr "https://www.blupi.org info@blupi.org"
#, c-format
msgid "mission %d, time %d"
msgstr "misión %d, tiempo %d"
#, c-format
msgid "training %d, time %d"
msgstr "entrenamiento %d, tiempo %d"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-08-08 07:29+0200\n"
"POT-Creation-Date: 2023-11-30 23:00+0100\n"
"PO-Revision-Date: 2019-02-17 23:21+0100\n"
"Last-Translator: Mathieu Schroeter <mathieu@schroetersa.ch>\n"
"Language-Team: French <kde-i18n-doc@kde.org>\n"
@ -23,8 +23,8 @@ msgstr " - FFmpeg (LGPLv2.1)"
msgid " - GNU/gettext and GNU/libiconv (GPLv3)"
msgstr " - GNU/gettext et GNU/libiconv (GPLv3)"
msgid " - SDL2, SDL2_image and SDL2_mixer (zlib license)"
msgstr " - SDL2, SDL2_image et SDL2_mixer (licence zlib)"
msgid " - SDL2, SDL2_image, SDL2_mixer and SDL2_ttf (zlib license)"
msgstr " - SDL2, SDL2_image, SDL2_mixer et SDL2_ttf (licence zlib)"
msgid " - SDL_kitchensink (MIT)"
msgstr " - SDL_kitchensink (MIT)"
@ -140,6 +140,13 @@ msgstr ""
"1: Prend\n"
"2: Transforme"
msgid ""
"1|Drop Platinium on striped \n"
"1|paving stones."
msgstr ""
"1|Déposer du Platinium\n"
"1|sur les dalles hachurées."
msgid ""
"1|Drop planks on striped \n"
"1|paving stones."
@ -147,13 +154,6 @@ msgstr ""
"1|Déposer des planches\n"
"1|sur les dalles hachurées."
msgid ""
"1|Drop platinium on striped \n"
"1|paving stones."
msgstr ""
"1|Déposer du platinium\n"
"1|sur les dalles hachurées."
msgid ""
"1|Drop tomatoes on striped \n"
"1|paving stones."
@ -311,7 +311,7 @@ msgid ""
"Choose the\n"
"music format"
msgstr ""
"Choisi le\n"
"Choisis le\n"
"format de\n"
"la musique"
@ -969,8 +969,8 @@ msgstr "fr"
msgid "free slot"
msgstr "libre"
msgid "http://www.blupi.org info@blupi.org"
msgstr "http://www.blupi.org info@blupi.org"
msgid "https://www.blupi.org info@blupi.org"
msgstr "https://www.blupi.org info@blupi.org"
#, c-format
msgid "mission %d, time %d"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-27 15:19+0100\n"
"POT-Creation-Date: 2023-11-30 23:00+0100\n"
"PO-Revision-Date: 2019-02-17 14:11+0100\n"
"Last-Translator: \n"
"Language-Team: \n"
@ -25,8 +25,8 @@ msgstr " - FFmpeg (LGPLv2.1)"
msgid " - GNU/gettext and GNU/libiconv (GPLv3)"
msgstr " - GNU/gettext and GNU/libiconv (GPLv3)"
msgid " - SDL2, SDL2_image and SDL2_mixer (zlib license)"
msgstr " - SDL2, SDL2_image and SDL2_mixer (zlib license)"
msgid " - SDL2, SDL2_image, SDL2_mixer and SDL2_ttf (zlib license)"
msgstr " - SDL2, SDL2_image, SDL2_mixer and SDL2_ttf (zlib license)"
msgid " - SDL_kitchensink (MIT)"
msgstr " - SDL_kitchensink (MIT)"
@ -142,6 +142,13 @@ msgstr ""
"1: לקחת\n"
"2: לשנות"
msgid ""
"1|Drop Platinium on striped \n"
"1|paving stones."
msgstr ""
"1|הורידו את הפלטינה על\n"
"1|המרצפות המפוספסות"
msgid ""
"1|Drop planks on striped \n"
"1|paving stones."
@ -149,13 +156,6 @@ msgstr ""
"1|הורידו את הקרשים על\n"
"1|המרצפות המפוספסות"
msgid ""
"1|Drop platinium on striped \n"
"1|paving stones."
msgstr ""
"1|הורידו את הפלטינה על\n"
"1|המרצפות המפוספסות"
msgid ""
"1|Drop tomatoes on striped \n"
"1|paving stones."
@ -887,7 +887,7 @@ msgid "Tree trunks"
msgstr "גזע עץ"
msgid "Use Midi music (original)"
msgstr "שימוש במוזיקת Midi (מקור)"
msgstr "שימוש במוזיקת Midi (מקור)"
msgid "Use Ogg music"
msgstr "שימוש במוזיקת Ogg"
@ -963,8 +963,8 @@ msgstr "he"
msgid "free slot"
msgstr "מקום פנוי"
msgid "http://www.blupi.org info@blupi.org"
msgstr "http://www.blupi.org info@blupi.org"
msgid "https://www.blupi.org info@blupi.org"
msgstr "https://www.blupi.org info@blupi.org"
#, c-format
msgid "mission %d, time %d"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-08-08 07:29+0200\n"
"POT-Creation-Date: 2023-11-30 23:00+0100\n"
"PO-Revision-Date: 2019-02-18 15:22+0100\n"
"Last-Translator: Mathieu Schroeter <mathieu@schroetersa.ch>\n"
"Language-Team: \n"
@ -24,8 +24,8 @@ msgstr " - FFmpeg (LGPLv2.1)"
msgid " - GNU/gettext and GNU/libiconv (GPLv3)"
msgstr " - GNU/gettext e GNU/libiconv (GPLv3)"
msgid " - SDL2, SDL2_image and SDL2_mixer (zlib license)"
msgstr " - SDL2, SDL2_image e SDL2_mixer (zlib licensa)"
msgid " - SDL2, SDL2_image, SDL2_mixer and SDL2_ttf (zlib license)"
msgstr " - SDL2, SDL2_image, SDL2_mixer e SDL2_ttf (zlib licensa)"
msgid " - SDL_kitchensink (MIT)"
msgstr " - SDL_kitchensink (MIT)"
@ -141,6 +141,13 @@ msgstr ""
"1: Prendi\n"
"2: Trasforma"
msgid ""
"1|Drop Platinium on striped \n"
"1|paving stones."
msgstr ""
"1|Posa del Platinium sulle \n"
"1|lastre tratteggiate."
msgid ""
"1|Drop planks on striped \n"
"1|paving stones."
@ -148,13 +155,6 @@ msgstr ""
"1|Posa delle assi \n"
"1|sulle lastre tratteggiate."
msgid ""
"1|Drop platinium on striped \n"
"1|paving stones."
msgstr ""
"1|Posa del platinium sulle \n"
"1|lastre tratteggiate."
msgid ""
"1|Drop tomatoes on striped \n"
"1|paving stones."
@ -973,8 +973,8 @@ msgstr "it"
msgid "free slot"
msgstr "libero"
msgid "http://www.blupi.org info@blupi.org"
msgstr "http://www.blupi.org info@blupi.org"
msgid "https://www.blupi.org info@blupi.org"
msgstr "https://www.blupi.org info@blupi.org"
#, c-format
msgid "mission %d, time %d"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-08-08 07:29+0200\n"
"POT-Creation-Date: 2023-11-30 23:00+0100\n"
"PO-Revision-Date: 2019-02-17 23:22+0100\n"
"Last-Translator: tomangelo <tomangelo@wp.pl>\n"
"Language-Team: TerranovaTeam <contact@colobot.info>\n"
@ -25,8 +25,8 @@ msgstr " - FFmpeg (LGPLv2.1)"
msgid " - GNU/gettext and GNU/libiconv (GPLv3)"
msgstr " - GNU/gettext and GNU/libiconv (GPLv3)"
msgid " - SDL2, SDL2_image and SDL2_mixer (zlib license)"
msgstr " - SDL2, SDL2_image and SDL2_mixer (licencja zlib)"
msgid " - SDL2, SDL2_image, SDL2_mixer and SDL2_ttf (zlib license)"
msgstr " - SDL2, SDL2_image, SDL2_mixer and SDL2_ttf (licencja zlib)"
msgid " - SDL_kitchensink (MIT)"
msgstr " - SDL_kitchensink (MIT)"
@ -142,6 +142,13 @@ msgstr ""
"1: Weź\n"
"2: Przetwórz"
msgid ""
"1|Drop Platinium on striped \n"
"1|paving stones."
msgstr ""
"1|Połóż platynę na\n"
"1|nawierzchni docelowej."
msgid ""
"1|Drop planks on striped \n"
"1|paving stones."
@ -149,13 +156,6 @@ msgstr ""
"1|Połóż deski na\n"
"1|nawierzchni docelowej."
msgid ""
"1|Drop platinium on striped \n"
"1|paving stones."
msgstr ""
"1|Połóż platynę na\n"
"1|nawierzchni docelowej."
msgid ""
"1|Drop tomatoes on striped \n"
"1|paving stones."
@ -968,8 +968,8 @@ msgstr "pl"
msgid "free slot"
msgstr "Wolny slot"
msgid "http://www.blupi.org info@blupi.org"
msgstr "http://www.blupi.org info@blupi.org"
msgid "https://www.blupi.org info@blupi.org"
msgstr "https://www.blupi.org info@blupi.org"
#, c-format
msgid "mission %d, time %d"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-02-17 14:11+0100\n"
"POT-Creation-Date: 2023-11-30 23:00+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -798,7 +798,7 @@ msgstr ""
msgid " - SDL_kitchensink (MIT)"
msgstr ""
msgid " - SDL2, SDL2_image and SDL2_mixer (zlib license)"
msgid " - SDL2, SDL2_image, SDL2_mixer and SDL2_ttf (zlib license)"
msgstr ""
msgid " - zlib (own license)"
@ -811,7 +811,7 @@ msgid ""
"This game is an original creation of Epsitec SA, CH-1400 Yverdon-les-Bains"
msgstr ""
msgid "http://www.blupi.org info@blupi.org"
msgid "https://www.blupi.org info@blupi.org"
msgstr ""
msgid "Insert CD-Rom Planet Blupi and wait a few seconds..."
@ -847,7 +847,7 @@ msgid ""
msgstr ""
msgid ""
"1|Drop platinium on striped \n"
"1|Drop Platinium on striped \n"
"1|paving stones."
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-25 23:40+0100\n"
"POT-Creation-Date: 2023-11-30 23:00+0100\n"
"PO-Revision-Date: 2019-02-17 23:23+0100\n"
"Last-Translator: \n"
"Language-Team: \n"
@ -24,7 +24,7 @@ msgstr " - FFmpeg (LGPLv2.1)"
msgid " - GNU/gettext and GNU/libiconv (GPLv3)"
msgstr ""
msgid " - SDL2, SDL2_image and SDL2_mixer (zlib license)"
msgid " - SDL2, SDL2_image, SDL2_mixer and SDL2_ttf (zlib license)"
msgstr ""
msgid " - SDL_kitchensink (MIT)"
@ -141,6 +141,13 @@ msgstr ""
"1: Pegar\n"
"2: Transformar"
msgid ""
"1|Drop Platinium on striped \n"
"1|paving stones."
msgstr ""
"1|Largar a platina no \n"
"1|pavimento de pedra."
msgid ""
"1|Drop planks on striped \n"
"1|paving stones."
@ -148,13 +155,6 @@ msgstr ""
"1|Largar madeira no \n"
"1|pavimento de pedra."
msgid ""
"1|Drop platinium on striped \n"
"1|paving stones."
msgstr ""
"1|Largar a platina no \n"
"1|pavimento de pedra."
msgid ""
"1|Drop tomatoes on striped \n"
"1|paving stones."
@ -829,7 +829,8 @@ msgstr "Pegar"
msgid "Teleporter"
msgstr "Teletransportador"
msgid "This game is an original creation of Epsitec SA, CH-1400 Yverdon-les-Bains"
msgid ""
"This game is an original creation of Epsitec SA, CH-1400 Yverdon-les-Bains"
msgstr ""
msgid "This game uses statically linked free and open-source libraries:"
@ -948,8 +949,8 @@ msgstr "pt"
msgid "free slot"
msgstr "pista livre"
msgid "http://www.blupi.org info@blupi.org"
msgstr "http://www.blupi.org info@blupi.org"
msgid "https://www.blupi.org info@blupi.org"
msgstr "https://www.blupi.org info@blupi.org"
#, c-format
msgid "mission %d, time %d"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: tr\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-08-08 07:29+0200\n"
"POT-Creation-Date: 2023-11-30 23:00+0100\n"
"PO-Revision-Date: 2019-02-17 23:26+0100\n"
"Last-Translator: \n"
"Language-Team: \n"
@ -24,8 +24,8 @@ msgstr " - FFmpeg (LGPLv2.1)"
msgid " - GNU/gettext and GNU/libiconv (GPLv3)"
msgstr " - GNU/gettext ve GNU/libiconv (GPLv3)"
msgid " - SDL2, SDL2_image and SDL2_mixer (zlib license)"
msgstr " - SDL2, SDL2_image ve SDL2_mixer (zlib lisansı)"
msgid " - SDL2, SDL2_image, SDL2_mixer and SDL2_ttf (zlib license)"
msgstr " - SDL2, SDL2_image, SDL2_mixer ve SDL2_ttf (zlib lisansı)"
msgid " - SDL_kitchensink (MIT)"
msgstr " - SDL_kitchensink (MIT)"
@ -141,6 +141,13 @@ msgstr ""
"1: Al\n"
"2: Dönüştür"
msgid ""
"1|Drop Platinium on striped \n"
"1|paving stones."
msgstr ""
"1|Platini çizgili parke \n"
"1|taşına bırak."
msgid ""
"1|Drop planks on striped \n"
"1|paving stones."
@ -148,13 +155,6 @@ msgstr ""
"1|Kalasları çizgili parke \n"
"1|taşına bırak."
msgid ""
"1|Drop platinium on striped \n"
"1|paving stones."
msgstr ""
"1|Platini çizgili parke \n"
"1|taşına bırak."
msgid ""
"1|Drop tomatoes on striped \n"
"1|paving stones."
@ -841,7 +841,8 @@ msgstr "Al"
msgid "Teleporter"
msgstr "Işınlayıcı"
msgid "This game is an original creation of Epsitec SA, CH-1400 Yverdon-les-Bains"
msgid ""
"This game is an original creation of Epsitec SA, CH-1400 Yverdon-les-Bains"
msgstr "Bu oyun Epsitec SA, CH-1400 Yverdon-les-Bains'in orijinal ürünüdür"
msgid "This game uses statically linked free and open-source libraries:"
@ -921,7 +922,8 @@ msgid "Water"
msgstr "Su"
msgid "We hope you have had as much fun playing the game as we had making it !"
msgstr "Umarız ki oyunu oynamaktan, bizim oyunu yaptığımız kadar, eğlenmişsinizdir !"
msgstr ""
"Umarız ki oyunu oynamaktan, bizim oyunu yaptığımız kadar, eğlenmişsinizdir !"
msgid "Weapons"
msgstr "Silahlar"
@ -960,8 +962,8 @@ msgstr "tr"
msgid "free slot"
msgstr "boş yer"
msgid "http://www.blupi.org info@blupi.org"
msgstr "http://www.blupi.org info@blupi.org"
msgid "https://www.blupi.org info@blupi.org"
msgstr "https://www.blupi.org info@blupi.org"
#, c-format
msgid "mission %d, time %d"

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -2,7 +2,7 @@
* This file is part of the planetblupi source code
* Copyright (C) 1997, Daniel Roux & EPSITEC SA
* Copyright (C) 2017, Mathieu Schroeter
* http://epsitec.ch; http://www.blupi.org; http://github.com/blupi-games
* https://epsitec.ch; https://www.blupi.org; https://github.com/blupi-games
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -818,11 +818,11 @@ static const DescAction action_table[] =
{40, 1, 0, 0, 0}, // n
{40, 1, 0, 0, 0}, // ne
},
{ 40, -1, -1, SOUND_COUPSEC, -1, -1, -1, SOUND_COUPSEC, -1,
-1, -1, SOUND_COUPSEC, -1, -1, -1, SOUND_COUPSEC, -1,
-1, -1, SOUND_COUPSEC, -1, -1, -1, SOUND_COUPSEC, -1,
-1, -1, SOUND_COUPSEC, -1, -1, -1, SOUND_COUPSEC, -1,
-1, -1, SOUND_COUPSEC, -1, -1, -1, SOUND_COUPSEC, -1
{ 40, -1, -1, SOUND_COUPSEC, -1, -1, -1, SOUND_COUPSEC2, -1,
-1, -1, SOUND_COUPSEC, -1, -1, -1, SOUND_COUPSEC2, -1,
-1, -1, SOUND_COUPSEC, -1, -1, -1, SOUND_COUPSEC2, -1,
-1, -1, SOUND_COUPSEC, -1, -1, -1, SOUND_COUPSEC2, -1,
-1, -1, SOUND_COUPSEC, -1, -1, -1, SOUND_COUPSEC2, -1
},
},
{

View File

@ -2,7 +2,7 @@
* This file is part of the planetblupi source code
* Copyright (C) 1997, Daniel Roux & EPSITEC SA
* Copyright (C) 2017, Mathieu Schroeter
* http://epsitec.ch; http://www.blupi.org; http://github.com/blupi-games
* https://epsitec.ch; https://www.blupi.org; https://github.com/blupi-games
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View File

@ -2,7 +2,7 @@
* This file is part of the planetblupi source code
* Copyright (C) 1997, Daniel Roux & EPSITEC SA
* Copyright (C) 2017-2019, Mathieu Schroeter
* http://epsitec.ch; http://www.blupi.org; http://github.com/blupi-games
* https://epsitec.ch; https://www.blupi.org; https://github.com/blupi-games
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -32,6 +32,7 @@
#include <vector>
#include <SDL_image.h>
#include <SDL_ttf.h>
#include <argagg/argagg.hpp>
#ifdef USE_CURL
#include <curl/curl.h>
@ -51,6 +52,7 @@
#include "platform.h"
#include "progress.h"
#include "sound.h"
#include "text.h"
// Global variables
@ -364,8 +366,7 @@ HandleEvent (const SDL_Event & event)
switch (event.type)
{
case SDL_WINDOWEVENT:
{
case SDL_WINDOWEVENT: {
#ifndef DEBUG
Point totalDim, iconDim;
@ -431,8 +432,7 @@ HandleEvent (const SDL_Event & event)
g_pEvent->LoadBackground ();
break;
case SDL_USEREVENT:
{
case SDL_USEREVENT: {
switch (event.user.code)
{
case EV_UPDATE:
@ -448,8 +448,7 @@ HandleEvent (const SDL_Event & event)
}
break;
case EV_WARPMOUSE:
{
case EV_WARPMOUSE: {
const SDL_Point * coord = static_cast<SDL_Point *> (event.user.data1);
Sint32 x = coord->x, y = coord->y;
@ -459,8 +458,7 @@ HandleEvent (const SDL_Event & event)
break;
}
case EV_CHECKUPDATE:
{
case EV_CHECKUPDATE: {
std::string * data = static_cast<std::string *> (event.user.data1);
using json = nlohmann::json;
@ -471,7 +469,7 @@ HandleEvent (const SDL_Event & event)
std::vector<unsigned int> version (3);
std::transform (
list.begin (), list.end (), version.begin (),
[](const std::string & s) -> unsigned int { return std::stoi (s); });
[] (const std::string & s) -> unsigned int { return std::stoi (s); });
if (
(!!PB_VERSION_EXTRA[0] &&
@ -780,14 +778,14 @@ DoInit (int argc, char * argv[], bool & exit)
return EXIT_FAILURE;
}
#ifdef __LINUX__
#ifdef __linux__
if (!getenv ("ALSA_CONFIG_DIR"))
{
static char env[256];
snprintf (env, sizeof (env), "ALSA_CONFIG_DIR=/usr/share/alsa");
putenv (env);
}
#endif /* __LINUX__ */
#endif /* __linux__ */
#ifdef _WIN32
/* Fix laggy sounds on Windows by not using winmm driver. */
@ -801,6 +799,14 @@ DoInit (int argc, char * argv[], bool & exit)
return EXIT_FAILURE;
}
if (TTF_Init () < 0)
{
SDL_Log ("Couldn't initialize TTF: %s", SDL_GetError ());
return EXIT_FAILURE;
}
GetFonts ();
if (!(g_settingsOverload & SETTING_LEGACY))
Display::getDisplay ().readDisplaySize ();
@ -815,11 +821,12 @@ DoInit (int argc, char * argv[], bool & exit)
return EXIT_FAILURE;
}
#if 0
auto icon = IMG_Load ((GetShareDir () + "icons/hicolor/256x256/apps/blupi.png").c_str ());
#ifdef __linux__
auto icon = IMG_Load (
(GetShareDir () + "icons/hicolor/256x256/apps/blupi.png").c_str ());
SDL_SetWindowIcon (g_window, icon);
SDL_FreeSurface (icon);
#endif /* 0 */
#endif /* __linux__ */
g_renderer = SDL_CreateRenderer (
g_window, -1, g_rendererType | SDL_RENDERER_TARGETTEXTURE);
@ -1013,7 +1020,7 @@ DoInit (int argc, char * argv[], bool & exit)
}
totalDim.x = DIMLITTLEX * 16;
totalDim.y = DIMLITTLEY * 16;
totalDim.y = DIMLITTLEY * 19;
iconDim.x = DIMLITTLEX;
iconDim.y = DIMLITTLEY;
if (!g_pPixmap->Cache (CHLITTLE, "little.png", totalDim, iconDim))
@ -1110,6 +1117,7 @@ main (int argc, char * argv[])
Platform::run (HandleEvent);
DisposeFonts ();
FinishObjects ();
if (g_renderer)

View File

@ -2,7 +2,7 @@
* This file is part of the planetblupi source code
* Copyright (C) 1997, Daniel Roux & EPSITEC SA
* Copyright (C) 2017-2018, Mathieu Schroeter
* http://epsitec.ch; http://www.blupi.org; http://github.com/blupi-games
* https://epsitec.ch; https://www.blupi.org; https://github.com/blupi-games
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View File

@ -2,7 +2,7 @@
* This file is part of the planetblupi source code
* Copyright (C) 1997, Daniel Roux & EPSITEC SA
* Copyright (C) 2017-2019, Mathieu Schroeter
* http://epsitec.ch; http://www.blupi.org; http://github.com/blupi-games
* https://epsitec.ch; https://www.blupi.org; https://github.com/blupi-games
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View File

@ -2,7 +2,7 @@
* This file is part of the planetblupi source code
* Copyright (C) 1997, Daniel Roux & EPSITEC SA
* Copyright (C) 2017-2019, Mathieu Schroeter
* http://epsitec.ch; http://www.blupi.org; http://github.com/blupi-games
* https://epsitec.ch; https://www.blupi.org; https://github.com/blupi-games
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View File

@ -2,7 +2,7 @@
* This file is part of the planetblupi source code
* Copyright (C) 1997, Daniel Roux & EPSITEC SA
* Copyright (C) 2017, Mathieu Schroeter
* http://epsitec.ch; http://www.blupi.org; http://github.com/blupi-games
* https://epsitec.ch; https://www.blupi.org; https://github.com/blupi-games
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View File

@ -1,8 +1,8 @@
/*
* This file is part of the planetblupi source code
* Copyright (C) 1997, Daniel Roux & EPSITEC SA
* Copyright (C) 2017-2018, Mathieu Schroeter
* http://epsitec.ch; http://www.blupi.org; http://github.com/blupi-games
* Copyright (C) 2017-2021, Mathieu Schroeter
* https://epsitec.ch; https://www.blupi.org; https://github.com/blupi-games
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -197,10 +197,10 @@ CDecor::BlupiDelete (Point cel, Sint32 perso)
// Supprime un blupi existant.
void
CDecor::BlupiDelete (Sint32 rank)
CDecor::BlupiDelete (Sint32 rank, SDL_bool haveSound)
{
m_blupi[rank].bExist = false;
this->m_pSound->StopSound (true, rank);
this->m_pSound->StopSound (!haveSound, rank);
if (
!m_bBuild && // phase de jeu ?
@ -1531,7 +1531,8 @@ CDecor::GoalNextOp (Sint32 rank, Sint16 * pTable)
y = *pTable++;
GoalAdjustCel (rank, x, y);
cel = GetCel (x, y);
if (cel.x < 0 || cel.x >= MAXCELX || cel.y < 0 || cel.y >= MAXCELY)
return true;
BlupiKill (rank, cel, 0);
MoveFinish (cel);
@ -1562,7 +1563,8 @@ CDecor::GoalNextOp (Sint32 rank, Sint16 * pTable)
y = *pTable++;
GoalAdjustCel (rank, x, y);
cel = GetCel ((x / 2) * 2, (y / 2) * 2);
if (cel.x < 0 || cel.x >= MAXCELX || cel.y < 0 || cel.y >= MAXCELY)
return true;
GetObject (cel, channel, icon);
if (channel != CHOBJECT || icon != 85) // dynamite ?
{
@ -1609,7 +1611,9 @@ CDecor::GoalNextOp (Sint32 rank, Sint16 * pTable)
x = *pTable++;
y = *pTable++;
GoalAdjustCel (rank, x, y);
cel = GetCel ((x / 2) * 2, (y / 2) * 2);
cel = GetCel ((x / 2) * 2, (y / 2) * 2);
if (cel.x < 0 || cel.x >= MAXCELX || cel.y < 0 || cel.y >= MAXCELY)
return true;
icon = *pTable++;
if (MoveCreate (
cel, rank, true, CHFLOOR, -1, -1, -1, 100, 1, 100, false, true))
@ -2496,6 +2500,14 @@ CDecor::BlupiNextAction (Sint32 rank)
GoalStop (i, true);
return false;
}
/* Prevent time bomb duplication */
if (m_blupi[i].goalAction == EV_ACTION_MINE2)
{
BlupiInitAction (rank, ACTION_STOP);
GoalStop (rank, true);
return false;
}
}
/* Prevent Blupi to take a trap when an enemy is already captured. */
@ -2508,9 +2520,10 @@ CDecor::BlupiNextAction (Sint32 rank)
{
switch (icon)
{
case 96: // spider in trap
case 97: // track in trap
case 98: // robot in trap
case 96: // spider in trap
case 97: // track in trap
case 98: // robot in trap
case 114: // bomb in trap
BlupiInitAction (rank, ACTION_STOP);
GoalStop (rank, true);
return false;
@ -2834,9 +2847,10 @@ CDecor::BlupiNextGoal (Sint32 rank)
}
if (channel == CHOBJECT && icon == 93) // piège ?
{
this->m_pSound->StopSound (true, rank);
BlupiSound (rank, SOUND_TRAP, pos);
PutObject (cel, CHOBJECT, 96); // araignée piégée
BlupiDelete (rank); // supprime araignée
BlupiDelete (rank, SDL_TRUE); // supprime araignée
return;
}
}
@ -2931,9 +2945,10 @@ CDecor::BlupiNextGoal (Sint32 rank)
}
if (icon == 93) // piège ?
{
this->m_pSound->StopSound (true, rank);
BlupiSound (rank, SOUND_TRAP, pos);
PutObject (cel, CHOBJECT, 97); // tracks piégé
BlupiDelete (rank); // supprime tracks
BlupiDelete (rank, SDL_TRUE); // supprime tracks
return;
}
@ -3011,9 +3026,10 @@ CDecor::BlupiNextGoal (Sint32 rank)
}
if (icon == 93) // piège ?
{
this->m_pSound->StopSound (true, rank);
BlupiSound (rank, SOUND_TRAP, pos);
PutObject (cel, CHOBJECT, 98); // robot piégé
BlupiDelete (rank); // supprime robot
BlupiDelete (rank, SDL_TRUE); // supprime robot
return;
}
@ -3057,9 +3073,10 @@ CDecor::BlupiNextGoal (Sint32 rank)
GetObject (cel, channel, icon);
if (channel == CHOBJECT && icon == 93) // piège ?
{
this->m_pSound->StopSound (true, rank);
BlupiSound (rank, SOUND_TRAP, pos);
PutObject (cel, CHOBJECT, 114); // bombe piégée
BlupiDelete (rank); // supprime bombe
BlupiDelete (rank, SDL_TRUE); // supprime bombe
return;
}
}
@ -3101,9 +3118,10 @@ CDecor::BlupiNextGoal (Sint32 rank)
GetObject (cel, channel, icon);
if (channel == CHOBJECT && icon == 93) // piège ?
{
this->m_pSound->StopSound (true, rank);
BlupiSound (rank, SOUND_TRAP, pos);
PutObject (cel, CHOBJECT, 19); // électro piégée
BlupiDelete (rank); // supprime électro
BlupiDelete (rank, SDL_TRUE); // supprime électro
return;
}
}

View File

@ -2,7 +2,7 @@
* This file is part of the planetblupi source code
* Copyright (C) 1997, Daniel Roux & EPSITEC SA
* Copyright (C) 2017, Mathieu Schroeter
* http://epsitec.ch; http://www.blupi.org; http://github.com/blupi-games
* https://epsitec.ch; https://www.blupi.org; https://github.com/blupi-games
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View File

@ -2,7 +2,7 @@
* This file is part of the planetblupi source code
* Copyright (C) 1997, Daniel Roux & EPSITEC SA
* Copyright (C) 2017-2018, Mathieu Schroeter
* http://epsitec.ch; http://www.blupi.org; http://github.com/blupi-games
* https://epsitec.ch; https://www.blupi.org; https://github.com/blupi-games
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

Some files were not shown because too many files have changed in this diff Show More