diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index 01c5b32fa..000000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,131 +0,0 @@ ---- -# Pingus - A free Lemmings clone -# Copyright (C) 2018 Ingo Ruhnke -# -# 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 -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -image: ubuntu:latest - -variables: - GIT_SUBMODULE_STRATEGY: recursive - -before_script: - - export DEBIAN_FRONTEND=noninteractive - - apt-get -qq update - - apt-get -qq -y install lsb-release - - lsb_release -a - - apt-get -qq -y install - clang-10 - clang-tidy-10 - g++-10 - cmake - build-essential - desktop-file-utils - appstream-util - libfmt-dev - libsigc++-2.0-dev - libc++-dev - libsdl2-dev - libsdl2-image-dev - libjsoncpp-dev - libpng-dev - libgtest-dev - libglm-dev - libopenal-dev - libmodplug-dev - libmpg123-dev - libvorbis-dev - libogg-dev - libopusfile-dev - libopus-dev - software-properties-common - flatpak - flatpak-builder - -.build_pingus_template: &build_pingus - stage: build - script: - - mkdir build - - cd build - - cmake .. - -DCMAKE_BUILD_TYPE=$BUILD_TYPE - -DWARNINGS=ON - -DWERROR=ON - -DBUILD_TESTS=ON - -DBUILD_EXTRA=ON - -DCLANG_TIDY=$CLANG_TIDY - -DCLANG_TIDY_EXE=/usr/bin/clang-tidy-10 - - make VERBOSE=1 - - make test VERBOSE=1 ARGS="-V" - -build:gcc:release: - <<: *build_pingus - variables: - CXX: "g++-10" - BUILD_TYPE: "Release" - CLANG_TIDY: "OFF" - -build:clang:release: - <<: *build_pingus - variables: - CXX: "clang++-10" - BUILD_TYPE: "Release" - CLANG_TIDY: "OFF" - -build:gcc:debug: - <<: *build_pingus - variables: - CXX: "g++-10" - BUILD_TYPE: "Debug" - CLANG_TIDY: "OFF" - -build:clang:debug: - <<: *build_pingus - variables: - CXX: "clang++-10" - BUILD_TYPE: "Debug" - CLANG_TIDY: "OFF" - -build:clang-tidy: - <<: *build_pingus - variables: - CXX: "clang++-10" - BUILD_TYPE: "Debug" - CLANG_TIDY: "ON" - -build:flatpak: - stage: build - script: - - flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo - - flatpak install -y flathub org.freedesktop.Platform//20.08 org.freedesktop.Sdk//20.08 - - flatpak-builder --repo=build-flatpak-repo/ build-flatpak/ org.seul.pingus.Pingus.json - - flatpak build-bundle build-flatpak-repo/ pingus.flatpak org.seul.pingus.Pingus - artifacts: - paths: - - pingus.flatpak - - build-flatpak-repo - -# pages: -# stage: deploy -# dependencies: -# - build:flatpak -# script: -# - mkdir public.tmp/ -# - mv -v build-flatpak-repo public.tmp/flatpakrepo -# - mv -v public.tmp public -# artifacts: -# paths: -# - public - -# EOF # diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 3a6ecfd43..000000000 --- a/.gitmodules +++ /dev/null @@ -1,33 +0,0 @@ -[submodule "external/argpp"] - path = external/argpp - url = https://github.com/grumbel/argpp.git -[submodule "external/geomcpp"] - path = external/geomcpp - url = https://github.com/grumbel/geomcpp.git -[submodule "external/logmich"] - path = external/logmich - url = https://github.com/logmich/logmich.git -[submodule "external/priocpp"] - path = external/priocpp - url = https://github.com/grumbel/priocpp.git -[submodule "external/sexpcpp"] - path = external/sexpcpp - url = https://github.com/lispparser/sexp-cpp.git -[submodule "external/strutcpp"] - path = external/strutcpp - url = https://github.com/grumbel/strutcpp.git -[submodule "external/tinycmmc"] - path = external/tinycmmc - url = https://github.com/grumbel/tinycmmc.git -[submodule "external/tinygettext"] - path = external/tinygettext - url = https://github.com/tinygettext/tinygettext.git -[submodule "external/wstsound"] - path = external/wstsound - url = https://github.com/WindstilleTeam/wstsound.git -[submodule "external/xdgcpp"] - path = external/xdgcpp - url = https://github.com/grumbel/xdgcpp.git -[submodule "external/uitest"] - path = external/uitest - url = https://github.com/grumbel/uitest.git diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index eafe3db0d..000000000 --- a/.travis.yml +++ /dev/null @@ -1,100 +0,0 @@ -# Pingus - A free Lemmings clone -# Copyright (C) 2015 Ingo Ruhnke -# -# 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 -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -# Build file for https://travis-ci.org/ -# -# Configuration manual: -# http://docs.travis-ci.com/user/build-configuration/ -# -# Based on: -# https://github.com/supertuxkart/stk-code/blob/master/.travis.yml -# https://github.com/SuperTux/supertux/blob/master/.travis.yml - -language: cpp -dist: trusty -sudo: required - -compiler: - - gcc - - clang - -matrix: - fast_finish: true - exclude: - - compiler: gcc - os: osx - -os: - - linux - # - osx - -env: - global: - # The next declaration is the encrypted COVERITY_SCAN_TOKEN, created - # via the "travis encrypt" command using the project repo's public key - - secure: "CPJBu4r8RDmeP7G78ODyk+A/J3vxEFr4xpQE0zIDtdCHcQmv2NqjM88YVH5pRWK4vtpAFuDEzyw4ZGKwfmwK5zhg2nUubsf47WpQmQa0z9HLasjXATzWwXGggx7mzlKODpkkccBzXHDAqvLKTkKBeXdxwMKFCtSgEM+3MwEwW6g=" - matrix: - - BUILD_TYPE="Debug" - - BUILD_TYPE="Release" - -before_install: - - if [ "$CXX" = "g++" ]; then export CXX="g++-4.9" CC="gcc-4.9"; fi - - if [ "$CXX" == "clang++" ]; then export CXX="clang++-5.0"; fi - -script: - # Clean from previous Travis build - - git clean -f - # Then build: - - mkdir "build-$BUILD_TYPE" - - cd "build-$BUILD_TYPE" - - cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DWARNINGS=ON -DWERROR=ON -DBUILD_TESTS=ON -DBUILD_EXTRA=ON - - make VERBOSE=1 - - make VERBOSE=1 install DESTDIR=/tmp/pingus-${BUILD_TYPE} - - (cd .. && build-${BUILD_TYPE}/test_pingus) - -# The branch coverity_scan is used to trigger the start of a coverity -# scan, merge the latest development version into and push it to start -# the scan. -addons: - apt: - sources: - - ubuntu-toolchain-r-test - - llvm-toolchain-precise - packages: - - clang-5.0 - - g++-4.9 - - cmake - - build-essential - - libc++-dev - - libogg-dev - - libvorbis-dev - - libglew-dev - - libopenal-dev - - libboost-all-dev - - libsdl2-dev - - libsdl2-image-dev - - libsdl2-mixer-dev - - libjsoncpp-dev - coverity_scan: - project: - name: "Pingus/pingus" - description: "Build submitted via Travis CI" - notification_email: grumbel@gmail.com - build_command_prepend: "cmake . && make clean" - build_command: "make" - branch_pattern: coverity_scan - -# EOF # diff --git a/CMakeLists.txt b/CMakeLists.txt index b580b9eab..4dad7e28b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,21 +19,24 @@ project(pingus VERSION 0.8.0) include(mk/cmake/TinyCMMC.cmake) -# FIXME: Move this into GetProjectVersion, get date from git -string(TIMESTAMP PROJECT_DATE "%Y-%m-%d" UTC) - find_package(PkgConfig REQUIRED) set(OpenGL_GL_PREFERENCE "LEGACY") find_package(OpenGL REQUIRED) pkg_search_module(SDL2 REQUIRED sdl2 IMPORTED_TARGET) pkg_search_module(SDL2IMAGE REQUIRED SDL2_image>=2.0.0 IMPORTED_TARGET) pkg_search_module(PNG REQUIRED libpng IMPORTED_TARGET) -pkg_search_module(JSONCPP REQUIRED jsoncpp IMPORTED_TARGET) pkg_search_module(SIGCXX REQUIRED sigc++-2.0 IMPORTED_TARGET) find_package(fmt REQUIRED) find_package(glm REQUIRED) -if (BUILD_TESTS) +if(WIN32) + # Fix for this issue: + # include/mcfgthread/fwd.h:24:4: error: + # #error Please define _WIN32_WINNT to at least Windows 7. + add_definitions(-D_WIN32_WINNT=0x0601) +endif() + +if(BUILD_TESTS) # add 'make test' target, use 'make test ARGS="-V"' or 'ctest -V' for verbose enable_testing() endif(BUILD_TESTS) @@ -104,7 +107,6 @@ target_link_libraries(libpingus PUBLIC PkgConfig::SDL2 PkgConfig::SDL2IMAGE PkgConfig::PNG - PkgConfig::JSONCPP PkgConfig::SIGCXX OpenGL::GL) @@ -210,14 +212,4 @@ install(FILES install(DIRECTORY data/icons/ DESTINATION ${CMAKE_INSTALL_DATADIR}/icons) -configure_file(pingus.appdata.xml.in ${CMAKE_CURRENT_BINARY_DIR}/pingus.appdata.xml) -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pingus.appdata.xml - DESTINATION ${CMAKE_INSTALL_DATADIR}/metainfo) - -if (BUILD_TESTS) - add_test(NAME pingus.appdata.xml - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMAND appstream-util validate-relax ${CMAKE_CURRENT_BINARY_DIR}/pingus.appdata.xml) -endif(BUILD_TESTS) - # EOF # diff --git a/INSTALL.linux.md b/INSTALL.linux.md deleted file mode 100644 index ff72313c9..000000000 --- a/INSTALL.linux.md +++ /dev/null @@ -1,116 +0,0 @@ -Pingus Installation Guide for GNU/Linux -======================================= - -Requirements ------------- - -To compile Pingus you need: - -* [g++](http://gcc.gnu.org/) -* [SDL2](http://libsdl.org/) -* [SDL2_mixer](https://www.libsdl.org/projects/SDL_image/) -* [SDL2_image](https://www.libsdl.org/projects/SDL_mixer/) -* [libpng](http://libpng.org/) -* [cmake](http://cmake.org/) - -In most cases you will find all of these in your distribution and -there shouln't be a need to compile anything manually. - -In Ubuntu 20.04, 22.04 and Debian 10, 11 you can install everything by typing: - - sudo apt-get install \ - g++ \ - libsdl2-dev \ - libsdl2-mixer-dev \ - libsdl2-image-dev \ - libpng12-dev \ - libjsoncpp-dev \ - libsigc++-2.0-dev \ - libfmt-dev \ - libglm-dev \ - libopenal-dev \ - libopusfile-dev \ - libvorbis-dev \ - libmpg123-dev \ - libmodplug-dev \ - cmake - - -Compilation ------------ - -Pingus uses git submodules for some parts of the code. To initialize -those you can either run (when cloning the repository): - - git clone --recursive https://gitlab.com/pingus/pingus.git - -Or run the following on an existing clone: - - git submodule update --init --recursive - -To compile the code: - - mkdir -p build - cd build - cmake .. - make - -If you need to change the compiler or other build variables you can do -so with in the `cmake` step, e.g.: - - cmake .. -DCMAKE_BUILD_TYPE=Debug - -The following variables are available: - -* `-DCMAKE_BUILD_TYPE=Release` -* `-DCMAKE_BUILD_TYPE=Debug` -* `-DBUILD_TESTS=ON` -* `-DCMAKE_INSTALL_PREFIX:PATH=/usr` - - -Running -------- - -Once the compilation is successful you can run Pingus directly from -the top level directory of the source tree via: - - build/pingus - -There is no need to install Pingus. - -If you have a slow machine, starting Pingus with: - - build/pingus -g 640x480 --frame-skip 3 - -Might lead to a better playable game. If you want to run Pingus in a -larger resolution, you can do so with: - - build//pingus -g 1024x768 - -Fullscreen support is available via: - - build/pingus --fullscreen - -Available languages can be listed with: - - build/pingus --list-languages - -And used with: - - build/pingus --language de - - -Installation ------------- - -As mentioned above, you don't need to install Pingus to run it, if you -still want to do it, you can do so with: - - make install - -The `DESTDIR` and `PREFIX` can be configured as follows: - - make install DESTDIR=/tmp/pingus - - cmake .. -DCMAKE_INSTALL_PREFIX:PATH=/usr - diff --git a/INSTALL.macosx.md b/INSTALL.macosx.md deleted file mode 100644 index a12b43b8d..000000000 --- a/INSTALL.macosx.md +++ /dev/null @@ -1,69 +0,0 @@ -Pingus Installation Guide for Mac OS X -====================================== - -Disclaimer ----------- - -The following guide assumes that you use macports to install the requirements. -You can also do this the hard way by finding/compiling the stuff yourself, -but if you're capable of doing so you won't need this guide anyway. - -See http://code.google.com/p/pingus/wiki/MacOS_X_Compiling if you are adventurous or do not want to us macports. - -This guide was written on OS X 10.5 "Leopard", where XCode brings gcc-4.0. -Since that's too old gcc-4.4 is installed using macports and also referenced -in the Makefile.macosx. If you have a recent compiler, just skip these parts -and adapt the makefile. - - -Requirements ------------- - -First get and install macports from http://www.macports.org/ -Next use macports to install pingus' requirements by typing: - - sudo port install libsdl libsdl_image libsdl_mixer boost scons - sudo port install gcc44 - - -Compilation ------------ - -Once all libraries are in place, you can compile Pingus with just: - - make -f Makefile.macosx - - -Running -------- - -Once the compilation is successful you can run Pingus directly from -the top level directory of the source tree via: - - ./pingus - -For details about the command line options etc. see INSTALL.unix - - -Creating an application bundle ------------------------------- - -To make pingus feel at home on OS X you may want to create an application bundle. -The follwogin steps will create a Pingus.app that can be used and distributed like -any other Mac OS X application. - -First we need some little helper utilities - - sudo port install dylibbundler makeicns - -Now the application bundle can be build - - make -f Makefile.macosx bundle - - -Distribute ----------- - -To create a compressed package for distribution frun the following command: - - make -f Makefile.macosx package diff --git a/Info.plist b/Info.plist deleted file mode 100644 index 330a04c26..000000000 --- a/Info.plist +++ /dev/null @@ -1,17 +0,0 @@ - - - - - CFBundleDevelopmentRegion English - CFBundleInfoDictionaryVersion 6.0 - CFBundlePackageType APPL - CSResourcesFileMapped - - CFBundleName Pingus - CFBundleIconFile pingus.icns - CFBundleExecutable pingus - CFBundleVersion 0.7.6 - CFBundleShortVersionString 0.7.6 - - - \ No newline at end of file diff --git a/COPYING b/LICENSE.txt similarity index 99% rename from COPYING rename to LICENSE.txt index 94a9ed024..f288702d2 100644 --- a/COPYING +++ b/LICENSE.txt @@ -1,7 +1,7 @@ GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 - Copyright (C) 2007 Free Software Foundation, Inc. + Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -645,7 +645,7 @@ the "copyright" line and a pointer to where the full notice is found. GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . + along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. @@ -664,11 +664,11 @@ might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see -. +. The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read -. +. diff --git a/Makefile.macosx b/Makefile.macosx deleted file mode 100644 index e573476f2..000000000 --- a/Makefile.macosx +++ /dev/null @@ -1,79 +0,0 @@ -# this Makefile assumes that you have used macports to install all the depemdencies. - -# that is were macports is installed by default -PORTSDIR = /opt/local -CPPPATH = $(PORTSDIR)/include -LIBPATH = $(PORTSDIR)/lib -# note that the default compoler on OS X 10.5 is gcc-4.0.1, which can't handle -std=c++0x -# you can set this simply to "gcc" and "g++" if your default compiler is gcc-4.4 of higher. -CC = $(PORTSDIR)/bin/gcc-mp-4.4 -CXX = $(PORTSDIR)/bin/g++-mp-4.4 -# the default (BSD) "install" does not support the -D flag, so we're using macports GNU variant -INSTALL = ginstall - -# the portable application bundle -BUNDLE = Pingus.app - -# the volume name for the package (the filename ,*.dmg, will include the VERSION) -# NOTE: currently an initial size of 100M is used. This has to be increased as needed! -PACKAGE = Pingus -# these files are, beside the bundle, added to the package -PACKAGEDOCS = README NEWS COPYING AUTHORS - -build/pingus: - mkdir -p build - scons CPPPATH=$(CPPPATH) LIBPATH=$(LIBPATH) CXX=$(CXX) CC=$(CC) - ln -fs build/pingus - -build/pingus.icns: data/images/icons/pingus-icon.png - mkdir -p build - makeicns -in $< -out $@ - -bundle: install-exec install-data install-icon - -create-app-bundle: build/pingus.icns - mkdir -p $(BUNDLE)/Contents/MacOS - mkdir -p $(BUNDLE)/Contents/Resources - mkdir -p $(BUNDLE)/Contents/libs - echo "APPL" > $(BUNDLE)/Contents/PkgInfo - -install-icon: create-app-bundle build/pingus - install build/pingus.icns $(BUNDLE)/Contents/Resources - echo "CFBundleIconFilepingus.icns" > $(BUNDLE)/Contents/Info.plist - -install-exec: create-app-bundle build/pingus - install build/pingus $(BUNDLE)/Contents/MacOS - dylibbundler -b -x $(BUNDLE)/Contents/MacOS/pingus -od -d $(BUNDLE)/Contents/libs/ - -install-data: - for file in `( cd data ; find . \ - -type f -a \( \ - -name "*.png" -o \ - -name "*.jpg" -o \ - -name "*.wav" -o \ - -name "*.scm" -o \ - -name "*.font" -o \ - -name "*.story" -o \ - -name "*.credits" -o \ - -name "*.prefab" -o \ - -name "*.it" -o \ - -name "*.ogg" -o \ - -name "*.s3m" -o \ - -name "*.po" -o \ - -name "*.worldmap" -o \ - -name "*.res" -o \ - -name "*.pingus" -o \ - -name "*.levelset" -o \ - -name "*.sprite" \ - \) )`; do $(INSTALL) -D data/$$file $(BUNDLE)/Contents/Resources/$$file; done - -package: bundle - hdiutil create -size 100M -fs HFS+J -volname $(PACKAGE) $(PACKAGE)-tmp.dmg - hdiutil attach $(PACKAGE)-tmp.dmg -readwrite -mount required - cp -R -p $(BUNDLE) /Volumes/$(PACKAGE)/ - cp $(PACKAGEDOCS) /Volumes/$(PACKAGE) - hdiutil detach /Volumes/$(PACKAGE) -force - ./SLA-dmg.sh COPYING Pingus-tmp.dmg - hdiutil convert $(PACKAGE)-tmp.dmg -format UDZO -imagekey zlib-level=9 -o $(PACKAGE)-`cat VERSION`.dmg - rm $(PACKAGE)-tmp.dmg - diff --git a/README.md b/README.md index af04d34ee..a1c141329 100644 --- a/README.md +++ b/README.md @@ -4,43 +4,43 @@ Pingus Introduction ------------ -Pingus is a free Lemmings(tm) clone for GNU/Linux, Win32 and other -operating systems supported by SDL2. It is covered under the GPL, check -the file COPYING, for more information. - -See `INSTALL.linux.md` for instructions on how to compile and run Pingus -from source on GNU/Linux and `INSTALL.macosx.md` for MacOSX. +Pingus is a free Lemmings™ clone for GNU/Linux, Win32 and other +operating systems supported by SDL2. It is licensed under the GPLv3+. Information about the game, new versions and additional documentation can be found at the Pingus webpage: -* http://pingus.gitlab.io/ +* https://pingus.github.io/ + + +Building +-------- + +Pingus uses [Nix package manager](https://nixos.org/download/), to +automatically download, compile and run it in Linux: + + nix run github:pingus/pingus + +The Windows version can be compiled in Linux with: + + nix build github:pingus/pingus#packages.i686-windows.pingus-win32 Mailing Lists ------------- -There are currently two mailing lists available: - -* pingus-devel - A list for discussing development issues, like level +* pingus-devel - https://lists.nongnu.org/mailman/listinfo/pingus-devel + A list for discussing development issues, like level creation or code changes, but might as well be used for user issues like how to solve levels and such -* pingus-cvs - Read-only list to which all CVS commits get submitted, - only intersting for developers in general - -For information on how to subscribe to any of these lists have a look -at: - -* http://pingus.gitlab.io/contact.html +Chat +---- -IRC ---- +* IRC: irc://irc.libera.chat:6667/#pingus -For a quick help you can try the IRC server irc.freenode.net:6667 and -the channel #pingus, you can sometimes find the project maintainer -(nick: grumbel) there. +* Matrix: https://matrix.to/#/#pingus:matrix.org Bug Reports @@ -49,13 +49,5 @@ Bug Reports Bug reports, new levels and feature requests can be submitted to the issue tracker at: -* https://gitlab.com/pingus/pingus/issues - - -Nightly Builds --------------- - -Experimental nightly builds for Linux are available via [FlatPak](https://flatpak.org/): +* https://github.com/pingus/pingus/issues - sudo flatpak remote-add --no-gpg-verify pingus "https://gitlab.com/pingus/pingus/-/jobs/artifacts/master/raw/build-flatpak-repo?job=build:flatpak" - sudo flatpak install pingus org.pingus.Pingus diff --git a/SLA-dmg.sh b/SLA-dmg.sh deleted file mode 100755 index af268f322..000000000 --- a/SLA-dmg.sh +++ /dev/null @@ -1,73 +0,0 @@ -#!/bin/bash -# -# This script appends the text from Q3A_EULA.txt to a .dmg as a SLA resource -# -# usage is './SLA-dmg.sh /path/to/Q3A_EULA.txt /path/to/ioquake3.dmg' -# - -if [ "x$1" = "x" ] || [ "x$2" = "x" ]; then - echo "usage: ./SLA-dmg.sh /path/to/Q3A_EULA.txt /path/to/ioquake3.dmg" - exit 1; -fi - -if [ ! -r $1 ]; then - echo "$1 is not a readable Q3A_EULA.txt file" - exit 1; -fi -if [ ! -w $2 ]; then - echo "$2 is not writable .dmg file" - exit 1; -fi -touch tmp.r -if [ ! -w tmp.r ]; then - echo "Could not create temporary file tmp.r for writing" - exit 1; -fi - -echo " -data 'LPic' (5000) { - \$\"0002 0011 0003 0001 0000 0000 0002 0000\" - \$\"0008 0003 0000 0001 0004 0000 0004 0005\" - \$\"0000 000E 0006 0001 0005 0007 0000 0007\" - \$\"0008 0000 0047 0009 0000 0034 000A 0001\" - \$\"0035 000B 0001 0020 000C 0000 0011 000D\" - \$\"0000 005B 0004 0000 0033 000F 0001 000C\" - \$\"0010 0000 000B 000E 0000\" -}; - -data 'TEXT' (5002, \"English\") { -" > tmp.r - -sed -e 's/"/\\"/g' -e 's/\(.*\)$/"\1\\n"/g' $1 >> tmp.r - -echo " -}; - -resource 'STR#' (5002, \"English\") { - { - \"English\", - \"Agree\", - \"Disagree\", - \"Print\", - \"Save...\", - \"IMPORTANT - Read this License Agreement carefully before clicking on \" - \"the \\\"Agree\\\" button. By clicking on the \\\"Agree\\\" button, you agree \" - \"to be bound by the terms of the License Agreement.\", - \"Software License Agreement\", - \"This text cannot be saved. This disk may be full or locked, or the \" - \"file may be locked.\", - \"Unable to print. Make sure you have selected a printer.\" - } -}; -" >> tmp.r - -hdiutil convert -format UDCO -o tmp.dmg $2 || exit 1 -hdiutil unflatten tmp.dmg || exit 1 -/Developer/Tools/Rez /Developer/Headers/FlatCarbon/*.r tmp.r -a -o tmp.dmg \ - || exit 1 -hdiutil flatten tmp.dmg || exit 1 -hdiutil internet-enable -yes tmp.dmg || exit 1 -mv tmp.dmg $2 || (echo "Could not copy tmp.dmg to $2" && exit 1) -rm tmp.dmg -rm tmp.r -echo "SLA $1 successfully added to $2" diff --git a/bundle_mac.sh b/bundle_mac.sh deleted file mode 100755 index c0c1b265d..000000000 --- a/bundle_mac.sh +++ /dev/null @@ -1,38 +0,0 @@ -echo "* Removing any existing installation" -rm -rf ./Pingus.app -rm -rf ./Pingus-`cat VERSION`.dmg - -echo "* Creating skeleton" -mkdir -p ./Pingus.app/Contents/Resources -mkdir ./Pingus.app/Contents/MacOS -cp Info.plist ./Pingus.app/Contents/Info.plist -cp ./data/images/icons/pingus-icon.icns ./Pingus.app/Contents/Resources/pingus.icns - -echo "* Copying executable" -cp ./build/pingus ./Pingus.app/Contents/MacOS/pingus - -echo "* Copying data files" -cp -r ./data/* ./Pingus.app/Contents/Resources/ - -echo "* Bunling dependencies" -dylibbundler -od -b -x ./Pingus.app/Contents/MacOS/pingus -d ./Pingus.app/Contents/libs/ - -echo "* Creating DMG" - hdiutil create -size 100M -fs HFS+J -volname Pingus Pingus-tmp.dmg - hdiutil attach Pingus-tmp.dmg -readwrite -mount required - cp -R Pingus.app /Volumes/Pingus/ - cp README /Volumes/Pingus - cp AUTHORS /Volumes/Pingus - cp COPYING /Volumes/Pingus - cp NEWS /Volumes/Pingus - hdiutil detach /Volumes/Pingus -force -read -p "Do you run OSX 10.6 or earlier? (y/n)" RESPONSE - if [ "$RESPONSE" = y ] ; then - ./SLA-dmg.sh COPYING Pingus-tmp.dmg - elif [ "$RESPONSE" = n ] ; then - ./licenseDMG.py Pingus-tmp.dmg COPYING - else - echo "You did not make a valid selection!" - fi - hdiutil convert Pingus-tmp.dmg -format UDBZ -o Pingus-`cat VERSION`.dmg - rm Pingus-tmp.dmg diff --git a/data/po/gl.po b/data/po/gl.po index 00eef08b5..a33dbe91e 100644 --- a/data/po/gl.po +++ b/data/po/gl.po @@ -1,925 +1,938 @@ -# Translation of pingus to Galician -# Copyright (C) Xabier Seixo Souto , 2012. -# This file is distributed under the same license as the pingus package. +# 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 , YEAR. # +#, fuzzy msgid "" msgstr "" -"Project-Id-Version: Pingus 0.7.3\n" +"Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-02-13 03:15+0100\n" -"PO-Revision-Date: 2012-07-22 17:39+0000\n" -"Last-Translator: Xabier Seixo Souto \n" -"Language-Team: LANGUAGE \n" -"Language: \n" +"POT-Creation-Date: 2011-12-24 22:39+0100\n" +"PO-Revision-Date: 2024-06-06 21:00+0200\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: gl_ES\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ASCII\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-02-10 19:39+0000\n" -"X-Generator: Launchpad (build 16482)\n" +"X-Generator: Poedit 3.4.4\n" -#: src/editor/object_properties.cpp:87 src/editor/object_properties.cpp:515 -msgid "Object:" -msgstr "" - -#: src/editor/object_properties.cpp:88 src/editor/object_properties.cpp:516 -msgid "Nothing selected" -msgstr "" - -#: src/editor/object_properties.cpp:97 -msgid "Transparent" -msgstr "" - -#: src/editor/object_properties.cpp:98 -msgid "Solid" -msgstr "" - -#: src/editor/object_properties.cpp:99 -msgid "Ground" -msgstr "" - -#: src/editor/object_properties.cpp:100 -msgid "Bridge" -msgstr "" - -#: src/editor/object_properties.cpp:101 -msgid "Water" -msgstr "" - -#: src/editor/object_properties.cpp:102 -msgid "Lava" -msgstr "" - -#: src/editor/object_properties.cpp:103 -msgid "Remove" -msgstr "" - -#: src/editor/object_properties.cpp:108 -msgid "Direction:" -msgstr "" - -#: src/editor/object_properties.cpp:110 -msgid "Left" -msgstr "" - -#: src/editor/object_properties.cpp:111 -msgid "Misc" -msgstr "" - -#: src/editor/object_properties.cpp:112 -msgid "Right" -msgstr "" - -#: src/editor/object_properties.cpp:117 -msgid "ReleaseRate:" -msgstr "" - -#: src/editor/object_properties.cpp:140 -msgid "Para-X:" -msgstr "" - -#: src/editor/object_properties.cpp:141 -msgid "Para-Y:" -msgstr "" +#: src/engine/display/screenshot.cpp:37 +msgid "Screenshot: Saving screenshot to: " +msgstr "Captura de pantalla: gardando a captura en: " -#: src/editor/object_properties.cpp:149 -msgid "Scroll-X:" -msgstr "" +#: src/engine/display/screenshot.cpp:39 +msgid "Screenshot: Screenshot is done." +msgstr "Captura de pantalla: a captura está feita." -#: src/editor/object_properties.cpp:150 -msgid "Scroll-Y:" -msgstr "" +#: src/engine/display/screenshot.cpp:124 src/engine/display/screenshot.cpp:152 +msgid "Screenshot: Couldn't write file: " +msgstr "Captura de pantalla: non se puido escribir o ficheiro: " -#: src/editor/object_properties.cpp:158 -msgid "Owner Id:" -msgstr "" +#: src/editor/editor_screen.cpp:230 +msgid "== Editor Help ==" +msgstr "== Axuda do editor ==" -#: src/editor/object_properties.cpp:162 -msgid "Z-Pos:" +#: src/editor/editor_screen.cpp:248 +msgid "" +"Select all\n" +"Clear Selection\n" +"Raise objects\n" +"Lower objects\n" +"Raise objects to top\n" +"Lower objects to bottom\n" +"Rotate 90 degree\n" +"Rotate 270 degree\n" +"Group selected objects\n" +"Ungroup selected objects\n" msgstr "" +"Escoller todo\n" +"Borrar escolla\n" +"Erguer obxectos\n" +"Baixar obxectos\n" +"Erguer obxectos arriba\n" +"Baixar obxectos o fondo\n" +"Xirar 90 graos\n" +"Xirar 270 graos\n" +"Agrupar obxectos escollidos\n" +"Desagrupar os obxectos escollidos\n" -#: src/editor/object_properties.cpp:169 -msgid "Color:" +#: src/editor/editor_screen.cpp:271 +msgid "" +"Flip object horizontaly\n" +"Flip object vertically\n" +"Delete all marked objects\n" +"Move objects by one pixel\n" +"Move objects by 32 pixel\n" +"Toggle background color\n" +"Increase/lower repeat\n" msgstr "" +"Virar obxecto horizontalmente\n" +"Virar obxecto verticalmente\n" +"Eliminar todos os obxectos marcados\n" +"Mover obxectos por un píxel\n" +"Mover obxectos por 32 píxeles\n" +"Alternar a cor de fondo\n" +"Aumentar/baixar repetición\n" -#: src/editor/object_properties.cpp:181 -msgid "Small Stars:" +#: src/editor/editor_screen.cpp:282 +msgid "" +"You should name your level files systematically, i.e. by their theme, their " +"number and your nickname:\n" +"\n" +" -.pingus\n" +"\n" +"So if you create your second level with a stone theme, call it: stone2-" +"yourname.pingus\n" +"\n" +"When you have created a level and want to have it included in the game mail " +"it to:\n" +"\n" +" pingus-devel@nongnu.org\n" +"\n" +"Only levels published under the GPL are allowed into the game. The editor " +"automatically inserts a reference \n" +"to the GPL, if you want to have your level under a different license, you " +"have to change that reference.\n" msgstr "" +"Debes nomear os teus ficheiros de nivel de forma sistemática, é dicir, polo " +"seu tema, o seu número e o teu alcume:\n" +"\n" +" -.pingus\n" +"\n" +"Entón, se creas o teu segundo nivel cun tema de pedra, chámao: pedra2-" +"seu_nome.pingus\n" +"\n" +"Se creas un nivel e queres telo incluído no xogo, enviao a:\n" +"\n" +" pingus-devel@nongnu.org\n" +"\n" +"Só se permiten no xogo os niveis publicados baixo a GPL. " +"O editor insire automaticamente unha licenza\n" +"á GPL, se queres ter o teu nivel baixo unha licenza diferente, tes que " +"cambiar esa licenza.\n" -#: src/editor/object_properties.cpp:184 -msgid "Middle Stars:" -msgstr "" +#: src/editor/file_dialog.cpp:58 +msgid "Datadir" +msgstr "Dir. datos" -#: src/editor/object_properties.cpp:187 -msgid "Large Stars:" -msgstr "" +#: src/editor/file_dialog.cpp:60 +msgid "Userdir" +msgstr "Dir. usuario" -#: src/editor/object_properties.cpp:195 -msgid "Repeat:" -msgstr "" +#: src/editor/file_dialog.cpp:63 +msgid "Open" +msgstr "Abrir" -#: src/editor/object_properties.cpp:211 -msgid "Id:" -msgstr "" +#: src/editor/file_dialog.cpp:63 +msgid "Save" +msgstr "Gardar" -#: src/editor/object_properties.cpp:215 -msgid "Target Id:" -msgstr "" +#: src/editor/file_dialog.cpp:66 src/editor/message_box.cpp:35 +msgid "Cancel" +msgstr "Cancelar" -#: src/editor/object_properties.cpp:220 src/editor/level_properties.cpp:74 -msgid "Height:" -msgstr "" +#: src/editor/file_dialog.cpp:77 +msgid "Filename:" +msgstr "Nome de arquivo:" -#: src/editor/object_properties.cpp:521 -msgid "Object: [Group]" -msgstr "" +#: src/editor/file_dialog.cpp:78 +msgid "Pathname:" +msgstr "Nome da ruta:" -#: src/editor/object_properties.cpp:522 -msgid "Group not supported" -msgstr "" +#: src/editor/file_dialog.cpp:98 +msgid "Open a level" +msgstr "Abrir nivel" -#: src/editor/object_properties.cpp:527 -msgid "Object: " -msgstr "" +#: src/editor/file_dialog.cpp:98 +msgid "Save your level" +msgstr "Gardar o teu nivel" #: src/editor/panel.cpp:171 msgid "New level" -msgstr "" +msgstr "Novo nivel" #: src/editor/panel.cpp:173 msgid "Open level..." -msgstr "" +msgstr "Abrir Nivel..." #: src/editor/panel.cpp:175 msgid "Save level..." -msgstr "" +msgstr "Gardar nivel..." #: src/editor/panel.cpp:177 msgid "Save level as..." -msgstr "" +msgstr "Gardar o nivel como..." #: src/editor/panel.cpp:180 msgid "Play level..." -msgstr "" +msgstr "Xogar nivel..." #: src/editor/panel.cpp:183 msgid "Configure actions" -msgstr "" +msgstr "Configurar accións" #: src/editor/panel.cpp:185 msgid "Configure level" -msgstr "" +msgstr "Configurar nivel" #: src/editor/panel.cpp:187 msgid "Display object properties" -msgstr "" +msgstr "Amosar as propiedades do obxecto" #: src/editor/panel.cpp:189 msgid "Show object insertion window" -msgstr "" +msgstr "Amosar a xanela de inserción de obxectos" #: src/editor/panel.cpp:191 msgid "Show minimap" -msgstr "" +msgstr "Amosar minimapa" #: src/editor/panel.cpp:194 msgid "Duplicate the selected objects" -msgstr "" +msgstr "Duplica os obxectos escollidos" #: src/editor/panel.cpp:196 msgid "Delete the selected objects" -msgstr "" +msgstr "Elimina os obxectos escollidos" #: src/editor/panel.cpp:199 msgid "Raise object to top" -msgstr "" +msgstr "Levar obxecto ao primeiro plano" #: src/editor/panel.cpp:201 msgid "Raise object" -msgstr "" +msgstr "Erguer obxecto" #: src/editor/panel.cpp:203 msgid "Lower object" -msgstr "" +msgstr "Baixar obxeto" #: src/editor/panel.cpp:205 msgid "Lower object to bottom" -msgstr "" +msgstr "Baixar obxecto ao fondo" #: src/editor/panel.cpp:211 msgid "Flip object horizontally" -msgstr "" +msgstr "Virar obxecto horizontalmente" #: src/editor/panel.cpp:213 msgid "Flip object vertically" -msgstr "" +msgstr "Virar obxecto verticalmente" #: src/editor/panel.cpp:216 msgid "Rotate object -90 degree" -msgstr "" +msgstr "Xirar obxecto -90 graos" #: src/editor/panel.cpp:218 msgid "Rotate object 90 degree" -msgstr "" +msgstr "Xirar obxecto 90 graos" #: src/editor/panel.cpp:227 msgid "Display help" -msgstr "" +msgstr "Amosar axuda" #: src/editor/panel.cpp:229 src/editor/object_selector.cpp:174 #: src/pingus/screens/pingus_menu.cpp:74 msgid "Exit" -msgstr "" +msgstr "Sair" -#: src/editor/file_dialog.cpp:58 -msgid "Datadir" -msgstr "" +#: src/editor/object_selector.cpp:165 +msgid "Entrance" +msgstr "Entrada" -#: src/editor/file_dialog.cpp:60 -msgid "Userdir" -msgstr "" +#: src/editor/object_selector.cpp:166 +msgid "Groundpiece (ground)" +msgstr "Peza de chan (terreo)" -#: src/editor/file_dialog.cpp:63 -msgid "Open" -msgstr "" +#: src/editor/object_selector.cpp:167 +msgid "Groundpiece (solid)" +msgstr "Peza de chan (sólido)" -#: src/editor/file_dialog.cpp:63 -msgid "Save" -msgstr "" +#: src/editor/object_selector.cpp:168 +msgid "Groundpiece (bridge)" +msgstr "Peza de chan (ponte)" -#: src/editor/file_dialog.cpp:66 src/editor/message_box.cpp:35 -msgid "Cancel" -msgstr "" +#: src/editor/object_selector.cpp:169 +msgid "Groundpiece (transparent)" +msgstr "Peza de chan (transparente)" -#: src/editor/file_dialog.cpp:77 -msgid "Filename:" -msgstr "" +#: src/editor/object_selector.cpp:170 +msgid "Groundpiece (remove)" +msgstr "Peza de chan (eliminar)" -#: src/editor/file_dialog.cpp:78 -msgid "Pathname:" -msgstr "" +#: src/editor/object_selector.cpp:171 +msgid "Hotspot" +msgstr "Zona quente" -#: src/editor/file_dialog.cpp:98 -msgid "Open a level" -msgstr "" +#: src/editor/object_selector.cpp:172 +msgid "Background" +msgstr "Fondo" -#: src/editor/file_dialog.cpp:98 -msgid "Save your level" -msgstr "" +#: src/editor/object_selector.cpp:175 +msgid "Liquid" +msgstr "Líquido" -#: src/editor/level_properties.cpp:52 -msgid "Author:" -msgstr "" +#: src/editor/object_selector.cpp:176 +msgid "Trap" +msgstr "Trampa" -#: src/editor/level_properties.cpp:55 -msgid "Levelname:" -msgstr "" +#: src/editor/object_selector.cpp:177 +msgid "Weather" +msgstr "Tempo" -#: src/editor/level_properties.cpp:58 -msgid "Description:" -msgstr "" +#: src/editor/object_selector.cpp:178 +msgid "Special Object" +msgstr "Obxecto especial" -#: src/editor/level_properties.cpp:62 -msgid "Pingus Count:" -msgstr "" +#: src/editor/object_selector.cpp:179 +msgid "Prefab Object" +msgstr "Obxecto prefabricado" -#: src/editor/level_properties.cpp:65 -msgid "Pingus to Save:" -msgstr "" +#: src/editor/message_box.cpp:37 +msgid "Replace" +msgstr "Substituír" -#: src/editor/level_properties.cpp:68 -msgid "Time:" -msgstr "" +#: src/editor/object_properties.cpp:87 src/editor/object_properties.cpp:515 +msgid "Object:" +msgstr "Obxecto:" -#: src/editor/level_properties.cpp:71 -msgid "Width:" -msgstr "" +#: src/editor/object_properties.cpp:88 src/editor/object_properties.cpp:516 +msgid "Nothing selected" +msgstr "Non escolleu nada" -#: src/editor/level_properties.cpp:77 -msgid "Music:" -msgstr "" +#: src/editor/object_properties.cpp:97 +msgid "Transparent" +msgstr "Transparente" -#: src/editor/editor_screen.cpp:230 -msgid "== Editor Help ==" -msgstr "" +#: src/editor/object_properties.cpp:98 +msgid "Solid" +msgstr "Sólido" -#: src/editor/editor_screen.cpp:248 -msgid "" -"Select all\n" -"Clear Selection\n" -"Raise objects\n" -"Lower objects\n" -"Raise objects to top\n" -"Lower objects to bottom\n" -"Rotate 90 degree\n" -"Rotate 270 degree\n" -"Group selected objects\n" -"Ungroup selected objects\n" -msgstr "" +#: src/editor/object_properties.cpp:99 +msgid "Ground" +msgstr "Terra" -#: src/editor/editor_screen.cpp:271 -msgid "" -"Flip object horizontally\n" -"Flip object vertically\n" -"Delete all marked objects\n" -"Move objects by one pixel\n" -"Move objects by 32 pixel\n" -"Toggle background color\n" -"Increase/lower repeat\n" -msgstr "" +#: src/editor/object_properties.cpp:100 +msgid "Bridge" +msgstr "Ponte" -#: src/editor/editor_screen.cpp:282 +#: src/editor/object_properties.cpp:101 +msgid "Water" +msgstr "Auga" + +#: src/editor/object_properties.cpp:102 +msgid "Lava" +msgstr "Lava" + +#: src/editor/object_properties.cpp:103 +msgid "Remove" +msgstr "Quitar" + +#: src/editor/object_properties.cpp:108 +msgid "Direction:" +msgstr "Dirección:" + +#: src/editor/object_properties.cpp:110 +msgid "Left" +msgstr "Esquerda" + +#: src/editor/object_properties.cpp:111 +msgid "Misc" +msgstr "Misc" + +#: src/editor/object_properties.cpp:112 +msgid "Right" +msgstr "Dereita" + +#: src/editor/object_properties.cpp:117 +msgid "ReleaseRate:" +msgstr "Data de lanzamento:" + +#: src/editor/object_properties.cpp:140 +msgid "Para-X:" +msgstr "Para-X:" + +#: src/editor/object_properties.cpp:141 +msgid "Para-Y:" +msgstr "Para-Y:" + +#: src/editor/object_properties.cpp:149 +msgid "Scroll-X:" +msgstr "Desprazamento-X:" + +#: src/editor/object_properties.cpp:150 +msgid "Scroll-Y:" +msgstr "Desprazamento-Y:" + +#: src/editor/object_properties.cpp:158 +msgid "Owner Id:" +msgstr "ID do propietario:" + +#: src/editor/object_properties.cpp:162 +msgid "Z-Pos:" +msgstr "Z-Pos:" + +#: src/editor/object_properties.cpp:169 +msgid "Color:" +msgstr "Cor:" + +#: src/editor/object_properties.cpp:181 +msgid "Small Stars:" +msgstr "Estrelas pequenas:" + +#: src/editor/object_properties.cpp:184 +msgid "Middle Stars:" +msgstr "Estrelas medianas:" + +#: src/editor/object_properties.cpp:187 +msgid "Large Stars:" +msgstr "Estrelas grandes:" + +#: src/editor/object_properties.cpp:195 +msgid "Repeat:" +msgstr "Repetir:" + +#: src/editor/object_properties.cpp:211 +msgid "Id:" +msgstr "Id:" + +#: src/editor/object_properties.cpp:215 +msgid "Target Id:" +msgstr "ID de destino:" + +#: src/editor/object_properties.cpp:220 +msgid "Height:" +msgstr "Altura:" + +#: src/editor/object_properties.cpp:521 +msgid "Object: [Group]" +msgstr "Obxecto: [Grupo]" + +#: src/editor/object_properties.cpp:522 +msgid "Group not supported" +msgstr "Non se permiten grupos" + +#: src/editor/object_properties.cpp:527 +msgid "Object: " +msgstr "Obxecto: " + +#: src/pingus/pingus_main.cpp:172 +msgid "[OPTIONS]... [FILE]" +msgstr "[OPCIÓNS]... [ARQUIVO]" + +#: src/pingus/pingus_main.cpp:173 msgid "" -"You should name your level files systematically, i.e. by their theme, their " -"number and your nickname:\n" -"\n" -" -.pingus\n" -"\n" -"So if you create your second level with a stone theme, call it: stone2-" -"yourname.pingus\n" -"\n" -"When you have created a level and want to have it included in the game mail " -"it to:\n" -"\n" -" pingus-devel@nongnu.org\n" -"\n" -"Only levels published under the GPL are allowed into the game. The editor " -"automatically inserts a reference \n" -"to the GPL, if you want to have your level under a different license, you " -"have to change that reference.\n" +"Pingus is a puzzle game where you need to guide a bunch of little penguins " +"around the world." msgstr "" +"Pingus é un xogo de crebacabezas onde tes que guiar a un grupo de pingüíns " +"por todo o mundo." -#: src/editor/message_box.cpp:37 -msgid "Replace" -msgstr "" +#: src/pingus/pingus_main.cpp:175 +msgid "General Options:" +msgstr "Opcións xerais:" -#: src/editor/object_selector.cpp:165 -msgid "Entrance" -msgstr "" +#: src/pingus/pingus_main.cpp:177 +msgid "Displays this help" +msgstr "Amosa esta axuda" -#: src/editor/object_selector.cpp:166 -msgid "Groundpiece (ground)" -msgstr "" +#: src/pingus/pingus_main.cpp:179 +msgid "Print version number and exit" +msgstr "Amosar o número de versión e saír" -#: src/editor/object_selector.cpp:167 -msgid "Groundpiece (solid)" -msgstr "" +#: src/pingus/pingus_main.cpp:181 +msgid "Enable info level log output" +msgstr "Activar a saída do rexistro de nivel de información" -#: src/editor/object_selector.cpp:168 -msgid "Groundpiece (bridge)" -msgstr "" +#: src/pingus/pingus_main.cpp:183 +msgid "Enable debug level log output" +msgstr "Activar a saída do rexistro de nivel de depuración" -#: src/editor/object_selector.cpp:169 -msgid "Groundpiece (transparent)" -msgstr "" +#: src/pingus/pingus_main.cpp:185 +msgid "Disable all log output" +msgstr "Desactivar todas as saídas de rexistro" -#: src/editor/object_selector.cpp:170 -msgid "Groundpiece (remove)" -msgstr "" +#: src/pingus/pingus_main.cpp:187 +msgid "Display Options:" +msgstr "Opcións de visualización:" -#: src/editor/object_selector.cpp:171 -msgid "Hotspot" -msgstr "" +#: src/pingus/pingus_main.cpp:189 +msgid "Start in Window Mode" +msgstr "Comeza no modo xanela" -#: src/editor/object_selector.cpp:172 -msgid "Background" -msgstr "" +#: src/pingus/pingus_main.cpp:191 +msgid "Start in Fullscreen" +msgstr "Comeza en pantalla chea" -#: src/editor/object_selector.cpp:175 -msgid "Liquid" -msgstr "" +#: src/pingus/pingus_main.cpp:193 +msgid "Use the given renderer (default: sdl)" +msgstr "Use o renderizador dado (predeterminado: sdl)" -#: src/editor/object_selector.cpp:176 -msgid "Trap" -msgstr "" +#: src/pingus/pingus_main.cpp:195 +msgid "Set the window resolution for pingus (default: 800x600)" +msgstr "Establece a resolución da xanela para pingus (predeterminado: 800x600)" -#: src/editor/object_selector.cpp:177 -msgid "Weather" +#: src/pingus/pingus_main.cpp:197 +msgid "Set the resolution used in fullscreen mode (default: 800x600)" msgstr "" +"Establece a resolución utilizada no modo de pantalla chea " +"(predeterminado: 800 x 600)" -#: src/editor/object_selector.cpp:178 -msgid "Special Object" -msgstr "" +#: src/pingus/pingus_main.cpp:199 +msgid "Enable software cursor" +msgstr "Activar o cursor do software" -#: src/editor/object_selector.cpp:179 -msgid "Prefab Object" -msgstr "" +#: src/pingus/pingus_main.cpp:201 +msgid "Game Options:" +msgstr "Opcións de xogo:" -#: src/pingus/components/pingus_counter.cpp:43 -#, c-format, boost-format -msgid "Released:%3d/%d Out:%3d Saved:%3d/%d" -msgstr "" +#: src/pingus/pingus_main.cpp:203 +msgid "Disable automatic scrolling" +msgstr "Desactivar o desprazamento automático" -#: src/pingus/action_name.cpp:27 -msgid "Angel" -msgstr "" +#: src/pingus/pingus_main.cpp:205 +msgid "Enable drag'n drop scrolling" +msgstr "Activar desprazamento por arrastrar e soltar" -#: src/pingus/action_name.cpp:28 -msgid "Basher" -msgstr "" +#: src/pingus/pingus_main.cpp:207 +msgid "Sound Options:" +msgstr "Opcións de son:" -#: src/pingus/action_name.cpp:29 -msgid "Blocker" -msgstr "" +#: src/pingus/pingus_main.cpp:209 +msgid "Disable sound" +msgstr "Desactivar o son" -#: src/pingus/action_name.cpp:30 -msgid "Boarder" -msgstr "" +#: src/pingus/pingus_main.cpp:211 +msgid "Disable music" +msgstr "Desactivar a música" -#: src/pingus/action_name.cpp:31 -msgid "Bomber" -msgstr "" +#: src/pingus/pingus_main.cpp:215 +msgid "Select language to use with Pingus" +msgstr "Escolla a lingua pra usar con Pingus" -#: src/pingus/action_name.cpp:32 src/pingus/actions/bridger.cpp:38 -#: src/pingus/actions/bridger.cpp:196 -msgid "Bridger" -msgstr "" +#: src/pingus/pingus_main.cpp:217 +msgid "List all available languages" +msgstr "Listar todalas linguas dispoñibles" -#: src/pingus/action_name.cpp:33 -msgid "Climber" -msgstr "" +#: src/pingus/pingus_main.cpp:221 +msgid "Loads the level editor" +msgstr "Carga o editor de niveis" -#: src/pingus/action_name.cpp:34 -msgid "Digger" -msgstr "" +#: src/pingus/pingus_main.cpp:223 +msgid "Directory Options:" +msgstr "Opcións do directorio:" -#: src/pingus/action_name.cpp:35 -msgid "Drown" -msgstr "" +#: src/pingus/pingus_main.cpp:224 src/pingus/pingus_main.cpp:226 +#: src/pingus/pingus_main.cpp:228 +msgid "DIR" +msgstr "DIR" -#: src/pingus/action_name.cpp:36 -msgid "Exiter" -msgstr "" +#: src/pingus/pingus_main.cpp:225 +msgid "Load game datafiles from DIR" +msgstr "Cargar ficheiros de datos do xogo desde DIR" -#: src/pingus/action_name.cpp:37 -msgid "Faller" -msgstr "" +#: src/pingus/pingus_main.cpp:227 +msgid "Load config files and store savegames in DIR" +msgstr "Carga ficheiros de configuración e almacena partidas gardadas en DIR" -#: src/pingus/action_name.cpp:38 -msgid "Floater" -msgstr "" +#: src/pingus/pingus_main.cpp:229 +msgid "Load game modifications from DIR" +msgstr "Cargar modificacións do xogo dende DIR" -#: src/pingus/action_name.cpp:39 -msgid "Jumper" -msgstr "" +#: src/pingus/pingus_main.cpp:231 +msgid "Don't read ~/.pingus/config" +msgstr "Non leas ~/.pingus/config" -#: src/pingus/action_name.cpp:40 -msgid "Laserkill" -msgstr "" +#: src/pingus/pingus_main.cpp:232 +msgid "FILE" +msgstr "FICHEIRO" -#: src/pingus/action_name.cpp:41 -msgid "Miner" -msgstr "" +#: src/pingus/pingus_main.cpp:233 +msgid "Read config options from FILE" +msgstr "Ler as opcións de configuración dende FICHEIRO" -#: src/pingus/action_name.cpp:42 -msgid "Slider" -msgstr "" +#: src/pingus/pingus_main.cpp:235 +msgid "Uses the controller given in FILE" +msgstr "Usa o controlador indicado en FICHEIRO" -#: src/pingus/action_name.cpp:43 -msgid "Smashed" -msgstr "" +#: src/pingus/pingus_main.cpp:237 +msgid "Debug Options:" +msgstr "Opcións de depuración:" -#: src/pingus/action_name.cpp:44 -msgid "Splashed" -msgstr "" +#: src/pingus/pingus_main.cpp:239 +msgid "Enables some special features for developers" +msgstr "Activa algunhas funcións especiais para desenvolvedores" -#: src/pingus/action_name.cpp:45 -msgid "Superman" -msgstr "" +#: src/pingus/pingus_main.cpp:241 +msgid "Set the game speed (0=fastest, >0=slower)" +msgstr "Establece a velocidade do xogo (0= a máis rápida, >0= a máis lenta)" -#: src/pingus/action_name.cpp:46 -msgid "Teleported" +#: src/pingus/pingus_main.cpp:243 +msgid "Set the desired game framerate (frames per second)" msgstr "" +"Establece a velocidade de fotogramas do xogo desexada (fotogramas por " +"segundo)" -#: src/pingus/action_name.cpp:47 -msgid "Waiter" -msgstr "" +#: src/pingus/pingus_main.cpp:245 +msgid "Set the size of the map tiles (default: 32)" +msgstr "Establece o tamaño dos mosaicos do mapa (predeterminado: 32)" -#: src/pingus/action_name.cpp:48 -msgid "Walker" -msgstr "" +#: src/pingus/pingus_main.cpp:663 +msgid "Pingus: Out of memory!" +msgstr "Pingus: Sen memoria!" -#: src/pingus/screens/story_screen.cpp:108 -#: src/pingus/screens/story_screen.cpp:114 -msgid "skip" -msgstr "" +#: src/pingus/pingus_main.cpp:667 +msgid "Pingus: Standard exception caught!:\n" +msgstr "Pingus: Excepción estándar capturada!:\n" + +#: src/pingus/pingus_main.cpp:671 +msgid "Pingus: Unknown throw caught!" +msgstr "Pingus: Lanzamento descoñecido capturado!" + +#: src/pingus/game_time.cpp:29 +msgid "unlimited" +msgstr "ilimitado" + +#: src/pingus/actions/bridger.cpp:38 src/pingus/actions/bridger.cpp:196 +#: src/pingus/action_name.cpp:32 +msgid "Bridger" +msgstr "Enxeñeiro" #: src/pingus/screens/start_screen.cpp:67 msgid "Play" -msgstr "" +msgstr "Xogar" -#: src/pingus/screens/start_screen.cpp:111 -#: src/pingus/screens/level_menu.cpp:50 +#: src/pingus/screens/start_screen.cpp:111 src/pingus/screens/level_menu.cpp:50 msgid "Back" -msgstr "" +msgstr "Voltar" #: src/pingus/screens/start_screen.cpp:166 msgid "Number of Pingus: " -msgstr "" +msgstr "Número de Pingus: " #: src/pingus/screens/start_screen.cpp:169 msgid "Number to Save: " -msgstr "" +msgstr "Número a sarvar: " #: src/pingus/screens/start_screen.cpp:172 msgid "Time: " -msgstr "" +msgstr "Tempo: " #: src/pingus/screens/start_screen.cpp:178 msgid "Author: " -msgstr "" +msgstr "Autor: " #: src/pingus/screens/addon_menu.cpp:53 src/pingus/screens/option_menu.cpp:336 msgid "Close" +msgstr "Pechar" + +#: src/pingus/screens/pingus_menu.cpp:54 +msgid "Story" +msgstr "Historia" + +#: src/pingus/screens/pingus_menu.cpp:55 +msgid "..:: Start the game ::.." +msgstr "..:: Comeza o xogo ::.." + +#: src/pingus/screens/pingus_menu.cpp:59 +msgid "Editor" +msgstr "Editor" + +#: src/pingus/screens/pingus_menu.cpp:60 +msgid "..:: Create your own levels ::.." +msgstr "..:: Crea os teus propios niveis ::.." + +#: src/pingus/screens/pingus_menu.cpp:64 +msgid "Options" +msgstr "Opcións" + +#: src/pingus/screens/pingus_menu.cpp:65 +msgid "..:: Configure the game ::.." +msgstr "..:: Configura o xogo ::.." + +#: src/pingus/screens/pingus_menu.cpp:69 src/pingus/screens/level_menu.cpp:177 +msgid "Levelsets" +msgstr "Outros niveis" + +#: src/pingus/screens/pingus_menu.cpp:70 +msgid "..:: Play User Built levels ::.." +msgstr "..:: Xogar niveis feitos polos usuarios ::.." + +#: src/pingus/screens/pingus_menu.cpp:75 +msgid "..:: Bye, bye ::.." +msgstr "..:: Adeus ::.." + +#: src/pingus/screens/pingus_menu.cpp:87 +msgid "" +"..:: Ctrl-g: mouse grab :: F10: fps counter :: F11: " +"fullscreen :: F12: screenshot ::.." msgstr "" +"..:: Ctrl-g: captura do rato :: F10: contador de fps :: F11: pantalla " +"completa :: F12: captura pantalla ::.." + +#: src/pingus/screens/level_menu.cpp:155 +msgid "Under Construction" +msgstr "En construcción" + +#: src/pingus/screens/level_menu.cpp:156 +msgid "Untested, unpolished and broken levels" +msgstr "Niveis sen probar, sen pulir e rotos" + +#: src/pingus/screens/level_menu.cpp:192 +msgid "Solved:" +msgstr "Resoltos:" + +#: src/pingus/screens/level_menu.cpp:193 +msgid "levels" +msgstr "niveis" + +#: src/pingus/screens/story_screen.cpp:108 +#: src/pingus/screens/story_screen.cpp:114 +msgid "skip" +msgstr "omitir" #: src/pingus/screens/option_menu.cpp:208 msgid "Fullscreen" -msgstr "" +msgstr "Pantalla Chea" #: src/pingus/screens/option_menu.cpp:209 msgid "Mouse Grab" -msgstr "" +msgstr "Captura de rato" #: src/pingus/screens/option_menu.cpp:211 msgid "Software Cursor" -msgstr "" +msgstr "Cursor de software" #: src/pingus/screens/option_menu.cpp:212 msgid "Autoscrolling" -msgstr "" +msgstr "Desprazamento automático" #: src/pingus/screens/option_menu.cpp:213 msgid "Drag&Drop Scrolling" -msgstr "" +msgstr "Arrastrar e soltar desprazamento" #: src/pingus/screens/option_menu.cpp:215 msgid "Print FPS" -msgstr "" +msgstr "Imprimir FPS" #: src/pingus/screens/option_menu.cpp:219 msgid "Resolution:" -msgstr "" +msgstr "Resolución:" #: src/pingus/screens/option_menu.cpp:220 msgid "Renderer:" -msgstr "" +msgstr "Renderizador:" #: src/pingus/screens/option_menu.cpp:222 msgid "Language:" -msgstr "" +msgstr "Lingua:" #: src/pingus/screens/option_menu.cpp:224 msgid "Master Volume:" -msgstr "" +msgstr "Volume mestre:" #: src/pingus/screens/option_menu.cpp:225 msgid "Sound Volume:" -msgstr "" +msgstr "Volume do Son:" #: src/pingus/screens/option_menu.cpp:226 msgid "Music Volume:" -msgstr "" +msgstr "Volume da Música:" #: src/pingus/screens/option_menu.cpp:334 msgid "Option Menu" -msgstr "" +msgstr "Menú de opcións" #: src/pingus/screens/option_menu.cpp:340 msgid "Some options require a restart of the game to take effect." -msgstr "" - -#: src/pingus/screens/pingus_menu.cpp:54 -msgid "Story" -msgstr "" - -#: src/pingus/screens/pingus_menu.cpp:55 -msgid "..:: Start the game ::.." -msgstr "" - -#: src/pingus/screens/pingus_menu.cpp:59 -msgid "Editor" -msgstr "" - -#: src/pingus/screens/pingus_menu.cpp:60 -msgid "..:: Create your own levels ::.." -msgstr "" - -#: src/pingus/screens/pingus_menu.cpp:64 -msgid "Options" -msgstr "" - -#: src/pingus/screens/pingus_menu.cpp:65 -msgid "..:: Configure the game ::.." -msgstr "" - -#: src/pingus/screens/pingus_menu.cpp:69 src/pingus/screens/level_menu.cpp:177 -msgid "Levelsets" -msgstr "" - -#: src/pingus/screens/pingus_menu.cpp:70 -msgid "..:: Play User Built levels ::.." -msgstr "" - -#: src/pingus/screens/pingus_menu.cpp:75 -msgid "..:: Bye, bye ::.." -msgstr "" - -#: src/pingus/screens/pingus_menu.cpp:87 -msgid "" -"..:: Ctrl-g: mouse grab :: F10: fps counter :: F11: " -"fullscreen :: F12: screenshot ::.." -msgstr "" +msgstr "Algunhas opcións requiren reiniciar o xogo para que teñan efecto." #: src/pingus/screens/result_screen.cpp:91 msgid "Give up" -msgstr "" +msgstr "Renderse" #: src/pingus/screens/result_screen.cpp:126 msgid "Retry" -msgstr "" +msgstr "Reintentar" #: src/pingus/screens/result_screen.cpp:183 msgid "Success!" -msgstr "" +msgstr "Éxito!" #: src/pingus/screens/result_screen.cpp:191 msgid "Failure!" -msgstr "" +msgstr "Fracaso!" #: src/pingus/screens/result_screen.cpp:200 msgid "Perfect! You saved everyone possible - great!" -msgstr "" +msgstr "Perfecto! Salvaches a todos, xenial!" #: src/pingus/screens/result_screen.cpp:202 msgid "No-one got killed, pretty good work." -msgstr "" +msgstr "Non morreu ninguén, moi bo traballo." #: src/pingus/screens/result_screen.cpp:204 msgid "" "You saved exactly what you needed - you made it, but\n" "maybe you can do better?" msgstr "" +"Savaches exactamente os que precisabas, conseguichelo... \n" +"pero quizais podes facelo mellor?" #: src/pingus/screens/result_screen.cpp:207 msgid "Not everybody was saved, but still good work!" -msgstr "" +msgstr "Non todos se salvaron, pero aínda así bo traballo!" #: src/pingus/screens/result_screen.cpp:209 msgid "What can I say, you made it - congratulations!" -msgstr "" +msgstr "Que podo dicir, conseguichelo - parabéns!" #: src/pingus/screens/result_screen.cpp:214 msgid "You killed everybody, not good." -msgstr "" +msgstr "Matachelos a todos, non é bo." #: src/pingus/screens/result_screen.cpp:216 msgid "No-one got saved - I know you can do better." -msgstr "" +msgstr "Ninguén se salvou, sei que podes facelo mellor." #: src/pingus/screens/result_screen.cpp:218 msgid "" "You didn't save enough, but you saved a few. Next\n" "time you might do better." msgstr "" +"Non savaches os suficientes, pero salvaches algúns.\n" +"A vindeira vez faralo mellor." #: src/pingus/screens/result_screen.cpp:221 msgid "Only one more and you would have made it - try again!" -msgstr "" +msgstr "Só un máis e teríalo conseguido. Téntao de novo!" #: src/pingus/screens/result_screen.cpp:223 msgid "Only a handful more and you would have made it - try again!" -msgstr "" +msgstr "Só uns poucos máis e o terías logrado. Téntao de novo!" #: src/pingus/screens/result_screen.cpp:225 msgid "Better luck next time!" -msgstr "" +msgstr "Mellor sorte a vindeira vez!" #: src/pingus/screens/result_screen.cpp:233 msgid "Saved: " -msgstr "" +msgstr "Salvados: " #: src/pingus/screens/result_screen.cpp:237 msgid "Died: " -msgstr "" +msgstr "Mortos: " #: src/pingus/screens/result_screen.cpp:240 msgid "Time left: " -msgstr "" - -#: src/pingus/screens/level_menu.cpp:155 -msgid "Under Construction" -msgstr "" - -#: src/pingus/screens/level_menu.cpp:156 -msgid "Untested, unpolished and broken levels" -msgstr "" - -#: src/pingus/screens/level_menu.cpp:192 -msgid "Solved:" -msgstr "" - -#: src/pingus/screens/level_menu.cpp:193 -msgid "levels" -msgstr "" - -#: src/pingus/worldmap/level_dot.cpp:134 -msgid "???" -msgstr "" - -#: src/pingus/worldmap/worldmap_screen.cpp:84 -msgid "Show Ending?" -msgstr "" - -#: src/pingus/worldmap/worldmap_screen.cpp:113 -msgid "Leave?" -msgstr "" - -#: src/pingus/pingus_main.cpp:175 -msgid "[OPTIONS]... [FILE]" -msgstr "" - -#: src/pingus/pingus_main.cpp:176 -msgid "" -"Pingus is a puzzle game where you need to guide a bunch of little penguins " -"around the world." -msgstr "" - -#: src/pingus/pingus_main.cpp:178 -msgid "General Options:" -msgstr "" - -#: src/pingus/pingus_main.cpp:180 -msgid "Displays this help" -msgstr "" - -#: src/pingus/pingus_main.cpp:182 -msgid "Print version number and exit" -msgstr "" - -#: src/pingus/pingus_main.cpp:184 -msgid "Enable info level log output" -msgstr "" - -#: src/pingus/pingus_main.cpp:186 -msgid "Enable debug level log output" -msgstr "" - -#: src/pingus/pingus_main.cpp:188 -msgid "Disable all log output" -msgstr "" - -#: src/pingus/pingus_main.cpp:190 -msgid "Display Options:" -msgstr "" - -#: src/pingus/pingus_main.cpp:192 -msgid "Start in Window Mode" -msgstr "" - -#: src/pingus/pingus_main.cpp:194 -msgid "Start in Fullscreen" -msgstr "" - -#: src/pingus/pingus_main.cpp:196 -msgid "Use the given renderer (default: sdl)" -msgstr "" - -#: src/pingus/pingus_main.cpp:198 -msgid "Set the window resolution for pingus (default: 800x600)" -msgstr "" - -#: src/pingus/pingus_main.cpp:200 -msgid "Set the resolution used in fullscreen mode (default: 800x600)" -msgstr "" - -#: src/pingus/pingus_main.cpp:202 -msgid "Enable software cursor" -msgstr "" - -#: src/pingus/pingus_main.cpp:204 -msgid "Game Options:" -msgstr "" - -#: src/pingus/pingus_main.cpp:206 -msgid "Disable automatic scrolling" -msgstr "" - -#: src/pingus/pingus_main.cpp:208 -msgid "Enable drag'n drop scrolling" -msgstr "" - -#: src/pingus/pingus_main.cpp:210 -msgid "Sound Options:" -msgstr "" - -#: src/pingus/pingus_main.cpp:212 -msgid "Disable sound" -msgstr "" - -#: src/pingus/pingus_main.cpp:214 -msgid "Disable music" -msgstr "" +msgstr "Tempo restante: " -#: src/pingus/pingus_main.cpp:218 -msgid "Select language to use with Pingus" -msgstr "" +#: src/pingus/action_name.cpp:27 +msgid "Angel" +msgstr "Anxo" -#: src/pingus/pingus_main.cpp:220 -msgid "List all available languages" -msgstr "" +#: src/pingus/action_name.cpp:28 +msgid "Basher" +msgstr "Golpeador" -#: src/pingus/pingus_main.cpp:224 -msgid "Loads the level editor" -msgstr "" +#: src/pingus/action_name.cpp:29 +msgid "Blocker" +msgstr "Bloqueador" -#: src/pingus/pingus_main.cpp:226 -msgid "Directory Options:" -msgstr "" +#: src/pingus/action_name.cpp:30 +msgid "Boarder" +msgstr "Patinador" -#: src/pingus/pingus_main.cpp:227 src/pingus/pingus_main.cpp:229 -#: src/pingus/pingus_main.cpp:231 -msgid "DIR" -msgstr "" +#: src/pingus/action_name.cpp:31 +msgid "Bomber" +msgstr "Bombardero" -#: src/pingus/pingus_main.cpp:228 -msgid "Load game datafiles from DIR" -msgstr "" +#: src/pingus/action_name.cpp:33 +msgid "Climber" +msgstr "Escalador" -#: src/pingus/pingus_main.cpp:230 -msgid "Load config files and store savegames in DIR" -msgstr "" +#: src/pingus/action_name.cpp:34 +msgid "Digger" +msgstr "Escavador" -#: src/pingus/pingus_main.cpp:232 -msgid "Load game modifications from DIR" -msgstr "" +#: src/pingus/action_name.cpp:35 +msgid "Drown" +msgstr "Afogado" -#: src/pingus/pingus_main.cpp:234 -msgid "Don't read ~/.pingus/config" -msgstr "" +#: src/pingus/action_name.cpp:36 +msgid "Exiter" +msgstr "Saíndo" -#: src/pingus/pingus_main.cpp:235 -msgid "FILE" -msgstr "" +#: src/pingus/action_name.cpp:37 +msgid "Faller" +msgstr "Caendo" -#: src/pingus/pingus_main.cpp:236 -msgid "Read config options from FILE" -msgstr "" +#: src/pingus/action_name.cpp:38 +msgid "Floater" +msgstr "Paracaidista" -#: src/pingus/pingus_main.cpp:238 -msgid "Uses the controller given in FILE" -msgstr "" +#: src/pingus/action_name.cpp:39 +msgid "Jumper" +msgstr "Saltador" -#: src/pingus/pingus_main.cpp:240 -msgid "Debug Options:" -msgstr "" +#: src/pingus/action_name.cpp:40 +msgid "Laserkill" +msgstr "MorteLaser" -#: src/pingus/pingus_main.cpp:242 -msgid "Enables some special features for developers" -msgstr "" +#: src/pingus/action_name.cpp:41 +msgid "Miner" +msgstr "Mineiro" -#: src/pingus/pingus_main.cpp:244 -msgid "Set the game speed (0=fastest, >0=slower)" -msgstr "" +#: src/pingus/action_name.cpp:42 +msgid "Slider" +msgstr "Deslizador" -#: src/pingus/pingus_main.cpp:246 -msgid "Set the desired game framerate (frames per second)" -msgstr "" +#: src/pingus/action_name.cpp:43 +msgid "Smashed" +msgstr "Chafado" -#: src/pingus/pingus_main.cpp:248 -msgid "Set the size of the map tiles (default: 32)" -msgstr "" +#: src/pingus/action_name.cpp:44 +msgid "Splashed" +msgstr "Afundido" -#: src/pingus/pingus_main.cpp:688 -msgid "Pingus: Out of memory!" -msgstr "" +#: src/pingus/action_name.cpp:45 +msgid "Superman" +msgstr "Superman" -#: src/pingus/pingus_main.cpp:692 -msgid "Pingus: Standard exception caught!:\n" -msgstr "" +#: src/pingus/action_name.cpp:46 +msgid "Teleported" +msgstr "Teletransportado" -#: src/pingus/pingus_main.cpp:696 -msgid "Pingus: Unknown throw caught!" -msgstr "" +#: src/pingus/action_name.cpp:47 +msgid "Waiter" +msgstr "Agardando" -#: src/pingus/game_time.cpp:29 -msgid "unlimited" -msgstr "" +#: src/pingus/action_name.cpp:48 +msgid "Walker" +msgstr "Camiñante" -#: src/engine/display/screenshot.cpp:37 -msgid "Screenshot: Saving screenshot to: " -msgstr "" +#: src/pingus/components/pingus_counter.cpp:43 +#, c-format, boost-format +msgid "Released:%3d/%d Out:%3d Saved:%3d/%d" +msgstr "Ceibos:%3d/%d Fora:%3d Salvados:%3d/%d" -#: src/engine/display/screenshot.cpp:39 -msgid "Screenshot: Screenshot is done." -msgstr "" +#: src/pingus/worldmap/level_dot.cpp:134 +msgid "???" +msgstr "???" -#: src/engine/display/screenshot.cpp:124 src/engine/display/screenshot.cpp:152 -msgid "Screenshot: Couldn't write file: " -msgstr "" +#: src/pingus/worldmap/worldmap_screen.cpp:84 +msgid "Show Ending?" +msgstr "Amosar o final?" + +#: src/pingus/worldmap/worldmap_screen.cpp:113 +msgid "Leave?" +msgstr "Sair?" #: data/levels/tutorial/basher-tutorial-grumbel.pingus:5 msgid "If the way is blocked, bash away" -msgstr "" +msgstr "Se o camiño está bloqueado, Golpeao" #: data/levels/tutorial/basher-tutorial-grumbel.pingus:6 msgid "" @@ -928,10 +941,14 @@ msgid "" "opposed to the vertical dig ability the Digger action provides. This new " "action is called Basher. " msgstr "" +"Semellante á habilidade Escavador que xa coñeces dos niveis anteriores, tamén hai " +"unha habilidade que permite os Pingus cavar horizontalmente, en oposición á " +"capacidade de escavación vertical que proporciona a habilidade Escavador. Esta nova " +"habilidade chámase Golpeador. " #: data/levels/tutorial/bomber-tutorial2-grumbel.pingus:5 msgid "Sacrifice a few and save the rest" -msgstr "" +msgstr "Sacrifica algúns e salva o resto" #: data/levels/tutorial/bomber-tutorial2-grumbel.pingus:6 msgid "" @@ -940,10 +957,13 @@ msgid "" "This will kill them, but it is sometimes necessary to sacrifice a few to " "save the rest. " msgstr "" +"Ás veces non hai outras habilidades dispoñibles, polo que tes que abrirte camiño " +"polo chan. O Pingus pode facelo autodestruíndose. Isto mataos, pero ás " +"veces é necesario sacrificar algúns para salvar o resto. " #: data/levels/tutorial/digger-tutorial2-grumbel.pingus:5 msgid "Learning to dig" -msgstr "" +msgstr "Aprendendo a escavar" #: data/levels/tutorial/digger-tutorial2-grumbel.pingus:6 msgid "" @@ -951,10 +971,13 @@ msgid "" "is to give a Pingu the command to dig a hole into the ground so that they " "can reach the exit. This can be accomplished simply by clicking on a Pingu. " msgstr "" +"Esta é a túa primeira misión. Como sempre, é bastante sinxelo. Todo o que " +"tes que facer é darlle a un Pingu a orde de facer un burato no chan para que " +"cheguen á saída. Isto pódese conseguir simplemente facendo clic nun Pingu. " #: data/levels/tutorial/floater-tutorial-grumbel.pingus:5 msgid "Float or Die" -msgstr "" +msgstr "Flota ou Morre" #: data/levels/tutorial/floater-tutorial-grumbel.pingus:6 msgid "" @@ -963,10 +986,14 @@ msgid "" "the ground smoothly. If Pingus fall too far, they will not be able to " "survive the fall, so keep your eyes open! " msgstr "" +"Ben feito na primeira misión! Agora imos comezar a seguinte. Esta vez terás " +"que equipar o teu Pingus cun paracaidas, para que poidan ralentizar " +"a caida. Se os Pingus caen dende moi alto, non poderán sobrevivir " +"a caída, así que manten os ollos abertos! " #: data/levels/tutorial/jumper-tutorial-grumbel.pingus:5 msgid "Jump for joy" -msgstr "" +msgstr "Saltar por pracer" #: data/levels/tutorial/jumper-tutorial-grumbel.pingus:6 msgid "" @@ -974,10 +1001,13 @@ msgid "" "reachable by walking. That's when the Jumper comes in handy - it allows the " "Pingu to make a small jump and so enables him to reach the platform. " msgstr "" +"Ás veces, un Pingu precisa chegar a unha plataforma que está lonxe, pero " +"que non é accesible camiñando. É entón cando o Saltador é útil: permítelle ao " +"Pingu dar un pequeno salto o cal lle permite chegar á plataforma. " #: data/levels/tutorial/miner-tutorial2-grumbel.pingus:5 msgid "Miner's heaven" -msgstr "" +msgstr "O paraiso dos mineiros" #: data/levels/tutorial/miner-tutorial2-grumbel.pingus:6 msgid "" @@ -985,10 +1015,13 @@ msgid "" "diagonal one. It allows a Pingu to dig diagonally through ground, thus " "creating a path for following Pingus. The action is called Miner. " msgstr "" +"Outra habilidade: Ista e outra habilidade de escavación, esta vez en diagonal. " +"Permite que un Pingu cave en diagonal no chan, creando así un camiño para " +"seguir a Pingu. A habilidade chámase Mineiro. " #: data/levels/tutorial/snow10-grumbel.pingus:5 msgid "Panic Island (float/bash)" -msgstr "" +msgstr "Illa do pánico (paracaidas/golpear)" #: data/levels/tutorial/snow10-grumbel.pingus:6 msgid "" @@ -996,10 +1029,13 @@ msgid "" "one gets a bit trickier. The Pingus are coming out of two entrances in " "parallel and it is your job to coordinate the two groups wisely. " msgstr "" +"Aínda que os niveis anteriores non requiriron moitos reflexos da túa parte, " +"este faise un pouco máis complicado. Os Pingus están saíndo por dúas " +"entradas paralelas e o teu traballo é coordinar os dous grupos sabiamente. " #: data/levels/tutorial/snow11-grumbel.pingus:5 msgid "Jump'n Bump... and Bash..." -msgstr "" +msgstr "Salta, bota... e escava..." #: data/levels/tutorial/snow11-grumbel.pingus:6 msgid "" @@ -1008,10 +1044,14 @@ msgid "" "coordinating them all. Since you only need to save 5 it should be doable, " "but if all else fails use the pause-mode ('p') to get an overview again. " msgstr "" +"Volta o pánico de novo. Os Pingus non sairán moi rápido, pero costarache " +"coordinalos a todos xa que o sair baten contra un muro e dan a volta. " +"Xa que só precisa salvar 5, debera ser factible, pero se todo falla, " +"use o modo de pausa ('p') para ter unha visión xeral de novo. " #: data/levels/tutorial/snow12-grumbel.pingus:5 msgid "Two groups in parallel, coordinate wisely" -msgstr "" +msgstr "Dous grupos en paralelo, coordinados sabiamente" #: data/levels/tutorial/snow12-grumbel.pingus:6 msgid "" @@ -1019,10 +1059,13 @@ msgid "" "level gives you enough time to think your actions through. No more tips this " "time, but good luck! " msgstr "" +"Tes dous grupos para coordinar a vez. Non hai que entrar en pánico," +"Este nivel dáche tempo suficiente para cabilar as túas accións. Esta vez " +"non hai máis consellos, moita sorte! " #: data/levels/tutorial/snow14-grumbel.pingus:5 msgid "Block'a Rock" -msgstr "" +msgstr "Bloquea a Roca" #: data/levels/tutorial/snow14-grumbel.pingus:6 msgid "" @@ -1030,10 +1073,13 @@ msgid "" "levels. Blast your way free and make sure you also keep the rest of the " "Pingus under control. The Blocker action will be helpful." msgstr "" +"Unha vez máis é o momento de combinar as cousas que aprendiches nos teus " +"niveis anteriores. Ábre o camiño a túa liberdade e asegúrate de manter o resto dos " +"Pingus baixo control. A habilidade Bloqueador será de axuda." #: data/levels/tutorial/snow15-grumbel.pingus:5 msgid "Climb, Climber,... Boom!" -msgstr "" +msgstr "Escala, escalador,... Boom!" #: data/levels/tutorial/snow15-grumbel.pingus:6 msgid "" @@ -1042,10 +1088,14 @@ msgid "" "Digger action in this level the Bomber needs to jump in, but how can it " "reach the place to bomb? " msgstr "" +"Como quizais xa descubriches dos niveis anteriores, moitas veces tes que " +"combinar diferentes habilidades para facer o traballo. Debido á falta dunha " +"habilidade de Escavador neste nivel, o Bombardeiro precisa saltar, pero como pode " +"chegar ao lugar para bombardear? " #: data/levels/tutorial/snow16-grumbel.pingus:5 msgid "Bridging gets more complicated..." -msgstr "" +msgstr "Construir faise máis complicado..." #: data/levels/tutorial/snow16-grumbel.pingus:6 msgid "" @@ -1053,10 +1103,13 @@ msgid "" "you could end up in the hole just before the exit, so think about how to " "avoid that. " msgstr "" +"Unha vez máis tes que combinar as habilidades con coidado e sabiduria. Se non o " +"fas, poderías acabar no burato xusto antes da saída, así que pensa como " +"evitalo. " #: data/levels/tutorial/snow17-grumbel.pingus:5 msgid "If too high, your Pingu will die..." -msgstr "" +msgstr "O teu Pingu morrerá se cae dende moi alto..." #: data/levels/tutorial/snow17-grumbel.pingus:6 msgid "" @@ -1064,10 +1117,13 @@ msgid "" "reach the exit, so just send a few and let them prepare the path for the " "rest. " msgstr "" +"O traballo en equipo é a maneira para chegar a saída desta vez. Non tes suficientes " +"paracaidas para chegar á saída, así que só tes que enviar algúns e facer " +"que preparen o camiño para o resto. " #: data/levels/tutorial/snow19-grumbel.pingus:5 msgid "Learn to use the bridge" -msgstr "" +msgstr "Aprende a construir pontes" #: data/levels/tutorial/snow19-grumbel.pingus:6 msgid "" @@ -1075,10 +1131,13 @@ msgid "" "pretty helpful. It takes some time to build, but unlike the jumper action it " "allows following Pingus to reach the other end too. " msgstr "" +"Se non hai Saltadores a man e hai que pasar un burato grande, unha ponte pode " +"ser moi útil. Leva algo de tempo construila, pero a diferenza da habilidade Saltador " +"esta habilidade permite aos Pingus co seguen chegar o outro extremo. " #: data/levels/tutorial/snow20-grumbel.pingus:5 msgid "Three solutions, it's up to you" -msgstr "" +msgstr "Tres opcións, ti escolles" #: data/levels/tutorial/snow20-grumbel.pingus:6 msgid "" @@ -1086,10 +1145,13 @@ msgid "" "This level presents you with at least three different ways to solve it. It's " "up to you which one you pick. " msgstr "" +"Agora que aprendiches todas as habilidades, é hora de practicar máis. Este nivel " +"preséntache polo menos tres formas diferentes de resolvelo. depende de ti " +"cal escoller. " #: data/levels/tutorial/snow21-grumbel.pingus:5 msgid "Climb, Climber, climb... and build a bridge" -msgstr "" +msgstr "Escala, escala, sube... e fai unha ponte" #: data/levels/tutorial/snow21-grumbel.pingus:6 msgid "" @@ -1097,10 +1159,13 @@ msgid "" "to climb up straight walls, thus allowing him to reach stuff that might be " "too high to reach by other means. " msgstr "" +"Unha vez máis tes acceso a unha nova habilidade. A habilidade Escalador permítelle a " +"un Pingu escalar paredes rectas, permitíndolle así alcanzar cousas que poden " +"ser demasiado altas para alcanzar por outros medios. " #: data/levels/tutorial/snow22-grumbel.pingus:5 msgid "Entrance high, Exit low" -msgstr "" +msgstr "Entrada alta, saída baixa" #: data/levels/tutorial/snow22-grumbel.pingus:6 msgid "" @@ -1109,10 +1174,14 @@ msgid "" "the stuff you need for this level in previous levels, so this shouldn't be " "too much of a problem for you. " msgstr "" +"Se non tes suficientes Paracaidas para levar a todos os Pingus ata a saída, " +"tes que atopar outras formas de guialos. Xa deberas ter aprendido " +"todo o necesario para este nivel nos niveis anteriores, polo que este non " +"debera ser un problema para ti. " #: data/levels/tutorial/snow7-grumbel.pingus:5 msgid "One must prepare, the rest must follow" -msgstr "" +msgstr "Un preparase, o resto debe seguilo" #: data/levels/tutorial/snow7-grumbel.pingus:6 msgid "" @@ -1120,10 +1189,13 @@ msgid "" "coordinate your Pingus. You'll have to find other ways to keep them under " "control while a single one prepares the path for the rest. " msgstr "" +"Ás veces hai situacións nas que non tes un bloqueador a man para coordinar os " +"teus Pingus. Terás que atopar outras formas de mantelos baixo control mentres " +"un só prepara o camiño para o resto. " #: data/levels/tutorial/snow8-grumbel.pingus:5 msgid "Dig and float, just don't fall and smash" -msgstr "" +msgstr "Cavar e flotar, sinxelo non caer e esnaquizar" #: data/levels/tutorial/snow8-grumbel.pingus:6 msgid "" @@ -1132,10 +1204,14 @@ msgid "" "apply it to the Pingus so that they will be able to reach the exit. Make " "sure that not too many of them die. " msgstr "" +"A diferenza dos dous primeiros niveis, agora tes dúas habilidades dispoñibles." +"O teu traballo volve ser sinxelo: escolle unha habilidade no panel da " +"esquerda e aplícaa aos Pingus para que poidan chegar á saída. Asegúrate de " +"que non morran moitos. " #: data/levels/tutorial/snow9-grumbel.pingus:5 msgid "Dig, bash and other problems" -msgstr "" +msgstr "Cavar, golpear e outros problemas" #: data/levels/tutorial/snow9-grumbel.pingus:6 msgid "" @@ -1145,10 +1221,15 @@ msgid "" "think you've reached a situation from which you can no longer solve the " "level, double click the armageddon button at the lower right. " msgstr "" +"Cantos máis niveis fagas, máis complicados serán, pero non te asustes, xa que " +"este aínda é bastante sinxelo. Emprega o que aprendiches nos niveis " +"anteriores e non deberías ter moitos problemas. Se chegas a unha " +"situación dende a que xa non atopas a solución, fai dobre clic no botón " +"de Armagedón situado na parte inferior dereita. " #: data/levels/tutorial/solid-tutorial-grumbel.pingus:5 msgid "Solid ground can block the path" -msgstr "" +msgstr "O terreo sólido pode bloquear o camiño" #: data/levels/tutorial/solid-tutorial-grumbel.pingus:6 msgid "" @@ -1157,10 +1238,14 @@ msgid "" "These regions are marked dark grey on the level map and cannot be destroyed, " "so you must find a way around them. " msgstr "" +"Como aprendiches en niveis anteriores, os teus Pingus poden escavar " +"en calquer terreo, pero hai un no que non poden: o aceiro. " +"Estas rexións están marcadas en gris escuro no mapa e non se poden " +"destruír, polo que debes buscar un xeito de evitalos. " #: data/levels/halloween/halloween1-grumbel.pingus:5 msgid "One jump to catch them all" -msgstr "" +msgstr "Un salto para atrapalos a todos" #: data/levels/halloween/halloween1-grumbel.pingus:6 msgid "" @@ -1170,10 +1255,14 @@ msgid "" "front of them it's your job to save them. Can you save them from a terrible " "fate?" msgstr "" +"Os pingus perderonsr na súa viaxe. Que lugar misterioso e este? " +"Cabazas sorrintes, candelabros xigantes e algo fervendo na sopa... " +"que bruxaría é esta? Agora estan enfrontándose a un abismo mortal, " +"o teu traballo é salvalos. Podes salvalos dun terrible destino?" #: data/levels/halloween/halloween2-grumbel.pingus:5 msgid "One Thousand and One Jumps" -msgstr "" +msgstr "Mil e un saltos" #: data/levels/halloween/halloween2-grumbel.pingus:6 msgid "" @@ -1182,10 +1271,14 @@ msgid "" "their inevitable demise? It's your job to find out, but are you good enough " "to save them all?" msgstr "" +"Coa saída tan alta e lonxe do alcance dun Pingu normal, que opcións hai? " +"Quizais un saltador poida rescatalos? Ou simplemente ralentizará a súa " +"inevitable desaparición? O teu traballo é descubrilo, pero " +"es o suficientemente bo para salvalos a todos?" #: data/levels/halloween/halloween3-grumbel.pingus:5 msgid "Boom Boom" -msgstr "" +msgstr "Boom Boom" #: data/levels/halloween/halloween3-grumbel.pingus:6 msgid "" @@ -1195,10 +1288,15 @@ msgid "" "roots block the way, but without a basher at hand to bash them away, " "sacrifice might be the only option..." msgstr "" +"Dominaches o último reto e agora afrontas o seguinte. O camiño cara á " +"salvación parece estar maldito, pero por quen? Non hai tempo para pensar " +"niso, xa que o próximo reto mortal xa lle agarda aos Pingus. Dúas raíces " +"poderosas bloquean o camiño, pero sen un golpeador a man que as abata, o " +"sacrificio pode ser a única opción..." #: data/levels/halloween/halloween4-grumbel.pingus:5 msgid "Full Circle" -msgstr "" +msgstr "O círculo pechase" #: data/levels/halloween/halloween4-grumbel.pingus:6 msgid "" @@ -1207,10 +1305,14 @@ msgid "" "but is there enough time? You have to hurry and can't allow yourself any " "mistakes. The Pingus are counting on you!" msgstr "" +"A saída está moi preto, aínda que fóra do alcance. Un paso na dirección " +"equivocada e os Pingus caerán nun terrible destino. Debes facer algo para " +"axudalos, pero hai tempo suficiente? Tes que apresurarte e non podes " +"permitirte ningún erro. Os Pingus contan contigo!" #: data/levels/halloween/halloween5-grumbel.pingus:5 msgid "Bridgers Nightmare" -msgstr "" +msgstr "O Pesadelo do Enxeñeiro" #: data/levels/halloween/halloween5-grumbel.pingus:6 msgid "" @@ -1224,10 +1326,20 @@ msgid "" "Pingus' success, so don't let yourself get confused and misguided from the " "true path." msgstr "" +"Quen puxo aquí este muro monstruoso? Este terrible bloqueo separa " +"os Pingus da saída. A destrución da arrepiante construción parece " +"imposible, pero quizais un enxeñeiro poida acudir ao rescate? Poden " +"construír as súas pontes o suficientemente altas como para guiar o grupo de " +"con seguridade ata a saída? Ou está alguén xogando arrepiantes " +"trucos mentais contigo?\n" +"\n" +"Unha vez máis a solución escollela ti... a túa materia gris é a clave do " +"éxito dos Pingus, así que non te deixes confundir e desviarte do verdadeiro " +"camiño." #: data/levels/halloween/halloween6-grumbel.pingus:5 msgid "Locked up by the witch" -msgstr "" +msgstr "Encerrado pola bruxa" #: data/levels/halloween/halloween6-grumbel.pingus:6 msgid "" @@ -1239,10 +1351,17 @@ msgid "" "This is a risky trip, but you must take it to find out how to bring them all " "to freedom once again." msgstr "" +"É esta unha prisión? Bloqueados por sólidas paredes ao redor, non parece " +"haber forma de escapar. A salvación parece imposible. Pero agarda... o muro " +"da dereita parece débil... quizais ese sexa un xeito de escapar? Ou é un " +"camiño falso que levará á perdición dos Pingus?\n" +"\n" +"Esta é unha viaxe arriscada, pero debes facela para descubrir como levalos a " +"todos á liberdade unha vez máis." #: data/levels/halloween/halloween7-grumbel.pingus:5 msgid "Splatterfest" -msgstr "" +msgstr "Festa da espraiada" #: data/levels/halloween/halloween7-grumbel.pingus:6 msgid "" @@ -1253,10 +1372,15 @@ msgid "" "disposal, can you make them work together to reach even an exit this well " "hidden?" msgstr "" +"Este é, con moito, o pozo máis profundo cos Pingus atoparon xamais. " +"Construír unha ponte parece obvio, pero iso non axudará xa que a saída está " +"no fondo do propio pozo. Os pingus que intenten baixar polo pozo acabarán " +"chafados por todo o chan. Tes dous grupos de Pingus á túa disposición, " +"podes facelos traballar xuntos para chegar a unha saída tan ben agochada?" #: data/levels/halloween/halloween8-plouj.pingus:5 msgid "Staircase Maintenance" -msgstr "" +msgstr "Escaleiras en Mantemento" #: data/levels/halloween/halloween8-plouj.pingus:6 msgid "" @@ -1270,10 +1394,18 @@ msgid "" "whatever evildoer that placed them in this nightmare... at least for this " "year." msgstr "" +"Parece que estamos de novo contra un muro poderoso, e está bloqueando a " +"saída! Pero agarda, algunha boa alma construíu unha escaleira ao seu redor. " +"Parece, sen embargo, cos esforzos do pobre tolo non duraron moito, xa que a " +"escaleira está destruída e chea de buratos. Podes arranxala para poder " +"cruzar a parede? Por suposto, sabes ca mellor solución pode non ser a obvia. " +"Pero os teus Pingus son case libres e confían na túa habilidade para guialos " +"sans e salvos unha vez máis. se tes éxito liberarás dunha vez por " +"todas do malfeitor cos meteu neste pesadelo... polo menos este ano." #: data/levels/halloween2011/halloween10-grumbel.pingus:5 msgid "Down Into The Cave" -msgstr "" +msgstr "Baixando a Cova" #: data/levels/halloween2011/halloween10-grumbel.pingus:6 msgid "" @@ -1282,10 +1414,14 @@ msgid "" "be the primary tool to get down there. But be careful, the last few steps " "require some extra cleverness." msgstr "" +"A saída está moi abaixo e os pingus están moi lonxe dela. " +"O camiño está cheo de golfos, polo que saltar e facer " +"pontes serán a principal ferramenta para baixar alí. Pero teña coidado, os " +"últimos pasos requiren algo de intelixencia extra." #: data/levels/halloween2011/halloween11-grumbel.pingus:5 msgid "Round and Round" -msgstr "" +msgstr "Volta e volta" #: data/levels/halloween2011/halloween11-grumbel.pingus:6 msgid "" @@ -1294,10 +1430,14 @@ msgid "" "it, as there is still one last challenge he must solve before being allowed " "to enter it, otherwise all his friends might perish." msgstr "" +"Atrapado nun bucle eterno, un pingu valente ten que saír e emprender unha " +"viaxe en busca da saída, pero non debe estar demasiado feliz unha vez a " +"atope, xa que aínda queda un último desafío que debe resolver antes de " +"ser autorizado a entrar, ou doutro xeito todos os seus amigos poderían perecer." #: data/levels/halloween2011/halloween12-grumbel.pingus:5 msgid "Red Herring Cave" -msgstr "" +msgstr "Cova do arenque vermello" #: data/levels/halloween2011/halloween12-grumbel.pingus:6 msgid "" @@ -1307,10 +1447,15 @@ msgid "" "going on which might slip your view? Thinking outside the box might be " "required." msgstr "" +"A saída está xusto enriba das cabezas dos pingus, cunhas simpáticas frechas " +"sinalando o camiño. Con pontes ao redor a solución debera ser obvia. Pero " +"agarda, pódese confiar en algo que atopes nunha cova escura ou hai algo máis " +"que poida escapar da túa vista? Con cabeza e corazón pensa sempre no " +"mellor." #: data/levels/halloween2011/halloween13-grumbel.pingus:5 msgid "Group Coordination" -msgstr "" +msgstr "Coordinación de grupos" #: data/levels/halloween2011/halloween13-grumbel.pingus:6 msgid "" @@ -1318,10 +1463,13 @@ msgid "" "it, but locked into a box. None of them can make it alone, coordinate them " "wisely and everybody should be able to make it safely to the exit. " msgstr "" +"Tres grupos van camiño da saída, un deles atrapado xusto encima dela, pero " +"pechado nunha caixa. Ningún deles pode facelo só, coordinaos sabiamente e " +"todos deberían poder chegar con seguridade ata a saída. " #: data/levels/halloween2011/halloween14-grumbel.pingus:5 msgid "Traps, Dangers and other Problems" -msgstr "" +msgstr "Trampas, perigos e outros problemas" #: data/levels/halloween2011/halloween14-grumbel.pingus:6 msgid "" @@ -1329,10 +1477,13 @@ msgid "" "is too high, deadly for sure. Can one pingu alone make it's way through the " "dangerous traps and secure the path to the exit?" msgstr "" +"O camiño cara á saída atópase debaixo, brillando entre as táboas. Pero a " +"caída é demasiada, mortal seguro. Pode un pingu só atravesar as " +"perigosas trampas e asegurar o camiño cara á saída?" #: data/levels/halloween2011/halloween15-grumbel.pingus:5 msgid "Reach that Switch" -msgstr "" +msgstr "Chega a ese interruptor" #: data/levels/halloween2011/halloween15-grumbel.pingus:6 msgid "" @@ -1341,10 +1492,14 @@ msgid "" "hill to the right? Might that be the solution to opening the door and " "freeing the pingus? But how can they reach that switch?" msgstr "" +"O camiño ata a saída é recto, plano e sinxelo, pero agardas unha porta " +"sólida que bloquea o camiño? Como poden abrila os pingus? Hai un interruptor " +"alí no outeiro á dereita? Pode ser esa a solución para abrir a porta e liberar " +"os pingus? Pero como poden chegar a ese interruptor?" #: data/levels/halloween2011/halloween16-grumbel.pingus:5 msgid "The Collapsed Column" -msgstr "" +msgstr "A columna derruída" #: data/levels/halloween2011/halloween16-grumbel.pingus:6 msgid "" @@ -1353,10 +1508,14 @@ msgid "" "of pingus, they are stuck. The column next to them has collapsed making " "getting to the exit impossible. Can you find a way around the abyss?" msgstr "" +"Enriba do limo verde os pingus vanse movendo de columna en columna, " +"achegándose a cada paso á saída, pero agarda, hai un segundo grupo de " +"pingus, quedaron atrapados. A columna xunto a eles derrubouse facendo " +"imposible chegar á saída. Podes atopar un xeito de evitar o abismo?" #: data/levels/halloween2011/halloween17-grumbel.pingus:5 msgid "Island of Doom" -msgstr "" +msgstr "Illa do Destino" #: data/levels/halloween2011/halloween17-grumbel.pingus:6 msgid "" @@ -1365,10 +1524,14 @@ msgid "" "and some height has be crossed with the exit hidden below. With some " "cleverness it should be possible to join those two groups back together." msgstr "" +"Os pingus son liberados xuntos, pero divididense por unha sólida columna " +"metálica sen que aparentemente poidan unirse de novo. O traxecto será " +"perigoso e atravesarase certa altura coa saída agochada abaixo. Con certa " +"intelixencia debera ser posible unir eses dous grupos de novo." #: data/levels/halloween2011/halloween18-grumbel.pingus:5 msgid "Tower of Death" -msgstr "" +msgstr "Torre da Morte" #: data/levels/halloween2011/halloween18-grumbel.pingus:6 msgid "" @@ -1378,10 +1541,16 @@ msgid "" "enough to get the job done, but wait, no, their direction isn't quite right. " "You have to give them directions or it will be their doom." msgstr "" +"Os pingus están na parte superior da torre, sen escaleira ao redor. A saída " +"está no fondo, agochada ao pé da torre. Como conseguirán baixar toda esa " +"altura sen que sen ningún paracaidas? Uns poucos escavadores ben colocados " +"deberían ser suficientes para facer o traballo, pero agarda, non, a súa " +"dirección non é correcta. Tes que darlles indicacións ou será a súa " +"perdición." #: data/levels/halloween2011/halloween19-rz.pingus:5 msgid "The Ones" -msgstr "" +msgstr "Os Elixidos" #: data/levels/halloween2011/halloween19-rz.pingus:6 msgid "" @@ -1390,10 +1559,30 @@ msgid "" "pingus have to work together to make it down the columns to the exit far " "below." msgstr "" +"Esta é a derradeira etapa que teñen que pasar os pingus durante este Samain. " +"Dúas columnas estrañamente coñecidas están no camiño. Que queren dicir? Os " +"dous grupos de pingus teñen que traballar xuntos para baixar polas columnas " +"ata a saída moi baixa." + +#: data/levels/desert/desert-crawl-timpany.pingus:5 +msgid "Crawlspace" +msgstr "Espazo de rastrexo" + +#: data/levels/desert/desert-crawl-timpany.pingus:6 +msgid "" +"The path to the exit is blocked and many small tunnels lead the way, but be " +"careful some of those lead to certain death. Or is there something you can " +"do about that and create a save passage for all the Pingus and lead them " +"safely to the exit?" +msgstr "" +"O camiño ata a saída está bloqueado e moitos pequenos túneles levan o " +"camiño, pero teña coidado algúns deles conducen a unha morte segura. Ou hai " +"algo que poidas facer respecto diso e crear un paso seguro para todos os " +"Pingus e conducilos con seguridade ate a saída?" #: data/levels/desert/desert1-janne.pingus:5 msgid "Down the valley and up again" -msgstr "" +msgstr "Baixo o val e outra vez" #: data/levels/desert/desert1-janne.pingus:6 msgid "" @@ -1401,20 +1590,26 @@ msgid "" "long enough to cross the valley, but can you find a way back up once you " "lead the Pingus down into the valley?" msgstr "" +"Hai un gran val entre a entrada e a saída. Ningunha ponte será o " +"suficientemente longa como para cruzar o val, pero podes atopar un camiño de " +"volta para subir unha vez que conduzas ao Pingus cara ao val?" #: data/levels/desert/desert1.pingus:5 msgid "Entering the pyramid" -msgstr "" +msgstr "Entrando na pirámide" #: data/levels/desert/desert1.pingus:6 msgid "" "After their long and dangerous journey through the desert the Pingus finally " "reach the large pyramid, but there is still a pedestal blocking their way." msgstr "" +"Despois da súa longa e perigosa viaxe polo deserto, os Pingus chegan " +"finalmente á gran pirámide, pero aínda hai un pedestal que lles bloquea o " +"camiño." #: data/levels/desert/desert2.pingus:5 msgid "The window room" -msgstr "" +msgstr "O cuarto da fiestra" #: data/levels/desert/desert2.pingus:6 msgid "" @@ -1422,10 +1617,13 @@ msgid "" "large window. The only problem they have is that the entrance to the room is " "much too high to survive the landing. Can you help them?" msgstr "" +"Despois de que os Pingus entraron na pirámide, chegan a unha gran sala cunha " +"gran fiestra. O único problema que teñen é que a entrada da sala é demasiado " +"alta para sobrevivir a caida. Podes axudalos?" #: data/levels/desert/desert3-jings.pingus:5 msgid "Grand Hall" -msgstr "" +msgstr "Gran Salón" #: data/levels/desert/desert3-jings.pingus:6 msgid "" @@ -1433,10 +1631,13 @@ msgid "" "and treasures. The exit however is high up and won't be easy to reach. Guide " "the pingus around the hall and maybe you will find a way." msgstr "" +"Os pingus atopanse no gran salón, un salón cheo de marabillas e tesouros. " +"Non obstante, a saída es´ta alta e non será sinxelo chegar. Guía aos " +"pingus polo salón e quizais atopes un xeito." #: data/levels/desert/desert3.pingus:5 msgid "Pass the pedestal" -msgstr "" +msgstr "Pasar o pedestal" #: data/levels/desert/desert3.pingus:6 msgid "" @@ -1444,10 +1645,13 @@ msgid "" "bashers available to dig it away. Can you find a way to make it past the " "pedestal?" msgstr "" +"Un gran pedestal está bloqueando o camiño cara á saída e non hai suficientes " +"golpeadores dispoñibles para desaloxalo. Podes atopar un xeito de pasar polo " +"pedestal?" #: data/levels/desert/desert4.pingus:5 msgid "The excavation of the pyramid" -msgstr "" +msgstr "A escavación da pirámide" #: data/levels/desert/desert4.pingus:6 msgid "" @@ -1455,10 +1659,26 @@ msgid "" "Some excavations, however, is best done with two competitors. Who comes " "first?" msgstr "" +"As escavacións están abertas para chegar á pirámide para o seu contido " +"redentor. Non obstante, algunhas escavacións fanse mellor con dous " +"competidores. Quen chega primeiro?" + +#: data/levels/desert/desert5-tflavel.pingus:5 +msgid "Claustrophobia" +msgstr "Claustrofobia" + +#: data/levels/desert/desert5-tflavel.pingus:6 +msgid "" +"Hidden deep below the pyramid the pingus come across a small underground " +"room, but unfortunatley a large tree root blocks their path..." +msgstr "" +"Escondidos nas profundidades da pirámide, os pingus atópanse cunha pequena " +"habitación subterránea, pero, por desgraza, unha gran raíz de árbore bloquea " +"o seu camiño..." #: data/levels/desert/desert5.pingus:5 msgid "Catch them at the half way point" -msgstr "" +msgstr "Atrápaos na metade do camiño" #: data/levels/desert/desert5.pingus:6 msgid "" @@ -1466,60 +1686,45 @@ msgid "" "be enough to catch them safely, unless of course you find the right place to " "put it. Can you uncover that spot?" msgstr "" - -#: data/levels/desert/desert5-tflavel.pingus:5 -msgid "Claustrophobia" -msgstr "" - -#: data/levels/desert/desert5-tflavel.pingus:6 -msgid "" -"Hidden deep below the pyramid the pingus come across a small underground " -"room, but unfortunately a large tree root blocks their path..." -msgstr "" +"Os Pingus están separados da saída por un gran abismo. Unha simple ponte non " +"será suficiente para atrapalos con seguridade, a menos que, por suposto, " +"atopes o lugar axeitado para poñela. Podes descubrir ese lugar?" #: data/levels/desert/desert6-grumbel.pingus:5 msgid "A bit to the right a bit to left" -msgstr "" +msgstr "Un chisco á dereita un chisco á esquerda" #: data/levels/desert/desert6-grumbel.pingus:6 msgid "Only the most audacious Pingus will be allowed to continue." -msgstr "" +msgstr "Só os Pingus máis audaces poderán continuar." #: data/levels/desert/desert7-grumbel.pingus:5 msgid "25 Pingus free and 25 in the box" -msgstr "" +msgstr "25 Pingus gratis e 25 na caixa" #: data/levels/desert/desert7-grumbel.pingus:6 msgid "" "Okay for the Bridger but what can I do with Digger? You should save at least " "one Pingu trapped in the box above the exit." msgstr "" +"Está ben para o Enxeñeiro, pero que podo facer cun Escavador? Deberas salvar " +"polo menos un Pingu atrapado na caixa situada enriba da saída." #: data/levels/desert/desert8-grumbel.pingus:5 msgid "Tunnel Time" -msgstr "" +msgstr "Tempo do túnel" #: data/levels/desert/desert8-grumbel.pingus:6 msgid "" "Dig a tunnel and you might make it to the exit. Digger and miners and stuff " "have to work together." msgstr "" - -#: data/levels/desert/desert-crawl-timpany.pingus:5 -msgid "Crawlspace" -msgstr "" - -#: data/levels/desert/desert-crawl-timpany.pingus:6 -msgid "" -"The path to the exit is blocked and many small tunnels lead the way, but be " -"careful some of those lead to certain death. Or is there something you can " -"do about that and create a save passage for all the Pingus and lead them " -"safely to the exit?" -msgstr "" +"Cava un túnel e poderás chegar á saída. Escavadores e mineiros e outras cousas " +"teñen que traballar xuntos." #: data/levels/desert/desertwaste1-grumbel.pingus:5 msgid "The Roof" -msgstr "" +msgstr "O tellado" #: data/levels/desert/desertwaste1-grumbel.pingus:6 msgid "" @@ -1527,10 +1732,13 @@ msgid "" "demolished! But be careful if you aren't precise enough, you might lead the " "Pingus straight to certain death." msgstr "" +"Ás veces os tellados non son bos para refuxio, ás veces hai que derrubar! " +"Pero ten coidado se non es o suficientemente preciso, podes levar aos Pingus " +"directamente á morte." #: data/levels/desert/indiana-yingwan.pingus:5 msgid "Pingus Jones and the Last Exit" -msgstr "" +msgstr "Pingus Jones e a derradeira saída" #: data/levels/desert/indiana-yingwan.pingus:6 msgid "" @@ -1540,40 +1748,51 @@ msgid "" " (2) the word of God... in reverse;\n" " (3) the path of God: leap from the head of something like a cat." msgstr "" - -#: data/levels/mysteryisland/cave1-marcotte.pingus:5 -msgid "Near can mean far" -msgstr "" - -#: data/levels/mysteryisland/cave1-marcotte.pingus:6 -msgid "" -"What do you do when you're going in the wrong direction ? Simple: walk into " -"a wall. But it is easier said than done..." -msgstr "" +"Caderno do doutor Jones:\n" +"\n" +" (1) o alento de Deus: só pasarán os pingus penitentes;\n" +" (2) a palabra de Deus... á inversa;\n" +" (3) o camiño de Deus: salta desde a cabeza de algo coma un gato." #: data/levels/mysteryisland/cave-lac.pingus:7 msgid "Trapped Underground" -msgstr "" +msgstr "Atrapado baixo terra" #: data/levels/mysteryisland/cave-lac.pingus:8 msgid "" "The penguins escaped the mad scientist, but now they were trapped deep " "underground. They had no food or water, so they had to move fast." msgstr "" +"Os pingüíns escaparon do científico tolo, pero agora estaban atrapados no " +"fondo da terra. Non tiñan comida nin auga, polo que tiñan que moverse rápido." + +#: data/levels/mysteryisland/cave1-marcotte.pingus:5 +msgid "Near can mean far" +msgstr "Cerca pode significar lonxe" + +#: data/levels/mysteryisland/cave1-marcotte.pingus:6 +msgid "" +"What do you do when you're going in the wrong direction ? Simple: walk into " +"a wall. But it is easier said than done..." +msgstr "" +"Que fas cando vas na dirección equivocada? Sinxelo: entrar nunha parede. Pero " +"é máis fácil dicilo que facelo..." #: data/levels/mysteryisland/emperiment-lac.pingus:5 msgid "Experimentation" -msgstr "" +msgstr "Experimentación" #: data/levels/mysteryisland/emperiment-lac.pingus:6 msgid "" "A mad scientist has captured the penguins and is experimenting on them. How " "can the penguins escape the guillotine?" msgstr "" +"Un científico tolo capturou os pingüíns e está a experimentar con eles. Como " +"poden os pingüíns escapar da guillotina?" #: data/levels/mysteryisland/hall-of-illusion-lac.pingus:5 msgid "Hall of Illusion" -msgstr "" +msgstr "Salón da Ilusión" #: data/levels/mysteryisland/hall-of-illusion-lac.pingus:6 msgid "" @@ -1581,10 +1800,13 @@ msgid "" "not? Flame lanced from above and a guillotine glittered in the distance. " "Almost all penguins must survive." msgstr "" +"Os pingüíns detivéronse e quedaron indecisos. O que era real e o que non? A " +"lapa lanzouse desde arriba e unha guillotina brillou ao lonxe. Case todos " +"os pingüíns deben sobrevivir." #: data/levels/mysteryisland/lavapit3.pingus:7 msgid "The Lava Pit" -msgstr "" +msgstr "O Pozo de Lava" #: data/levels/mysteryisland/lavapit3.pingus:8 msgid "" @@ -1593,21 +1815,28 @@ msgid "" "fell into an underground cave and the only way out was across the lava pit. " "Luckily, it seemed someone had left some helpful signs." msgstr "" +"Os pingüíns derrotaron ao científico tolo e afastáronse do seu laboratorio " +"destruído cando un enorme burato abriuse baixo os seus pés. Os pingüíns " +"caeron nunha cova subterránea e a única saída e a través do pozo de lava. " +"Afortunadamente, parece que alguén deixou algúns sinais útiles." #: data/levels/mysteryisland/madscientist1-lac.pingus:7 msgid "At least the experiments are over..." -msgstr "" +msgstr "Polo menos remataron os experimentos..." #: data/levels/mysteryisland/madscientist1-lac.pingus:8 msgid "" "The good news was that the mad scientist had tired of his experiments, the " -"bad news was that now he was dumping them down a pit. A single flotation " +"bad news was that now he was dumping them down a pit. A single floatation " "device was all the penguins had. Save as many as possible." msgstr "" +"A boa nova era que o científico tolo estaba canso dos seus experimentos, a " +"mala nova era que agora os botaba nun pozo. Un único dispositivo de " +"paracaidas era o único que tiñan os pingüíns. Salva o maior número posible." #: data/levels/mysteryisland/multi1-lac.pingus:7 msgid "Ghosting" -msgstr "" +msgstr "Fantasma" #: data/levels/mysteryisland/multi1-lac.pingus:8 msgid "" @@ -1615,21 +1844,26 @@ msgid "" "climber or two were needed. Hint: slider can be used to stop the miner " "ability." msgstr "" +"Os pingüíns chegaron a un paso longo. O ácido burbullou debaixo e parece " +"que se precisan un ou dous escaladores. Consello: pódes usar o " +"deslizante para deter a habilidade do mineiro." #: data/levels/mysteryisland/rainy1-lac.pingus:7 -msgid "The Final (and surprisingly easy) Challenge" -msgstr "" +msgid "The Final (and suprisingly easy) Challenge" +msgstr "O Desafío Final (e sorprendentemente sinxelo)" #: data/levels/mysteryisland/rainy1-lac.pingus:8 msgid "" "The penguins had reached the end of the island. In the water was a long " "tree, perfect for the penguin's needs. Their journey was almost over." msgstr "" +"Os pingüíns chegaron ao final da illa. Na auga hai unha árbore longa, " +"perfecta para as necesidades do pingüín. A súa viaxe estaba case rematada." #: data/levels/mysteryisland/revenge1-lac.pingus:7 #: data/levels/mysteryisland/revenge2-lac.pingus:7 msgid "Revenge is sweet" -msgstr "" +msgstr "A vinganza é doce" #: data/levels/mysteryisland/revenge1-lac.pingus:8 msgid "" @@ -1637,6 +1871,9 @@ msgid "" "intended to destroy the support structures, sending the evil laboratory " "crashing down." msgstr "" +"Os pingüíns escaparon do científico tolo pero agora querían vingarse. " +"Pretendían destruír as estruturas, facendo caer o malvado " +"laboratorio." #: data/levels/mysteryisland/revenge2-lac.pingus:8 msgid "" @@ -1645,10 +1882,14 @@ msgid "" "crashing down. They had to move fast though, because the mad scientist would " "detect and recapture them if they weren't fast enough." msgstr "" +"Os pingüíns escaparon do científico tolo pero agora queren vingarse. " +"Pretenden destruír as estruturas de apoio, facendo caer o malvado " +"laboratorio. Pero teñen que moverse rápido, porque o científico tolo " +"detectaraos e recapturaraos se non son o suficientemente rápidos." #: data/levels/mysteryisland/snow2-lac.pingus:7 msgid "Winter Wonderland" -msgstr "" +msgstr "O país das marabillas do inverno" #: data/levels/mysteryisland/snow2-lac.pingus:8 msgid "" @@ -1656,10 +1897,13 @@ msgid "" "reached a snowed in exit. That would be relatively easy to tunnel through " "but how would it be possible to tunnel through solid metal?" msgstr "" +"Despois de pasar o pozo de lava, os pingüíns camiñaron e camiñaron ata " +"chegar a unha saída nevada. Iso sería relativamente fácil de cavar, pero " +"como sería posible cavar a través de metal sólido?" #: data/levels/mysteryisland/theend-lac.pingus:7 msgid "The Journey Goes On" -msgstr "" +msgstr "A Viaxe Continúa" #: data/levels/mysteryisland/theend-lac.pingus:8 msgid "" @@ -1669,20 +1913,26 @@ msgid "" "would be other obstacles. Nothing would stop the determined penguins from " "reaching their goal." msgstr "" +"E así os pingüíns continuaron a súa viaxe, achegándose cada vez máis ao Polo " +"Norte. Fuxiron da guillotina, derrotaron ao científico tolo e conseguiron un " +"novo barco. E así rematou este capítulo da súa viaxe, pero haberá outros " +"obstáculos. Nada impedirá aos decididos pingüíns alcanzar o seu obxectivo." #: data/levels/mysteryisland/use-the-slide-lac.pingus:7 msgid "Think fast (literally)" -msgstr "" +msgstr "Pensa rápido (literalmente)" #: data/levels/mysteryisland/use-the-slide-lac.pingus:8 msgid "" "This would be simple but for one thing, there are no blockers. All the " "penguins must survive." msgstr "" +"Isto sería sinxelo, pero por unha banda, non hai bloqueadores. Todos os " +"pingüíns deben sobrevivir." #: data/levels/mysteryisland/volcano1-grumbel.pingus:5 msgid "Shipwrecked" -msgstr "" +msgstr "Náufrago" #: data/levels/mysteryisland/volcano1-grumbel.pingus:6 msgid "" @@ -1691,170 +1941,214 @@ msgid "" "destroying their boat. Now they must find their way across this strange " "island." msgstr "" +"Os pingüíns navegaban felices no seu barco improvisado ata que de súpeto " +"apareceu unha illa. Os pingüíns foron atraídos cara ela e estrelouse, " +"destruíndo o seu barco. Agora deben atopar o seu camiño a través desta " +"estraña illa." +#: data/levels/alien/aliens1-grumbel.pingus:5 #: data/levels/alien/aliens1-phil.pingus:7 msgid "Escape from Aliens" +msgstr "Escapar de Aliens" + +#: data/levels/alien/aliens1-grumbel.pingus:6 +msgid "" +"Aliens invade our starship blocking intrance to the teleporter. Your crew is " +"well trained, like you they don't panic." msgstr "" +"Os extraterrestres invaden a nosa nave estelar bloqueando a entrada ao " +"teletransportador. A túa tripulación está ben adestrada, coma ti, non entran " +"en pánico." #: data/levels/alien/aliens1-phil.pingus:8 msgid "" "Aliens invade our starship blocking entrance to the teleporter. Your crew is " "well trained, like you they don't panic." msgstr "" +"Os extraterrestres invaden a nosa nave estelar bloqueando a entrada ao " +"teletransportador. A túa tripulación está ben adestrada, coma ti, non entran " +"en pánico." #: data/levels/alien/aliens2-phil.pingus:7 msgid "Escape from Aliens 2" -msgstr "" +msgstr "Fuxir dos Alienixenas 2" #: data/levels/alien/aliens2-phil.pingus:8 msgid "Aliens are now closest making your escape harder. You must dig it up." msgstr "" +"Os alieníxenas están agora máis preto dificultando a túa fuga. Debes " +"desenterralos." #: data/levels/alien/aliens4-phil.pingus:5 msgid "Alien's nest" -msgstr "" +msgstr "Niño de alieníxena" #: data/levels/alien/aliens4-phil.pingus:6 msgid "Pingus invade the nest. Take care of jaws. What's the matrix above?" msgstr "" +"Os pingus invaden o niño. Coida as mandíbulas. Cal é a matriz anterior?" #: data/levels/alien/aliens5-phil.pingus:5 msgid "Matrix of the death" -msgstr "" +msgstr "Matriz da morte" #: data/levels/alien/aliens5-phil.pingus:6 msgid "" "Take a piece of paper. Now pingus have to enter the matrix of the death. " "This is a maze, bad ways are protect by jaws." msgstr "" +"Colle un anaco de papel. Agora os pingus teñen que entrar na matriz da " +"morte. Este é un labirinto, as malas formas están protexidas por mandíbulas." #: data/levels/alien/aliens6-phil.pingus:7 msgid "Spy's pingus in the matrix of the death" -msgstr "" +msgstr "Pingus de espía na matriz da morte" #: data/levels/alien/aliens6-phil.pingus:8 msgid "" "Spy's pingus have marked the location of jaws in the matrix of the death. " "Many died to gain that information :..( Perhaps this help. Perhaps..." msgstr "" +"Os pingus de espias marcaron a localización das mandíbulas na matriz da morte. " +"Moitos morreron para obter esa información :..( Quizais isto axude. " +"Quizais..." #: data/levels/alien/aliens7-phil.pingus:7 msgid "Fourth dimension" -msgstr "" +msgstr "Cuarta dimensión" #: data/levels/alien/aliens7-phil.pingus:8 msgid "" "The defenses of the aliens get stronger. Now you have to jump in the fourth " "dimension to win!" msgstr "" +"As defensas dos alieníxenas fanse máis fortes. Agora tes que saltar á cuarta " +"dimensión para gañar!" #: data/levels/alien/space-11-rz+eriksoe.pingus:5 msgid "Set your watches" -msgstr "" +msgstr "Axusta os teus reloxos" #: data/levels/alien/space-11-rz+eriksoe.pingus:6 msgid "Cooperation in space." -msgstr "" - -#: data/levels/alien/space2.pingus:5 -msgid "Lost in Space" -msgstr "" - -#: data/levels/alien/space2.pingus:6 -msgid "We don't know where we are but we don't leave anybody behind." -msgstr "" +msgstr "Cooperación no espazo." #: data/levels/alien/space-9-tom.pingus:5 msgid "Outside In" -msgstr "" +msgstr "Fóra Dentro" #: data/levels/alien/space-9-tom.pingus:6 msgid "Can you help the pingus escape without getting their flippers wet?" -msgstr "" +msgstr "Podes axudar aos pingus a escapar sen mollar as aletas?" #: data/levels/alien/space-loop-timpany.pingus:5 msgid "Endless Loop" -msgstr "" +msgstr "Bucle infinito" #: data/levels/alien/space-loop-timpany.pingus:6 msgid "" "To the right and to the left the Pingus will face certain death and you have " "to save 50. Can you help them get out of this mess?" msgstr "" +"Á dereita e á esquerda os Pingus enfrontaranse a unha morte segura e tes que " +"salvar 50. Podes axudalos a saír desta lea?" #: data/levels/alien/space-tom1.pingus:7 msgid "Up up in the space" -msgstr "" +msgstr "Arriba no espazo" #: data/levels/alien/space-tom1.pingus:8 msgid "What good is a pick in space? Certainly not to go to the stars." msgstr "" +"De que serve unha selección no espazo? Certamente non para ir ás estrelas." + +#: data/levels/alien/space2.pingus:5 +msgid "Lost in Space" +msgstr "Perdidos no espazo" + +#: data/levels/alien/space2.pingus:6 +msgid "We don't know where we are but we don't leave anybody behind." +msgstr "Non sabemos onde estamos pero non deixamos a ninguén atrás." + +#: data/levels/factorycampaign/factory_campaign1.pingus:5 +msgid "Falling down" +msgstr "Caendo" + +#: data/levels/factorycampaign/factory_campaign1.pingus:6 +msgid "" +"Pingus intelligence reported that a huge factory located in the subtropical " +"zone might be a reason of a climate change. They decided to go there and " +"shut down the factories. This will be a long and dangerous expedition. " +"Pingus and you will have to face many difficulties on your way. As the ice " +"is melting, at first you have to build some bridges and watch out for the " +"cliff." +msgstr "" +"A intelixencia de Pingus informou de que unha enorme fábrica situada na zona " +"subtropical podería ser a causa dun cambio climático. Decidiron ir alí e " +"pechar as fábricas. Esta será unha expedición longa e perigosa. Ti e os Pingus " +"teredes que afrontar moitas dificultades no camiño. Como o xeo vaise " +"derretendo, ao principio hai que construír unhas pontes e estar atento ao " +"penedo." #: data/levels/factorycampaign/factory_campaign10.pingus:5 msgid "Jump" -msgstr "" +msgstr "Saltar" #: data/levels/factorycampaign/factory_campaign10.pingus:6 msgid "" "All Pingus need is to jump.... Hint: While pausing (press P key) you still " "can control Pingus. " msgstr "" +"O único que necesita Pingus é saltar.... Consello: mentres fas pausa " +"(preme a tecla P) aínda podes controlar a Pingus. " #: data/levels/factorycampaign/factory_campaign11.pingus:5 msgid "Factory" -msgstr "" +msgstr "Fábrica" #: data/levels/factorycampaign/factory_campaign11.pingus:6 msgid "" "Finally you reached the factory. Watch out as there are many dangers. Use " "bombers to destroy the basement of the factory. Good luck!" msgstr "" +"Por fin chegaches á fábrica. Ollo que hai moitos perigos. Usa bombardeiros " +"para destruír o soto da fábrica. Moita sorte!" #: data/levels/factorycampaign/factory_campaign12.pingus:5 msgid "Going back home" -msgstr "" +msgstr "Volvendo a casa" #: data/levels/factorycampaign/factory_campaign12.pingus:6 msgid "Your mission is over. Pingus can go back home, but be careful!" -msgstr "" +msgstr "A túa misión rematou. Pingus poden volver a casa, pero ten coidado!" #: data/levels/factorycampaign/factory_campaign13.pingus:5 msgid "Bonus track" -msgstr "" +msgstr "Pista de bonificación" #: data/levels/factorycampaign/factory_campaign13.pingus:6 msgid "" "Pingus are at home, but after the climate change living on the South Pole " "became more dangerous. There is one more mission for you." msgstr "" - -#: data/levels/factorycampaign/factory_campaign1.pingus:5 -msgid "Falling down" -msgstr "" - -#: data/levels/factorycampaign/factory_campaign1.pingus:6 -msgid "" -"Pingus intelligence reported that a huge factory located in the subtropical " -"zone might be a reason of a climate change. They decided to go there and " -"shut down the factory. This will be a long and dangerous expedition. " -"Pingus and you will have to face many difficulties on your way. As the ice " -"is melting, at first you have to build some bridges and watch out for the " -"cliff." -msgstr "" +"Os pingus están na casa, pero despois do cambio climático vivir no Polo Sur " +"tornouse máis perigoso. Hai unha misión máis para ti." #: data/levels/factorycampaign/factory_campaign2.pingus:5 msgid "Destination North" -msgstr "" +msgstr "Destino Norte" #: data/levels/factorycampaign/factory_campaign2.pingus:6 msgid "" "For now, Pingus are leaving South Pole and moving North. You have to help " "them!" msgstr "" +"Polo momento, os Pingus abandonan o Polo Sur e avanzan cara ao Norte. " +"Tes que axudalos!" #: data/levels/factorycampaign/factory_campaign3.pingus:5 msgid "The Cave" -msgstr "" +msgstr "A Cova" #: data/levels/factorycampaign/factory_campaign3.pingus:6 msgid "" @@ -1862,10 +2156,13 @@ msgid "" "Remember that sometimes there is more than one way out. Hint: To 'unlock' " "blockers you can use bashers and jumpers." msgstr "" +"Os Pingus no seu camiño atoparonse cunha enorme cova. Levaos a través dela. " +"Lembra que ás veces hai máis dunha saída. Consello: para \"desbloquear\" os " +"bloqueadores podes usar golpeadores e saltadores." #: data/levels/factorycampaign/factory_campaign4.pingus:5 msgid "Difficulties on the way" -msgstr "" +msgstr "Dificultades no camiño" #: data/levels/factorycampaign/factory_campaign4.pingus:6 msgid "" @@ -1873,57 +2170,70 @@ msgid "" "are waiting for your orders, they count on you so don't fail! Hint: Miners, " "diggers and bashers are very important here!" msgstr "" +"Parece que atopaches serias dificultades. Pero non te asustes, Os Pingus " +"agardan as túas ordes, contan contigo así que non falles! Consello: aquí os " +"mineiros, escavadores e golpeadores son moi importantes!" #: data/levels/factorycampaign/factory_campaign5.pingus:5 msgid "Four ways out" -msgstr "" +msgstr "Catro saídas" #: data/levels/factorycampaign/factory_campaign5.pingus:6 msgid "" "It's getting warmer but Pingus are bravely moving North. This time it will " "be much easier. There are at least four ways out. Could you find them?" msgstr "" +"Fai máis calor, pero os Pingus están a moverse con valentía cara ao norte. " +"Esta vez será moito máis doado. Hai polo menos catro saídas. Poderás " +"atopalas?" #: data/levels/factorycampaign/factory_campaign6.pingus:5 msgid "Egypt - So easy" -msgstr "" +msgstr "Exipto - Tan fácil" #: data/levels/factorycampaign/factory_campaign6.pingus:6 msgid "Pingus reached Egypt. Looks easy, but is it really so easy? Try it out." msgstr "" +"Pingus chegou a Exipto. Parece fácil, pero é realmente tan fácil? Próbao." #: data/levels/factorycampaign/factory_campaign7.pingus:5 msgid "Egypt - Oasis" -msgstr "" +msgstr "Exipto - Oasis" #: data/levels/factorycampaign/factory_campaign7.pingus:6 msgid "" "Last time it was easy. Now it will be a little bit harder. Pingus are " "entering oasis. Watch out for the water." msgstr "" +"A última vez foi fácil. Agora será un pouco máis difícil. Os Pingus están " +"entrando no oasis. Coidado coa auga." #: data/levels/factorycampaign/factory_campaign8.pingus:5 msgid "Egypt - The Maze" -msgstr "" +msgstr "Exipto - O labirinto" #: data/levels/factorycampaign/factory_campaign8.pingus:6 msgid "" "You came across a maze. Can you find the way out? Think twice before digging." msgstr "" +"Atopácheste cun labirinto. Podes atopar a saída? Pénsao dúas veces antes de " +"cavar." #: data/levels/factorycampaign/factory_campaign9.pingus:5 msgid "Egypt - Pyramids" -msgstr "" +msgstr "Exipto - Pirámide" #: data/levels/factorycampaign/factory_campaign9.pingus:6 msgid "" "The maze led you to the big pyramids. Now you have 4 minutes to escape. " "Hurry up!" msgstr "" +"O labirinto levouche ás grandes pirámides. Agora tes 4 minutos para escapar. " +"Apura!" #: data/levels/xmas2011/xmas01-grumbel.pingus:5 msgid "Bomb and Double Catch" -msgstr "" +msgstr "Bomba e Doble Captura" #: data/levels/xmas2011/xmas01-grumbel.pingus:6 msgid "" @@ -1932,20 +2242,27 @@ msgid "" "trouble, but don't relax to much, your resources are limited, so be careful " "when using them." msgstr "" +"Aquí podes ter tempo para relaxarte. O camiño non é complicado e un pouco de " +"bombardeo e captura de Pingus debería levarte ata o final sen moitos " +"problemas, pero non te relaxes moito, os teus recursos son limitados, así " +"que teña coidado ao usalos." #: data/levels/xmas2011/xmas02-grumbel.pingus:5 msgid "Up, Up and Away" -msgstr "" +msgstr "Arriba, Arriba e Lonxe" #: data/levels/xmas2011/xmas02-grumbel.pingus:6 msgid "" "The exit is in a weird spot here, straight above. A bridge won't get you " "there, but your toolset allows an alternative way. Can you figure it out?" msgstr "" +"A saída está nun lugar estraño aquí, directamente enriba. Unha ponte non che " +"levará ata alí, pero o teu conxunto de ferramentas permite un camiño " +"alternativo. Podes descifralo?" #: data/levels/xmas2011/xmas03-grumbel.pingus:5 msgid "If only penguins could fly" -msgstr "" +msgstr "Se só os pingüíns puidesen voar" #: data/levels/xmas2011/xmas03-grumbel.pingus:6 msgid "" @@ -1953,10 +2270,14 @@ msgid "" "shouldn't have to much trouble here, everything to do here you should have " "learned, but you might have to use all that knowledge at once." msgstr "" +"As pontes son pouco frecuentes por aquí, así que non desperdicies ningunha. " +"Aparte diso, aquí non deberías ter moitos problemas, todo o que hai que " +"facer aquí o deberas ter aprendido, pero quizais teñas que usar todo ese " +"coñecemento á vez." #: data/levels/xmas2011/xmas04-grumbel.pingus:5 msgid "Stairway to Heaven" -msgstr "" +msgstr "Escaleira ao ceo" #: data/levels/xmas2011/xmas04-grumbel.pingus:6 msgid "" @@ -1964,10 +2285,13 @@ msgid "" "hard enough with a single Pingu, but with all of them? Impossible! But wait, " "who says they have to come the same way?" msgstr "" +"Aquí as cousas comezan a complicarse un pouco. Chegar á saída é bastante " +"difícil cun só Pingu, pero con todos? Imposible! Pero agarda, quen di que " +"teñen que vir polo mesmo camiño?" #: data/levels/xmas2011/xmas05-grumbel.pingus:5 msgid "Misdirection Everywhere" -msgstr "" +msgstr "Mala dirección en todas partes" #: data/levels/xmas2011/xmas05-grumbel.pingus:6 msgid "" @@ -1976,20 +2300,27 @@ msgid "" "\n" "Good Luck & a Merry Xmas 2011" msgstr "" +"O último nivel para este Nadal. Parece un pouco complicado, non? Non te " +"preocupes con todo o que aprendiches ata agora, incluso deberas poder " +"resolver isto.\n" +"\n" +"Boa sorte e bo Nadal 2011" #: data/levels/xmas2011/xmas06-grumbel.pingus:5 msgid "The Big Jump" -msgstr "" +msgstr "O Gran Salto" #: data/levels/xmas2011/xmas06-grumbel.pingus:6 msgid "" "Going in and out of the abyss with all Pingus isn't an option here, but a " -"small group preparing the path for the others should get you across." +"small group preparing the path or the others should get you across." msgstr "" +"Entrar e saír do abismo con todos os Pingus non é unha opción aquí, pero un " +"pequeno grupo preparando o camiño ou os demais deberían facernos pasar." #: data/levels/xmas2011/xmas07-grumbel.pingus:5 msgid "No Way to Stop" -msgstr "" +msgstr "Non hai forma de parar" #: data/levels/xmas2011/xmas07-grumbel.pingus:6 msgid "" @@ -1997,59 +2328,70 @@ msgid "" "straight, but you don't have the time to prepare it. Can you find a way to " "leap ahead?" msgstr "" +"Aquí non tes moito tempo que perder. O camiño da saída é claro e recto, pero " +"non tes tempo para preparalo. Podes atopar un xeito de dar un salto adiante?" #: data/levels/xmas2011/xmas08-grumbel.pingus:5 msgid "Ice Block Blockage" -msgstr "" +msgstr "Bloqueo de bloques de xeo" #: data/levels/xmas2011/xmas08-grumbel.pingus:6 msgid "" "What's this? A gigantic ice block straight in the path? Where did that come " "from? No time wondering about things like that. The Pingus need to get to " -"the exit and it's your job to find a way around the block." +"the exist and it's your job to find a way around the block." msgstr "" +"Que é isto? Un bloque de xeo xigantesco no camiño? De onde veu iso? Non hai " +"tempo para preguntarse por cousas así. Os Pingus necesitan chegar á " +"saida e o teu traballo é atopar un xeito de evitar o bloque." #: data/levels/xmas2011/xmas09-grumbel.pingus:5 msgid "The Impossible Bridge" -msgstr "" +msgstr "A Ponte Imposible" #: data/levels/xmas2011/xmas09-grumbel.pingus:6 msgid "" -"Two groups of Pingus separated by a deep abyss, joining them by a bridge " +"Two groups of Pingus separated by a deep byss, joining them by a bridge " "seems impossible, but wise coordination of the two groups and a brave leap " "should let you make it to the exit." msgstr "" +"Dous grupos de Pingus separados por un profundo abismo, unidos por unha " +"ponte parece imposible, pero a sabia coordinación dos dous grupos e un salto " +"valente deberían permitirche chegar á saída." #: data/levels/xmas2011/xmas10-grumbel.pingus:5 msgid "Spiraling Away" -msgstr "" +msgstr "Afastándose en espiral" #: data/levels/xmas2011/xmas10-grumbel.pingus:6 msgid "" -"The exit is straight below, but the path is blocked by solid steel with no " +"The exit is straight below, but the path is blocked by solid steal with no " "way through. But the Pingus have a versatile toolset at hand, can you use it " "to find a way around and make it to the exit?" msgstr "" +"A saída está recta abaixo, pero o camiño está bloqueado por aceiro sólido " +"sen saida. Pero os Pingus teñen un conxunto de ferramentas versátil á man, " +"podes usalo para atopar unha maneira de rodealo e chegar á saída?" #: data/worldmaps/tutorial.worldmap:4 msgid "Tutorial Island" -msgstr "" +msgstr "Tutorial Illa" #: data/worldmaps/tutorial.worldmap:6 msgid "Learn the basics" -msgstr "" +msgstr "Aprende o básico" #: data/worldmaps/tutorial.worldmap:124 msgid "Watch Ending" -msgstr "" +msgstr "Ver Final" #: data/worldmaps/tutorial.worldmap:131 msgid "Watch Intro" -msgstr "" +msgstr "Ver a introdución" #: data/stories/tutorial_intro.story:2 msgid "The Journey Begins" -msgstr "" +msgstr "Comeza a Viaxe" #: data/stories/tutorial_intro.story:9 msgid "" @@ -2058,6 +2400,10 @@ msgid "" "like nothing could disrupt their peace. The Pingus were happy and it seemed " "like this could never end." msgstr "" +"Durante moito tempo, os Pingus viviron felices en paz no Polo Sur xunto con " +"todos os demais animais. Todo estaba en equilibrio e parecía que nada podía " +"perturbar a súa paz. Os Pingus estaban felices e parecía que isto nunca " +"podería rematar." #: data/stories/tutorial_intro.story:17 msgid "" @@ -2066,6 +2412,10 @@ msgid "" "in the world's climate, but things seemed to get worse and worse with every " "year." msgstr "" +"Pero un día, as cousas comezaron a cambiar lentamente: o ceo volveuse máis " +"escuro e a terra quente. En primeiro lugar, pensaron que esta era só unha " +"flutuación normal do clima mundial, pero as cousas parecían empeorar cada " +"ano." #: data/stories/tutorial_intro.story:25 msgid "" @@ -2074,6 +2424,10 @@ msgid "" "knew that this wouldn't help: they knew that they had to do something about " "it." msgstr "" +"A neve comezou a derreterse nalgunhas zonas e a comida converteuse nun " +"problema. Outros animais intentaron saír da rexión para buscar zonas máis " +"frías, pero os Pingus sabían que iso non serviría de nada: sabían que tiñan " +"que facer algo ao respecto." #: data/stories/tutorial_intro.story:33 msgid "" @@ -2082,6 +2436,10 @@ msgid "" "this warming. The expedition consisted of hundreds of the bravest Pingus on " "the South Pole." msgstr "" +"Así que os máis ancians reuniuse para decidir que facer ao respecto. " +"Decidiron enviar unha expedición polo mundo para atopar a causa deste " +"quecemento. A expedición estaba formada por centos dos Pingus máis valentes " +"do Polo Sur." #: data/stories/tutorial_intro.story:41 msgid "" @@ -2091,6 +2449,10 @@ msgid "" "island has always been the first stop of Pingus that were sent out into the " "world." msgstr "" +"E escolléronte a ti para guialos na súa viaxe polo mundo. Dado que a viaxe " +"será perigosa e difícil, o teu primeiro obxectivo é a Illa de Mogorok, tamén " +"coñecida como a Illa Tutorial. Segundo os ancians, esta illa foi sempre a " +"primeira parada dos Pingus que foron enviados ao mundo." #: data/stories/tutorial_intro.story:50 msgid "" @@ -2098,6 +2460,9 @@ msgid "" "abilities. The Pingus can learn to build bridges, climb, bash and use many " "other talents which they will need on their long and dangerous journey." msgstr "" +"A illa consta de moitas áreas que son ideais para ensinar aos Pingus as súas " +"habilidades. Os Pingus poden aprender a construír pontes, escalar, golpear e " +"usar moitos outros talentos que necesitarán na súa longa e perigosa viaxe." #: data/stories/tutorial_intro.story:57 msgid "" @@ -2106,6 +2471,10 @@ msgid "" "and learn to master them, since you will need all of them on your journey " "around the world." msgstr "" +"Mentres estés alí, podes practicar as túas habilidades para comandar e guiar " +"aos Pingus. Tamén podes familiarizarte con todas as habilidades que " +"proporcionan os Pingus e aprender a dominalas, xa que as precisarás todas na " +"túa viaxe polo mundo." #: data/stories/tutorial_intro.story:65 msgid "" @@ -2114,10 +2483,14 @@ msgid "" "\n" "Good Luck!" msgstr "" +"Agora que ti e os Pingus chegastes á illa Tutorial, é hora de tomar o mando " +"e comezar a túa misión.\n" +"\n" +"Moita sorte!" #: data/stories/tutorial_outro.story:2 msgid "The Journey Continues" -msgstr "" +msgstr "A Viaxe Continúa" #: data/stories/tutorial_outro.story:9 msgid "" @@ -2127,6 +2500,11 @@ msgid "" "the whole way into the warmer climates the Pingus have to find something " "else to guide them on their journey." msgstr "" +"Agora, despois de que ti e os Pingus aprendestes o básico e practicastes un " +"pouco, é hora de seguir adiante e comezar a viaxe ao mundo. Dado que o " +"témpano de xeo co que viaxaron os Pingus á illa Tutorial non vai aguantar todo " +"o camiño cara aos climas máis cálidos, os Pingus teñen que buscar outra " +"cousa cos guíe na súa viaxe." #: data/stories/tutorial_outro.story:18 msgid "" @@ -2136,6 +2514,10 @@ msgid "" "large tree at the end of the island which gave them wood to construct a " "float." msgstr "" +"Pero como dixeron os ancians, a Illa Titorial non só ofrece unha boa forma " +"de practicar, senón que tamén é o punto de partida do mundo. Despois " +"dalgunhas buscas, os Pingus descubriron o significado disto, e atoparon a " +"gran árbore ao final da illa que lles deu madeira para construír unha balsa." #: data/stories/tutorial_outro.story:27 msgid "" @@ -2144,6 +2526,10 @@ msgid "" "their journey and leave their familiar ground and enter the unknown parts of " "the world." msgstr "" +"Así que os Pingus saíron e construíron unhas grandes balsas, suficientes " +"para levalos a todas. Despois de empacar tamén unha morea de provisions, " +"estaban preparados para comezar a súa viaxe e deixar o seu terreo familiar e " +"entrar nas partes descoñecidas do mundo." #: data/stories/tutorial_outro.story:35 msgid "" @@ -2152,91 +2538,91 @@ msgid "" "\n" "To be continued..." msgstr "" +"Entón, os Pingus sentan na súa balsa, preocupándose polo que está por vir e " +"por onde ir, mentres navegan cara ao solpor.\n" +"\n" +"Continuará..." #: data/levelsets/alien.levelset:3 msgid "Alien by Josh Dye" -msgstr "" +msgstr "Alien de Josh Dye" #: data/levelsets/alien.levelset:4 msgid "Escape from alien" -msgstr "" +msgstr "Escapar do alieníxena" #: data/levelsets/crystal.levelset:3 msgid "Crystal" -msgstr "" +msgstr "Cristal" #: data/levelsets/crystal.levelset:4 msgid "Crystaline sparkling full of danger" -msgstr "" +msgstr "Cristalina escintilante chea de perigo" #: data/levelsets/desert.levelset:3 msgid "Desert" -msgstr "" +msgstr "Deserto" #: data/levelsets/desert.levelset:4 msgid "Getting hot outside..." -msgstr "" - -#: data/levelsets/eyeland.levelset:2 -msgid "Eye Land" -msgstr "" +msgstr "Facendo calor fóra..." #: data/levelsets/factory.levelset:3 msgid "Factory Campaign" -msgstr "" +msgstr "Campaña de fábrica" #: data/levelsets/factory.levelset:4 msgid "Pingus expedition" -msgstr "" - -#: data/levelsets/halloween2011.levelset:2 -msgid "Halloween 2011" -msgstr "" - -#: data/levelsets/halloween2011.levelset:3 -msgid "Going Underground" -msgstr "" +msgstr "Expedición Pingus" #: data/levelsets/halloween.levelset:3 msgid "Halloween 2007" -msgstr "" +msgstr "Samain 2007" #: data/levelsets/halloween.levelset:4 msgid "Trapped at All Hallows Eve" -msgstr "" +msgstr "Atrapado na véspera de Todos os Santos" + +#: data/levelsets/halloween2011.levelset:2 +msgid "Halloween 2011" +msgstr "Samain 2011" + +#: data/levelsets/halloween2011.levelset:3 +msgid "Going Underground" +msgstr "Indo subterráneo" #: data/levelsets/hellmouth.levelset:3 msgid "Hellmouth" -msgstr "" +msgstr "Boca do Inferno" #: data/levelsets/hellmouth.levelset:4 msgid "A cave full of slime..." -msgstr "" +msgstr "Unha cova chea de lama..." #: data/levelsets/jungle.levelset:3 msgid "Jungle" -msgstr "" +msgstr "Xungla" #: data/levelsets/mysteryisland.levelset:3 msgid "Island of Mystery" -msgstr "" +msgstr "Illa do Misterio" #: data/levelsets/mysteryisland.levelset:4 msgid "Marooned on an Uncharted Isle [by Lachlan McCubbin]" -msgstr "" +msgstr "Abandonado nunha illa sen cartografar [por Lachlan McCubbin]" #: data/levelsets/pacman.levelset:3 msgid "Pac-Man" -msgstr "" +msgstr "Pac-Man" #: data/levelsets/pacman.levelset:4 msgid "Trapped in a video game" -msgstr "" +msgstr "Atrapado nun videoxogo" #: data/levelsets/xmas2011.levelset:3 msgid "Xmas 2011" -msgstr "" +msgstr "Nadal 2011" #: data/levelsets/xmas2011.levelset:4 msgid "Merry Christmas and a Happy New Year" -msgstr "" +msgstr "Bo Nadal e feliz Aninovo" diff --git a/external/argpp b/external/argpp deleted file mode 160000 index cbbf41f22..000000000 --- a/external/argpp +++ /dev/null @@ -1 +0,0 @@ -Subproject commit cbbf41f228b986df9bdd898e7203e7988876404e diff --git a/external/geomcpp b/external/geomcpp deleted file mode 160000 index 290cda394..000000000 --- a/external/geomcpp +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 290cda394df7efe25094887327faf3e1d28c333d diff --git a/external/logmich b/external/logmich deleted file mode 160000 index c963f735d..000000000 --- a/external/logmich +++ /dev/null @@ -1 +0,0 @@ -Subproject commit c963f735df02f1944cd8db4c86a4c45f6f923d2a diff --git a/external/priocpp b/external/priocpp deleted file mode 160000 index 58fc2c180..000000000 --- a/external/priocpp +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 58fc2c18003e738d274f7fb76f1177151ff2f3cb diff --git a/external/sexpcpp b/external/sexpcpp deleted file mode 160000 index c7137f1e0..000000000 --- a/external/sexpcpp +++ /dev/null @@ -1 +0,0 @@ -Subproject commit c7137f1e0351b8e193ae9d48fb381157a1f8377e diff --git a/external/strutcpp b/external/strutcpp deleted file mode 160000 index 06e63e8fb..000000000 --- a/external/strutcpp +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 06e63e8fbfe103e51bebe82299b2dc83969fa794 diff --git a/external/tinycmmc b/external/tinycmmc deleted file mode 160000 index 43c75c534..000000000 --- a/external/tinycmmc +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 43c75c5344979c5ad4c65233aa407e3ec6d92c03 diff --git a/external/tinygettext b/external/tinygettext deleted file mode 160000 index a23e9ef74..000000000 --- a/external/tinygettext +++ /dev/null @@ -1 +0,0 @@ -Subproject commit a23e9ef7406b3c430ec088214a2a063b2e64c6fe diff --git a/external/uitest b/external/uitest deleted file mode 160000 index 6be34dc37..000000000 --- a/external/uitest +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 6be34dc37b1877b366fb26a7f0fc461b102eaa34 diff --git a/external/wstsound b/external/wstsound deleted file mode 160000 index 9e692e7a4..000000000 --- a/external/wstsound +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 9e692e7a40e6d6d0409007085e8f6fd22438f447 diff --git a/external/xdgcpp b/external/xdgcpp deleted file mode 160000 index 569bf5b6d..000000000 --- a/external/xdgcpp +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 569bf5b6df6092e92ce60bebb125b75b301185e4 diff --git a/flake.lock b/flake.lock index 037b958cb..5d5fefa57 100644 --- a/flake.lock +++ b/flake.lock @@ -11,17 +11,17 @@ ] }, "locked": { - "lastModified": 1660923972, - "narHash": "sha256-xkVYQOjJyHkhxCKVz5S8Xhy30WzzolG538JCVeu4kQw=", - "owner": "grumnix", - "repo": "SDL2-win32", - "rev": "34f0919fec05bcdba1c97ec6425bf18b5ebe2b4d", - "type": "github" + "lastModified": 1753127534, + "narHash": "sha256-73UFk9wGZb0CQ2EpFaXRczHzUUlOzK/Ov2KP3ewk4qw=", + "ref": "refs/heads/master", + "rev": "278a40a7bff4c0b0bf4f5ad1c528308df4a1b0f9", + "revCount": 6, + "type": "git", + "url": "https://github.com/grumnix/SDL2-win32.git" }, "original": { - "owner": "grumnix", - "repo": "SDL2-win32", - "type": "github" + "type": "git", + "url": "https://github.com/grumnix/SDL2-win32.git" } }, "SDL2_image-win32": { @@ -35,41 +35,43 @@ ] }, "locked": { - "lastModified": 1660924118, - "narHash": "sha256-ApDMg66R0fd0GL+CRfxCirIe1igilBRODcC3I6sdqfQ=", - "owner": "grumnix", - "repo": "SDL2_image-win32", - "rev": "3bf368bd9c3932cdaebc7886af641bc8566ede03", - "type": "github" + "lastModified": 1753127641, + "narHash": "sha256-tyxJ/BVa8cTM/RnrNvA74+VGKqXZjDnpSFeyTEmagDs=", + "ref": "refs/heads/master", + "rev": "4cc470369cc84058739367683c8f75de31c9f132", + "revCount": 7, + "type": "git", + "url": "https://github.com/grumnix/SDL2_image-win32.git" }, "original": { - "owner": "grumnix", - "repo": "SDL2_image-win32", - "type": "github" + "type": "git", + "url": "https://github.com/grumnix/SDL2_image-win32.git" } }, "SDL2_image_src": { "flake": false, "locked": { - "narHash": "sha256-GNKF/bhxZ9WxpNVqRQ3yFf/8yiQntLXOYnhn22Sy9k0=", + "lastModified": 1741038808, + "narHash": "sha256-RdfL5vmppsxWqvhz6ZL41GtnSc63hrEMan3uG22iEyE=", "type": "tarball", - "url": "https://www.libsdl.org/projects/SDL_image/release/SDL2_image-devel-2.0.5-mingw.tar.gz" + "url": "https://www.libsdl.org/projects/SDL_image/release/SDL2_image-devel-2.8.8-mingw.tar.gz" }, "original": { "type": "tarball", - "url": "https://www.libsdl.org/projects/SDL_image/release/SDL2_image-devel-2.0.5-mingw.tar.gz" + "url": "https://www.libsdl.org/projects/SDL_image/release/SDL2_image-devel-2.8.8-mingw.tar.gz" } }, "SDL2_src": { "flake": false, "locked": { - "narHash": "sha256-7F8KGZaY6R7tzv/+0gNNm1FvDyrY4Z4PPuzYu+3pvNM=", + "lastModified": 1748906407, + "narHash": "sha256-aakdhaTL0dgt2BQEtv3w6pp1mwOrmNzEorh3lLxJgyo=", "type": "tarball", - "url": "https://libsdl.org/release/SDL2-devel-2.0.22-mingw.tar.gz" + "url": "https://libsdl.org/release/SDL2-devel-2.32.8-mingw.tar.gz" }, "original": { "type": "tarball", - "url": "https://libsdl.org/release/SDL2-devel-2.0.22-mingw.tar.gz" + "url": "https://libsdl.org/release/SDL2-devel-2.32.8-mingw.tar.gz" } }, "argpp": { @@ -85,27 +87,30 @@ ] }, "locked": { - "lastModified": 1660505203, - "narHash": "sha256-unfAFxgvv1BOUEqrYYMFfouGe2xIcKJ3ithCel1P9sc=", - "owner": "grumbel", - "repo": "argpp", - "rev": "9e1d54f8ed20af0aa5857e6653ab605b2ab63d5c", - "type": "github" + "lastModified": 1763577316, + "narHash": "sha256-jG+a4K6NoyF41nTlWwN1J2my2nnqdiVO+fhQ9PHhdR4=", + "ref": "stable", + "rev": "b52420a843327361713b6242e47afaa6b6ab2a89", + "revCount": 73, + "type": "git", + "url": "https://github.com/grumbel/argpp.git" }, "original": { - "owner": "grumbel", "ref": "stable", - "repo": "argpp", - "type": "github" + "type": "git", + "url": "https://github.com/grumbel/argpp.git" } }, "flake-utils": { + "inputs": { + "systems": "systems" + }, "locked": { - "lastModified": 1659877975, - "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "owner": "numtide", "repo": "flake-utils", - "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "type": "github" }, "original": { @@ -116,9 +121,6 @@ }, "geomcpp": { "inputs": { - "flake-utils": [ - "flake-utils" - ], "nixpkgs": [ "nixpkgs" ], @@ -127,17 +129,17 @@ ] }, "locked": { - "lastModified": 1660561995, - "narHash": "sha256-z2d2nz8BKyPjudk619U0D8aiPrXTtasMoBOewYPRkCo=", - "owner": "grumbel", - "repo": "geomcpp", - "rev": "e166eb4514efb46b7f0b6eb6524c1b6cb1457a92", - "type": "github" + "lastModified": 1775669653, + "narHash": "sha256-brC1Xkk17mQTw2C+/em1C1BxsJa7X9/wkQWIb4kucoQ=", + "ref": "refs/heads/master", + "rev": "af84b6266807f66efb338fdd5d88d060ee741267", + "revCount": 112, + "type": "git", + "url": "https://github.com/grumbel/geomcpp.git" }, "original": { - "owner": "grumbel", - "repo": "geomcpp", - "type": "github" + "type": "git", + "url": "https://github.com/grumbel/geomcpp.git" } }, "libmodplug-win32": { @@ -153,22 +155,23 @@ ] }, "locked": { - "lastModified": 1660923767, - "narHash": "sha256-diDVUqzXbGDS2OxNmkVQxKYeDlQAOcF3nNaMzaeCMAE=", - "owner": "grumnix", - "repo": "libmodplug-win32", - "rev": "1f1e3c13c85ac605b58fddc556ff73b2b9e4eab3", - "type": "github" + "lastModified": 1716834232, + "narHash": "sha256-ZnTt0ZFvCPSA6NcIzAku/LH4SqYmKnwhdTadk209bFY=", + "ref": "refs/heads/master", + "rev": "ca34343b3492192f977f06b529888ea55f184097", + "revCount": 5, + "type": "git", + "url": "https://github.com/grumnix/libmodplug-win32.git" }, "original": { - "owner": "grumnix", - "repo": "libmodplug-win32", - "type": "github" + "type": "git", + "url": "https://github.com/grumnix/libmodplug-win32.git" } }, "libmodplug_src": { "flake": false, "locked": { + "lastModified": 1493040202, "narHash": "sha256-jNHspgIcrv5AUEgq2MB4TSqbj//tTCXiOoSqYjShGkw=", "type": "tarball", "url": "https://downloads.sourceforge.net/project/modplug-xmms/libmodplug/0.8.9.0/libmodplug-0.8.9.0.tar.gz" @@ -191,22 +194,23 @@ ] }, "locked": { - "lastModified": 1660923789, - "narHash": "sha256-+DPxwLvI7MtJEeUUEn5xOHmZjttCuiJjZ+0bgxy3by0=", - "owner": "grumnix", - "repo": "libogg-win32", - "rev": "6cafd6a3608db0b47b8bcd3e8b0f1bda4c1f46f0", - "type": "github" + "lastModified": 1764251829, + "narHash": "sha256-CUq+HLy257tgKo9URjnjgCS1HyIQpPetU06gFr/1fQA=", + "ref": "refs/heads/master", + "rev": "a05787b0ad8f878cd44008fd0c4c99cb149c0066", + "revCount": 6, + "type": "git", + "url": "https://github.com/grumnix/libogg-win32.git" }, "original": { - "owner": "grumnix", - "repo": "libogg-win32", - "type": "github" + "type": "git", + "url": "https://github.com/grumnix/libogg-win32.git" } }, "libogg_src": { "flake": false, "locked": { + "lastModified": 1622776890, "narHash": "sha256-L8hFWoCh2VTdlsOq+cbP1eYAnciH70xlk1eSwr8YP5c=", "type": "tarball", "url": "https://downloads.xiph.org/releases/ogg/libogg-1.3.5.tar.gz" @@ -233,22 +237,23 @@ ] }, "locked": { - "lastModified": 1660923805, - "narHash": "sha256-oI59MRrNeI7ueYG04VfHvBEXm1UeVudjyUfNWLNxdt8=", - "owner": "grumnix", - "repo": "libvorbis-win32", - "rev": "1aabf677f7ec7ec5f29be2651f05e7163c0b1f2e", - "type": "github" + "lastModified": 1764251884, + "narHash": "sha256-3jO1DR02WbHEtv6r809E/UvUFou2uXkT/8hkqmhK2Y4=", + "ref": "refs/heads/master", + "rev": "d698e14ec3fce00f85c111f74ad783bbda813a72", + "revCount": 7, + "type": "git", + "url": "https://github.com/grumnix/libvorbis-win32.git" }, "original": { - "owner": "grumnix", - "repo": "libvorbis-win32", - "type": "github" + "type": "git", + "url": "https://github.com/grumnix/libvorbis-win32.git" } }, "libvorbis_src": { "flake": false, "locked": { + "lastModified": 1593843770, "narHash": "sha256-xXty8sK0hmJX7jQu5+CDBslNVQ0+dZaUrbp/12xVmy0=", "type": "tarball", "url": "https://downloads.xiph.org/releases/vorbis/libvorbis-1.3.7.tar.xz" @@ -260,9 +265,6 @@ }, "logmich": { "inputs": { - "flake-utils": [ - "flake-utils" - ], "nixpkgs": [ "nixpkgs" ], @@ -271,17 +273,17 @@ ] }, "locked": { - "lastModified": 1660503729, - "narHash": "sha256-NKVJPa8JMRWy5YPCdA/OrAdUDQHGPFPHpcz8arQ0oYg=", - "owner": "logmich", - "repo": "logmich", - "rev": "22186da9b4a2fe7318cabcdf327f1b7693a50378", - "type": "github" + "lastModified": 1763578800, + "narHash": "sha256-mnqKS+m/m/zwlOpse3+QnP54fgaXR9/8FW+FDq/MKlo=", + "ref": "refs/heads/master", + "rev": "f69ccb6b8963d995eeb886f60e8c30b2742d596e", + "revCount": 53, + "type": "git", + "url": "https://github.com/logmich/logmich.git" }, "original": { - "owner": "logmich", - "repo": "logmich", - "type": "github" + "type": "git", + "url": "https://github.com/logmich/logmich.git" } }, "mpg123-win32": { @@ -297,43 +299,44 @@ ] }, "locked": { - "lastModified": 1660923818, - "narHash": "sha256-BoxEFDJt0VbA1rZoYTjv1J+HF/aMZP4GcKa+5bhC3u4=", - "owner": "grumnix", - "repo": "mpg123-win32", - "rev": "81f61824b806555d2d7f4c2229b987a3b2238c26", - "type": "github" + "lastModified": 1716728685, + "narHash": "sha256-+oyZIT88pcIuWUW1jw69KpxEjvqU1QDtF3VV6hiTVAo=", + "ref": "refs/heads/master", + "rev": "aead750a3614f02601f7e81f67751b9f64eeab07", + "revCount": 5, + "type": "git", + "url": "https://github.com/grumnix/mpg123-win32.git" }, "original": { - "owner": "grumnix", - "repo": "mpg123-win32", - "type": "github" + "type": "git", + "url": "https://github.com/grumnix/mpg123-win32.git" } }, "mpg123_src": { "flake": false, "locked": { - "narHash": "sha256-df+AH4sCwVj89IRKBCseDR+93LY8RPuGo/F0KtULEys=", + "lastModified": 1679225440, + "narHash": "sha256-OGSGPiIZbcBhovnX+rMquDECVT0myZDpJFxMYQMK4TM=", "type": "tarball", - "url": "https://downloads.sourceforge.net/project/mpg123/mpg123/1.30.2/mpg123-1.30.2.tar.bz2" + "url": "https://downloads.sourceforge.net/project/mpg123/mpg123/1.31.3/mpg123-1.31.3.tar.bz2" }, "original": { "type": "tarball", - "url": "https://downloads.sourceforge.net/project/mpg123/mpg123/1.30.2/mpg123-1.30.2.tar.bz2" + "url": "https://downloads.sourceforge.net/project/mpg123/mpg123/1.31.3/mpg123-1.31.3.tar.bz2" } }, "nixpkgs": { "locked": { - "lastModified": 1660749083, - "narHash": "sha256-GHLFMGH+r3OmI4tV0x/RtxN7DkHcH2ZOhK8uzQeSLiY=", + "lastModified": 1775423009, + "narHash": "sha256-vPKLpjhIVWdDrfiUM8atW6YkIggCEKdSAlJPzzhkQlw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "a55a7db823959cf509d55325201f1864af4574b9", + "rev": "68d8aa3d661f0e6bd5862291b5bb263b2a6595c9", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-22.05", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } @@ -351,32 +354,32 @@ ] }, "locked": { - "lastModified": 1660923864, - "narHash": "sha256-aDhqX8rBQQ5vQG/8xFx0yQYYcpWoPuylnCdWrrsuwLA=", - "owner": "grumnix", - "repo": "openal-soft-win32", - "rev": "0bf5853f9484fb7352a906d895fc34c809687626", - "type": "github" + "lastModified": 1763585892, + "narHash": "sha256-ADPqFbvM+Dy6OoW/Mk1E/0OM+IPyO6QC6Qd+FOsXQeg=", + "ref": "refs/heads/master", + "rev": "98996385d263cbafa77890bf7c1fbc7efdb9a2e6", + "revCount": 7, + "type": "git", + "url": "https://github.com/grumnix/openal-soft-win32.git" }, "original": { - "owner": "grumnix", - "repo": "openal-soft-win32", - "type": "github" + "type": "git", + "url": "https://github.com/grumnix/openal-soft-win32.git" } }, "openal-soft_src": { "flake": false, "locked": { - "lastModified": 1656318833, - "narHash": "sha256-MVM0qCZDWcO7/Hnco+0dBqzBLcWD279xjx0slxxlc4w=", + "lastModified": 1743221304, + "narHash": "sha256-VQa3FD9NyvDv/+VbU+5lmV0LteiioJHpRkr1lnCn1g4=", "owner": "kcat", "repo": "openal-soft", - "rev": "dc83d99c95a42c960150ddeee06c124134b52208", + "rev": "dc7d7054a5b4f3bec1dc23a42fd616a0847af948", "type": "github" }, "original": { "owner": "kcat", - "ref": "1.22.2", + "ref": "1.24.3", "repo": "openal-soft", "type": "github" } @@ -394,22 +397,23 @@ ] }, "locked": { - "lastModified": 1660923895, - "narHash": "sha256-6y5gWCTzoSb0BGsK+If79hoxV/4TFKmQ39aRsz1QL0E=", - "owner": "grumnix", - "repo": "opus-win32", - "rev": "c2ee58f8908bcc677ed854c548d3f662293e1cac", - "type": "github" + "lastModified": 1716728603, + "narHash": "sha256-3+GUby3dHbQPdsBiGQlQ9XgNyZe1hORqbQpGUCzFm1E=", + "ref": "refs/heads/master", + "rev": "4530cd6280b2c239d8df717943fa0f63b1a3a650", + "revCount": 5, + "type": "git", + "url": "https://github.com/grumnix/opus-win32.git" }, "original": { - "owner": "grumnix", - "repo": "opus-win32", - "type": "github" + "type": "git", + "url": "https://github.com/grumnix/opus-win32.git" } }, "opus_src": { "flake": false, "locked": { + "lastModified": 1555106623, "narHash": "sha256-VyHmKoRXCJ0shVfUn6cX13b0fAXIQk0Z5NLZIfy8Gh4=", "type": "tarball", "url": "https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz" @@ -440,22 +444,23 @@ ] }, "locked": { - "lastModified": 1660923918, - "narHash": "sha256-WU3SUyEwufVFygaUEL2u4gfkovW1vc2ueHhhji1jRtQ=", - "owner": "grumnix", - "repo": "opusfile-win32", - "rev": "7422707b6478d31e73450afa6e972fb106d346e1", - "type": "github" + "lastModified": 1716728646, + "narHash": "sha256-pCL8yrYE3EppKKrv8ORuCaWepm6eYmsYj3I1WoIxWDQ=", + "ref": "refs/heads/master", + "rev": "c19b24efe82fd596016d7805e9206466c0b5744e", + "revCount": 7, + "type": "git", + "url": "https://github.com/grumnix/opusfile-win32.git" }, "original": { - "owner": "grumnix", - "repo": "opusfile-win32", - "type": "github" + "type": "git", + "url": "https://github.com/grumnix/opusfile-win32.git" } }, "opusfile_src": { "flake": false, "locked": { + "lastModified": 1593226173, "narHash": "sha256-UEoOyY9DM5lINTAHIfSRK5+o622pIK2ObQ00swIcM40=", "type": "tarball", "url": "https://downloads.xiph.org/releases/opus/opusfile-0.12.tar.gz" @@ -484,17 +489,17 @@ ] }, "locked": { - "lastModified": 1660504736, - "narHash": "sha256-t0BXpjsPjCXlh/XNXUVcMzvYgnROwYjwVsBTwT+Yhlc=", - "owner": "grumbel", - "repo": "priocpp", - "rev": "5dfa953ff0b099903c905a76ae9055aa9831ca97", - "type": "github" + "lastModified": 1764247710, + "narHash": "sha256-Ar/V9Q5jCOok7r3t0/f7DvBc6nxMDX4SbCiSKh36UDo=", + "ref": "refs/heads/master", + "rev": "ea15402adcd0d9191dc29ca6f7e4dd0bff67b9b5", + "revCount": 159, + "type": "git", + "url": "https://github.com/grumbel/priocpp.git" }, "original": { - "owner": "grumbel", - "repo": "priocpp", - "type": "github" + "type": "git", + "url": "https://github.com/grumbel/priocpp.git" } }, "root": { @@ -529,17 +534,17 @@ ] }, "locked": { - "lastModified": 1660503231, - "narHash": "sha256-Bm+FIzO3iyK0NtZOeRVyhuFdPHon3VQUyrOjy3EHpCI=", - "owner": "lispparser", - "repo": "sexp-cpp", - "rev": "ade5eb3193500031dab0c2b180e4fd4fcb7bda26", - "type": "github" + "lastModified": 1764247650, + "narHash": "sha256-IK1T95qcuDEm7aN59HZsvrf8RL4+07pxJ5Vuiuo7hSk=", + "ref": "refs/heads/master", + "rev": "e33eacf64ee5f1c24ed715ffc62519543bd40d64", + "revCount": 335, + "type": "git", + "url": "https://github.com/lispparser/sexp-cpp.git" }, "original": { - "owner": "lispparser", - "repo": "sexp-cpp", - "type": "github" + "type": "git", + "url": "https://github.com/lispparser/sexp-cpp.git" } }, "strutcpp": { @@ -552,16 +557,31 @@ ] }, "locked": { - "lastModified": 1660505409, - "narHash": "sha256-4juFaDnOhUKhIo8bNLeKEFeXQ+bw+iDQ0G22Qr9w7K0=", - "owner": "grumbel", - "repo": "strutcpp", - "rev": "4b00d49250db4e42e46068d5b4e42a2f8c5ccf51", + "lastModified": 1763577479, + "narHash": "sha256-zdlglWgTTdEGT5fzdoH/iDk9T2m6FjHWsfVbMC+2xRo=", + "ref": "refs/heads/master", + "rev": "04b3bf106b67a2870c2dc3d9ba843e375a834983", + "revCount": 89, + "type": "git", + "url": "https://github.com/grumbel/strutcpp.git" + }, + "original": { + "type": "git", + "url": "https://github.com/grumbel/strutcpp.git" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "type": "github" }, "original": { - "owner": "grumbel", - "repo": "strutcpp", + "owner": "nix-systems", + "repo": "default", "type": "github" } }, @@ -575,17 +595,17 @@ ] }, "locked": { - "lastModified": 1660915337, - "narHash": "sha256-RUvBcVlsF0jleNeDGP2TtTYVozsx+7lJeOlQJ9vuYrk=", - "owner": "grumbel", - "repo": "tinycmmc", - "rev": "25af158259bc772a5393c6200c4ebfd0ec4e28d0", - "type": "github" + "lastModified": 1763256011, + "narHash": "sha256-CpQWAHdeLUYd28cT9heG05p6RX9WF7QslqNHoBi931E=", + "ref": "refs/heads/master", + "rev": "2e007ba059a4991c011a7193c9d7df28826c9adc", + "revCount": 64, + "type": "git", + "url": "https://github.com/grumbel/tinycmmc.git" }, "original": { - "owner": "grumbel", - "repo": "tinycmmc", - "type": "github" + "type": "git", + "url": "https://github.com/grumbel/tinycmmc.git" } }, "tinygettext": { @@ -601,17 +621,17 @@ ] }, "locked": { - "lastModified": 1660505802, - "narHash": "sha256-rCneT/lpadOKDytVgY+6R1XwD8OrMTg7an4hBLhRl24=", - "owner": "tinygettext", - "repo": "tinygettext", - "rev": "2fcecb76900fac852fd4006e4d49b0744b1031e1", - "type": "github" + "lastModified": 1768052311, + "narHash": "sha256-fU65+VMr/bQgCkIsqCFEHTmLlCTBW7RyjUdyXckGTQs=", + "ref": "refs/heads/master", + "rev": "a1ccbc92e04d1a7078efe18ef77e0e7418baaa7b", + "revCount": 346, + "type": "git", + "url": "https://github.com/tinygettext/tinygettext.git" }, "original": { - "owner": "tinygettext", - "repo": "tinygettext", - "type": "github" + "type": "git", + "url": "https://github.com/tinygettext/tinygettext.git" } }, "uitest": { @@ -627,17 +647,17 @@ ] }, "locked": { - "lastModified": 1660505521, - "narHash": "sha256-ySgrHgwQO5itI1JgLtFMULPhYNipOYrGd/ECtxFbWO8=", - "owner": "grumbel", - "repo": "uitest", - "rev": "c436b1b990a94d2d989966013e602fd8a621e43d", - "type": "github" + "lastModified": 1764335609, + "narHash": "sha256-dsRejwxHWopZNGOT1gR63Wcj3ZMSiLxBFbXJ9iqCc9g=", + "ref": "refs/heads/master", + "rev": "2968b238dbf49af082f30d9b6633a085554027e6", + "revCount": 57, + "type": "git", + "url": "https://github.com/grumbel/uitest.git" }, "original": { - "owner": "grumbel", - "repo": "uitest", - "type": "github" + "type": "git", + "url": "https://github.com/grumbel/uitest.git" } }, "wstsound": { @@ -660,17 +680,17 @@ ] }, "locked": { - "lastModified": 1660924180, - "narHash": "sha256-9oElStrKrBZ8xalxoG/BsoGBIOgdKMOkgm8j2M3drQE=", - "owner": "WindstilleTeam", - "repo": "wstsound", - "rev": "f1d641a80528240d5d7e60a2af1899d70fe2490e", - "type": "github" + "lastModified": 1775757265, + "narHash": "sha256-GYSwjbCRzLEZ3WYcOCEGvsjPBIUTRmg9Q5G3JliS3W4=", + "ref": "refs/heads/master", + "rev": "e3153e702f470f68486bee9dc4f8ebc17d9c4413", + "revCount": 523, + "type": "git", + "url": "https://github.com/WindstilleTeam/wstsound.git" }, "original": { - "owner": "WindstilleTeam", - "repo": "wstsound", - "type": "github" + "type": "git", + "url": "https://github.com/WindstilleTeam/wstsound.git" } }, "xdgcpp": { @@ -683,17 +703,17 @@ ] }, "locked": { - "lastModified": 1658512131, - "narHash": "sha256-F4D3HyaJ5djL8YzLl1tzIuum6HYirxERIsNYchBcxdU=", - "owner": "grumbel", - "repo": "xdgcpp", - "rev": "569bf5b6df6092e92ce60bebb125b75b301185e4", - "type": "github" + "lastModified": 1763261245, + "narHash": "sha256-hKVjwMh7KwZdGHGX3DrLh1ZuY6K68mMB4+7DF3X6S/w=", + "ref": "refs/heads/master", + "rev": "1c685dda3f94851be1af3d6d5971df15085c645c", + "revCount": 61, + "type": "git", + "url": "https://github.com/grumbel/xdgcpp.git" }, "original": { - "owner": "grumbel", - "repo": "xdgcpp", - "type": "github" + "type": "git", + "url": "https://github.com/grumbel/xdgcpp.git" } } }, diff --git a/flake.nix b/flake.nix index 7517ddf13..346263672 100644 --- a/flake.nix +++ b/flake.nix @@ -2,117 +2,120 @@ description = "A free Lemmings clone with penguins"; inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixos-22.05"; + nixpkgs.url = "github:NixOS/nixpkgs?ref=nixos-unstable"; flake-utils.url = "github:numtide/flake-utils"; - tinycmmc.url = "github:grumbel/tinycmmc"; + tinycmmc.url = "git+https://github.com/grumbel/tinycmmc.git"; tinycmmc.inputs.nixpkgs.follows = "nixpkgs"; tinycmmc.inputs.flake-utils.follows = "flake-utils"; - uitest.url = "github:grumbel/uitest"; + uitest.url = "git+https://github.com/grumbel/uitest.git"; uitest.inputs.nixpkgs.follows = "nixpkgs"; uitest.inputs.flake-utils.follows = "flake-utils"; uitest.inputs.tinycmmc.follows = "tinycmmc"; - argpp.url = "github:grumbel/argpp?ref=stable"; + argpp.url = "git+https://github.com/grumbel/argpp.git?ref=stable"; argpp.inputs.nixpkgs.follows = "nixpkgs"; argpp.inputs.flake-utils.follows = "flake-utils"; argpp.inputs.tinycmmc.follows = "tinycmmc"; - geomcpp.url = "github:grumbel/geomcpp"; + geomcpp.url = "git+https://github.com/grumbel/geomcpp.git"; geomcpp.inputs.nixpkgs.follows = "nixpkgs"; - geomcpp.inputs.flake-utils.follows = "flake-utils"; geomcpp.inputs.tinycmmc.follows = "tinycmmc"; - logmich.url = "github:logmich/logmich"; + logmich.url = "git+https://github.com/logmich/logmich.git"; logmich.inputs.nixpkgs.follows = "nixpkgs"; - logmich.inputs.flake-utils.follows = "flake-utils"; logmich.inputs.tinycmmc.follows = "tinycmmc"; - priocpp.url = "github:grumbel/priocpp"; + sexpcpp.url = "git+https://github.com/lispparser/sexp-cpp.git"; + sexpcpp.inputs.nixpkgs.follows = "nixpkgs"; + sexpcpp.inputs.flake-utils.follows = "flake-utils"; + sexpcpp.inputs.tinycmmc.follows = "tinycmmc"; + + priocpp.url = "git+https://github.com/grumbel/priocpp.git"; priocpp.inputs.nixpkgs.follows = "nixpkgs"; priocpp.inputs.flake-utils.follows = "flake-utils"; priocpp.inputs.tinycmmc.follows = "tinycmmc"; priocpp.inputs.logmich.follows = "logmich"; priocpp.inputs.sexpcpp.follows = "sexpcpp"; - sexpcpp.url = "github:lispparser/sexp-cpp"; - sexpcpp.inputs.nixpkgs.follows = "nixpkgs"; - sexpcpp.inputs.flake-utils.follows = "flake-utils"; - sexpcpp.inputs.tinycmmc.follows = "tinycmmc"; - - strutcpp.url = "github:grumbel/strutcpp"; + strutcpp.url = "git+https://github.com/grumbel/strutcpp.git"; strutcpp.inputs.nixpkgs.follows = "nixpkgs"; - strutcpp.inputs.flake-utils.follows = "flake-utils"; strutcpp.inputs.tinycmmc.follows = "tinycmmc"; - tinygettext.url = "github:tinygettext/tinygettext"; + tinygettext.url = "git+https://github.com/tinygettext/tinygettext.git"; tinygettext.inputs.nixpkgs.follows = "nixpkgs"; tinygettext.inputs.flake-utils.follows = "flake-utils"; tinygettext.inputs.tinycmmc.follows = "tinycmmc"; - xdgcpp.url = "github:grumbel/xdgcpp"; + xdgcpp.url = "git+https://github.com/grumbel/xdgcpp.git"; xdgcpp.inputs.nixpkgs.follows = "nixpkgs"; xdgcpp.inputs.flake-utils.follows = "flake-utils"; - xdgcpp.inputs.tinycmmc.follows = "tinycmmc"; - wstsound.url = "github:WindstilleTeam/wstsound"; + wstsound.url = "git+https://github.com/WindstilleTeam/wstsound.git"; wstsound.inputs.nixpkgs.follows = "nixpkgs"; wstsound.inputs.flake-utils.follows = "flake-utils"; wstsound.inputs.tinycmmc.follows = "tinycmmc"; - SDL2-win32.url = "github:grumnix/SDL2-win32"; + SDL2-win32.url = "git+https://github.com/grumnix/SDL2-win32.git"; SDL2-win32.inputs.nixpkgs.follows = "nixpkgs"; SDL2-win32.inputs.tinycmmc.follows = "tinycmmc"; - SDL2_image-win32.url = "github:grumnix/SDL2_image-win32"; + SDL2_image-win32.url = "git+https://github.com/grumnix/SDL2_image-win32.git"; SDL2_image-win32.inputs.nixpkgs.follows = "nixpkgs"; SDL2_image-win32.inputs.tinycmmc.follows = "tinycmmc"; }; outputs = { self, nixpkgs, flake-utils, - tinycmmc, uitest, argpp, geomcpp, logmich, priocpp, sexpcpp, strutcpp, + tinycmmc, uitest, argpp, geomcpp, logmich, priocpp, strutcpp, sexpcpp, tinygettext, xdgcpp, wstsound, SDL2-win32, SDL2_image-win32 }: tinycmmc.lib.eachSystemWithPkgs (pkgs: - { + rec { packages = rec { default = pingus; pingus = pkgs.callPackage ./pingus.nix { inherit self; - argpp = argpp.packages.${pkgs.system}.default; - geomcpp = geomcpp.packages.${pkgs.system}.default; - logmich = logmich.packages.${pkgs.system}.default; - priocpp = priocpp.packages.${pkgs.system}.default; - sexpcpp = sexpcpp.packages.${pkgs.system}.default; - strutcpp = strutcpp.packages.${pkgs.system}.default; - tinycmmc = tinycmmc.packages.${pkgs.system}.default; - tinygettext = tinygettext.packages.${pkgs.system}.default; - uitest = uitest.packages.${pkgs.system}.default; - wstsound = wstsound.packages.${pkgs.system}.default; - xdgcpp = if !pkgs.targetPlatform.isWindows - then xdgcpp.packages.${pkgs.system}.default + stdenv = pkgs.stdenv; + + argpp = argpp.packages.${pkgs.stdenv.hostPlatform.system}.default; + geomcpp = geomcpp.packages.${pkgs.stdenv.hostPlatform.system}.default; + logmich = logmich.packages.${pkgs.stdenv.hostPlatform.system}.default; + priocpp = priocpp.packages.${pkgs.stdenv.hostPlatform.system}.priocpp-sexp; + strutcpp = strutcpp.packages.${pkgs.stdenv.hostPlatform.system}.default; + tinycmmc = tinycmmc.packages.${pkgs.stdenv.hostPlatform.system}.default; + tinygettext = tinygettext.packages.${pkgs.stdenv.hostPlatform.system}.default; + uitest = uitest.packages.${pkgs.stdenv.hostPlatform.system}.default; + wstsound = wstsound.packages.${pkgs.stdenv.hostPlatform.system}.default; + xdgcpp = if !pkgs.stdenv.hostPlatform.isWindows + then xdgcpp.packages.${pkgs.stdenv.hostPlatform.system}.default else null; - mcfgthreads = if pkgs.targetPlatform.isWindows + mcfgthreads = if pkgs.stdenv.hostPlatform.isWindows then pkgs.windows.mcfgthreads else null; - - SDL2 = if pkgs.targetPlatform.isWindows - then SDL2-win32.packages.${pkgs.system}.default + libGL = if pkgs.stdenv.hostPlatform.isWindows + then null + else pkgs.libGL; + libGLU = if pkgs.stdenv.hostPlatform.isWindows + then null + else pkgs.libGLU; + + SDL2 = if pkgs.stdenv.hostPlatform.isWindows + then SDL2-win32.packages.${pkgs.stdenv.hostPlatform.system}.default else pkgs.SDL2; - SDL2_image = if pkgs.targetPlatform.isWindows - then SDL2_image-win32.packages.${pkgs.system}.default + SDL2_image = if pkgs.stdenv.hostPlatform.isWindows + then SDL2_image-win32.packages.${pkgs.stdenv.hostPlatform.system}.default else pkgs.SDL2_image; }; - + } // (pkgs.lib.optionalAttrs (pkgs.stdenv.hostPlatform.isWindows) rec { pingus-win32 = pkgs.runCommand "pingus-win32" {} '' mkdir -p $out mkdir -p $out/data/ - cp -vr ${pingus}/bin/pingus.exe $out/ - cp -vLr ${pingus}/bin/*.dll $out/ - cp -vr ${pingus}/share/pingus/. $out/data/ + cp -vr ${packages.pingus}/bin/pingus.exe $out/ + cp -vLr ${packages.pingus}/bin/*.dll $out/ + cp -vr ${packages.pingus}/share/pingus/. $out/data/ ''; pingus-win32-zip = pkgs.runCommand "pingus-win32-zip" {} '' @@ -125,10 +128,10 @@ cd "$WORKDIR" ${nixpkgs.legacyPackages.x86_64-linux.zip}/bin/zip \ -r \ - $out/pingus-${pingus.version}-${pkgs.system}.zip \ + $out/pingus-${packages.pingus.version}-${pkgs.stdenv.hostPlatform.system}.zip \ . ''; - }; + }); } ); } diff --git a/licenseDMG.py b/licenseDMG.py deleted file mode 100755 index c2f6fbf91..000000000 --- a/licenseDMG.py +++ /dev/null @@ -1,141 +0,0 @@ -#! /usr/bin/env python -""" -This script adds a license file to a DMG. Requires Xcode and a plain ascii text -license file. -Obviously only runs on a Mac. - -Copyright (C) 2011 Jared Hobbs - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -""" -import os -import sys -import tempfile -import optparse - - -class Path(str): - def __enter__(self): - return self - - def __exit__(self, type, value, traceback): - os.unlink(self) - - -def mktemp(dir=None, suffix=''): - (fd, filename) = tempfile.mkstemp(dir=dir, suffix=suffix) - os.close(fd) - return Path(filename) - - -def main(options, args): - dmgFile, license = args - with mktemp('.') as tmpFile: - with open(tmpFile, 'w') as f: - f.write("""data 'LPic' (5000) { - $"0002 0011 0003 0001 0000 0000 0002 0000" - $"0000 000E 0006 0001 0005 0007 0000 0007" - $"0008 0000 0047 0009 0000 0034 000A 0001" - $"0035 000B 0001 0020 000C 0000 0011 000D" - $"0000 005B 0004 0000 0033 000F 0001 000C" - $"0010 0000 000B 000E 0000" -};\n\n""") - with open(license, 'r') as l: - f.write('data \'TEXT\' (5002, "English") {\n') - for line in l: - if len(line) < 1000: - f.write(' "' + line.strip().replace('"', '\\"') + - '\\n"\n') - else: - for liner in line.split('.'): - f.write(' "' + - liner.strip().replace('"', '\\"') + - '. \\n"\n') - f.write('};\n\n') - f.write("""resource 'STR#' (5002, "English") { - { - "English", - "Agree", - "Disagree", - "Print", - "Save...", - "IMPORTANT - By clicking on the \\"Agree\\" button, you agree " - "to be bound by the terms of the License Agreement.", - "Software License Agreement", - "This text cannot be saved. This disk may be full or locked, or the " - "file may be locked.", - "Unable to print. Make sure you have selected a printer." - } -};""") - os.system('/usr/bin/hdiutil unflatten -quiet "%s"' % dmgFile) - os.system('%s "%s/"*.r %s -a -o "%s"' % - (options.rez, options.flat_carbon, tmpFile, dmgFile)) - - os.system('/usr/bin/hdiutil flatten -quiet "%s"' % dmgFile) - if options.compression is not None: - os.system('cp %s %s.temp.dmg' % (dmgFile, dmgFile)) - os.remove(dmgFile) - if options.compression == "bz2": - os.system('hdiutil convert %s.temp.dmg -format UDBZ -o %s' % - (dmgFile, dmgFile)) - elif options.compression == "gz": - os.system('hdiutil convert %s.temp.dmg -format ' % dmgFile + - 'UDZO -imagekey zlib-devel=9 -o %s' % dmgFile) - os.remove('%s.temp.dmg' % dmgFile) - print "Successfully added license to '%s'" % dmgFile - -if __name__ == '__main__': - parser = optparse.OptionParser() - parser.set_usage("""%prog [OPTIONS] - This program adds a software license agreement to a DMG file. - It requires Xcode and a plain ascii text . - - See --help for more details.""") - parser.add_option( - '--rez', - '-r', - action='store', - default='/Applications/Xcode.app/Contents/Developer/Tools/Rez', - help='The path to the Rez tool. Defaults to %default' - ) - parser.add_option( - '--flat-carbon', - '-f', - action='store', - default='/Applications/Xcode.app/Contents/Developer/Platforms' - '/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk' - '/Developer/Headers/FlatCarbon', - help='The path to the FlatCarbon headers. Defaults to %default' - ) - parser.add_option( - '--compression', - '-c', - action='store', - choices=['bz2', 'gz'], - default=None, - help='Optionally compress dmg using specified compression type. ' - 'Choices are bz2 and gz.' - ) - options, args = parser.parse_args() - cond = len(args) != 2 or not os.path.exists(options.rez) \ - or not os.path.exists(options.flat_carbon) - if cond: - parser.print_usage() - sys.exit(1) - main(options, args) diff --git a/pingus.appdata.xml.in b/pingus.appdata.xml.in deleted file mode 100644 index 21183bfc5..000000000 --- a/pingus.appdata.xml.in +++ /dev/null @@ -1,47 +0,0 @@ - - - - org.seul.pingus.Pingus - CC0-1.0 - GPL-3.0+ - - mild - mild - mild - mild - - Pingus - Guide groups of penguins through various obstacles - -

- A 2d side scrolling puzzle game where you guide large groups of - little penguins through various obstacles and dangers using - their numerous talents. -

-

- A level editor is included to allow building your own levels and - numerous user contributed levels are included as well. -

-

- The game is heavily inspired by the classic Lemmings. -

-
- Ingo Ruhnke - grumbel@gmail.com - https://pingus.gitlab.io - https://gitlab.com/pingus/pingus/issues - - Game - LogicGame - - - http://pingus.gitlab.io/images/screen_0.7.0-1.jpg - http://pingus.gitlab.io/images/screen_0.7.0-2.jpg - http://pingus.gitlab.io/images/screen_0.7.0-3.jpg - http://pingus.gitlab.io/images/screen_0.7.0-4.jpg - http://pingus.gitlab.io/images/screen_0.7.0-5.jpg - - - - -
diff --git a/pingus.nix b/pingus.nix index 5a76d48b0..7f6f9c73a 100644 --- a/pingus.nix +++ b/pingus.nix @@ -5,20 +5,20 @@ , SDL2 , SDL2_image , cmake -, fmt_8 +, fmt , gtest , libpng , libsigcxx , makeWrapper -, mesa -, pkgconfig +, libGL +, libGLU +, pkg-config , mcfgthreads , argpp , geomcpp , logmich , priocpp -, sexpcpp , strutcpp , tinycmmc , tinygettext @@ -50,23 +50,18 @@ stdenv.mkDerivation { nativeBuildInputs = [ cmake - pkgconfig - ] ++ (lib.optional (!stdenv.targetPlatform.isWindows) makeWrapper); + pkg-config + ] ++ (lib.optional (!stdenv.hostPlatform.isWindows) makeWrapper); postFixup = '' '' - + (lib.optionalString (!stdenv.targetPlatform.isWindows) '' - wrapProgram $out/libexec/pingus \ - --prefix LIBGL_DRIVERS_PATH ":" "${mesa.drivers}/lib/dri" \ - --prefix LD_LIBRARY_PATH ":" "${mesa.drivers}/lib" - '') - + (lib.optionalString stdenv.targetPlatform.isWindows '' + + (lib.optionalString stdenv.hostPlatform.isWindows '' mkdir -p $out/bin/ find ${mcfgthreads} -iname "*.dll" -exec ln -sfv {} $out/bin/ \; find ${stdenv.cc.cc} -iname "*.dll" -exec ln -sfv {} $out/bin/ \; ln -sfv ${SDL2}/bin/*.dll $out/bin/ ln -sfv ${SDL2_image}/bin/*.dll $out/bin/ - ln -sfv ${fmt_8}/bin/*.dll $out/bin/ + ln -sfv ${fmt}/bin/*.dll $out/bin/ ln -sfv ${gtest}/bin/*.dll $out/bin/ ln -sfv ${libsigcxx}/bin/*.dll $out/bin/ @@ -76,9 +71,12 @@ stdenv.mkDerivation { ''); buildInputs = [ + libGL + libGLU + SDL2 SDL2_image - fmt_8 + fmt gtest libpng libsigcxx @@ -87,12 +85,11 @@ stdenv.mkDerivation { geomcpp logmich priocpp - sexpcpp strutcpp tinycmmc tinygettext uitest wstsound ] - ++ lib.optional (!stdenv.targetPlatform.isWindows) xdgcpp; + ++ lib.optional (!stdenv.hostPlatform.isWindows) xdgcpp; } diff --git a/src/editor/editor_screen.cpp b/src/editor/editor_screen.cpp index 206e985a3..b2526c4e3 100644 --- a/src/editor/editor_screen.cpp +++ b/src/editor/editor_screen.cpp @@ -17,6 +17,7 @@ #include "editor/editor_screen.hpp" +#include #include #include diff --git a/src/editor/file_dialog.cpp b/src/editor/file_dialog.cpp index ed3c56d0f..31c91ca63 100644 --- a/src/editor/file_dialog.cpp +++ b/src/editor/file_dialog.cpp @@ -16,6 +16,8 @@ #include "editor/file_dialog.hpp" +#include + #include #include "editor/button.hpp" @@ -156,7 +158,7 @@ FileDialog::on_open() { Pathname file(Pathname::join(pathname_inputbox->get_text(), filename_inputbox->get_text()), Pathname::SYSTEM_PATH); - log_info("Open: {}", file); + log_info("Open: {}", fmt::streamed(file)); editor->load(file); hide(); } @@ -164,7 +166,7 @@ FileDialog::on_open() { Pathname file(Pathname::join(pathname_inputbox->get_text(), filename_inputbox->get_text()), Pathname::SYSTEM_PATH); - log_info("Save: {}", file); + log_info("Save: {}", fmt::streamed(file)); editor->save(file); hide(); } diff --git a/src/editor/level_properties.cpp b/src/editor/level_properties.cpp index 11999a0d6..14f9c14e4 100644 --- a/src/editor/level_properties.cpp +++ b/src/editor/level_properties.cpp @@ -16,6 +16,8 @@ #include "editor/level_properties.hpp" +#include + #include #include #include diff --git a/src/editor/message_box.cpp b/src/editor/message_box.cpp index 5a8c6351f..a4fcb31e0 100644 --- a/src/editor/message_box.cpp +++ b/src/editor/message_box.cpp @@ -16,6 +16,8 @@ #include "editor/message_box.hpp" +#include + #include "editor/gui_style.hpp" #include "pingus/gettext.h" #include "pingus/fonts.hpp" diff --git a/src/editor/object_properties.cpp b/src/editor/object_properties.cpp index 49737d528..23fbe1999 100644 --- a/src/editor/object_properties.cpp +++ b/src/editor/object_properties.cpp @@ -16,6 +16,8 @@ #include "editor/object_properties.hpp" +#include + #include #include #include diff --git a/src/editor/object_selector.cpp b/src/editor/object_selector.cpp index 306ddf5c6..812e9ea92 100644 --- a/src/editor/object_selector.cpp +++ b/src/editor/object_selector.cpp @@ -16,6 +16,8 @@ #include "editor/object_selector.hpp" +#include + #include #include "editor/generic_level_obj.hpp" diff --git a/src/editor/viewport.cpp b/src/editor/viewport.cpp index 90bcf9b31..d31ac3a31 100644 --- a/src/editor/viewport.cpp +++ b/src/editor/viewport.cpp @@ -17,6 +17,8 @@ #include "editor/viewport.hpp" +#include + #include #include "editor/editor_level.hpp" diff --git a/src/engine/display/display.cpp b/src/engine/display/display.cpp index b48bbb90e..f8f0b6f7c 100644 --- a/src/engine/display/display.cpp +++ b/src/engine/display/display.cpp @@ -92,7 +92,7 @@ Display::create_window(FramebufferType framebuffer_type, geom::isize const& size { assert(!s_framebuffer.get()); - log_info("{} {} {}", FramebufferType_to_string(framebuffer_type), size, (fullscreen?"fullscreen":"window")); + log_info("{} {} {}", FramebufferType_to_string(framebuffer_type), fmt::streamed(size), (fullscreen?"fullscreen":"window")); switch (framebuffer_type) { diff --git a/src/engine/display/font_description.cpp b/src/engine/display/font_description.cpp index 3c295ccf5..a5e0cf8b6 100644 --- a/src/engine/display/font_description.cpp +++ b/src/engine/display/font_description.cpp @@ -63,7 +63,7 @@ FontDescription::FontDescription(Pathname const& pathname_) : if (doc.get_root().get_name() != "pingus-font") { - throw std::runtime_error(fmt::format("{}: not a pingus-font file", pathname)); + throw std::runtime_error(fmt::format("{}: not a pingus-font file", fmt::streamed(pathname))); } else { diff --git a/src/engine/display/null_framebuffer.cpp b/src/engine/display/null_framebuffer.cpp index 12f5e5b90..f22eb8330 100644 --- a/src/engine/display/null_framebuffer.cpp +++ b/src/engine/display/null_framebuffer.cpp @@ -50,7 +50,7 @@ NullFramebuffer::~NullFramebuffer() FramebufferSurface NullFramebuffer::create_surface(Surface const& surface) { - log_info("creating surface: {}", surface.get_size()); + log_info("creating surface: {}", fmt::streamed(surface.get_size())); return FramebufferSurface(new NullFramebufferSurfaceImpl(surface.get_size())); } diff --git a/src/engine/display/screenshot.cpp b/src/engine/display/screenshot.cpp index 3464611ab..a444a80bd 100644 --- a/src/engine/display/screenshot.cpp +++ b/src/engine/display/screenshot.cpp @@ -37,7 +37,7 @@ Screenshot::save_screenshot(std::filesystem::path const& filename) Surface screen = Display::get_framebuffer()->make_screenshot(); if (screen) { - log_info("Screenshot: Saving screenshot to: {}", filename); + log_info("Screenshot: Saving screenshot to: {}", fmt::streamed(filename)); save_png(filename.string(), screen.get_data(), screen.get_width(), screen.get_height(), screen.get_pitch()); log_info("Screenshot: Screenshot is done."); } @@ -54,7 +54,7 @@ Screenshot::save_png(std::filesystem::path const& filename, uint8_t const* buffe if (fp == nullptr) { perror(filename.string().c_str()); - log_info("Screenshot: Couldn't write file: {}", filename); + log_info("Screenshot: Couldn't write file: {}", fmt::streamed(filename)); return; } diff --git a/src/engine/display/sprite_impl.cpp b/src/engine/display/sprite_impl.cpp index 80303c8a8..0b36d742c 100644 --- a/src/engine/display/sprite_impl.cpp +++ b/src/engine/display/sprite_impl.cpp @@ -41,7 +41,7 @@ FramebufferSurface load_framebuffer_surface(Pathname const& filename, ResourceMo catch(std::exception const& err) { // return a dummy surface for cases where the image file can't be found - log_error("{}: exception on load: {}", filename, err.what()); + log_error("{}: exception on load: {}", fmt::streamed(filename), err.what()); Surface surface(Pathname("images/core/misc/404.png", Pathname::DATA_PATH)); return Display::get_framebuffer()->create_surface(surface); } diff --git a/src/engine/display/surface.cpp b/src/engine/display/surface.cpp index 922bfd0f1..738716663 100644 --- a/src/engine/display/surface.cpp +++ b/src/engine/display/surface.cpp @@ -376,7 +376,7 @@ Surface::mod(ResourceModifier::Enum modifier) return Blitter::rotate_270_flip(*this); default: - log_error("Surface: unhandled modifier: {}", modifier); + log_error("Surface: unhandled modifier: {}", fmt::streamed(modifier)); return *this; } } diff --git a/src/engine/gui/gui_manager.cpp b/src/engine/gui/gui_manager.cpp index a0ce2e1e6..b8bd5f715 100644 --- a/src/engine/gui/gui_manager.cpp +++ b/src/engine/gui/gui_manager.cpp @@ -101,7 +101,7 @@ GUIManager::update(pingus::input::Event const& event) break; default: - log_warn("unhandled event type {}", event.type); + log_warn("unhandled event type {}", fmt::streamed(event.type)); break; } } diff --git a/src/engine/input/manager.cpp b/src/engine/input/manager.cpp index d763bed5c..85144a9e9 100644 --- a/src/engine/input/manager.cpp +++ b/src/engine/input/manager.cpp @@ -66,7 +66,7 @@ Manager::create_controller(std::filesystem::path const& filename) auto doc = prio::ReaderDocument::from_file(filename); if (doc.get_name() != "pingus-controller") { - throw std::runtime_error(fmt::format("Controller: invalid config file '{}'", filename)); + throw std::runtime_error(fmt::format("Controller: invalid config file '{}'", fmt::streamed(filename))); } prio::ReaderMapping reader = doc.get_mapping(); @@ -74,7 +74,7 @@ Manager::create_controller(std::filesystem::path const& filename) prio::ReaderMapping controls_mapping; if (!reader.read("controls", controls_mapping)) { - log_warn("{}: 'controls' section missing", filename); + log_warn("{}: 'controls' section missing", fmt::streamed(filename)); } else { @@ -83,7 +83,7 @@ Manager::create_controller(std::filesystem::path const& filename) prio::ReaderCollection collection; if (!controls_mapping.read(key.c_str(), collection)) { - log_error("{}: mapping must contain object at {}", filename, key); + log_error("{}: mapping must contain object at {}", fmt::streamed(filename), key); } else { diff --git a/src/engine/screen/gui_screen.cpp b/src/engine/screen/gui_screen.cpp index 33c04a368..3e53f2ec7 100644 --- a/src/engine/screen/gui_screen.cpp +++ b/src/engine/screen/gui_screen.cpp @@ -98,7 +98,7 @@ GUIScreen::update_input(pingus::input::Event const& event) break; default: - log_error("unhandled event type: {}", event.type); + log_error("unhandled event type: {}", fmt::streamed(event.type)); break; } } @@ -180,7 +180,7 @@ GUIScreen::process_button_event (pingus::input::ButtonEvent const& event) } else { - log_error("got unknown event.state: {}", event.state); + log_error("got unknown event.state: {}", fmt::streamed(event.state)); } } diff --git a/src/fwd.hpp b/src/fwd.hpp index 8c627d7d3..49910790b 100644 --- a/src/fwd.hpp +++ b/src/fwd.hpp @@ -25,7 +25,6 @@ class ArmageddonButton; class BButton; class ButtonPanel; class CollisionMap; -class CommandLineOptions; class DemoPlayer; class DrawingContext; class FPSCounter; @@ -52,6 +51,7 @@ class SmallMap; class StoryScreenComponent; class WorldObj; class WorldObjAbstractFactory; +struct CommandLineOptions; } // namespace pingus namespace pingus::gui { diff --git a/src/pingus/groundtype.cpp b/src/pingus/groundtype.cpp index 7433ce28d..a568fd01a 100644 --- a/src/pingus/groundtype.cpp +++ b/src/pingus/groundtype.cpp @@ -39,7 +39,7 @@ Groundtype::string_to_type(std::string const& arg_type) return Groundtype::GP_REMOVE; else { - log_error("Groundtype: Unhandled type: '{}'", arg_type); + log_error("Groundtype: Unhandled type: '{}'", fmt::streamed(arg_type)); return Groundtype::GP_GROUND; } } @@ -64,7 +64,7 @@ Groundtype::type_to_string(GPType arg_type) case Groundtype::GP_REMOVE: return "remove"; default: - log_error("Groundtype: Unhandled type: {}", arg_type); + log_error("Groundtype: Unhandled type: {}", fmt::streamed(arg_type)); return "ground"; } } diff --git a/src/pingus/screens/credits.cpp b/src/pingus/screens/credits.cpp index b069e5662..d853fdf0a 100644 --- a/src/pingus/screens/credits.cpp +++ b/src/pingus/screens/credits.cpp @@ -94,7 +94,7 @@ Credits::Credits(Pathname const& filename) : std::ifstream in(filename.get_sys_path()); if (!in) { - log_error("couldn't open {}", filename); + log_error("couldn't open {}", fmt::streamed(filename)); std::ostringstream out; out << "couldn't open " << filename; diff --git a/src/pingus/screens/font_test_screen.cpp b/src/pingus/screens/font_test_screen.cpp index 390ed99ea..46a7070c5 100644 --- a/src/pingus/screens/font_test_screen.cpp +++ b/src/pingus/screens/font_test_screen.cpp @@ -35,7 +35,7 @@ FontTestScreen::FontTestScreen(Pathname const& fontfile) : scroll(), dark(true) { - log_info("### Loading font file: {}", fontfile); + log_info("### Loading font file: {}", fmt::streamed(fontfile)); font = Font(FontDescription(fontfile)); reference = Font(FontDescription(Pathname("images/fonts/reference-iso-8859-1.font", Pathname::DATA_PATH))); } diff --git a/src/pingus/screens/game_session.cpp b/src/pingus/screens/game_session.cpp index 9f17ce1b0..02be9d451 100644 --- a/src/pingus/screens/game_session.cpp +++ b/src/pingus/screens/game_session.cpp @@ -240,7 +240,7 @@ GameSession::update_input(pingus::input::Event const& event) default: // unhandled event - log_info("unhandled event: {}", event.type); + log_info("unhandled event: {}", fmt::streamed(event.type)); break; } } diff --git a/src/pingus/screens/level_menu.cpp b/src/pingus/screens/level_menu.cpp index defd91567..a88861325 100644 --- a/src/pingus/screens/level_menu.cpp +++ b/src/pingus/screens/level_menu.cpp @@ -16,10 +16,10 @@ #include "pingus/screens/level_menu.hpp" -#include - +#include #include +#include #include #include "engine/display/display.hpp" diff --git a/src/pingus/screens/option_menu.cpp b/src/pingus/screens/option_menu.cpp index 8db507e4b..e86ef85ee 100644 --- a/src/pingus/screens/option_menu.cpp +++ b/src/pingus/screens/option_menu.cpp @@ -16,6 +16,7 @@ #include "pingus/screens/option_menu.hpp" +#include #include #include @@ -346,7 +347,7 @@ OptionMenu::on_escape_press() // save configuration Pathname cfg_filename(System::get_userdir() + "config", Pathname::SYSTEM_PATH); - log_info("saving configuration: {}", cfg_filename); + log_info("saving configuration: {}", fmt::streamed(cfg_filename)); config_manager.get_options().save(cfg_filename); } diff --git a/src/pingus/worldobjs/entrance.cpp b/src/pingus/worldobjs/entrance.cpp index 7c663f700..0d9da484f 100644 --- a/src/pingus/worldobjs/entrance.cpp +++ b/src/pingus/worldobjs/entrance.cpp @@ -120,7 +120,7 @@ Entrance::create_pingu() break; default: - log_error("warning direction is wrong: {}", direction); + log_error("warning direction is wrong: {}", fmt::streamed(direction)); d.right(); pingu->set_direction(d); break; diff --git a/src/util/pathname.hpp b/src/util/pathname.hpp index 544e1bfce..496cb0a28 100644 --- a/src/util/pathname.hpp +++ b/src/util/pathname.hpp @@ -17,6 +17,7 @@ #ifndef HEADER_PINGUS_UTIL_PATHNAME_HPP #define HEADER_PINGUS_UTIL_PATHNAME_HPP +#include #include #include #include