From 2260f6bf4feb62929e32a1bea9cd3f403aa034b1 Mon Sep 17 00:00:00 2001 From: Krzysztof Dermont Date: Fri, 20 Jun 2014 23:41:38 +0200 Subject: Big part of PhysFS support * removed -mod argument * removed -datadir argument * removed -lang argument * removed some dead ui code * added resource manager and file loaders (stream and SDL) * changed interface textures location to match new directory structure * removed CGameData for mod support * added PhysFS support --- CMakeLists.txt | 1 + cmake/FindPhysFS.cmake | 36 ++++ data | 2 +- src/CMakeLists.txt | 6 +- src/app/app.cpp | 44 +--- src/app/app.h | 14 +- src/app/gamedata.cpp | 123 ----------- src/app/gamedata.h | 66 ------ src/app/main.cpp | 3 + src/app/system.cpp | 16 -- src/app/system.h | 9 - src/app/system_linux.cpp | 28 --- src/app/system_linux.h | 1 - src/app/system_macosx.cpp | 20 -- src/app/system_macosx.h | 3 - src/app/system_windows.cpp | 19 -- src/app/system_windows.h | 1 - src/common/image.cpp | 3 +- src/common/resources/inputstream.cpp | 53 +++++ src/common/resources/inputstream.h | 33 +++ src/common/resources/resourcemanager.cpp | 200 ++++++++++++++++++ src/common/resources/resourcemanager.h | 40 ++++ src/common/resources/resourcestreambuffer.cpp | 121 +++++++++++ src/common/resources/resourcestreambuffer.h | 47 +++++ src/graphics/engine/engine.cpp | 25 ++- src/graphics/engine/lightning.cpp | 2 +- src/graphics/engine/modelmanager.cpp | 7 +- src/graphics/engine/particle.cpp | 8 +- src/graphics/engine/terrain.cpp | 13 +- src/graphics/engine/text.cpp | 16 +- src/object/robotmain.cpp | 20 +- src/script/script.cpp | 31 +-- src/sound/oalsound/alsound.cpp | 11 +- src/ui/button.cpp | 2 +- src/ui/check.cpp | 2 +- src/ui/color.cpp | 2 +- src/ui/compass.cpp | 2 +- src/ui/control.cpp | 16 +- src/ui/displayinfo.cpp | 282 -------------------------- src/ui/displayinfo.h | 1 - src/ui/edit.cpp | 43 ++-- src/ui/gauge.cpp | 2 +- src/ui/group.cpp | 60 +++--- src/ui/image.cpp | 2 +- src/ui/key.cpp | 2 +- src/ui/list.cpp | 10 +- src/ui/maindialog.cpp | 24 +-- src/ui/map.cpp | 28 +-- src/ui/scroll.cpp | 8 +- src/ui/shortcut.cpp | 6 +- src/ui/slider.cpp | 6 +- src/ui/window.cpp | 38 ++-- 52 files changed, 716 insertions(+), 842 deletions(-) create mode 100644 cmake/FindPhysFS.cmake delete mode 100644 src/app/gamedata.cpp delete mode 100644 src/app/gamedata.h create mode 100644 src/common/resources/inputstream.cpp create mode 100644 src/common/resources/inputstream.h create mode 100644 src/common/resources/resourcemanager.cpp create mode 100644 src/common/resources/resourcemanager.h create mode 100644 src/common/resources/resourcestreambuffer.cpp create mode 100644 src/common/resources/resourcestreambuffer.h diff --git a/CMakeLists.txt b/CMakeLists.txt index c4405d1..0e2fee4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -204,6 +204,7 @@ find_package(SDL_image 1.2 REQUIRED) find_package(SDL_ttf 2.0 REQUIRED) find_package(PNG 1.2 REQUIRED) find_package(Gettext REQUIRED) +find_package(PhysFS REQUIRED) set(Boost_USE_STATIC_LIBS ${BOOST_STATIC}) set(Boost_USE_MULTITHREADED ON) diff --git a/cmake/FindPhysFS.cmake b/cmake/FindPhysFS.cmake new file mode 100644 index 0000000..fae8378 --- /dev/null +++ b/cmake/FindPhysFS.cmake @@ -0,0 +1,36 @@ +# PHYSFS_FOUND +# PHYSFS_INCLUDE_PATH +# PHYSFS_LIBRARY +# + +IF (WIN32) + FIND_PATH( PHYSFS_INCLUDE_PATH physfs.h + DOC "The directory where physfs.h resides") + FIND_LIBRARY( PHYSFS_LIBRARY + NAMES physfs + PATHS /mingw/lib + DOC "The PhysFS library") +ELSE (WIN32) + FIND_PATH( PHYSFS_INCLUDE_PATH physfs.h + /usr/include + /usr/local/include + /opt/local/include + DOC "The directory where physfs.h resides") + FIND_LIBRARY( PHYSFS_LIBRARY + NAMES physfs + PATHS + /usr/lib64 + /usr/lib + /usr/local/lib64 + /usr/local/lib + /opt/local/lib + DOC "The PhysFS library") +ENDIF (WIN32) + +IF (PHYSFS_INCLUDE_PATH) + SET( PHYSFS_FOUND 1 CACHE STRING "Set to 1 if PhysFS is found, 0 otherwise") +ELSE (GLEW_INCLUDE_PATH) + SET( PHYSFS_FOUND 0 CACHE STRING "Set to 1 if PhysFS is found, 0 otherwise") +ENDIF (PHYSFS_INCLUDE_PATH) + +MARK_AS_ADVANCED( PHYSFS_FOUND ) diff --git a/data b/data index 3aa2028..8867360 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit 3aa20285393ba9be6b5db7bc4559f2c90f2155bf +Subproject commit 8867360074568706afcede8cbaa11f8159c96830 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 12171f3..114793d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -61,7 +61,6 @@ endif() # Source files set(SOURCES app/app.cpp -app/gamedata.cpp app/main.cpp app/pausemanager.cpp app/system.cpp @@ -75,6 +74,9 @@ common/misc.cpp common/profile.cpp common/restext.cpp common/stringutils.cpp +common/resources/resourcemanager.cpp +common/resources/resourcestreambuffer.cpp +common/resources/inputstream.cpp graphics/core/color.cpp graphics/engine/camera.cpp graphics/engine/cloud.cpp @@ -202,6 +204,7 @@ ${Boost_LIBRARIES} ${LIBSNDFILE_LIBRARY} ${OPTIONAL_LIBS} ${PLATFORM_LIBS} +${PHYSFS_LIBRARY} ) # Local @@ -224,6 +227,7 @@ ${LIBSNDFILE_INCLUDE_DIR} ${LOCALENAME_INCLUDE_DIR} ${OPTIONAL_INCLUDE_DIRS} ${CLIPBOARD_INCLUDE_DIR} +${PHYSFS_INCLUDE_PATH} ) link_directories(${CMAKE_CURRENT_SOURCE_DIR}/CBot) diff --git a/src/app/app.cpp b/src/app/app.cpp index 1efabb5..5b495c3 100644 --- a/src/app/app.cpp +++ b/src/app/app.cpp @@ -19,7 +19,6 @@ #include "app/app.h" -#include "app/gamedata.h" #include "app/system.h" #include "common/logger.h" @@ -27,6 +26,7 @@ #include "common/image.h" #include "common/key.h" #include "common/stringutils.h" +#include "common/resources/resourcemanager.h" #include "graphics/engine/modelmanager.h" #include "graphics/opengl/gldevice.h" @@ -101,7 +101,6 @@ CApplication::CApplication() m_objMan = new CObjectManager(); m_eventQueue = new CEventQueue(); m_profile = new CProfile(); - m_gameData = new CGameData(); m_engine = nullptr; m_device = nullptr; @@ -112,7 +111,6 @@ CApplication::CApplication() m_exitCode = 0; m_active = false; m_debugModes = 0; - m_customDataPath = false; m_windowTitle = "COLOBOT GOLD"; @@ -149,9 +147,6 @@ CApplication::CApplication() m_mouseButtonsState = 0; m_trackedKeys = 0; - m_dataPath = GetSystemUtils()->GetDataPath(); - m_langPath = GetSystemUtils()->GetLangPath(); - m_runSceneName = ""; m_runSceneRank = 0; @@ -266,8 +261,6 @@ ParseArgsStatus CApplication::ParseArguments(int argc, char *argv[]) GetLogger()->Message(" -scenetest win every mission right after it's loaded\n"); GetLogger()->Message(" -loglevel level set log level to level (one of: trace, debug, info, warn, error, none)\n"); GetLogger()->Message(" -language lang set language (one of: en, de, fr, pl, ru)\n"); - GetLogger()->Message(" -datadir path set custom data directory path\n"); - GetLogger()->Message(" -mod path run mod\n"); GetLogger()->Message(" -langdir path set custom language directory path\n"); GetLogger()->Message(" -vbo mode set OpenGL VBO mode (one of: auto, enable, disable)\n"); return PARSE_ARGS_HELP; @@ -331,25 +324,6 @@ ParseArgsStatus CApplication::ParseArguments(int argc, char *argv[]) m_language = language; break; } - case OPT_DATADIR: - { - m_dataPath = optarg; - m_customDataPath = true; - GetLogger()->Info("Using datadir: '%s'\n", optarg); - break; - } - case OPT_MOD: - { - m_gameData->AddMod(std::string(optarg)); - GetLogger()->Info("Running mod from path: '%s'\n", optarg); - break; - } - case OPT_LANGDIR: - { - m_langPath = optarg; - GetLogger()->Info("Using language dir: '%s'\n", m_langPath.c_str()); - break; - } case OPT_VBO: { std::string vbo; @@ -388,25 +362,17 @@ bool CApplication::Create() GetLogger()->Warn("Config not found. Default values will be used!\n"); defaultValues = true; } - else - { - if (!m_customDataPath && GetProfile().GetLocalProfileString("Resources", "Data", path)) - m_dataPath = path; - } - boost::filesystem::path dataPath(m_dataPath); + boost::filesystem::path dataPath(COLOBOT_DEFAULT_DATADIR); if (! (boost::filesystem::exists(dataPath) && boost::filesystem::is_directory(dataPath)) ) { - GetLogger()->Error("Data directory '%s' doesn't exist or is not a directory\n", m_dataPath.c_str()); + GetLogger()->Error("Data directory '%s' doesn't exist or is not a directory\n", COLOBOT_DEFAULT_DATADIR); m_errorMessage = std::string("Could not read from data directory:\n") + - std::string("'") + m_dataPath + std::string("'\n") + + std::string("'") + COLOBOT_DEFAULT_DATADIR + std::string("'\n") + std::string("Please check your installation, or supply a valid data directory by -datadir option."); m_exitCode = 1; return false; } - - m_gameData->SetDataDir(std::string(m_dataPath)); - m_gameData->Init(); if (GetProfile().GetLocalProfileString("Language", "Lang", path)) { Language language; @@ -1724,7 +1690,7 @@ void CApplication::SetLanguage(Language language) setlocale(LC_ALL, ""); - bindtextdomain("colobot", m_langPath.c_str()); + bindtextdomain("colobot", CResourceManager::GetLanguageLocation().c_str()); bind_textdomain_codeset("colobot", "UTF-8"); textdomain("colobot"); diff --git a/src/app/app.h b/src/app/app.h index 86a757f..66b8900 100644 --- a/src/app/app.h +++ b/src/app/app.h @@ -42,7 +42,6 @@ class CInstanceManager; class CEventQueue; class CRobotMain; class CSoundInterface; -class CGameData; namespace Gfx { class CModelManager; @@ -402,8 +401,6 @@ protected: CRobotMain* m_robotMain; //! Profile (INI) reader/writer CProfile* m_profile; - //! Game data - CGameData* m_gameData; //! Code to return at exit int m_exitCode; @@ -467,16 +464,7 @@ protected: std::vector m_joyAxeState; //! Current state of joystick buttons; may be updated from another thread std::vector m_joyButtonState; - - //! Path to directory with data files - std::string m_dataPath; - - //! True if datadir was passed in command line - bool m_customDataPath; - - //! Path to directory with language files - std::string m_langPath; - + //@{ //! Scene to run on startup std::string m_runSceneName; diff --git a/src/app/gamedata.cpp b/src/app/gamedata.cpp deleted file mode 100644 index 1bf3f36..0000000 --- a/src/app/gamedata.cpp +++ /dev/null @@ -1,123 +0,0 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2014, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. - -#include "app/gamedata.h" - - -#include "app/app.h" - -#include - -template<> CGameData* CSingleton::m_instance = nullptr; - -CGameData::CGameData() -{ - m_dataDirSet = false; - - for (int i = 0; i < DIR_MAX; ++i) - m_standardDataDirs[i] = nullptr; - - m_standardDataDirs[DIR_AI] = "ai"; - m_standardDataDirs[DIR_FONT] = "fonts"; - m_standardDataDirs[DIR_HELP] = "help"; - m_standardDataDirs[DIR_ICON] = "icons"; - m_standardDataDirs[DIR_LEVEL] = "levels"; - m_standardDataDirs[DIR_MODEL] = "models"; - m_standardDataDirs[DIR_MUSIC] = "music"; - m_standardDataDirs[DIR_SOUND] = "sounds"; - m_standardDataDirs[DIR_TEXTURE] = "textures"; -} - -CGameData::~CGameData() -{ -} - -void CGameData::SetDataDir(std::string path) -{ - assert(!m_dataDirSet); - m_dataDirSet = true; - - m_dataDirs.insert(m_dataDirs.begin(), path); -} - -void CGameData::AddMod(std::string path) -{ - m_dataDirs.push_back(path); -} - -void CGameData::Init() -{ - std::string out = "Using datadirs: "; - bool first = true; - for(std::vector::reverse_iterator rit = m_dataDirs.rbegin(); rit != m_dataDirs.rend(); ++rit) { - if(!first) out += ", "; - first = false; - out += *rit; - } - out += "\n"; - CLogger::GetInstancePointer()->Info(out.c_str()); -} - -std::string CGameData::GetFilePath(DataDir dir, const std::string& subpath) -{ - int index = static_cast(dir); - assert(index >= 0 && index < DIR_MAX); - - for(std::vector::reverse_iterator rit = m_dataDirs.rbegin(); rit != m_dataDirs.rend(); ++rit) { - std::stringstream str; - str << *rit; - str << "/"; - str << m_standardDataDirs[index]; - if (dir == DIR_HELP) - { - str << "/"; - str << CApplication::GetInstancePointer()->GetLanguageChar(); - } - str << "/"; - str << subpath; - boost::filesystem::path path(str.str()); - if(boost::filesystem::exists(path)) - { - return str.str(); - } - } - - std::stringstream str; - str << m_dataDirs[0]; - str << "/"; - str << m_standardDataDirs[index]; - if (dir == DIR_HELP) - { - str << "/"; - str << CApplication::GetInstancePointer()->GetLanguageChar(); - } - str << "/"; - str << subpath; - return str.str(); -} - -std::string CGameData::GetDataPath(const std::string &subpath) -{ - for(std::vector::reverse_iterator rit = m_dataDirs.rbegin(); rit != m_dataDirs.rend(); ++rit) { - std::string path = *rit + "/" + subpath; - boost::filesystem::path boostPath(path); - if(boost::filesystem::exists(boostPath)) - { - return path; - } - } - return m_dataDirs[0] + "/" + subpath; -} diff --git a/src/app/gamedata.h b/src/app/gamedata.h deleted file mode 100644 index b7536a2..0000000 --- a/src/app/gamedata.h +++ /dev/null @@ -1,66 +0,0 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2014, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. - -/** - * \file app/gamedata.h - * \brief Game data - */ - -#pragma once - -#include "common/singleton.h" - -#include -#include - -/** - * \enum DataDir - * \brief Directories in data directory - */ -enum DataDir -{ - DIR_AI, //! < ai scripts - DIR_FONT, //! < fonts - DIR_HELP, //! < help files - DIR_ICON, //! < icons & images - DIR_LEVEL, //! < levels - DIR_MODEL, //! < models - DIR_MUSIC, //! < music - DIR_SOUND, //! < sounds - DIR_TEXTURE, //! < textures - - DIR_MAX //! < number of dirs -}; - -class CGameData : public CSingleton -{ -public: - CGameData(); - ~CGameData(); - - void Init(); - void SetDataDir(std::string path); - void AddMod(std::string path); - - std::string GetFilePath(DataDir dir, const std::string &subpath); - std::string GetDataPath(const std::string &subpath); - -private: - bool m_dataDirSet; - std::vector m_dataDirs; - const char* m_standardDataDirs[DIR_MAX]; -}; - diff --git a/src/app/main.cpp b/src/app/main.cpp index 5c0afd3..324acc2 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -69,6 +69,7 @@ The current layout is the following: - src/script - link with the CBot library */ +#include "common/resources/resourcemanager.h" //! Entry point to the program extern "C" @@ -77,6 +78,8 @@ extern "C" int SDL_MAIN_FUNC(int argc, char *argv[]) { CLogger logger; // single istance of logger + CResourceManager manager(argv[0]); + manager.AddLocation(COLOBOT_DEFAULT_DATADIR); // Initialize static string arrays InitializeRestext(); diff --git a/src/app/system.cpp b/src/app/system.cpp index eaa9e4c..b2e6b47 100644 --- a/src/app/system.cpp +++ b/src/app/system.cpp @@ -192,23 +192,7 @@ float CSystemUtils::TimeStampDiff(SystemTimeStamp *before, SystemTimeStamp *afte return result; } -std::string CSystemUtils::GetDataPath() -{ - return COLOBOT_DEFAULT_DATADIR; -} - -std::string CSystemUtils::GetLangPath() -{ - return COLOBOT_I18N_DIR; -} - std::string CSystemUtils::GetProfileFileLocation() { return std::string("colobot.ini"); } - -std::string CSystemUtils::GetSavegameDirectoryLocation() -{ - return std::string("savegame"); -} - diff --git a/src/app/system.h b/src/app/system.h index c2125fe..01f2672 100644 --- a/src/app/system.h +++ b/src/app/system.h @@ -130,17 +130,8 @@ public: /** The difference is \a after - \a before. */ virtual long long TimeStampExactDiff(SystemTimeStamp *before, SystemTimeStamp *after) = 0; - //! Returns the data path (containing textures, levels, helpfiles, etc) - virtual std::string GetDataPath(); - - //! Returns the translations path - virtual std::string GetLangPath(); - //! Returns the profile (colobot.ini) file location virtual std::string GetProfileFileLocation(); - - //! Returns the savegame directory location - virtual std::string GetSavegameDirectoryLocation(); }; //! Global function to get CSystemUtils instance diff --git a/src/app/system_linux.cpp b/src/app/system_linux.cpp index 492af7d..e584cd1 100644 --- a/src/app/system_linux.cpp +++ b/src/app/system_linux.cpp @@ -121,31 +121,3 @@ std::string CSystemUtilsLinux::GetProfileFileLocation() return profileFile; } - -std::string CSystemUtilsLinux::GetSavegameDirectoryLocation() -{ - std::string savegameDir; - - // Determine savegame dir according to XDG Base Directory Specification - char *envXDG_DATA_HOME = getenv("XDG_CONFIG_DATA"); - if (envXDG_DATA_HOME == NULL) - { - char *envHOME = getenv("HOME"); - if (envHOME == NULL) - { - savegameDir = "/tmp/colobot-savegame"; - } - else - { - savegameDir = std::string(envHOME) + "/.local/share/colobot"; - } - } - else - { - savegameDir = std::string(envXDG_DATA_HOME) + "/colobot"; - } - GetLogger()->Trace("Saved game files are going to %s\n", savegameDir.c_str()); - - return savegameDir; -} - diff --git a/src/app/system_linux.h b/src/app/system_linux.h index 212d840..ad26454 100644 --- a/src/app/system_linux.h +++ b/src/app/system_linux.h @@ -47,7 +47,6 @@ public: virtual long long TimeStampExactDiff(SystemTimeStamp *before, SystemTimeStamp *after) override; virtual std::string GetProfileFileLocation() override; - virtual std::string GetSavegameDirectoryLocation() override; private: bool m_zenityAvailable; diff --git a/src/app/system_macosx.cpp b/src/app/system_macosx.cpp index 68f5c79..38885eb 100644 --- a/src/app/system_macosx.cpp +++ b/src/app/system_macosx.cpp @@ -87,16 +87,6 @@ void CSystemUtilsMacOSX::Init() m_dataPath += "/Contents/Resources"; } -std::string CSystemUtilsMacOSX::GetDataPath() -{ - return m_dataPath; -} - -std::string CSystemUtilsMacOSX::GetLangPath() -{ - return m_dataPath + "/i18n"; -} - std::string CSystemUtilsMacOSX::GetProfileFileLocation() { std::string profileFile = m_ASPath + "/colobot.ini"; @@ -104,13 +94,3 @@ std::string CSystemUtilsMacOSX::GetProfileFileLocation() GetLogger()->Trace("Profile file is %s\n", profileFile.c_str()); return profileFile; } - -std::string CSystemUtilsMacOSX::GetSavegameDirectoryLocation() -{ - std::string savegameDir = m_ASPath + "/savegame"; - boost::filesystem::create_directories(savegameDir.c_str()); - GetLogger()->Trace("Saved game files are going to %s\n", savegameDir.c_str()); - - return savegameDir; -} - diff --git a/src/app/system_macosx.h b/src/app/system_macosx.h index b6a044b..7360af1 100644 --- a/src/app/system_macosx.h +++ b/src/app/system_macosx.h @@ -28,10 +28,7 @@ class CSystemUtilsMacOSX : public CSystemUtilsOther public: virtual void Init() override; - virtual std::string GetDataPath() override; - virtual std::string GetLangPath() override; virtual std::string GetProfileFileLocation() override; - virtual std::string GetSavegameDirectoryLocation() override; private: std::string m_ASPath; std::string m_dataPath; diff --git a/src/app/system_windows.cpp b/src/app/system_windows.cpp index f48d4e0..ffaa18a 100644 --- a/src/app/system_windows.cpp +++ b/src/app/system_windows.cpp @@ -128,22 +128,3 @@ std::string CSystemUtilsWindows::GetProfileFileLocation() return profileFile; } - -std::string CSystemUtilsWindows::GetSavegameDirectoryLocation() -{ - std::string savegameDir; - - char* envUSERPROFILE = getenv("USERPROFILE"); - if (envUSERPROFILE == NULL) - { - savegameDir = "savegame"; - } - else - { - savegameDir = std::string(envUSERPROFILE) + "\\colobot\\savegame"; - } - GetLogger()->Trace("Saved game files are going to %s\n", savegameDir.c_str()); - - return savegameDir; -} - diff --git a/src/app/system_windows.h b/src/app/system_windows.h index fbc71a1..0a41c1a 100644 --- a/src/app/system_windows.h +++ b/src/app/system_windows.h @@ -45,7 +45,6 @@ public: virtual long long TimeStampExactDiff(SystemTimeStamp *before, SystemTimeStamp *after) override; virtual std::string GetProfileFileLocation() override; - virtual std::string GetSavegameDirectoryLocation() override; private: std::string UTF8_Encode(const std::wstring &wstr); diff --git a/src/common/image.cpp b/src/common/image.cpp index 8a876e3..aec3d4e 100644 --- a/src/common/image.cpp +++ b/src/common/image.cpp @@ -18,6 +18,7 @@ #include "common/image.h" #include "math/func.h" +#include "common/resources/resourcemanager.h" #include #include @@ -381,7 +382,7 @@ bool CImage::Load(const std::string& fileName) m_error = ""; - m_data->surface = IMG_Load(fileName.c_str()); + m_data->surface = IMG_Load_RW(CResourceManager::GetSDLFileHandler(fileName.c_str()), 1); if (m_data->surface == nullptr) { delete m_data; diff --git a/src/common/resources/inputstream.cpp b/src/common/resources/inputstream.cpp new file mode 100644 index 0000000..e121971 --- /dev/null +++ b/src/common/resources/inputstream.cpp @@ -0,0 +1,53 @@ +// * This file is part of the COLOBOT source code +// * Copyright (C) 2014 Polish Portal of Colobot (PPC) +// * +// * 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 http://www.gnu.org/licenses/. + +#include "common/resources/inputstream.h" +#include "common/resources/resourcestreambuffer.h" + + +CInputStream::CInputStream() : std::istream(new CResourceStreamBuffer()) +{ +} + + +CInputStream::~CInputStream() +{ + delete rdbuf(); +} + + +void CInputStream::open(const std::string& filename) +{ + static_cast(rdbuf())->open(filename); +} + + +void CInputStream::close() +{ + static_cast(rdbuf())->close(); +} + + +bool CInputStream::is_open() +{ + return static_cast(rdbuf())->is_open(); +} + + +size_t CInputStream::size() +{ + return static_cast(rdbuf())->size(); +} diff --git a/src/common/resources/inputstream.h b/src/common/resources/inputstream.h new file mode 100644 index 0000000..9d1c578 --- /dev/null +++ b/src/common/resources/inputstream.h @@ -0,0 +1,33 @@ +// * This file is part of the COLOBOT source code +// * Copyright (C) 2014 Polish Portal of Colobot (PPC) +// * +// * 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 http://www.gnu.org/licenses/. + +#pragma once + +#include +#include + + +class CInputStream : public std::istream +{ +public: + CInputStream(); + virtual ~CInputStream(); + + void open(const std::string &filename); + void close(); + bool is_open(); + size_t size(); +}; diff --git a/src/common/resources/resourcemanager.cpp b/src/common/resources/resourcemanager.cpp new file mode 100644 index 0000000..ccef2a3 --- /dev/null +++ b/src/common/resources/resourcemanager.cpp @@ -0,0 +1,200 @@ +// * This file is part of the COLOBOT source code +// * Copyright (C) 2014 Polish Portal of Colobot (PPC) +// * +// * 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 http://www.gnu.org/licenses/. + + +#include "common/resources/resourcemanager.h" + +#include "common/config.h" + +#include + + +CResourceManager::CResourceManager(const char *argv0) +{ + if (PHYSFS_init(argv0)) + { + // TODO error + } +} + + +CResourceManager::~CResourceManager() +{ + if (PHYSFS_isInit()) + { + if (PHYSFS_deinit()) + { + // TODO error + } + } +} + + +bool CResourceManager::AddLocation(const std::string &location, bool prepend) +{ + if (PHYSFS_isInit()) + { + if (PHYSFS_mount(location.c_str(), nullptr, prepend ? 0 : 1)) + { + // TODO error + } + } + + return false; +} + + +bool CResourceManager::RemoveLocation(const std::string &location) +{ + if (PHYSFS_isInit()) + { + if (PHYSFS_removeFromSearchPath(location.c_str())) + { + // TODO error + } + } + + return false; +} + + +bool CResourceManager::SetSaveLocation(const std::string &location) +{ + if (PHYSFS_isInit()) + { + if (PHYSFS_setWriteDir(location.c_str())) + { + // TODO error + } + } + + return false; +} + + +std::string CResourceManager::GetLanguageLocation() +{ + return COLOBOT_I18N_DIR; +} + + +SDL_RWops* CResourceManager::GetSDLFileHandler(const std::string &filename) +{ + SDL_RWops *handler = SDL_AllocRW(); + if (!handler) + { + // TODO error + return nullptr; + } + + if (!PHYSFS_isInit()) + { + SDL_FreeRW(handler); + return nullptr; + } + + PHYSFS_File *file = PHYSFS_openRead(filename.c_str()); + if (!file) + { + SDL_FreeRW(handler); + return nullptr; + } + + handler->seek = SDLSeek; + handler->read = SDLRead; + handler->write = SDLWrite; + handler->close = SDLClose; + handler->type = 0xc010b04f; + handler->hidden.unknown.data1 = file; + + return handler; +} + + +int CResourceManager::SDLClose(SDL_RWops* context) +{ + if (CheckSDLContext(context)) + { + PHYSFS_close(static_cast(context->hidden.unknown.data1)); + SDL_FreeRW(context); + + return 0; + } + + return 1; +} + + +int CResourceManager::SDLRead(SDL_RWops* context, void* ptr, int size, int maxnum) +{ + if (CheckSDLContext(context)) + { + PHYSFS_File *file = static_cast(context->hidden.unknown.data1); + SDL_memset(ptr, 0, size * maxnum); + + return PHYSFS_read(file, ptr, size, maxnum); + } + + return 0; +} + + +int CResourceManager::SDLWrite(SDL_RWops* context, const void* ptr, int size, int num) +{ + return 0; +} + + +int CResourceManager::SDLSeek(SDL_RWops* context, int offset, int whence) +{ + if (CheckSDLContext(context)) + { + PHYSFS_File *file = static_cast(context->hidden.unknown.data1); + int position, result; + + switch (whence) + { + default: + case RW_SEEK_SET: + result = PHYSFS_seek(file, offset); + return result > 0 ? offset : -1; + + case RW_SEEK_CUR: + position = offset + PHYSFS_tell(file); + result = PHYSFS_seek(file, position); + return result > 0 ? position : -1; + + case RW_SEEK_END: + position = PHYSFS_fileLength(file) - offset; + result = PHYSFS_seek(file, position); + return result > 0 ? position : -1; + } + } + + return -1; +} + + +bool CResourceManager::CheckSDLContext(SDL_RWops* context) +{ + if (context->type != 0xc010b04f) + { + SDL_SetError("Wrong kind of RWops"); + return false; + } + + return true; +} diff --git a/src/common/resources/resourcemanager.h b/src/common/resources/resourcemanager.h new file mode 100644 index 0000000..ba11d73 --- /dev/null +++ b/src/common/resources/resourcemanager.h @@ -0,0 +1,40 @@ +// * This file is part of the COLOBOT source code +// * Copyright (C) 2014 Polish Portal of Colobot (PPC) +// * +// * 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 http://www.gnu.org/licenses/. + +#pragma once + +#include +#include + +class CResourceManager +{ +public: + CResourceManager(const char *argv0); + ~CResourceManager(); + + static bool AddLocation(const std::string &location, bool prepend = true); + static bool RemoveLocation(const std::string &location); + static bool SetSaveLocation(const std::string &location); + static std::string GetLanguageLocation(); + static SDL_RWops* GetSDLFileHandler(const std::string &filename); + +private: + static int SDLSeek(SDL_RWops *context, int offset, int whence); + static int SDLRead(SDL_RWops *context, void *ptr, int size, int maxnum); + static int SDLWrite(SDL_RWops *context, const void *ptr, int size, int num); + static int SDLClose(SDL_RWops *context); + static bool CheckSDLContext(SDL_RWops *context); +}; diff --git a/src/common/resources/resourcestreambuffer.cpp b/src/common/resources/resourcestreambuffer.cpp new file mode 100644 index 0000000..e7be51d --- /dev/null +++ b/src/common/resources/resourcestreambuffer.cpp @@ -0,0 +1,121 @@ +// * This file is part of the COLOBOT source code +// * Copyright (C) 2014 Polish Portal of Colobot (PPC) +// * +// * 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 http://www.gnu.org/licenses/. + +#include "common/resources/resourcestreambuffer.h" + +#include +#include + +CResourceStreamBuffer::CResourceStreamBuffer(size_t buffer_size) : m_buffer_size(buffer_size) +{ + if (buffer_size <= 0) + { + throw std::runtime_error("File buffer must be larger then 0 bytes"); + } + + m_buffer = new char[buffer_size]; +} + + +CResourceStreamBuffer::~CResourceStreamBuffer() +{ + close(); + delete m_buffer; +} + + +void CResourceStreamBuffer::open(const std::string &filename) +{ + if (PHYSFS_isInit()) + { + m_file = PHYSFS_openRead(filename.c_str()); + } +} + + +void CResourceStreamBuffer::close() +{ + if (is_open()) + { + PHYSFS_close(m_file); + } +} + + +bool CResourceStreamBuffer::is_open() +{ + return m_file; +} + + +size_t CResourceStreamBuffer::size() +{ + return PHYSFS_fileLength(m_file); +} + + +std::streambuf::int_type CResourceStreamBuffer::underflow() +{ + if (PHYSFS_eof(m_file)) + { + return traits_type::eof(); + } + + PHYSFS_sint64 read_count = PHYSFS_read(m_file, m_buffer, sizeof(char), m_buffer_size); + if (read_count <= 0) + { + return traits_type::eof(); + } + + setg(m_buffer, m_buffer, m_buffer + read_count); + + return traits_type::to_int_type(*gptr()); +} + + +std::streampos CResourceStreamBuffer::seekpos(std::streampos sp, std::ios_base::openmode which) +{ + return seekoff(off_type(sp), std::ios_base::beg, which); +} + + +std::streampos CResourceStreamBuffer::seekoff(std::streamoff off, std::ios_base::seekdir way, std::ios_base::openmode which) +{ + /* A bit of explanation: + We are reading file by m_buffer_size parts so our 3 internal pointers will be + * eback (not used here) - start of block + * gptr - position of read cursor in block + * egtpr - end of block + off argument is relative to way */ + + switch (way) + { + case std::ios_base::beg: + return pos_type(off_type(off)); + + case std::ios_base::cur: + // tell will give cursor at begining of block so we have to add where in block we currently are + return off + static_cast(PHYSFS_tell(m_file)) - static_cast (egptr() - gptr()); + + case std::ios_base::end: + return off + static_cast(PHYSFS_fileLength(m_file)); + + default: + break; + } + + return pos_type(off_type(-1)); +} diff --git a/src/common/resources/resourcestreambuffer.h b/src/common/resources/resourcestreambuffer.h new file mode 100644 index 0000000..a9ec0db --- /dev/null +++ b/src/common/resources/resourcestreambuffer.h @@ -0,0 +1,47 @@ +// * This file is part of the COLOBOT source code +// * Copyright (C) 2014 Polish Portal of Colobot (PPC) +// * +// * 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 http://www.gnu.org/licenses/. + +#pragma once + +#include +#include +#include + +class CResourceStreamBuffer : public std::streambuf +{ +public: + CResourceStreamBuffer(size_t buffer_size = 512); + virtual ~CResourceStreamBuffer(); + + void open(const std::string &filename); + void close(); + bool is_open(); + size_t size(); + +private: + int_type underflow(); + std::streampos seekpos(std::streampos sp, std::ios_base::openmode which); + std::streampos seekoff(std::streamoff off, std::ios_base::seekdir way, std::ios_base::openmode which); + + // copy ctor and assignment not implemented; + // copying not allowed + CResourceStreamBuffer(const CResourceStreamBuffer &); + CResourceStreamBuffer &operator= (const CResourceStreamBuffer &); + + PHYSFS_File *m_file; + char *m_buffer; + size_t m_buffer_size; +}; diff --git a/src/graphics/engine/engine.cpp b/src/graphics/engine/engine.cpp index d6e4415..072261b 100644 --- a/src/graphics/engine/engine.cpp +++ b/src/graphics/engine/engine.cpp @@ -19,7 +19,6 @@ #include "graphics/engine/engine.h" #include "app/app.h" -#include "app/gamedata.h" #include "common/image.h" #include "common/key.h" @@ -283,7 +282,7 @@ bool CEngine::Create() params.minFilter = TEX_MIN_FILTER_NEAREST; params.magFilter = TEX_MAG_FILTER_NEAREST; params.mipmap = false; - m_miceTexture = LoadTexture("mouse.png", params); + m_miceTexture = LoadTexture("textures/interface/mouse.png", params); GetSystemUtils()->GetCurrentTimeStamp(m_currentFrameTime); GetSystemUtils()->GetCurrentTimeStamp(m_lastFrameTime); @@ -2247,7 +2246,7 @@ Texture CEngine::CreateTexture(const std::string& texName, const TextureCreatePa if (image == nullptr) { - if (! img.Load(CGameData::GetInstancePointer()->GetFilePath(DIR_TEXTURE, texName))) + if (!img.Load(texName)) { std::string error = img.GetError(); GetLogger()->Error("Couldn't load texture '%s': %s, blacklisting\n", texName.c_str(), error.c_str()); @@ -2298,15 +2297,15 @@ Texture CEngine::LoadTexture(const std::string& name, const TextureCreateParams& bool CEngine::LoadAllTextures() { - LoadTexture("text.png"); - m_miceTexture = LoadTexture("mouse.png"); - LoadTexture("button1.png"); - LoadTexture("button2.png"); - LoadTexture("button3.png"); - LoadTexture("effect00.png"); - LoadTexture("effect01.png"); - LoadTexture("effect02.png"); - LoadTexture("map.png"); + LoadTexture("textures/interface/text.png"); + m_miceTexture = LoadTexture("textures/interface/mouse.png"); + LoadTexture("textures/interface/button1.png"); + LoadTexture("textures/interface/button2.png"); + LoadTexture("textures/interface/button3.png"); + LoadTexture("textures/interface/effect00.png"); + LoadTexture("textures/interface/effect01.png"); + LoadTexture("textures/interface/effect02.png"); + LoadTexture("textures/interface/map.png"); if (! m_backgroundName.empty()) { @@ -2415,7 +2414,7 @@ bool CEngine::ChangeTextureColor(const std::string& texName, CImage img; - if (! img.Load(CGameData::GetInstancePointer()->GetFilePath(DIR_TEXTURE, texName))) + if (!img.Load(texName)) { std::string error = img.GetError(); GetLogger()->Error("Couldn't load texture '%s': %s, blacklisting\n", texName.c_str(), error.c_str()); diff --git a/src/graphics/engine/lightning.cpp b/src/graphics/engine/lightning.cpp index 4395eec..69d8a3c 100644 --- a/src/graphics/engine/lightning.cpp +++ b/src/graphics/engine/lightning.cpp @@ -235,7 +235,7 @@ void CLightning::Draw() mat.LoadIdentity(); device->SetTransform(TRANSFORM_WORLD, mat); - m_engine->SetTexture("effect00.png"); + m_engine->SetTexture("textures/interface/effect00.png"); m_engine->SetState(ENG_RSTATE_TTEXTURE_BLACK); Math::Point texInf; diff --git a/src/graphics/engine/modelmanager.cpp b/src/graphics/engine/modelmanager.cpp index 0c0fb98..fc201fa 100644 --- a/src/graphics/engine/modelmanager.cpp +++ b/src/graphics/engine/modelmanager.cpp @@ -18,7 +18,6 @@ #include "graphics/engine/modelmanager.h" #include "app/app.h" -#include "app/gamedata.h" #include "common/logger.h" @@ -48,11 +47,9 @@ bool CModelManager::LoadModel(const std::string& fileName, bool mirrored) if (CApplication::GetInstance().IsDebugModeActive(DEBUG_MODELS)) modelFile.SetPrintDebugInfo(true); - std::string filePath = CGameData::GetInstancePointer()->GetFilePath(DIR_MODEL, fileName); - - if (!modelFile.ReadModel(filePath)) + if (!modelFile.ReadModel(fileName)) { - GetLogger()->Error("Loading model '%s' failed\n", filePath.c_str()); + GetLogger()->Error("Loading model '%s' failed\n", fileName.c_str()); return false; } diff --git a/src/graphics/engine/particle.cpp b/src/graphics/engine/particle.cpp index abee2e2..ead2387 100644 --- a/src/graphics/engine/particle.cpp +++ b/src/graphics/engine/particle.cpp @@ -198,10 +198,10 @@ void CParticle::FlushParticle(int sheet) //! Returns file name of the effect effectNN.png, with NN = number void NameParticle(std::string &name, int num) { - if (num == 1) name = "effect00.png"; - else if (num == 2) name = "effect01.png"; - else if (num == 3) name = "effect02.png"; - else if (num == 4) name = "text.png"; + if (num == 1) name = "textures/interface/effect00.png"; + else if (num == 2) name = "textures/interface/effect01.png"; + else if (num == 3) name = "textures/interface/effect02.png"; + else if (num == 4) name = "textures/interface/text.png"; else name = ""; } diff --git a/src/graphics/engine/terrain.cpp b/src/graphics/engine/terrain.cpp index 5f37cd8..037cba6 100644 --- a/src/graphics/engine/terrain.cpp +++ b/src/graphics/engine/terrain.cpp @@ -19,7 +19,6 @@ #include "graphics/engine/terrain.h" #include "app/app.h" -#include "app/gamedata.h" #include "common/image.h" #include "common/logger.h" @@ -190,10 +189,10 @@ void CTerrain::AddMaterial(int id, const std::string& texName, const Math::Point bool CTerrain::LoadResources(const std::string& fileName) { CImage img; - std::string path = CGameData::GetInstancePointer()->GetFilePath(DIR_TEXTURE, fileName); - if (! img.Load(path)) + + if (! img.Load(fileName)) { - GetLogger()->Error("Cannot load resource file: '%s'\n", path.c_str()); + GetLogger()->Error("Cannot load resource file: '%s'\n", fileName.c_str()); return false; } @@ -287,10 +286,10 @@ bool CTerrain::LoadRelief(const std::string &fileName, float scaleRelief, m_scaleRelief = scaleRelief; CImage img; - std::string path = CGameData::GetInstancePointer()->GetFilePath(DIR_TEXTURE, fileName); - if (! img.Load(path)) + + if (! img.Load(fileName)) { - GetLogger()->Error("Could not load relief file: '%s'!\n", path.c_str()); + GetLogger()->Error("Could not load relief file: '%s'!\n", fileName.c_str()); return false; } diff --git a/src/graphics/engine/text.cpp b/src/graphics/engine/text.cpp index 8fd01b7..78cf7b8 100644 --- a/src/graphics/engine/text.cpp +++ b/src/graphics/engine/text.cpp @@ -19,11 +19,11 @@ #include "graphics/engine/text.h" #include "app/app.h" -#include "app/gamedata.h" #include "common/image.h" #include "common/logger.h" #include "common/stringutils.h" +#include "common/resources/resourcemanager.h" #include "math/func.h" @@ -78,12 +78,12 @@ bool CText::Create() return false; } - m_fonts[FONT_COLOBOT] = new MultisizeFont("dvu_sans.ttf"); - m_fonts[FONT_COLOBOT_BOLD] = new MultisizeFont("dvu_sans_bold.ttf"); - m_fonts[FONT_COLOBOT_ITALIC] = new MultisizeFont("dvu_sans_italic.ttf"); + m_fonts[FONT_COLOBOT] = new MultisizeFont("fonts/dvu_sans.ttf"); + m_fonts[FONT_COLOBOT_BOLD] = new MultisizeFont("fonts/dvu_sans_bold.ttf"); + m_fonts[FONT_COLOBOT_ITALIC] = new MultisizeFont("fonts/dvu_sans_italic.ttf"); - m_fonts[FONT_COURIER] = new MultisizeFont("dvu_sans_mono.ttf"); - m_fonts[FONT_COURIER_BOLD] = new MultisizeFont("dvu_sans_mono_bold.ttf"); + m_fonts[FONT_COURIER] = new MultisizeFont("fonts/dvu_sans_mono.ttf"); + m_fonts[FONT_COURIER_BOLD] = new MultisizeFont("fonts/dvu_sans_mono_bold.ttf"); for (auto it = m_fonts.begin(); it != m_fonts.end(); ++it) { @@ -866,10 +866,8 @@ CachedFont* CText::GetOrOpenFont(FontType font, float size) return m_lastCachedFont; } - std::string path = CGameData::GetInstancePointer()->GetFilePath(DIR_FONT, mf->fileName); - m_lastCachedFont = new CachedFont(); - m_lastCachedFont->font = TTF_OpenFont(path.c_str(), pointSize); + m_lastCachedFont->font = TTF_OpenFontRW(CResourceManager::GetSDLFileHandler(mf->fileName), 1, pointSize); if (m_lastCachedFont->font == nullptr) m_error = std::string("TTF_OpenFont error ") + std::string(TTF_GetError()); diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp index 2424938..1c75137 100644 --- a/src/object/robotmain.cpp +++ b/src/object/robotmain.cpp @@ -20,7 +20,6 @@ #include "CBot/CBotDll.h" #include "app/app.h" -#include "app/gamedata.h" #include "common/event.h" #include "common/global.h" @@ -4082,8 +4081,7 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) if (Cmd(line, "Instructions") && !resetObject) { OpString(line, "name", name); - std::string path = CGameData::GetInstancePointer()->GetFilePath(DIR_HELP, name); - strcpy(m_infoFilename[SATCOM_HUSTON], path.c_str()); + strcpy(m_infoFilename[SATCOM_HUSTON], name); m_immediatSatCom = OpInt(line, "immediat", 0); if (m_version >= 2) m_beginSatCom = m_lockedSatCom = OpInt(line, "lock", 0); @@ -4094,31 +4092,27 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) if (Cmd(line, "Satellite") && !resetObject) { OpString(line, "name", name); - std::string path = CGameData::GetInstancePointer()->GetFilePath(DIR_HELP, name); - strcpy(m_infoFilename[SATCOM_SAT], path.c_str()); + strcpy(m_infoFilename[SATCOM_SAT], name); continue; } if (Cmd(line, "Loading") && !resetObject) { OpString(line, "name", name); - std::string path = CGameData::GetInstancePointer()->GetFilePath(DIR_HELP, name); - strcpy(m_infoFilename[SATCOM_LOADING], path.c_str()); + strcpy(m_infoFilename[SATCOM_LOADING], name); continue; } if (Cmd(line, "HelpFile") && !resetObject) { OpString(line, "name", name); - std::string path = CGameData::GetInstancePointer()->GetFilePath(DIR_HELP, name); - strcpy(m_infoFilename[SATCOM_PROG], path.c_str()); + strcpy(m_infoFilename[SATCOM_PROG], name); continue; } if (Cmd(line, "SoluceFile") && !resetObject) { OpString(line, "name", name); - std::string path = CGameData::GetInstancePointer()->GetFilePath(DIR_HELP, name); - strcpy(m_infoFilename[SATCOM_SOLUCE], path.c_str()); + strcpy(m_infoFilename[SATCOM_SOLUCE], name); continue; } @@ -5308,12 +5302,12 @@ void CRobotMain::ChangeColor() // PARTIPLOUF0 and PARTIDROP : ts = Math::Point(0.500f, 0.500f); ti = Math::Point(0.875f, 0.750f); - m_engine->ChangeTextureColor("effect00.png", m_colorRefWater, m_colorNewWater, colorRef2, colorNew2, 0.20f, -1.0f, ts, ti, 0, m_colorShiftWater, true); + m_engine->ChangeTextureColor("textures/interface/effect00.png", m_colorRefWater, m_colorNewWater, colorRef2, colorNew2, 0.20f, -1.0f, ts, ti, 0, m_colorShiftWater, true); // PARTIFLIC : ts = Math::Point(0.00f, 0.75f); ti = Math::Point(0.25f, 1.00f); - m_engine->ChangeTextureColor("effect02.png", m_colorRefWater, m_colorNewWater, colorRef2, colorNew2, 0.20f, -1.0f, ts, ti, 0, m_colorShiftWater, true); + m_engine->ChangeTextureColor("textures/interface/effect02.png", m_colorRefWater, m_colorNewWater, colorRef2, colorNew2, 0.20f, -1.0f, ts, ti, 0, m_colorShiftWater, true); } //! Updates the number of unnecessary objects diff --git a/src/script/script.cpp b/src/script/script.cpp index f97ed08..11aa5c1 100644 --- a/src/script/script.cpp +++ b/src/script/script.cpp @@ -18,7 +18,6 @@ #include "script/script.h" #include "app/app.h" -#include "app/gamedata.h" #include "common/global.h" #include "common/iman.h" @@ -4407,7 +4406,7 @@ void CScript::New(Ui::CEdit* edit, const char* name) sf = m_main->GetScriptFile(); if ( sf[0] != 0 ) // Load an empty program specific? { - std::string filename = CGameData::GetInstancePointer()->GetFilePath(DIR_AI, sf); + std::string filename = sf; file = fopen(filename.c_str(), "rb"); if ( file != NULL ) { @@ -4497,20 +4496,8 @@ bool CScript::ReadScript(const char* filename) { FILE* file; Ui::CEdit* edit; - std::string name; - if ( strchr(filename, '/') == 0 ) //we're reading non user script - { - name = CGameData::GetInstancePointer()->GetFilePath(DIR_AI, filename); - } - else - { - name = filename; - //TODO: is this needed? - // UserDir(name, filename, ""); - } - - file = fopen(name.c_str(), "rb"); + file = fopen(filename, "rb"); if ( file == NULL ) return false; fclose(file); @@ -4520,7 +4507,7 @@ bool CScript::ReadScript(const char* filename) edit = m_interface->CreateEdit(Math::Point(0.0f, 0.0f), Math::Point(0.0f, 0.0f), 0, EVENT_EDIT9); edit->SetMaxChar(Ui::EDITSTUDIOMAX); edit->SetAutoIndent(m_engine->GetEditIndentMode()); - edit->ReadText(name.c_str()); + edit->ReadText(filename); GetScript(edit); m_interface->DeleteControl(EVENT_EDIT9); return true; @@ -4531,16 +4518,6 @@ bool CScript::ReadScript(const char* filename) bool CScript::WriteScript(const char* filename) { Ui::CEdit* edit; - std::string name; - - if ( strchr(filename, '/') == 0 ) //we're writing non user script - { - name = CGameData::GetInstancePointer()->GetFilePath(DIR_AI, filename); - } - else - { - name = filename; - } if ( m_script == nullptr ) { @@ -4552,7 +4529,7 @@ bool CScript::WriteScript(const char* filename) edit->SetMaxChar(Ui::EDITSTUDIOMAX); edit->SetAutoIndent(m_engine->GetEditIndentMode()); edit->SetText(m_script); - edit->WriteText(name); + edit->WriteText(filename); m_interface->DeleteControl(EVENT_EDIT9); return true; } diff --git a/src/sound/oalsound/alsound.cpp b/src/sound/oalsound/alsound.cpp index 8afbdd2..4d40c3b 100644 --- a/src/sound/oalsound/alsound.cpp +++ b/src/sound/oalsound/alsound.cpp @@ -18,8 +18,6 @@ #include "sound/oalsound/alsound.h" -#include "app/gamedata.h" - #include #include @@ -165,7 +163,7 @@ int ALSound::GetMusicVolume() bool ALSound::Cache(Sound sound, const std::string &filename) { Buffer *buffer = new Buffer(); - if (buffer->LoadFromFile(CGameData::GetInstancePointer()->GetFilePath(DIR_SOUND, filename), sound)) + if (buffer->LoadFromFile(filename, sound)) { m_sounds[sound] = buffer; return true; @@ -178,7 +176,7 @@ bool ALSound::CacheMusic(const std::string &filename) if (m_music.find(filename) == m_music.end()) { Buffer *buffer = new Buffer(); - if (buffer->LoadFromFile(CGameData::GetInstancePointer()->GetFilePath(DIR_MUSIC, filename), static_cast(-1))) + if (buffer->LoadFromFile(filename, static_cast(-1))) { m_music[filename] = buffer; return true; @@ -635,21 +633,20 @@ bool ALSound::PlayMusic(const std::string &filename, bool bRepeat, float fadeTim return false; } - std::string file = CGameData::GetInstancePointer()->GetFilePath(DIR_MUSIC, filename); Buffer *buffer; // check if we have music in cache if (m_music.find(filename) == m_music.end()) { GetLogger()->Debug("Music %s was not cached!\n", filename.c_str()); - if (!boost::filesystem::exists(file)) + if (!boost::filesystem::exists(filename)) { GetLogger()->Debug("Requested music %s was not found.\n", filename.c_str()); return false; } buffer = new Buffer(); - if (!buffer->LoadFromFile(file, static_cast(-1))) + if (!buffer->LoadFromFile(filename, static_cast(-1))) { return false; } diff --git a/src/ui/button.cpp b/src/ui/button.cpp index 810d365..d859fb7 100644 --- a/src/ui/button.cpp +++ b/src/ui/button.cpp @@ -176,7 +176,7 @@ void CButton::Draw() (m_state & STATE_CARD ) == 0 && (m_state & STATE_SIMPLY) == 0 ) { - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); dp = 0.5f / 256.0f; diff --git a/src/ui/check.cpp b/src/ui/check.cpp index 6a92554..3410d2e 100644 --- a/src/ui/check.cpp +++ b/src/ui/check.cpp @@ -102,7 +102,7 @@ void CCheck::Draw() DrawShadow(m_pos, m_dim); } - m_engine->SetTexture("button1.png"); + m_engine->SetTexture("textures/interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); zoomExt = 1.00f; diff --git a/src/ui/color.cpp b/src/ui/color.cpp index cbbc0dc..b8659e3 100644 --- a/src/ui/color.cpp +++ b/src/ui/color.cpp @@ -138,7 +138,7 @@ void CColor::Draw() DrawShadow(m_pos, m_dim); } - m_engine->SetTexture("button1.png"); + m_engine->SetTexture("textures/interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); CControl::Draw(); diff --git a/src/ui/compass.cpp b/src/ui/compass.cpp index d0fe96f..ebe1908 100644 --- a/src/ui/compass.cpp +++ b/src/ui/compass.cpp @@ -88,7 +88,7 @@ void CCompass::Draw() device = m_engine->GetDevice(); - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); p1.x = m_pos.x; diff --git a/src/ui/control.cpp b/src/ui/control.cpp index 501350e..c759505 100644 --- a/src/ui/control.cpp +++ b/src/ui/control.cpp @@ -437,7 +437,7 @@ void CControl::Draw() if ( (m_state & STATE_VISIBLE) == 0 ) return; - m_engine->SetTexture("button1.png"); + m_engine->SetTexture("textures/interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); zoomExt = 1.00f; @@ -491,7 +491,7 @@ void CControl::Draw() if ( m_state & STATE_OKAY ) { - m_engine->SetTexture("button3.png"); + m_engine->SetTexture("textures/interface/button3.png"); icon = 3; // yellow with green point pressed } @@ -507,22 +507,22 @@ void CControl::Draw() { icon -= 192; #if _POLISH - m_engine->SetTexture("textp.png"); + m_engine->SetTexture("textures/interface/textp.png"); #else - m_engine->SetTexture("text.png"); + m_engine->SetTexture("textures/interface/text.png"); #endif m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); } else if ( icon >= 128 ) { icon -= 128; - m_engine->SetTexture("button3.png"); + m_engine->SetTexture("textures/interface/button3.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); } else if ( icon >= 64 ) { icon -= 64; - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); } else @@ -755,7 +755,7 @@ void CControl::DrawWarning(Math::Point pos, Math::Point dim) dp = 0.5f / 256.0f; - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 64.0f / 256.0f; @@ -799,7 +799,7 @@ void CControl::DrawShadow(Math::Point pos, Math::Point dim, float deep) dp = 0.5f/256.0f; - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState( Gfx::ENG_RSTATE_TTEXTURE_WHITE); pos.x += deep * 0.010f * 0.75f; diff --git a/src/ui/displayinfo.cpp b/src/ui/displayinfo.cpp index 8db53c5..ee29e27 100644 --- a/src/ui/displayinfo.cpp +++ b/src/ui/displayinfo.cpp @@ -342,8 +342,6 @@ void CDisplayInfo::StartDisplayInfo(std::string filename, int index, bool bSoluc m_index = index; m_bSoluce = bSoluce; -//? CreateObjectsFile(); - m_bEditLock = m_main->GetEditLock(); if ( m_bEditLock ) // edition running program? { @@ -941,284 +939,4 @@ CObject* CDisplayInfo::SearchToto() return 0; } - -// Creating the list of objects. - -struct ObjectList -{ - int total; - ObjectType type; -}; - -void ObjectAdd(ObjectList list[], ObjectType type) -{ - int i; - - for ( i=0 ; i<200 ; i++ ) - { - if ( list[i].total == 0 ) - { - list[i].total ++; - list[i].type = type; - list[i+1].total = 0; - return; - } - if ( list[i].type == type ) - { - list[i].total ++; - return; - } - } -} - -void ObjectWrite(FILE* file, ObjectList list[], int i) -{ - std::string line; - - if ( list[i].total < 10 ) - { - line = StrUtils::Format("\\c; %dx \\n;\\l;", list[i].total); - } - else - { - line = StrUtils::Format("\\c;%dx \\n;\\l;", list[i].total); - } - - std::string res; - GetResource(RES_OBJECT, list[i].type, res); - if (res.empty()) - return; - - line += res; - - line += "\\u "; - - std::string helpFilename = GetHelpFilename(list[i].type); - if (helpFilename.empty()) - return; - - line += helpFilename.substr(7); // skip "help\?\" - - auto pos = line.find(".txt"); - if (pos != std::string::npos) - { - line = line.substr(0, pos); - } - - line += ";\n"; - - fputs(line.c_str(), file); -} - -// Creates the file containing the list of objects. - -void CDisplayInfo::CreateObjectsFile() -{ - FILE* file; - CObject* pObj; - ObjectType type; - ObjectList list[200]; - std::string line; - int i; - bool bRadar, bAtLeast; - - CInstanceManager* iMan = CInstanceManager::GetInstancePointer(); - - file = fopen((std::string("help/") + CApplication::GetInstancePointer()->GetLanguageChar() + std::string("objects.txt")).c_str(), "w"); - if ( file == 0 ) return; - - list[0].total = 0; // empty list - bRadar = false; - for ( i=0 ; i<1000000 ; i++ ) - { - pObj = static_cast(iMan->SearchInstance(CLASS_OBJECT, i)); - if ( pObj == 0 ) break; - - if ( !pObj->GetActif() ) continue; - if ( !pObj->GetSelectable() ) continue; - if ( pObj->GetProxyActivate() ) continue; - - type = pObj->GetType(); - if ( type == OBJECT_NULL ) continue; - if ( type == OBJECT_FIX ) continue; - - ObjectAdd(list, type); - - if ( type == OBJECT_RADAR ) bRadar = true; - } - - if ( bRadar ) - { - GetResource(RES_TEXT, RT_SATCOM_LIST, line); - fputs(line.c_str(), file); - bAtLeast = false; - for ( i=0 ; i<200 ; i++ ) - { - if ( list[i].total == 0 ) break; // end of the list? - - if ( list[i].type == OBJECT_BASE || - list[i].type == OBJECT_HUMAN ) - { - ObjectWrite(file, list, i); - bAtLeast = true; - } - } - if ( !bAtLeast ) - { - GetResource(RES_TEXT, RT_SATCOM_NULL, line); - fputs(line.c_str(), file); - } - - fputs("\n", file); - GetResource(RES_TEXT, RT_SATCOM_BOT, line); - fputs(line.c_str(), file); - bAtLeast = false; - for ( i=0 ; i<200 ; i++ ) - { - if ( list[i].total == 0 ) break; // end of the list? - - if ( list[i].type == OBJECT_MOBILEwt || - list[i].type == OBJECT_MOBILEtt || - list[i].type == OBJECT_MOBILEft || - list[i].type == OBJECT_MOBILEit || - list[i].type == OBJECT_MOBILEwa || - list[i].type == OBJECT_MOBILEta || - list[i].type == OBJECT_MOBILEfa || - list[i].type == OBJECT_MOBILEia || - list[i].type == OBJECT_MOBILEwc || - list[i].type == OBJECT_MOBILEtc || - list[i].type == OBJECT_MOBILEfc || - list[i].type == OBJECT_MOBILEic || - list[i].type == OBJECT_MOBILEwi || - list[i].type == OBJECT_MOBILEti || - list[i].type == OBJECT_MOBILEfi || - list[i].type == OBJECT_MOBILEii || - list[i].type == OBJECT_MOBILEws || - list[i].type == OBJECT_MOBILEts || - list[i].type == OBJECT_MOBILEfs || - list[i].type == OBJECT_MOBILEis || - list[i].type == OBJECT_MOBILErt || - list[i].type == OBJECT_MOBILErc || - list[i].type == OBJECT_MOBILErr || - list[i].type == OBJECT_MOBILErs || - list[i].type == OBJECT_MOBILEsa || - list[i].type == OBJECT_MOBILEtg || - list[i].type == OBJECT_MOBILEdr ) - { - ObjectWrite(file, list, i); - bAtLeast = true; - } - } - if ( !bAtLeast ) - { - GetResource(RES_TEXT, RT_SATCOM_NULL, line); - fputs(line.c_str(), file); - } - - fputs("\n", file); - GetResource(RES_TEXT, RT_SATCOM_BUILDING, line); - fputs(line.c_str(), file); - bAtLeast = false; - for ( i=0 ; i<200 ; i++ ) - { - if ( list[i].total == 0 ) break; // end of the list? - - if ( list[i].type == OBJECT_DERRICK || - list[i].type == OBJECT_FACTORY || - list[i].type == OBJECT_STATION || - list[i].type == OBJECT_CONVERT || - list[i].type == OBJECT_REPAIR || - list[i].type == OBJECT_DESTROYER|| - list[i].type == OBJECT_TOWER || - list[i].type == OBJECT_NEST || - list[i].type == OBJECT_RESEARCH || - list[i].type == OBJECT_RADAR || - list[i].type == OBJECT_ENERGY || - list[i].type == OBJECT_LABO || - list[i].type == OBJECT_NUCLEAR || - list[i].type == OBJECT_START || - list[i].type == OBJECT_END || - list[i].type == OBJECT_INFO || - list[i].type == OBJECT_PARA || - list[i].type == OBJECT_TARGET1 || - list[i].type == OBJECT_TARGET2 || - list[i].type == OBJECT_SAFE || - list[i].type == OBJECT_HUSTON ) - { - ObjectWrite(file, list, i); - bAtLeast = true; - } - } - if ( !bAtLeast ) - { - GetResource(RES_TEXT, RT_SATCOM_NULL, line); - fputs(line.c_str(), file); - } - - fputs("\n", file); - GetResource(RES_TEXT, RT_SATCOM_FRET, line); - fputs(line.c_str(), file); - bAtLeast = false; - for ( i=0 ; i<200 ; i++ ) - { - if ( list[i].total == 0 ) break; // end of the list? - - if ( list[i].type == OBJECT_STONE || - list[i].type == OBJECT_URANIUM || - list[i].type == OBJECT_METAL || - list[i].type == OBJECT_POWER || - list[i].type == OBJECT_ATOMIC || - list[i].type == OBJECT_BULLET || - list[i].type == OBJECT_BBOX || - list[i].type == OBJECT_TNT ) - { - ObjectWrite(file, list, i); - bAtLeast = true; - } - } - if ( !bAtLeast ) - { - GetResource(RES_TEXT, RT_SATCOM_NULL, line); - fputs(line.c_str(), file); - } - - fputs("\n", file); - GetResource(RES_TEXT, RT_SATCOM_ALIEN, line); - fputs(line.c_str(), file); - bAtLeast = false; - for ( i=0 ; i<200 ; i++ ) - { - if ( list[i].total == 0 ) break; // end of the list? - - if ( list[i].type == OBJECT_MOTHER || - list[i].type == OBJECT_ANT || - list[i].type == OBJECT_BEE || - list[i].type == OBJECT_WORM || - list[i].type == OBJECT_SPIDER ) - { - ObjectWrite(file, list, i); - bAtLeast = true; - } - } - if ( !bAtLeast ) - { - GetResource(RES_TEXT, RT_SATCOM_NULL, line); - fputs(line.c_str(), file); - } - } - else - { - GetResource(RES_TEXT, RT_SATCOM_ERROR1, line); - fputs(line.c_str(), file); - GetResource(RES_TEXT, RT_SATCOM_ERROR2, line); - fputs(line.c_str(), file); - } - - fputs("\n", file); - - fclose(file); -} - - } - diff --git a/src/ui/displayinfo.h b/src/ui/displayinfo.h index 891551b..0942497 100644 --- a/src/ui/displayinfo.h +++ b/src/ui/displayinfo.h @@ -66,7 +66,6 @@ protected: void UpdateCopyButton(); void ViewDisplayInfo(); CObject* SearchToto(); - void CreateObjectsFile(); protected: Gfx::CEngine* m_engine; diff --git a/src/ui/edit.cpp b/src/ui/edit.cpp index 6602651..287d0f3 100644 --- a/src/ui/edit.cpp +++ b/src/ui/edit.cpp @@ -19,10 +19,11 @@ #include "ui/edit.h" #include "app/app.h" -#include "app/gamedata.h" #include "clipboard/clipboard.h" +#include "common/resources/inputstream.h" + #include namespace Ui { @@ -782,15 +783,13 @@ void CEdit::HyperJump(std::string name, std::string marker) sMarker = marker; -//? sprintf(filename, "help\\%s.txt", name); - if ( name[0] == '%' ) { filename = GetProfile().GetUserBasedPath(name, "") + ".txt"; } else { - filename = std::string("help/") + CApplication::GetInstancePointer()->GetLanguageChar() + "/" + name + std::string(".txt"); + filename = name + std::string(".txt"); } if ( ReadText(filename) ) @@ -1145,7 +1144,7 @@ void CEdit::DrawImage(Math::Point pos, std::string name, float width, float dp; std::string filename; - filename = GetProfile().GetUserBasedPath(name, "../icons") + ".png"; + filename = name + ".png"; m_engine->SetTexture(filename); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); @@ -1175,7 +1174,7 @@ void CEdit::DrawBack(Math::Point pos, Math::Point dim) if ( m_bGeneric ) return; - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); if ( m_bMulti ) @@ -1226,9 +1225,9 @@ void CEdit::DrawPart(Math::Point pos, Math::Point dim, int icon) float dp; #if _POLISH - m_engine->SetTexture("textp.png"); + m_engine->SetTexture("textures/interface/textp.png"); #else - m_engine->SetTexture("text.png"); + m_engine->SetTexture("textures/interface/text.png"); #endif m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); @@ -1427,7 +1426,7 @@ void CEdit::FreeImage() for (int i = 0 ; i < m_imageTotal; i++ ) { - filename = GetProfile().GetUserBasedPath(m_image[i].name, "../icons") + ".png"; + filename = m_image[i].name + ".png"; m_engine->DeleteTexture(filename); } } @@ -1437,7 +1436,7 @@ void CEdit::FreeImage() void CEdit::LoadImage(std::string name) { std::string filename; - filename = GetProfile().GetUserBasedPath(name, "../icons") + ".png"; + filename = name + ".png"; m_engine->LoadTexture(filename); } @@ -1445,7 +1444,6 @@ void CEdit::LoadImage(std::string name) bool CEdit::ReadText(std::string filename, int addSize) { - FILE *file = NULL; char *buffer; int len, i, j, n, font, iIndex, iLines, iCount, iLink, res; char iName[50]; @@ -1457,24 +1455,17 @@ bool CEdit::ReadText(std::string filename, int addSize) if ( filename[0] == 0 ) return false; boost::replace_all(filename, "\\", "/"); - - /* This is ugly but doesn't require many changes in code. If file doesn't - exists it's posible filename is absolute not full path */ std::string path = filename; - if (!fs::exists(path)) + + CInputStream stream; + stream.open(fs::path(path).make_preferred().string()); + + if (!stream.is_open()) { - path = CGameData::GetInstancePointer()->GetDataPath(filename); - } - - file = fopen(fs::path(path).make_preferred().string().c_str(), "rb"); - if ( file == NULL ) { - CLogger::GetInstancePointer()->Error("Unable to read text from file \"%s\"\n", path.c_str()); return false; } - fseek(file, 0, SEEK_END); - len = ftell(file); - fseek(file, 0, SEEK_SET); + len = stream.size(); m_maxChar = len+addSize+100; m_len = len; @@ -1492,7 +1483,7 @@ bool CEdit::ReadText(std::string filename, int addSize) buffer = new char[m_maxChar+1]; memset(buffer, 0, m_maxChar+1); - fread(buffer, 1, len, file); + stream.read(buffer, len); m_format.clear(); m_format.reserve(m_maxChar+1); @@ -1501,7 +1492,7 @@ bool CEdit::ReadText(std::string filename, int addSize) m_format.push_back(0); } - fclose(file); + stream.close(); bInSoluce = false; font = m_fontType; diff --git a/src/ui/gauge.cpp b/src/ui/gauge.cpp index a8ee41c..170db5b 100644 --- a/src/ui/gauge.cpp +++ b/src/ui/gauge.cpp @@ -75,7 +75,7 @@ void CGauge::Draw() if ( (m_state & STATE_VISIBLE) == 0 ) return; - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); dp = 0.5f/256.0f; diff --git a/src/ui/group.cpp b/src/ui/group.cpp index 64495e0..d90a9e6 100644 --- a/src/ui/group.cpp +++ b/src/ui/group.cpp @@ -87,7 +87,7 @@ void CGroup::Draw() if ( m_icon == 0 ) // hollow frame? { - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 160.0f / 256.0f; uv1.y = 192.0f / 256.0f; // u-v texture @@ -103,7 +103,7 @@ void CGroup::Draw() } if ( m_icon == 1 ) // orange solid opaque? { - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 104.0f / 256.0f; uv1.y = 48.0f / 256.0f; @@ -117,7 +117,7 @@ void CGroup::Draw() } if ( m_icon == 2 ) // orange degrade -> transparent? { - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); uv1.x = 112.0f / 256.0f; uv1.y = 48.0f / 256.0f; @@ -131,7 +131,7 @@ void CGroup::Draw() } if ( m_icon == 3 ) // transparent gradient -> gray? { - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); uv1.x = 120.0f / 256.0f; uv1.y = 48.0f / 256.0f; @@ -145,7 +145,7 @@ void CGroup::Draw() } if ( m_icon == 4 ) // degrade blue corner? { - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); uv1.x = 192.0f / 256.0f; uv1.y = 128.0f / 256.0f; @@ -159,7 +159,7 @@ void CGroup::Draw() } if ( m_icon == 5 ) // degrade orange corner? { - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); uv1.x = 224.0f / 256.0f; uv1.y = 128.0f / 256.0f; @@ -173,7 +173,7 @@ void CGroup::Draw() } if ( m_icon == 6 ) { - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 0.0f / 256.0f; // brown transparent uv1.y = 75.0f / 256.0f; @@ -189,7 +189,7 @@ void CGroup::Draw() } if ( m_icon == 7 ) { - m_engine->SetTexture("button1.png"); + m_engine->SetTexture("textures/interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 64.0f / 256.0f; uv1.y = 0.0f / 256.0f; @@ -203,7 +203,7 @@ void CGroup::Draw() } if ( m_icon == 8 ) { - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 64.0f / 256.0f; // green transparent uv1.y = 160.0f / 256.0f; @@ -217,7 +217,7 @@ void CGroup::Draw() } if ( m_icon == 9 ) { - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 64.0f / 256.0f; // red transparent uv1.y = 176.0f/256.0f; @@ -231,7 +231,7 @@ void CGroup::Draw() } if ( m_icon == 10 ) { - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 64.0f / 256.0f; // blue transparent uv1.y = 192.0f / 256.0f; @@ -245,7 +245,7 @@ void CGroup::Draw() } if ( m_icon == 11 ) { - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 64.0f / 256.0f; // yellow transparent uv1.y = 224.0f / 256.0f; @@ -262,7 +262,7 @@ void CGroup::Draw() dim.x = m_dim.x / 2.0f; dim.y = m_dim.y / 2.0f; - m_engine->SetTexture("mouse.png"); + m_engine->SetTexture("textures/interface/mouse.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); pos.x = m_pos.x-m_dim.x/300.0f; pos.y = m_pos.y+m_dim.y/300.0f+dim.y; @@ -301,7 +301,7 @@ void CGroup::Draw() } if ( m_icon == 13 ) // corner upper / left? { - m_engine->SetTexture("mouse.png"); + m_engine->SetTexture("textures/interface/mouse.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); pos.x = m_pos.x-m_dim.x/150.0f; pos.y = m_pos.y+m_dim.y/150.0f; @@ -322,7 +322,7 @@ void CGroup::Draw() } if ( m_icon == 14 ) // corner upper / right? { - m_engine->SetTexture("mouse.png"); + m_engine->SetTexture("textures/interface/mouse.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); pos.x = m_pos.x-m_dim.x/150.0f; pos.y = m_pos.y+m_dim.y/150.0f; @@ -343,7 +343,7 @@ void CGroup::Draw() } if ( m_icon == 15 ) // corner lower / left? { - m_engine->SetTexture("mouse.png"); + m_engine->SetTexture("textures/interface/mouse.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); pos.x = m_pos.x-m_dim.x/150.0f; pos.y = m_pos.y+m_dim.y/150.0f; @@ -364,7 +364,7 @@ void CGroup::Draw() } if ( m_icon == 16 ) // corner lower / left? { - m_engine->SetTexture("mouse.png"); + m_engine->SetTexture("textures/interface/mouse.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); pos.x = m_pos.x-m_dim.x/150.0f; pos.y = m_pos.y+m_dim.y/150.0f; @@ -385,7 +385,7 @@ void CGroup::Draw() } if ( m_icon == 17 ) { - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 0.0f / 256.0f; // blue frame uv1.y = 75.0f / 256.0f; @@ -401,7 +401,7 @@ void CGroup::Draw() } if ( m_icon == 18 ) // arrow> for SatCom? { - m_engine->SetTexture("button1.png"); + m_engine->SetTexture("textures/interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); uv1.x = 0.0f / 256.0f; // > uv1.y = 192.0f / 256.0f; @@ -415,7 +415,7 @@ void CGroup::Draw() } if ( m_icon == 19 ) // SatCom symbol? { - m_engine->SetTexture("button1.png"); + m_engine->SetTexture("textures/interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); uv1.x = 224.0f / 256.0f; // SatCom symbol uv1.y = 224.0f / 256.0f; @@ -429,7 +429,7 @@ void CGroup::Draw() } if ( m_icon == 20 ) // solid blue background? { - m_engine->SetTexture("button1.png"); + m_engine->SetTexture("textures/interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); uv1.x = 224.0f / 256.0f; uv1.y = 32.0f / 256.0f; @@ -443,7 +443,7 @@ void CGroup::Draw() } if ( m_icon == 21 ) // stand-by symbol? { - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); uv1.x = 160.0f / 256.0f; uv1.y = 32.0f / 256.0f; @@ -457,7 +457,7 @@ void CGroup::Draw() } if ( m_icon == 22 ) { - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 64.0f / 256.0f; // opaque yellow uv1.y = 224.0f / 256.0f; @@ -474,7 +474,7 @@ void CGroup::Draw() if ( m_icon == 23 ) { - m_engine->SetTexture("button3.png"); + m_engine->SetTexture("textures/interface/button3.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 64.0f / 256.0f; // yellow uv1.y = 192.0f / 256.0f; @@ -490,7 +490,7 @@ void CGroup::Draw() } if ( m_icon == 24 ) { - m_engine->SetTexture("button3.png"); + m_engine->SetTexture("textures/interface/button3.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 80.0f / 256.0f; // orange uv1.y = 192.0f / 256.0f; @@ -506,7 +506,7 @@ void CGroup::Draw() } if ( m_icon == 25 ) { - m_engine->SetTexture("button3.png"); + m_engine->SetTexture("textures/interface/button3.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 64.0f / 256.0f; // orange uv1.y = 208.0f / 256.0f; @@ -522,7 +522,7 @@ void CGroup::Draw() } if ( m_icon == 26 ) { - m_engine->SetTexture("button3.png"); + m_engine->SetTexture("textures/interface/button3.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 80.0f / 256.0f; // red uv1.y = 208.0f / 256.0f; @@ -538,7 +538,7 @@ void CGroup::Draw() } if ( m_icon == 27 ) { - m_engine->SetTexture("button3.png"); + m_engine->SetTexture("textures/interface/button3.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 32.0f / 256.0f; uv1.y = 0.0f / 256.0f; @@ -556,7 +556,7 @@ void CGroup::Draw() pos = m_pos; dim = m_dim; - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 32.0f / 256.0f; uv1.y = 32.0f / 256.0f; @@ -568,7 +568,7 @@ void CGroup::Draw() uv2.y -= dp; DrawIcon(pos, dim, uv1, uv2); - m_engine->SetTexture("button3.png"); + m_engine->SetTexture("textures/interface/button3.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); pos.x += 8.0f / 640.0f; pos.y += 8.0f / 480.0f; diff --git a/src/ui/image.cpp b/src/ui/image.cpp index 8f9b5ca..bd261b3 100644 --- a/src/ui/image.cpp +++ b/src/ui/image.cpp @@ -110,7 +110,7 @@ void CImage::Draw() if ( m_icon == 0 ) // hollow frame? { - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 160.0f / 256.0f; uv1.y = 192.0f / 256.0f; // u-v texture diff --git a/src/ui/key.cpp b/src/ui/key.cpp index aacc8d8..0b86a91 100644 --- a/src/ui/key.cpp +++ b/src/ui/key.cpp @@ -136,7 +136,7 @@ void CKey::Draw() DrawShadow(m_pos, m_dim); - m_engine->SetTexture("button1.png"); + m_engine->SetTexture("textures/interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); // was D3DSTATENORMAL float zoomExt = 1.00f; diff --git a/src/ui/list.cpp b/src/ui/list.cpp index f6c3ed9..b5f7599 100644 --- a/src/ui/list.cpp +++ b/src/ui/list.cpp @@ -388,7 +388,7 @@ void CList::Draw() if (m_icon == 0) { - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 128.0f / 256.0f; @@ -398,7 +398,7 @@ void CList::Draw() } else { - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 132.0f / 256.0f; @@ -434,7 +434,7 @@ void CList::Draw() dim.y *= 0.4f; pos.y -= dim.y; - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); // was D3DSTATETTw uv1.x = 120.0f / 256.0f; uv1.y = 64.0f / 256.0f; @@ -509,7 +509,7 @@ void CList::Draw() if ( m_check[i + m_firstLine] ) { - m_engine->SetTexture("button1.png"); + m_engine->SetTexture("textures/interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 64.0f / 256.0f; uv1.y = 0.0f / 256.0f; @@ -534,7 +534,7 @@ void CList::Draw() } else { - m_engine->SetTexture("button1.png"); + m_engine->SetTexture("textures/interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); // was D3DSTATETTw if ( i + m_firstLine == m_selectLine ) { diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index 1964531..9afad80 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -18,7 +18,6 @@ #include "ui/maindialog.h" #include "app/app.h" -#include "app/gamedata.h" #include "app/system.h" #include "common/config.h" @@ -182,7 +181,7 @@ CMainDialog::CMainDialog() #if DEV_BUILD m_savegameDir = "savegame"; #else - m_savegameDir = GetSystemUtils()->GetSavegameDirectoryLocation(); + m_savegameDir = "savegame"; #endif m_publicDir = "program"; @@ -389,7 +388,7 @@ pb->SetState(STATE_SHADOW); pl->SetFontType(Gfx::FONT_COURIER); pl->SetFontSize(Gfx::FONT_SIZE_SMALL); - m_engine->SetBackground("interface.png", + m_engine->SetBackground("textures/interface/interface.png", Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), @@ -509,7 +508,7 @@ pb->SetState(STATE_SHADOW); UpdateNameControl(); UpdateNameFace(); - m_engine->SetBackground("interface.png", + m_engine->SetBackground("textures/interface/interface.png", Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), @@ -973,7 +972,7 @@ pb->SetState(STATE_SHADOW); pb = pw->CreateButton(pos, ddim, -1, EVENT_INTERFACE_BACK); pb->SetState(STATE_SHADOW); - m_engine->SetBackground("interface.png", + m_engine->SetBackground("textures/interface/interface.png", Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), @@ -1172,7 +1171,7 @@ pb->SetState(STATE_SHADOW); if ( !m_bSimulSetup ) { - m_engine->SetBackground("interface.png", + m_engine->SetBackground("textures/interface/interface.png", Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), @@ -1690,7 +1689,7 @@ pos.y -= 0.048f; if ( m_phase == PHASE_READ ) { - m_engine->SetBackground("interface.png", + m_engine->SetBackground("textures/interface/interface.png", Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), @@ -1740,7 +1739,7 @@ pos.y -= 0.048f; pl->SetFontSize(12.0f); pl->SetTextAlign(Gfx::TEXT_ALIGN_CENTER); - m_engine->SetBackground("interface.png", + m_engine->SetBackground("textures/interface/interface.png", Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), @@ -1762,7 +1761,7 @@ pos.y -= 0.048f; m_engine->SetOverColor(Gfx::Color(1.0f, 1.0f, 1.0f, 1.0f), Gfx::ENG_RSTATE_TCOLOR_BLACK); // TODO: color ok? m_engine->SetOverFront(true); - m_engine->SetBackground("ppc.png", + m_engine->SetBackground("textures/interface/ppc.png", Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), @@ -1781,7 +1780,7 @@ pos.y -= 0.048f; m_engine->SetOverColor(Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::ENG_RSTATE_TCOLOR_WHITE); // TODO: color ok? m_engine->SetOverFront(true); - m_engine->SetBackground("colobot.png", + m_engine->SetBackground("textures/interface/colobot.png", Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), @@ -1800,7 +1799,7 @@ pos.y -= 0.048f; m_engine->SetOverColor(Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::ENG_RSTATE_TCOLOR_WHITE); // TODO: color ok? m_engine->SetOverFront(true); - m_engine->SetBackground("epsitec.png", + m_engine->SetBackground("textures/interface/epsitec.png", Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), @@ -1925,7 +1924,7 @@ pos.y -= 0.048f; pb->SetState(STATE_SHADOW); // #endif - m_engine->SetBackground("generico.png", + m_engine->SetBackground("textures/interface/generico.png", Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), @@ -3589,7 +3588,6 @@ void CMainDialog::BuildSceneName(std::string &filename, char *base, int rank) { rankStream << std::setfill('0') << std::setw(3) << rank; filename = base + rankStream.str() + ".txt"; - filename = CGameData::GetInstancePointer()->GetFilePath(DIR_LEVEL, filename); } } diff --git a/src/ui/map.cpp b/src/ui/map.cpp index c5f0062..1e77c08 100644 --- a/src/ui/map.cpp +++ b/src/ui/map.cpp @@ -322,7 +322,7 @@ void CMap::Draw() m_offset = AdjustOffset(m_map[MAPMAXOBJECT - 1].pos); if ( m_fixImage[0] == 0 ) { // drawing of the relief? - m_engine->SetTexture("map.png"); + m_engine->SetTexture("textures/interface/map.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 0.5f + (m_offset.x - (m_half / m_zoom)) / (m_half * 2.0f); uv1.y = 0.5f - (m_offset.y + (m_half / m_zoom)) / (m_half * 2.0f); @@ -469,7 +469,7 @@ void CMap::DrawFocus(Math::Point pos, float dir, ObjectType type, MapColor color uv2.x = 126.0f/256.0f; uv2.y = 255.0f/256.0f; - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); bEnding = false; @@ -529,7 +529,7 @@ void CMap::DrawObject(Math::Point pos, float dir, ObjectType type, MapColor colo return; // flashes } - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); if ( bUp ) { @@ -672,7 +672,7 @@ void CMap::DrawObject(Math::Point pos, float dir, ObjectType type, MapColor colo { if ( bSelect ) { - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); if ( m_bToy ) { @@ -698,7 +698,7 @@ void CMap::DrawObject(Math::Point pos, float dir, ObjectType type, MapColor colo { if ( m_bRadar ) { - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); uv1.x = 64.5f/256.0f; // blue triangle uv1.y = 240.5f/256.0f; @@ -718,7 +718,7 @@ void CMap::DrawObject(Math::Point pos, float dir, ObjectType type, MapColor colo if ( color == MAPCOLOR_WAYPOINTb ) { - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 192.5f/256.0f; // blue cross uv1.y = 240.5f/256.0f; @@ -728,7 +728,7 @@ void CMap::DrawObject(Math::Point pos, float dir, ObjectType type, MapColor colo } if ( color == MAPCOLOR_WAYPOINTr ) { - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 208.5f/256.0f; // red cross uv1.y = 240.5f/256.0f; @@ -738,7 +738,7 @@ void CMap::DrawObject(Math::Point pos, float dir, ObjectType type, MapColor colo } if ( color == MAPCOLOR_WAYPOINTg ) { - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 224.5f/256.0f; // green cross uv1.y = 240.5f/256.0f; @@ -748,7 +748,7 @@ void CMap::DrawObject(Math::Point pos, float dir, ObjectType type, MapColor colo } if ( color == MAPCOLOR_WAYPOINTy ) { - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 240.5f/256.0f; // yellow cross uv1.y = 240.5f/256.0f; @@ -758,7 +758,7 @@ void CMap::DrawObject(Math::Point pos, float dir, ObjectType type, MapColor colo } if ( color == MAPCOLOR_WAYPOINTv ) { - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 192.5f/256.0f; // violet cross uv1.y = 224.5f/256.0f; @@ -779,7 +779,7 @@ void CMap::DrawObjectIcon(Math::Point pos, Math::Point dim, MapColor color, dp = 0.5f/256.0f; - m_engine->SetTexture("button3.png"); + m_engine->SetTexture("textures/interface/button3.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); if ( color == MAPCOLOR_MOVE ) { @@ -894,7 +894,7 @@ void CMap::DrawHighlight(Math::Point pos) dim.x *= 2.0f+cosf(m_time*8.0f)*0.5f; dim.y *= 2.0f+cosf(m_time*8.0f)*0.5f; - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 160.5f/256.0f; // hilite uv1.y = 224.5f/256.0f; @@ -1052,8 +1052,8 @@ void CMap::UpdateTerrain() } } - m_engine->DeleteTexture("map.png"); - m_engine->LoadTexture("map.png", &img); + m_engine->DeleteTexture("textures/interface/map.png"); + m_engine->LoadTexture("textures/interface/map.png", &img); } // Updates the field in the map. diff --git a/src/ui/scroll.cpp b/src/ui/scroll.cpp index b3422ec..680f647 100644 --- a/src/ui/scroll.cpp +++ b/src/ui/scroll.cpp @@ -379,7 +379,7 @@ void CScroll::DrawVertex(Math::Point pos, Math::Point dim, int icon) if ( icon == 0 ) { - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 0.0f/256.0f; // yellow rectangle uv1.y = 32.0f/256.0f; @@ -389,7 +389,7 @@ void CScroll::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 1 ) { - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 128.0f/256.0f; // gray rectangle uv1.y = 32.0f/256.0f; @@ -399,7 +399,7 @@ void CScroll::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 2 ) { - m_engine->SetTexture("button1.png"); + m_engine->SetTexture("textures/interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 64.0f/256.0f; // blue rectangle uv1.y = 0.0f/256.0f; @@ -409,7 +409,7 @@ void CScroll::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else { - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 104.0f/256.0f; // blue line - uv1.y = 32.0f/256.0f; diff --git a/src/ui/shortcut.cpp b/src/ui/shortcut.cpp index a01864a..8971e9d 100644 --- a/src/ui/shortcut.cpp +++ b/src/ui/shortcut.cpp @@ -114,7 +114,7 @@ void CShortcut::Draw() zoom = 1.0f; } - m_engine->SetTexture("button3.png"); + m_engine->SetTexture("textures/interface/button3.png"); if ( icon != -1 ) { @@ -130,7 +130,7 @@ void CShortcut::Draw() Math::Point p1, p2, c, uv1, uv2; float dp; - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); zoom = 0.9f+sinf(m_time*8.0f)*0.1f; @@ -170,7 +170,7 @@ void CShortcut::Draw() Math::Point uv1, uv2; float dp; - m_engine->SetTexture("button3.png"); + m_engine->SetTexture("textures/interface/button3.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); uv1.x = 160.0f/256.0f; diff --git a/src/ui/slider.cpp b/src/ui/slider.cpp index 33293d1..7e41083 100644 --- a/src/ui/slider.cpp +++ b/src/ui/slider.cpp @@ -498,7 +498,7 @@ void CSlider::DrawVertex(Math::Point pos, Math::Point dim, int icon) if ( icon == 0 ) { - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 0.0f/256.0f; // yellow rectangle uv1.y = 32.0f/256.0f; @@ -510,7 +510,7 @@ void CSlider::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 1 ) { - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 128.0f/256.0f; // gray rectangle uv1.y = 32.0f/256.0f; @@ -522,7 +522,7 @@ void CSlider::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else { - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 224.0f/256.0f; // cursor uv1.y = 32.0f/256.0f; diff --git a/src/ui/window.cpp b/src/ui/window.cpp index ed18ce4..70bb2d5 100644 --- a/src/ui/window.cpp +++ b/src/ui/window.cpp @@ -1174,7 +1174,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) if ( icon == 0 ) { - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); uv1.x = 64.0f/256.0f; // dark blue transparent uv1.y = 64.0f/256.0f; @@ -1190,7 +1190,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 1 ) { - m_engine->SetTexture("button1.png"); + m_engine->SetTexture("textures/interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 128.0f/256.0f; // white tooltip uv1.y = 0.0f/256.0f; @@ -1204,7 +1204,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 2 ) { - m_engine->SetTexture("button1.png"); + m_engine->SetTexture("textures/interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 128.0f/256.0f; // yellow uv1.y = 16.0f/256.0f; @@ -1218,7 +1218,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 3 ) { - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 0.0f/256.0f; // transparent blue bar with yellow upper uv1.y = 64.0f/256.0f; @@ -1237,7 +1237,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) dim.x += 100.0f/640.0f; dim.y += 60.0f/480.0f; - m_engine->SetTexture("human.png"); + m_engine->SetTexture("textures/interface/human.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 140.0f/256.0f; uv1.y = 32.0f/256.0f; @@ -1254,7 +1254,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) dim.x -= 20.0f/640.0f; dim.y += 0.0f/480.0f; - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); uv1.x = 192.0f/256.0f; uv1.y = 32.0f/256.0f; @@ -1273,7 +1273,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) dim.x -= 20.0f/640.0f; dim.y -= 20.0f/480.0f; - m_engine->SetTexture("button1.png"); + m_engine->SetTexture("textures/interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 64.0f/256.0f; uv1.y = 0.0f/256.0f; @@ -1309,7 +1309,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) dim.x -= 20.0f/640.0f; dim.y -= 20.0f/480.0f; - m_engine->SetTexture("button3.png"); + m_engine->SetTexture("textures/interface/button3.png"); uv1.x = 0.0f/256.0f; uv1.y = 224.0f/256.0f; uv2.x = 32.0f/256.0f; @@ -1320,7 +1320,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) uv2.y -= dp; DrawIcon(pos, dim, uv1, uv2); // dark blue background - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); uv1.x = 224.0f/256.0f; uv1.y = 224.0f/256.0f; uv2.x = 249.0f/256.0f; @@ -1392,7 +1392,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 5 ) { - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 64.0f/256.0f; // transparent green uv1.y = 160.0f/256.0f; @@ -1406,7 +1406,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 6 ) { - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 64.0f/256.0f; // transparent red uv1.y = 176.0f/256.0f; @@ -1420,7 +1420,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 7 ) { - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 64.0f/256.0f; // transparent blue uv1.y = 192.0f/256.0f; @@ -1434,7 +1434,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 8 ) { - m_engine->SetTexture("button1.png"); + m_engine->SetTexture("textures/interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 0.0f/256.0f; // opaque orange uv1.y = 0.0f/256.0f; @@ -1450,7 +1450,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 9 ) { - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 32.0f/256.0f; // opaque gray uv1.y = 32.0f/256.0f; @@ -1470,7 +1470,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 11 ) { - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 64.0f/256.0f; // transparent yellow uv1.y = 224.0f/256.0f; @@ -1484,7 +1484,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 12 ) { - m_engine->SetTexture("button1.png"); + m_engine->SetTexture("textures/interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 128.0f/256.0f; // dirty opaque gray uv1.y = 128.0f/256.0f; @@ -1500,7 +1500,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 13 ) { - m_engine->SetTexture("button1.png"); + m_engine->SetTexture("textures/interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 192.0f/256.0f; // dirty opaque blue uv1.y = 128.0f/256.0f; @@ -1516,7 +1516,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 14 ) { - m_engine->SetTexture("button1.png"); + m_engine->SetTexture("textures/interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 160.0f/256.0f; // dirty opaque red uv1.y = 128.0f/256.0f; @@ -1544,7 +1544,7 @@ void CWindow::DrawHach(Math::Point pos, Math::Point dim) dp = 0.5f/256.0f; - m_engine->SetTexture("button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 64.0f/256.0f; // hatching uv1.y = 208.0f/256.0f; -- cgit v1.2.3-1-g7c22 From 1630cf0ed20ea8df879327af1275ff281a9bc7e0 Mon Sep 17 00:00:00 2001 From: Krzysztof Dermont Date: Sat, 21 Jun 2014 02:58:41 +0200 Subject: Implemented libsndfile loader in PhysFS --- src/CMakeLists.txt | 1 + src/common/resources/resourcemanager.cpp | 16 ++-- src/common/resources/resourcemanager.h | 3 + src/common/resources/sndfile.cpp | 130 +++++++++++++++++++++++++++++++ src/common/resources/sndfile.h | 54 +++++++++++++ src/sound/oalsound/alsound.h | 67 ++++++++-------- src/sound/oalsound/buffer.cpp | 33 ++++---- src/sound/sound.cpp | 10 +-- 8 files changed, 253 insertions(+), 61 deletions(-) create mode 100644 src/common/resources/sndfile.cpp create mode 100644 src/common/resources/sndfile.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 114793d..db53398 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -77,6 +77,7 @@ common/stringutils.cpp common/resources/resourcemanager.cpp common/resources/resourcestreambuffer.cpp common/resources/inputstream.cpp +common/resources/sndfile.cpp graphics/core/color.cpp graphics/engine/camera.cpp graphics/engine/cloud.cpp diff --git a/src/common/resources/resourcemanager.cpp b/src/common/resources/resourcemanager.cpp index ccef2a3..b01424b 100644 --- a/src/common/resources/resourcemanager.cpp +++ b/src/common/resources/resourcemanager.cpp @@ -124,7 +124,13 @@ SDL_RWops* CResourceManager::GetSDLFileHandler(const std::string &filename) } -int CResourceManager::SDLClose(SDL_RWops* context) +CSNDFile* CResourceManager::GetSNDFileHandler(const std::string &filename) +{ + return new CSNDFile(filename); +} + + +int CResourceManager::SDLClose(SDL_RWops *context) { if (CheckSDLContext(context)) { @@ -138,7 +144,7 @@ int CResourceManager::SDLClose(SDL_RWops* context) } -int CResourceManager::SDLRead(SDL_RWops* context, void* ptr, int size, int maxnum) +int CResourceManager::SDLRead(SDL_RWops *context, void *ptr, int size, int maxnum) { if (CheckSDLContext(context)) { @@ -152,13 +158,13 @@ int CResourceManager::SDLRead(SDL_RWops* context, void* ptr, int size, int maxnu } -int CResourceManager::SDLWrite(SDL_RWops* context, const void* ptr, int size, int num) +int CResourceManager::SDLWrite(SDL_RWops *context, const void *ptr, int size, int num) { return 0; } -int CResourceManager::SDLSeek(SDL_RWops* context, int offset, int whence) +int CResourceManager::SDLSeek(SDL_RWops *context, int offset, int whence) { if (CheckSDLContext(context)) { @@ -188,7 +194,7 @@ int CResourceManager::SDLSeek(SDL_RWops* context, int offset, int whence) } -bool CResourceManager::CheckSDLContext(SDL_RWops* context) +bool CResourceManager::CheckSDLContext(SDL_RWops *context) { if (context->type != 0xc010b04f) { diff --git a/src/common/resources/resourcemanager.h b/src/common/resources/resourcemanager.h index ba11d73..fec71da 100644 --- a/src/common/resources/resourcemanager.h +++ b/src/common/resources/resourcemanager.h @@ -19,6 +19,8 @@ #include #include +#include "common/resources/sndfile.h" + class CResourceManager { public: @@ -30,6 +32,7 @@ public: static bool SetSaveLocation(const std::string &location); static std::string GetLanguageLocation(); static SDL_RWops* GetSDLFileHandler(const std::string &filename); + static CSNDFile* GetSNDFileHandler(const std::string &filename); private: static int SDLSeek(SDL_RWops *context, int offset, int whence); diff --git a/src/common/resources/sndfile.cpp b/src/common/resources/sndfile.cpp new file mode 100644 index 0000000..9e8e729 --- /dev/null +++ b/src/common/resources/sndfile.cpp @@ -0,0 +1,130 @@ +// * This file is part of the COLOBOT source code +// * Copyright (C) 2014 Polish Portal of Colobot (PPC) +// * +// * 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 http://www.gnu.org/licenses/. + +#include "common/resources/sndfile.h" + +#include + + +CSNDFile::CSNDFile(const std::string& filename) +{ + memset(&m_file_info, 0, sizeof(SF_INFO)); + + if (PHYSFS_isInit()) + { + m_file = PHYSFS_openRead(filename.c_str()); + } + else + { + m_last_error = "Resource system not started!"; + } + + if (m_file) + { + m_snd_file = sf_open_virtual(&snd_callbacks, SFM_READ, &m_file_info, m_file); + if (!m_snd_file) + { + m_last_error = "Could not load file"; + } + } + else + { + m_last_error = std::string(PHYSFS_getLastError()); + } +} + + +CSNDFile::~CSNDFile() +{ + if (m_file) + { + PHYSFS_close(m_file); + } + + if (m_snd_file) + { + sf_close(m_snd_file); + } +} + + +bool CSNDFile::IsOpen() +{ + return m_snd_file; +} + + +SF_INFO &CSNDFile::GetFileInfo() +{ + return m_file_info; +} + + +std::string& CSNDFile::GetLastError() +{ + return m_last_error; +} + + +sf_count_t CSNDFile::Read(short int *ptr, sf_count_t items) +{ + return sf_read_short(m_snd_file, ptr, items); +} + + +sf_count_t CSNDFile::SNDLength(void *data) +{ + return PHYSFS_fileLength(static_cast(data)); +} + + +sf_count_t CSNDFile::SNDRead(void *ptr, sf_count_t count, void *data) +{ + return PHYSFS_read(static_cast(data), ptr, 1, count); +} + + +sf_count_t CSNDFile::SNDSeek(sf_count_t offset, int whence, void *data) +{ + PHYSFS_File *file = static_cast(data); + + switch(whence) + { + case SEEK_CUR: + PHYSFS_seek(file, PHYSFS_tell(file) + offset); + break; + case SEEK_SET: + PHYSFS_seek(file, offset); + break; + case SEEK_END: + PHYSFS_seek(file, PHYSFS_fileLength(file) + offset); + break; + } + + return PHYSFS_tell(file); +} + + +sf_count_t CSNDFile::SNDTell(void *data) +{ + return PHYSFS_tell(static_cast(data)); +} + + +sf_count_t CSNDFile::SNDWrite(const void *ptr, sf_count_t count, void *data) +{ + return PHYSFS_write(static_cast(data), ptr, 1, count); +} diff --git a/src/common/resources/sndfile.h b/src/common/resources/sndfile.h new file mode 100644 index 0000000..5ea6ccc --- /dev/null +++ b/src/common/resources/sndfile.h @@ -0,0 +1,54 @@ +// * This file is part of the COLOBOT source code +// * Copyright (C) 2014 Polish Portal of Colobot (PPC) +// * +// * 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 http://www.gnu.org/licenses/. + +#pragma once + +#include +#include +#include + + +class CSNDFile +{ +public: + CSNDFile(const std::string &filename); + virtual ~CSNDFile(); + + SF_INFO &GetFileInfo(); + bool IsOpen(); + std::string &GetLastError(); + sf_count_t Read(short int *ptr, sf_count_t items); + +private: + static sf_count_t SNDLength(void *data); + static sf_count_t SNDSeek(sf_count_t offset, int whence, void *data); + static sf_count_t SNDRead(void *ptr, sf_count_t count, void *data); + static sf_count_t SNDWrite(const void *ptr, sf_count_t count, void *data); + static sf_count_t SNDTell(void *data); + + SF_INFO m_file_info; + SNDFILE *m_snd_file; + PHYSFS_File *m_file; + std::string m_last_error; + + SF_VIRTUAL_IO snd_callbacks = { + SNDLength, + SNDSeek, + SNDRead, + SNDWrite, + SNDTell + }; +}; diff --git a/src/sound/oalsound/alsound.h b/src/sound/oalsound/alsound.h index bb9bf28..1249f14 100644 --- a/src/sound/oalsound/alsound.h +++ b/src/sound/oalsound/alsound.h @@ -48,45 +48,44 @@ public: ALSound(); ~ALSound(); - bool Create(); - bool Cache(Sound, const std::string &); - bool CacheMusic(const std::string &); - - bool GetEnable(); - - void SetAudioVolume(int volume); - int GetAudioVolume(); - void SetMusicVolume(int volume); - int GetMusicVolume(); - - void SetListener(const Math::Vector &eye, const Math::Vector &lookat); - void FrameMove(float rTime); - - int Play(Sound sound, float amplitude=1.0f, float frequency=1.0f, bool bLoop = false); - int Play(Sound sound, const Math::Vector &pos, float amplitude=1.0f, float frequency=1.0f, bool bLoop = false); - bool FlushEnvelope(int channel); - bool AddEnvelope(int channel, float amplitude, float frequency, float time, SoundNext oper); - bool Position(int channel, const Math::Vector &pos); - bool Frequency(int channel, float frequency); - bool Stop(int channel); - bool StopAll(); - bool MuteAll(bool bMute); - - bool PlayMusic(int rank, bool bRepeat, float fadeTime=2.0f); - bool PlayMusic(const std::string &filename, bool bRepeat, float fadeTime=2.0f); - bool RestartMusic(); - void SuspendMusic(); - void StopMusic(float fadeTime=2.0f); - bool IsPlayingMusic(); - bool PlayPauseMusic(const std::string &filename, bool repeat); - void StopPauseMusic(); - - bool CheckChannel(int &channel); + bool Create() override; + bool Cache(Sound, const std::string &) override; + bool CacheMusic(const std::string &) override; + + bool GetEnable() override; + + void SetAudioVolume(int volume) override; + int GetAudioVolume() override; + void SetMusicVolume(int volume) override; + int GetMusicVolume() override; + + void SetListener(const Math::Vector &eye, const Math::Vector &lookat) override; + void FrameMove(float rTime) override; + + int Play(Sound sound, float amplitude=1.0f, float frequency=1.0f, bool bLoop = false) override; + int Play(Sound sound, const Math::Vector &pos, float amplitude=1.0f, float frequency=1.0f, bool bLoop = false) override; + bool FlushEnvelope(int channel) override; + bool AddEnvelope(int channel, float amplitude, float frequency, float time, SoundNext oper) override; + bool Position(int channel, const Math::Vector &pos) override; + bool Frequency(int channel, float frequency) override; + bool Stop(int channel) override; + bool StopAll() override; + bool MuteAll(bool bMute) override; + + bool PlayMusic(int rank, bool bRepeat, float fadeTime=2.0f) override; + bool PlayMusic(const std::string &filename, bool bRepeat, float fadeTime=2.0f) override; + bool RestartMusic() override; + void SuspendMusic() override; + void StopMusic(float fadeTime=2.0f) override; + bool IsPlayingMusic() override; + bool PlayPauseMusic(const std::string &filename, bool repeat) override; + void StopPauseMusic() override; private: void CleanUp(); int GetPriority(Sound); bool SearchFreeBuffer(Sound sound, int &channel, bool &bAlreadyLoaded); + bool CheckChannel(int &channel); bool m_enabled; float m_audioVolume; diff --git a/src/sound/oalsound/buffer.cpp b/src/sound/oalsound/buffer.cpp index b27029c..d9441ad 100644 --- a/src/sound/oalsound/buffer.cpp +++ b/src/sound/oalsound/buffer.cpp @@ -17,7 +17,10 @@ #include "sound/oalsound/buffer.h" -#include +#include + +#include "common/resources/resourcemanager.h" + Buffer::Buffer() { @@ -42,19 +45,17 @@ bool Buffer::LoadFromFile(std::string filename, Sound sound) m_sound = sound; GetLogger()->Debug("Loading audio file: %s\n", filename.c_str()); - SF_INFO fileInfo; - memset(&fileInfo, 0, sizeof(SF_INFO)); - SNDFILE *file = sf_open(filename.c_str(), SFM_READ, &fileInfo); + std::unique_ptr file = std::unique_ptr(CResourceManager::GetSNDFileHandler(filename)); - GetLogger()->Trace(" channels %d\n", fileInfo.channels); - GetLogger()->Trace(" format %d\n", fileInfo.format); - GetLogger()->Trace(" frames %d\n", fileInfo.frames); - GetLogger()->Trace(" samplerate %d\n", fileInfo.samplerate); - GetLogger()->Trace(" sections %d\n", fileInfo.sections); + GetLogger()->Trace(" channels %d\n", file->GetFileInfo().channels); + GetLogger()->Trace(" format %d\n", file->GetFileInfo().format); + GetLogger()->Trace(" frames %d\n", file->GetFileInfo().frames); + GetLogger()->Trace(" samplerate %d\n", file->GetFileInfo().samplerate); + GetLogger()->Trace(" sections %d\n", file->GetFileInfo().sections); - if (!file) + if (!file->IsOpen()) { - GetLogger()->Warn("Could not load file. Reason: %s\n", sf_strerror(file)); + GetLogger()->Warn("Could not load file. Reason: %s\n", file->GetLastError().c_str()); m_loaded = false; return false; } @@ -64,23 +65,21 @@ bool Buffer::LoadFromFile(std::string filename, Sound sound) { GetLogger()->Warn("Could not create audio buffer\n"); m_loaded = false; - sf_close(file); return false; } // read chunks of 4096 samples std::vector data; std::array buffer; - data.reserve(fileInfo.frames); + data.reserve(file->GetFileInfo().frames); size_t read = 0; - while ((read = sf_read_short(file, buffer.data(), buffer.size())) != 0) + while ((read = file->Read(buffer.data(), buffer.size())) != 0) { data.insert(data.end(), buffer.begin(), buffer.begin() + read); } - sf_close(file); - alBufferData(m_buffer, fileInfo.channels == 1 ? AL_FORMAT_MONO16 : AL_FORMAT_STEREO16, &data.front(), data.size() * sizeof(uint16_t), fileInfo.samplerate); - m_duration = static_cast(fileInfo.frames) / fileInfo.samplerate; + alBufferData(m_buffer, file->GetFileInfo().channels == 1 ? AL_FORMAT_MONO16 : AL_FORMAT_STEREO16, &data.front(), data.size() * sizeof(uint16_t), file->GetFileInfo().samplerate); + m_duration = static_cast(file->GetFileInfo().frames) / file->GetFileInfo().samplerate; m_loaded = true; return true; } diff --git a/src/sound/sound.cpp b/src/sound/sound.cpp index 9cae1fd..9c9f483 100644 --- a/src/sound/sound.cpp +++ b/src/sound/sound.cpp @@ -46,7 +46,7 @@ void CSoundInterface::CacheAll() for ( int i = 1; i < SOUND_MAX; i++ ) { std::stringstream filename; - filename << "sound" << std::setfill('0') << std::setw(3) << i << ".wav"; + filename << "sounds/sound" << std::setfill('0') << std::setw(3) << i << ".wav"; if ( !Cache(static_cast(i), filename.str()) ) GetLogger()->Warn("Unable to load audio: %s\n", filename.str().c_str()); } @@ -54,10 +54,10 @@ void CSoundInterface::CacheAll() void CSoundInterface::AddMusicFiles() { - CacheMusic("Intro1.ogg"); - CacheMusic("Intro2.ogg"); - CacheMusic("music010.ogg"); - CacheMusic("music011.ogg"); + CacheMusic("music/Intro1.ogg"); + CacheMusic("music/Intro2.ogg"); + CacheMusic("music/music010.ogg"); + CacheMusic("music/music011.ogg"); } bool CSoundInterface::Cache(Sound bSound, const std::string &bFile) -- cgit v1.2.3-1-g7c22 From 754154341dba420e5bfc3190c81deb2859d751ba Mon Sep 17 00:00:00 2001 From: Krzysztof Dermont Date: Sun, 22 Jun 2014 15:01:06 +0200 Subject: More work on PhysFS support * added output stream * fixed music loading --- src/CMakeLists.txt | 1 + src/app/app.cpp | 4 --- src/common/resources/outputstream.cpp | 53 +++++++++++++++++++++++++++++++++++ src/common/resources/outputstream.h | 33 ++++++++++++++++++++++ src/graphics/engine/engine.cpp | 2 +- src/graphics/engine/particle.cpp | 2 +- src/sound/oalsound/alsound.cpp | 2 +- src/ui/edit.cpp | 23 ++++++++------- 8 files changed, 103 insertions(+), 17 deletions(-) create mode 100644 src/common/resources/outputstream.cpp create mode 100644 src/common/resources/outputstream.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index db53398..62bad96 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -77,6 +77,7 @@ common/stringutils.cpp common/resources/resourcemanager.cpp common/resources/resourcestreambuffer.cpp common/resources/inputstream.cpp +common/resources/outputstream.cpp common/resources/sndfile.cpp graphics/core/color.cpp graphics/engine/camera.cpp diff --git a/src/app/app.cpp b/src/app/app.cpp index 5b495c3..c245838 100644 --- a/src/app/app.cpp +++ b/src/app/app.cpp @@ -207,8 +207,6 @@ ParseArgsStatus CApplication::ParseArguments(int argc, char *argv[]) OPT_SCENETEST, OPT_LOGLEVEL, OPT_LANGUAGE, - OPT_DATADIR, - OPT_MOD, OPT_LANGDIR, OPT_VBO }; @@ -221,8 +219,6 @@ ParseArgsStatus CApplication::ParseArguments(int argc, char *argv[]) { "scenetest", no_argument, nullptr, OPT_SCENETEST }, { "loglevel", required_argument, nullptr, OPT_LOGLEVEL }, { "language", required_argument, nullptr, OPT_LANGUAGE }, - { "datadir", required_argument, nullptr, OPT_DATADIR }, - { "mod", required_argument, nullptr, OPT_MOD }, { "langdir", required_argument, nullptr, OPT_LANGDIR }, { "vbo", required_argument, nullptr, OPT_VBO }, { nullptr, 0, nullptr, 0} diff --git a/src/common/resources/outputstream.cpp b/src/common/resources/outputstream.cpp new file mode 100644 index 0000000..c4fd973 --- /dev/null +++ b/src/common/resources/outputstream.cpp @@ -0,0 +1,53 @@ +// * This file is part of the COLOBOT source code +// * Copyright (C) 2014 Polish Portal of Colobot (PPC) +// * +// * 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 http://www.gnu.org/licenses/. + +#include "common/resources/outputstream.h" +#include "common/resources/resourcestreambuffer.h" + + +COutputStream::COutputStream() : std::ostream(new CResourceStreamBuffer()) +{ +} + + +COutputStream::~COutputStream() +{ + delete rdbuf(); +} + + +void COutputStream::open(const std::string& filename) +{ + static_cast(rdbuf())->open(filename); +} + + +void COutputStream::close() +{ + static_cast(rdbuf())->close(); +} + + +bool COutputStream::is_open() +{ + return static_cast(rdbuf())->is_open(); +} + + +size_t COutputStream::size() +{ + return static_cast(rdbuf())->size(); +} diff --git a/src/common/resources/outputstream.h b/src/common/resources/outputstream.h new file mode 100644 index 0000000..bbd921f --- /dev/null +++ b/src/common/resources/outputstream.h @@ -0,0 +1,33 @@ +// * This file is part of the COLOBOT source code +// * Copyright (C) 2014 Polish Portal of Colobot (PPC) +// * +// * 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 http://www.gnu.org/licenses/. + +#pragma once + +#include +#include + + +class COutputStream : public std::ostream +{ +public: + COutputStream(); + virtual ~COutputStream(); + + void open(const std::string &filename); + void close(); + bool is_open(); + size_t size(); +}; diff --git a/src/graphics/engine/engine.cpp b/src/graphics/engine/engine.cpp index 072261b..6f6141b 100644 --- a/src/graphics/engine/engine.cpp +++ b/src/graphics/engine/engine.cpp @@ -3773,7 +3773,7 @@ void CEngine::DrawShadow() SetMaterial(material); // TODO: create a separate texture - SetTexture("text.png"); + SetTexture("textures/interface/text.png"); Math::Point ts, ti; diff --git a/src/graphics/engine/particle.cpp b/src/graphics/engine/particle.cpp index ead2387..9e36153 100644 --- a/src/graphics/engine/particle.cpp +++ b/src/graphics/engine/particle.cpp @@ -3551,7 +3551,7 @@ void CParticle::DrawParticle(int sheet) // Draw tire marks. if (m_wheelTraceTotal > 0 && sheet == SH_WORLD) { - m_engine->SetTexture("text.png"); + m_engine->SetTexture("textures/interface/text.png"); m_engine->SetState(ENG_RSTATE_TTEXTURE_WHITE); Math::Matrix matrix; matrix.LoadIdentity(); diff --git a/src/sound/oalsound/alsound.cpp b/src/sound/oalsound/alsound.cpp index 4d40c3b..e9bc116 100644 --- a/src/sound/oalsound/alsound.cpp +++ b/src/sound/oalsound/alsound.cpp @@ -609,7 +609,7 @@ void ALSound::SetListener(const Math::Vector &eye, const Math::Vector &lookat) bool ALSound::PlayMusic(int rank, bool bRepeat, float fadeTime) { std::stringstream filename; - filename << "music" << std::setfill('0') << std::setw(3) << rank << ".ogg"; + filename << "music/music" << std::setfill('0') << std::setw(3) << rank << ".ogg"; return PlayMusic(filename.str(), bRepeat, fadeTime); } diff --git a/src/ui/edit.cpp b/src/ui/edit.cpp index 287d0f3..e645063 100644 --- a/src/ui/edit.cpp +++ b/src/ui/edit.cpp @@ -23,6 +23,7 @@ #include "clipboard/clipboard.h" #include "common/resources/inputstream.h" +#include "common/resources/outputstream.h" #include @@ -1453,12 +1454,9 @@ bool CEdit::ReadText(std::string filename, int addSize) bool bInSoluce, bBOL; if ( filename[0] == 0 ) return false; - - boost::replace_all(filename, "\\", "/"); - std::string path = filename; CInputStream stream; - stream.open(fs::path(path).make_preferred().string()); + stream.open(filename); if (!stream.is_open()) { @@ -1886,14 +1884,19 @@ bool CEdit::ReadText(std::string filename, int addSize) bool CEdit::WriteText(std::string filename) { - FILE* file; char buffer[1000+20]; int i, j, k, n; float iDim = 0.0f; if ( filename[0] == 0 ) return false; - file = fopen(filename.c_str(), "wb"); - if ( file == NULL ) return false; + + COutputStream stream; + stream.open(filename); + + if (!stream.is_open()) + { + return false; + } if ( m_bAutoIndent ) { @@ -1924,7 +1927,7 @@ bool CEdit::WriteText(std::string filename) if ( j >= 1000-1 ) { - fwrite(buffer, 1, j, file); + stream.write(buffer, j); j = 0; } @@ -1932,10 +1935,10 @@ bool CEdit::WriteText(std::string filename) } if ( j > 0 ) { - fwrite(buffer, 1, j, file); + stream.write(buffer, j); } - fclose(file); + stream.close(); if ( m_bAutoIndent ) { -- cgit v1.2.3-1-g7c22 From 0556b5dfbcf8e3fe26ec4c773367d2f77e2c0ec9 Mon Sep 17 00:00:00 2001 From: Krzysztof Dermont Date: Sun, 22 Jun 2014 16:29:26 +0200 Subject: Added Exist() to resource manager, updated model --- src/common/resources/resourcemanager.cpp | 6 ++++++ src/common/resources/resourcemanager.h | 1 + src/graphics/engine/modelfile.cpp | 14 ++++++++------ 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/common/resources/resourcemanager.cpp b/src/common/resources/resourcemanager.cpp index b01424b..5e8627d 100644 --- a/src/common/resources/resourcemanager.cpp +++ b/src/common/resources/resourcemanager.cpp @@ -130,6 +130,12 @@ CSNDFile* CResourceManager::GetSNDFileHandler(const std::string &filename) } +bool CResourceManager::Exists(const std::string &filename) +{ + return PHYSFS_exists(filename.c_str()); +} + + int CResourceManager::SDLClose(SDL_RWops *context) { if (CheckSDLContext(context)) diff --git a/src/common/resources/resourcemanager.h b/src/common/resources/resourcemanager.h index fec71da..36f6fa5 100644 --- a/src/common/resources/resourcemanager.h +++ b/src/common/resources/resourcemanager.h @@ -33,6 +33,7 @@ public: static std::string GetLanguageLocation(); static SDL_RWops* GetSDLFileHandler(const std::string &filename); static CSNDFile* GetSNDFileHandler(const std::string &filename); + static bool Exists(const std::string &filename); private: static int SDLSeek(SDL_RWops *context, int offset, int whence); diff --git a/src/graphics/engine/modelfile.cpp b/src/graphics/engine/modelfile.cpp index 99496aa..0e3cbf8 100644 --- a/src/graphics/engine/modelfile.cpp +++ b/src/graphics/engine/modelfile.cpp @@ -22,6 +22,8 @@ #include "common/logger.h" #include "common/stringutils.h" +#include "common/resources/inputstream.h" + #include "graphics/engine/engine.h" #include "math/geometry.h" @@ -432,8 +434,8 @@ bool CModelFile::ReadModel(const std::string& fileName) { m_triangles.clear(); - std::ifstream stream; - stream.open(fileName.c_str(), std::ios_base::in | std::ios_base::binary); + CInputStream stream; + stream.open(fileName.c_str()); if (!stream.good()) { GetLogger()->Error("Could not open file '%s'\n", fileName.c_str()); @@ -823,8 +825,8 @@ struct NewModelTriangle1 bool CModelFile::ReadTextModel(const std::string& fileName) { - std::ifstream stream; - stream.open(fileName.c_str(), std::ios_base::in); + CInputStream stream; + stream.open(fileName.c_str()); if (!stream.good()) { GetLogger()->Error("Could not open file '%s'\n", fileName.c_str()); @@ -1020,8 +1022,8 @@ bool CModelFile::WriteTextModel(std::ostream& stream) bool CModelFile::ReadBinaryModel(const std::string& fileName) { - std::ifstream stream; - stream.open(fileName.c_str(), std::ios_base::in | std::ios_base::binary); + CInputStream stream; + stream.open(fileName.c_str()); if (!stream.good()) { GetLogger()->Error("Could not open file '%s'\n", fileName.c_str()); -- cgit v1.2.3-1-g7c22 From 3aca1de731fa7517db7d4dc00913542412150898 Mon Sep 17 00:00:00 2001 From: Krzysztof Dermont Date: Sun, 22 Jun 2014 21:30:23 +0200 Subject: More work on levels --- src/common/resources/resourcestreambuffer.cpp | 1 + src/graphics/engine/modelfile.cpp | 6 +++--- src/graphics/engine/modelmanager.cpp | 2 +- src/object/robotmain.cpp | 13 +++++++++---- src/script/script.cpp | 24 ++++++++++++------------ 5 files changed, 26 insertions(+), 20 deletions(-) diff --git a/src/common/resources/resourcestreambuffer.cpp b/src/common/resources/resourcestreambuffer.cpp index e7be51d..ed6e738 100644 --- a/src/common/resources/resourcestreambuffer.cpp +++ b/src/common/resources/resourcestreambuffer.cpp @@ -27,6 +27,7 @@ CResourceStreamBuffer::CResourceStreamBuffer(size_t buffer_size) : m_buffer_size } m_buffer = new char[buffer_size]; + m_file = nullptr; } diff --git a/src/graphics/engine/modelfile.cpp b/src/graphics/engine/modelfile.cpp index 0e3cbf8..5f10ff1 100644 --- a/src/graphics/engine/modelfile.cpp +++ b/src/graphics/engine/modelfile.cpp @@ -436,7 +436,7 @@ bool CModelFile::ReadModel(const std::string& fileName) CInputStream stream; stream.open(fileName.c_str()); - if (!stream.good()) + if (!stream.is_open()) { GetLogger()->Error("Could not open file '%s'\n", fileName.c_str()); return false; @@ -827,7 +827,7 @@ bool CModelFile::ReadTextModel(const std::string& fileName) { CInputStream stream; stream.open(fileName.c_str()); - if (!stream.good()) + if (!stream.is_open()) { GetLogger()->Error("Could not open file '%s'\n", fileName.c_str()); return false; @@ -1024,7 +1024,7 @@ bool CModelFile::ReadBinaryModel(const std::string& fileName) { CInputStream stream; stream.open(fileName.c_str()); - if (!stream.good()) + if (!stream.is_open()) { GetLogger()->Error("Could not open file '%s'\n", fileName.c_str()); return false; diff --git a/src/graphics/engine/modelmanager.cpp b/src/graphics/engine/modelmanager.cpp index fc201fa..6ee0b86 100644 --- a/src/graphics/engine/modelmanager.cpp +++ b/src/graphics/engine/modelmanager.cpp @@ -47,7 +47,7 @@ bool CModelManager::LoadModel(const std::string& fileName, bool mirrored) if (CApplication::GetInstance().IsDebugModeActive(DEBUG_MODELS)) modelFile.SetPrintDebugInfo(true); - if (!modelFile.ReadModel(fileName)) + if (!modelFile.ReadModel("models/" + fileName)) { GetLogger()->Error("Loading model '%s' failed\n", fileName.c_str()); return false; diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp index 1c75137..87cd5fc 100644 --- a/src/object/robotmain.cpp +++ b/src/object/robotmain.cpp @@ -29,6 +29,8 @@ #include "common/profile.h" #include "common/restext.h" +#include "common/resources/inputstream.h" + #include "graphics/engine/camera.h" #include "graphics/engine/cloud.h" #include "graphics/engine/engine.h" @@ -4009,8 +4011,11 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) std::string tempLine; m_dialog->BuildSceneName(tempLine, base, rank); strcpy(filename, tempLine.c_str()); - FILE* file = fopen(filename, "r"); - if (file == NULL) return; + + CInputStream stream; + stream.open(filename); + + if (!stream.is_open()) return; int rankObj = 0; int rankGadget = 0; @@ -4023,7 +4028,7 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) * may speed up loading */ - while (fgets(line, 500, file) != NULL) + while (stream.getline(line, 500)) { lineNum++; for (int i = 0; i < 500; i++) @@ -5062,7 +5067,7 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) GetLogger()->Error("Syntax error in file '%s' (line %d): Unknown command: %s", filename, lineNum, line); // Don't add \n at the end of log message - it's included in line variable } - fclose(file); + stream.close(); if (read[0] == 0) CompileScript(soluce); // compiles all scripts diff --git a/src/script/script.cpp b/src/script/script.cpp index 11aa5c1..f59d27e 100644 --- a/src/script/script.cpp +++ b/src/script/script.cpp @@ -24,6 +24,9 @@ #include "common/restext.h" #include "common/stringutils.h" +#include "common/resources/inputstream.h" +#include "common/resources/resourcemanager.h" + #include "graphics/engine/terrain.h" #include "graphics/engine/water.h" #include "graphics/engine/text.h" @@ -50,6 +53,7 @@ #include "ui/edit.h" #include "ui/list.h" #include "ui/displaytext.h" +#include #include @@ -4363,7 +4367,6 @@ void CScript::GetError(std::string& error) void CScript::New(Ui::CEdit* edit, const char* name) { - FILE *file = NULL; char res[100]; char text[100]; char script[500]; @@ -4407,17 +4410,17 @@ void CScript::New(Ui::CEdit* edit, const char* name) if ( sf[0] != 0 ) // Load an empty program specific? { std::string filename = sf; - file = fopen(filename.c_str(), "rb"); - if ( file != NULL ) + CInputStream stream; + stream.open(filename); + + if (stream.is_open()) { - fseek(file, 0, SEEK_END); - len = ftell(file); - fseek(file, 0, SEEK_SET); + len = stream.size(); if ( len > 500-1 ) len = 500-1; - fread(buffer, 1, len, file); + stream.read(buffer, len); buffer[len] = 0; - fclose(file); + stream.close(); cursor1 = 0; i = 0; @@ -4494,12 +4497,9 @@ bool CScript::SendScript(const char* text) bool CScript::ReadScript(const char* filename) { - FILE* file; Ui::CEdit* edit; - file = fopen(filename, "rb"); - if ( file == NULL ) return false; - fclose(file); + if (!CResourceManager::Exists(filename)) return false; delete[] m_script; m_script = nullptr; -- cgit v1.2.3-1-g7c22 From 68d41d3b214856f8d321b4dbdffc0cd4c7333c36 Mon Sep 17 00:00:00 2001 From: Krzysztof Dermont Date: Mon, 23 Jun 2014 23:19:55 +0200 Subject: More work on streams --- src/CMakeLists.txt | 3 +- src/common/resources/inputstream.cpp | 12 +-- src/common/resources/inputstreambuffer.cpp | 129 ++++++++++++++++++++++++++ src/common/resources/inputstreambuffer.h | 48 ++++++++++ src/common/resources/outputstream.cpp | 16 +--- src/common/resources/outputstream.h | 3 +- src/common/resources/outputstreambuffer.cpp | 85 +++++++++++++++++ src/common/resources/outputstreambuffer.h | 45 +++++++++ src/common/resources/resourcestreambuffer.cpp | 122 ------------------------ src/common/resources/resourcestreambuffer.h | 47 ---------- 10 files changed, 321 insertions(+), 189 deletions(-) create mode 100644 src/common/resources/inputstreambuffer.cpp create mode 100644 src/common/resources/inputstreambuffer.h create mode 100644 src/common/resources/outputstreambuffer.cpp create mode 100644 src/common/resources/outputstreambuffer.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 62bad96..e02a30b 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -75,7 +75,8 @@ common/profile.cpp common/restext.cpp common/stringutils.cpp common/resources/resourcemanager.cpp -common/resources/resourcestreambuffer.cpp +common/resources/inputstreambuffer.cpp +common/resources/outputstreambuffer.cpp common/resources/inputstream.cpp common/resources/outputstream.cpp common/resources/sndfile.cpp diff --git a/src/common/resources/inputstream.cpp b/src/common/resources/inputstream.cpp index e121971..b5ba63f 100644 --- a/src/common/resources/inputstream.cpp +++ b/src/common/resources/inputstream.cpp @@ -15,10 +15,10 @@ // * along with this program. If not, see http://www.gnu.org/licenses/. #include "common/resources/inputstream.h" -#include "common/resources/resourcestreambuffer.h" +#include "common/resources/inputstreambuffer.h" -CInputStream::CInputStream() : std::istream(new CResourceStreamBuffer()) +CInputStream::CInputStream() : std::istream(new CInputStreamBuffer()) { } @@ -31,23 +31,23 @@ CInputStream::~CInputStream() void CInputStream::open(const std::string& filename) { - static_cast(rdbuf())->open(filename); + static_cast(rdbuf())->open(filename); } void CInputStream::close() { - static_cast(rdbuf())->close(); + static_cast(rdbuf())->close(); } bool CInputStream::is_open() { - return static_cast(rdbuf())->is_open(); + return static_cast(rdbuf())->is_open(); } size_t CInputStream::size() { - return static_cast(rdbuf())->size(); + return static_cast(rdbuf())->size(); } diff --git a/src/common/resources/inputstreambuffer.cpp b/src/common/resources/inputstreambuffer.cpp new file mode 100644 index 0000000..b8710e9 --- /dev/null +++ b/src/common/resources/inputstreambuffer.cpp @@ -0,0 +1,129 @@ +// * This file is part of the COLOBOT source code +// * Copyright (C) 2014 Polish Portal of Colobot (PPC) +// * +// * 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 http://www.gnu.org/licenses/. + +#include "common/resources/inputstreambuffer.h" + +#include +#include + +CInputStreamBuffer::CInputStreamBuffer(size_t buffer_size) : m_buffer_size(buffer_size) +{ + if (buffer_size <= 0) + { + throw std::runtime_error("File buffer must be larger then 0 bytes"); + } + + m_buffer = new char[buffer_size]; + m_file = nullptr; +} + + +CInputStreamBuffer::~CInputStreamBuffer() +{ + close(); + delete m_buffer; +} + + +void CInputStreamBuffer::open(const std::string &filename) +{ + if (PHYSFS_isInit()) + m_file = PHYSFS_openRead(filename.c_str()); +} + + +void CInputStreamBuffer::close() +{ + if (is_open()) + PHYSFS_close(m_file); +} + + +bool CInputStreamBuffer::is_open() +{ + return m_file; +} + + +size_t CInputStreamBuffer::size() +{ + return PHYSFS_fileLength(m_file); +} + + +std::streambuf::int_type CInputStreamBuffer::underflow() +{ + if (gptr() < egptr()) + return traits_type::to_int_type(*gptr()); + + if (PHYSFS_eof(m_file)) + return traits_type::eof(); + + PHYSFS_sint64 read_count = PHYSFS_read(m_file, m_buffer, sizeof(char), m_buffer_size); + if (read_count <= 0) + return traits_type::eof(); + + setg(m_buffer, m_buffer, m_buffer + read_count); + + return traits_type::to_int_type(*gptr()); +} + + +std::streampos CInputStreamBuffer::seekpos(std::streampos sp, std::ios_base::openmode which) +{ + return seekoff(off_type(sp), std::ios_base::beg, which); +} + + +std::streampos CInputStreamBuffer::seekoff(std::streamoff off, std::ios_base::seekdir way, std::ios_base::openmode which) +{ + /* A bit of explanation: + We are reading file by m_buffer_size parts so our 3 internal pointers will be + * eback (not used here) - start of block + * gptr - position of read cursor in block + * egtpr - end of block + off argument is relative to way */ + + std::streamoff new_position; + + switch (way) + { + case std::ios_base::beg: + new_position = off; + break; + + case std::ios_base::cur: + // tell will give cursor at begining of block so we have to add where in block we currently are + new_position = off + static_cast(PHYSFS_tell(m_file)) - static_cast (egptr() - gptr()); + break; + + case std::ios_base::end: + new_position = off + static_cast(PHYSFS_fileLength(m_file)); + break; + + default: + break; + } + + if (PHYSFS_seek(m_file, new_position)) + { + setg(m_buffer, m_buffer, m_buffer); // reset buffer + + return pos_type(new_position); + } + + return pos_type(off_type(-1)); +} diff --git a/src/common/resources/inputstreambuffer.h b/src/common/resources/inputstreambuffer.h new file mode 100644 index 0000000..93cb43c --- /dev/null +++ b/src/common/resources/inputstreambuffer.h @@ -0,0 +1,48 @@ +// * This file is part of the COLOBOT source code +// * Copyright (C) 2014 Polish Portal of Colobot (PPC) +// * +// * 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 http://www.gnu.org/licenses/. + +#pragma once + +#include +#include +#include + +class CInputStreamBuffer : public std::streambuf +{ +public: + CInputStreamBuffer(size_t buffer_size = 512); + virtual ~CInputStreamBuffer(); + + void open(const std::string &filename); + void close(); + bool is_open(); + size_t size(); + +private: + int_type underflow(); + + std::streampos seekpos(std::streampos sp, std::ios_base::openmode which); + std::streampos seekoff(std::streamoff off, std::ios_base::seekdir way, std::ios_base::openmode which); + + // copy ctor and assignment not implemented; + // copying not allowed + CInputStreamBuffer(const CInputStreamBuffer &); + CInputStreamBuffer &operator= (const CInputStreamBuffer &); + + PHYSFS_File *m_file; + char *m_buffer; + size_t m_buffer_size; +}; diff --git a/src/common/resources/outputstream.cpp b/src/common/resources/outputstream.cpp index c4fd973..ba43ba6 100644 --- a/src/common/resources/outputstream.cpp +++ b/src/common/resources/outputstream.cpp @@ -15,10 +15,10 @@ // * along with this program. If not, see http://www.gnu.org/licenses/. #include "common/resources/outputstream.h" -#include "common/resources/resourcestreambuffer.h" +#include "common/resources/outputstreambuffer.h" -COutputStream::COutputStream() : std::ostream(new CResourceStreamBuffer()) +COutputStream::COutputStream() : std::ostream(new COutputStreamBuffer()) { } @@ -31,23 +31,17 @@ COutputStream::~COutputStream() void COutputStream::open(const std::string& filename) { - static_cast(rdbuf())->open(filename); + static_cast(rdbuf())->open(filename); } void COutputStream::close() { - static_cast(rdbuf())->close(); + static_cast(rdbuf())->close(); } bool COutputStream::is_open() { - return static_cast(rdbuf())->is_open(); -} - - -size_t COutputStream::size() -{ - return static_cast(rdbuf())->size(); + return static_cast(rdbuf())->is_open(); } diff --git a/src/common/resources/outputstream.h b/src/common/resources/outputstream.h index bbd921f..4f4cd72 100644 --- a/src/common/resources/outputstream.h +++ b/src/common/resources/outputstream.h @@ -28,6 +28,5 @@ public: void open(const std::string &filename); void close(); - bool is_open(); - size_t size(); + bool is_open(); }; diff --git a/src/common/resources/outputstreambuffer.cpp b/src/common/resources/outputstreambuffer.cpp new file mode 100644 index 0000000..e611d13 --- /dev/null +++ b/src/common/resources/outputstreambuffer.cpp @@ -0,0 +1,85 @@ +// * This file is part of the COLOBOT source code +// * Copyright (C) 2014 Polish Portal of Colobot (PPC) +// * +// * 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 http://www.gnu.org/licenses/. + +#include "common/resources/outputstreambuffer.h" + +#include +#include + +COutputStreamBuffer::COutputStreamBuffer(size_t buffer_size) : m_buffer_size(buffer_size) +{ + m_file = nullptr; + m_buffer = new char[buffer_size]; + setp(m_buffer, m_buffer + buffer_size); +} + + +COutputStreamBuffer::~COutputStreamBuffer() +{ + close(); + delete m_buffer; +} + + +void COutputStreamBuffer::open(const std::string &filename) +{ + if (PHYSFS_isInit()) + m_file = PHYSFS_openWrite(filename.c_str()); +} + + +void COutputStreamBuffer::close() +{ + if (is_open()) + PHYSFS_close(m_file); +} + + +bool COutputStreamBuffer::is_open() +{ + return m_file; +} + + +std::streambuf::int_type COutputStreamBuffer::overflow(std::streambuf::int_type ch) +{ + /* This function should be called when pptr() == epptr(). We use it also in sync() + so we also have to write data if buffer is not full. */ + + if (pbase() == pptr()) // no data to write, sync() called with empty buffer + return 0; + + // save buffer + PHYSFS_sint64 bytes_written = PHYSFS_write(m_file, pbase(), 1, pptr() - pbase()); + if (bytes_written <= 0) + return traits_type::eof(); + + pbump(-bytes_written); + // write final char + if (ch != traits_type::eof()) { + bytes_written = PHYSFS_write(m_file, &ch, 1, 1); + if (bytes_written <= 0) + return traits_type::eof(); + } + + return ch; +} + + +int COutputStreamBuffer::sync() +{ + return overflow(traits_type::eof()); +} diff --git a/src/common/resources/outputstreambuffer.h b/src/common/resources/outputstreambuffer.h new file mode 100644 index 0000000..1d98791 --- /dev/null +++ b/src/common/resources/outputstreambuffer.h @@ -0,0 +1,45 @@ +// * This file is part of the COLOBOT source code +// * Copyright (C) 2014 Polish Portal of Colobot (PPC) +// * +// * 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 http://www.gnu.org/licenses/. + +#pragma once + +#include +#include +#include + +class COutputStreamBuffer : public std::streambuf +{ +public: + COutputStreamBuffer(size_t buffer_size = 512); + virtual ~COutputStreamBuffer(); + + void open(const std::string &filename); + void close(); + bool is_open(); + +private: + int_type overflow(int_type ch); + int sync(); + + // copy ctor and assignment not implemented; + // copying not allowed + COutputStreamBuffer(const COutputStreamBuffer &); + COutputStreamBuffer &operator= (const COutputStreamBuffer &); + + PHYSFS_File *m_file; + char *m_buffer; + size_t m_buffer_size; +}; diff --git a/src/common/resources/resourcestreambuffer.cpp b/src/common/resources/resourcestreambuffer.cpp index ed6e738..e69de29 100644 --- a/src/common/resources/resourcestreambuffer.cpp +++ b/src/common/resources/resourcestreambuffer.cpp @@ -1,122 +0,0 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2014 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. - -#include "common/resources/resourcestreambuffer.h" - -#include -#include - -CResourceStreamBuffer::CResourceStreamBuffer(size_t buffer_size) : m_buffer_size(buffer_size) -{ - if (buffer_size <= 0) - { - throw std::runtime_error("File buffer must be larger then 0 bytes"); - } - - m_buffer = new char[buffer_size]; - m_file = nullptr; -} - - -CResourceStreamBuffer::~CResourceStreamBuffer() -{ - close(); - delete m_buffer; -} - - -void CResourceStreamBuffer::open(const std::string &filename) -{ - if (PHYSFS_isInit()) - { - m_file = PHYSFS_openRead(filename.c_str()); - } -} - - -void CResourceStreamBuffer::close() -{ - if (is_open()) - { - PHYSFS_close(m_file); - } -} - - -bool CResourceStreamBuffer::is_open() -{ - return m_file; -} - - -size_t CResourceStreamBuffer::size() -{ - return PHYSFS_fileLength(m_file); -} - - -std::streambuf::int_type CResourceStreamBuffer::underflow() -{ - if (PHYSFS_eof(m_file)) - { - return traits_type::eof(); - } - - PHYSFS_sint64 read_count = PHYSFS_read(m_file, m_buffer, sizeof(char), m_buffer_size); - if (read_count <= 0) - { - return traits_type::eof(); - } - - setg(m_buffer, m_buffer, m_buffer + read_count); - - return traits_type::to_int_type(*gptr()); -} - - -std::streampos CResourceStreamBuffer::seekpos(std::streampos sp, std::ios_base::openmode which) -{ - return seekoff(off_type(sp), std::ios_base::beg, which); -} - - -std::streampos CResourceStreamBuffer::seekoff(std::streamoff off, std::ios_base::seekdir way, std::ios_base::openmode which) -{ - /* A bit of explanation: - We are reading file by m_buffer_size parts so our 3 internal pointers will be - * eback (not used here) - start of block - * gptr - position of read cursor in block - * egtpr - end of block - off argument is relative to way */ - - switch (way) - { - case std::ios_base::beg: - return pos_type(off_type(off)); - - case std::ios_base::cur: - // tell will give cursor at begining of block so we have to add where in block we currently are - return off + static_cast(PHYSFS_tell(m_file)) - static_cast (egptr() - gptr()); - - case std::ios_base::end: - return off + static_cast(PHYSFS_fileLength(m_file)); - - default: - break; - } - - return pos_type(off_type(-1)); -} diff --git a/src/common/resources/resourcestreambuffer.h b/src/common/resources/resourcestreambuffer.h index a9ec0db..e69de29 100644 --- a/src/common/resources/resourcestreambuffer.h +++ b/src/common/resources/resourcestreambuffer.h @@ -1,47 +0,0 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2014 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. - -#pragma once - -#include -#include -#include - -class CResourceStreamBuffer : public std::streambuf -{ -public: - CResourceStreamBuffer(size_t buffer_size = 512); - virtual ~CResourceStreamBuffer(); - - void open(const std::string &filename); - void close(); - bool is_open(); - size_t size(); - -private: - int_type underflow(); - std::streampos seekpos(std::streampos sp, std::ios_base::openmode which); - std::streampos seekoff(std::streamoff off, std::ios_base::seekdir way, std::ios_base::openmode which); - - // copy ctor and assignment not implemented; - // copying not allowed - CResourceStreamBuffer(const CResourceStreamBuffer &); - CResourceStreamBuffer &operator= (const CResourceStreamBuffer &); - - PHYSFS_File *m_file; - char *m_buffer; - size_t m_buffer_size; -}; -- cgit v1.2.3-1-g7c22 From aa190bb59b5047bcaaa4e50df59b3c51cd6be21f Mon Sep 17 00:00:00 2001 From: Krzysztof Dermont Date: Mon, 30 Jun 2014 17:40:40 +0200 Subject: Last changes --- data | 2 +- src/ui/maindialog.cpp | 87 +++++++++++++++++++++++---------------------------- src/ui/maindialog.h | 1 - 3 files changed, 40 insertions(+), 50 deletions(-) diff --git a/data b/data index 8867360..aa3b09f 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit 8867360074568706afcede8cbaa11f8159c96830 +Subproject commit aa3b09f4dfbc0d6fae888f528dae724e8fbedf31 diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index 9afad80..54b8702 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -29,6 +29,10 @@ #include "common/restext.h" #include "common/stringutils.h" +#include "common/resources/resourcemanager.h" +#include "common/resources/inputstream.h" +#include "common/resources/outputstream.h" + #include "object/robotmain.h" #include "script/cmdtoken.h" @@ -48,6 +52,7 @@ #include "ui/window.h" #include "ui/edit.h" #include "ui/editvalue.h" +#include #include #include @@ -175,9 +180,6 @@ CMainDialog::CMainDialog() m_partiTime[i] = 0.0f; } - - m_sceneDir = "levels"; - #if DEV_BUILD m_savegameDir = "savegame"; #else @@ -762,7 +764,7 @@ pb->SetState(STATE_SHADOW); { if (!m_sound->IsPlayingMusic()) { - m_sound->PlayMusic("Intro1.ogg", false); + m_sound->PlayMusic("music/Intro1.ogg", false); } } @@ -782,15 +784,15 @@ pb->SetState(STATE_SHADOW); if ( m_phase == PHASE_FREE ) { - strcpy(m_sceneName, "scene"); + strcpy(m_sceneName, "levels/missions/"); ReadGamerInfo(); m_accessChap = GetChapPassed(); } - if ( m_phase == PHASE_TRAINER ) strcpy(m_sceneName, "train"); - if ( m_phase == PHASE_DEFI ) strcpy(m_sceneName, "defi" ); - if ( m_phase == PHASE_MISSION ) strcpy(m_sceneName, "scene"); - if ( m_phase == PHASE_FREE ) strcpy(m_sceneName, "free"); + if ( m_phase == PHASE_TRAINER ) strcpy(m_sceneName, "levels/exercises/"); + if ( m_phase == PHASE_DEFI ) strcpy(m_sceneName, "levels/challenges/" ); + if ( m_phase == PHASE_MISSION ) strcpy(m_sceneName, "levels/missions/"); + if ( m_phase == PHASE_FREE ) strcpy(m_sceneName, "levels/freemissions/"); if ( m_phase == PHASE_TEEN ) strcpy(m_sceneName, "teen"); if ( m_phase == PHASE_USER ) strcpy(m_sceneName, "user"); @@ -2011,7 +2013,7 @@ bool CMainDialog::EventProcess(const Event &event) { if (!m_sound->IsPlayingMusic()) { - m_sound->PlayMusic("Intro2.ogg", true); + m_sound->PlayMusic("music/Intro2.ogg", true); } } @@ -3584,10 +3586,22 @@ void CMainDialog::BuildSceneName(std::string &filename, char *base, int rank) rankStream << std::setfill('0') << std::setw(2) << rank%100; filename = m_userDir + "/" + m_userList[rank/100-1] + "/" + rankStream.str() + ".txt"; } + else if ( strcmp(base, "perso") == 0 ) + { + filename = "levels/other/perso.txt"; + } else { - rankStream << std::setfill('0') << std::setw(3) << rank; - filename = base + rankStream.str() + ".txt"; + rankStream << "chapter" << std::setfill('0') << std::setw(3) << (rank / 100); + if (rank % 100 == 0) + { + rankStream << "/chaptertitle.txt"; + } + else + { + rankStream << "/level" << std::setfill('0') << std::setw(3) << (rank % 100) << "/scene.txt"; + } + filename = base + rankStream.str(); } } @@ -4282,7 +4296,6 @@ bool CMainDialog::IsIOReadScene() void CMainDialog::IOReadName() { - FILE* file; CWindow* pw; CEdit* pe; std::string filename; @@ -4304,10 +4317,12 @@ void CMainDialog::IOReadName() sprintf(op, "Title.E"); sprintf(op_i18n, "Title.%c", m_app->GetLanguageChar() ); - file = fopen(filename.c_str(), "r"); - if ( file != NULL ) + CInputStream stream; + stream.open(filename); + + if (stream.is_open()) { - while ( fgets(line, 500, file) != NULL ) + while (stream.getline(line, 500)) { for ( i=0 ; i<500 ; i++ ) { @@ -4329,7 +4344,7 @@ void CMainDialog::IOReadName() break; } } - fclose(file); + stream.close(); } time(&now); @@ -4675,10 +4690,10 @@ void CMainDialog::AllMissionUpdate() void CMainDialog::UpdateSceneChap(int &chap) { - FILE* file = NULL; CWindow* pw; CList* pl; - //struct _finddata_t fileBuffer; + FILE *file; + std::string fileName; char op[100]; char op_i18n[100]; @@ -4762,26 +4777,16 @@ void CMainDialog::UpdateSceneChap(int &chap) { for ( j=0 ; j<9 ; j++ ) { -/* TODO: #if _SCHOOL - if ( m_phase == PHASE_MISSION ) break; - if ( m_phase == PHASE_FREE ) break; -#if _CEEBOTDEMO - if ( m_phase == PHASE_TRAINER && j >= 2 ) break; -#endif -#endif -#if _DEMO - if ( m_phase == PHASE_MISSION && j >= 4 ) break; - if ( m_phase == PHASE_TRAINER && j >= 1 ) break; -#endif */ BuildSceneName(fileName, m_sceneName, (j+1)*100); - file = fopen(fileName.c_str(), "r"); - if ( file == NULL ) break; + CInputStream stream; + stream.open(fileName); + if (!stream.is_open()) break; BuildResumeName(name, m_sceneName, j+1); // default name sprintf(op, "Title.E"); sprintf(op_i18n, "Title.%c", m_app->GetLanguageChar()); - while ( fgets(line, 500, file) != NULL ) + while (stream.getline(line, 500)) { for ( i=0 ; i<500 ; i++ ) { @@ -4803,7 +4808,7 @@ void CMainDialog::UpdateSceneChap(int &chap) break; } } - fclose(file); + stream.close(); bPassed = GetGamerInfoPassed((j+1)*100); sprintf(line, "%d: %s", j+1, name); @@ -4817,14 +4822,6 @@ void CMainDialog::UpdateSceneChap(int &chap) break; } -/* TODO: #if _TEEN - if ( m_phase == PHASE_TRAINER && !m_main->GetShowAll() && !bPassed ) - { - j ++; - break; - } -#endif*/ - if ( m_phase == PHASE_FREE && j == m_accessChap ) { j ++; @@ -5493,7 +5490,6 @@ void CMainDialog::ChangeSetupButtons() void CMainDialog::SetupMemorize() { - GetProfile().SetLocalProfileString("Directory", "scene", m_sceneDir); GetProfile().SetLocalProfileString("Directory", "savegame", m_savegameDir); GetProfile().SetLocalProfileString("Directory", "public", m_publicDir); GetProfile().SetLocalProfileString("Directory", "user", m_userDir); @@ -5586,11 +5582,6 @@ void CMainDialog::SetupRecall() int iValue; std::string key; - if ( GetProfile().GetLocalProfileString("Directory", "scene", key) ) - { - m_sceneDir = key; - } - if ( GetProfile().GetLocalProfileString("Directory", "savegame", key) ) { m_savegameDir = key; diff --git a/src/ui/maindialog.h b/src/ui/maindialog.h index 444a568..7732f9f 100644 --- a/src/ui/maindialog.h +++ b/src/ui/maindialog.h @@ -200,7 +200,6 @@ protected: int m_persoTab; // perso: tab selected float m_persoAngle; // perso: angle of presentation - std::string m_sceneDir; // scene folder std::string m_savegameDir; // savegame folder std::string m_publicDir; // program folder std::string m_userDir; // user folder -- cgit v1.2.3-1-g7c22 From c5abf18a579e0b70926d622425f0a7b8872913d9 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Tue, 1 Jul 2014 21:05:06 +0200 Subject: Post-release 0.1.3-alpha --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d40a1b9..bf1e12e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,9 +16,9 @@ set(COLOBOT_VERSION_MINOR 1) set(COLOBOT_VERSION_REVISION 3) # Used on official releases -set(COLOBOT_VERSION_RELEASE_CODENAME "-alpha") +#set(COLOBOT_VERSION_RELEASE_CODENAME "-alpha") # Used on unreleased, development builds -#set(COLOBOT_VERSION_UNRELEASED "+alpha") +set(COLOBOT_VERSION_UNRELEASED "+alpha") # Append git characteristics to version if(DEFINED COLOBOT_VERSION_UNRELEASED) -- cgit v1.2.3-1-g7c22 From 4c7ff90dcc451a4d231d227ae69efdb0c7e33a1c Mon Sep 17 00:00:00 2001 From: Piotr Dziwinski Date: Wed, 9 Jul 2014 00:28:05 +0200 Subject: Updated data submodule --- data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data b/data index beff418..edd849b 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit beff41878d617640c21035c66ea9ddb2e82e6587 +Subproject commit edd849b1c8f41217f1715683a7e6dc5122935763 -- cgit v1.2.3-1-g7c22 From 1ee0c0e8fe2b4f0cba35b65b2c17deaa9f1dc8e8 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Thu, 10 Jul 2014 15:27:43 +0200 Subject: Fixed level list --- src/ui/maindialog.cpp | 57 ++++++++++++++++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 21 deletions(-) diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index 54b8702..c6322b6 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -784,15 +784,15 @@ pb->SetState(STATE_SHADOW); if ( m_phase == PHASE_FREE ) { - strcpy(m_sceneName, "levels/missions/"); + strcpy(m_sceneName, "missions"); ReadGamerInfo(); m_accessChap = GetChapPassed(); } - if ( m_phase == PHASE_TRAINER ) strcpy(m_sceneName, "levels/exercises/"); - if ( m_phase == PHASE_DEFI ) strcpy(m_sceneName, "levels/challenges/" ); - if ( m_phase == PHASE_MISSION ) strcpy(m_sceneName, "levels/missions/"); - if ( m_phase == PHASE_FREE ) strcpy(m_sceneName, "levels/freemissions/"); + if ( m_phase == PHASE_TRAINER ) strcpy(m_sceneName, "exercises"); + if ( m_phase == PHASE_DEFI ) strcpy(m_sceneName, "challenges" ); + if ( m_phase == PHASE_MISSION ) strcpy(m_sceneName, "missions"); + if ( m_phase == PHASE_FREE ) strcpy(m_sceneName, "freemissions"); if ( m_phase == PHASE_TEEN ) strcpy(m_sceneName, "teen"); if ( m_phase == PHASE_USER ) strcpy(m_sceneName, "user"); @@ -3579,29 +3579,42 @@ void CMainDialog::SetUserDir(char *base, int rank) void CMainDialog::BuildSceneName(std::string &filename, char *base, int rank) { - std::ostringstream rankStream; + //TODO: Support for more than 100 + int chapter = rank/100; + int new_rank = rank%100; + + std::ostringstream outstream; if ( strcmp(base, "user") == 0 ) { //TODO: Change this to point user dir according to operating system - rankStream << std::setfill('0') << std::setw(2) << rank%100; - filename = m_userDir + "/" + m_userList[rank/100-1] + "/" + rankStream.str() + ".txt"; + /*rankStream << std::setfill('0') << std::setw(2) << rank%100; + filename = m_userDir + "/" + m_userList[rank/100-1] + "/" + rankStream.str() + ".txt";*/ + assert(false); //TODO: Userlevel support } else if ( strcmp(base, "perso") == 0 ) { filename = "levels/other/perso.txt"; } + else if( strcmp(base, "win") == 0 || strcmp(base, "lost") == 0 ) + { + outstream << "levels/other/"; + outstream << base << std::setfill('0') << std::setw(3) << chapter << "/"; + outstream << "scene.txt"; + std::cout << outstream.str() << std::endl; + filename = outstream.str(); + } else { - rankStream << "chapter" << std::setfill('0') << std::setw(3) << (rank / 100); - if (rank % 100 == 0) - { - rankStream << "/chaptertitle.txt"; - } - else - { - rankStream << "/level" << std::setfill('0') << std::setw(3) << (rank % 100) << "/scene.txt"; + outstream << "levels/" << base << "/"; + outstream << "chapter" << std::setfill('0') << std::setw(3) << chapter << "/"; + if(new_rank == 000) { + outstream << "chaptertitle.txt"; + } else { + outstream << "level" << std::setfill('0') << std::setw(3) << new_rank << "/"; + outstream << "scene.txt"; } - filename = base + rankStream.str(); + filename = outstream.str(); + std::cout << filename.c_str() << std::endl; } } @@ -4881,14 +4894,16 @@ void CMainDialog::UpdateSceneList(int chap, int &sel) if ( m_phase == PHASE_TRAINER && j >= 5 ) break; #endif */ BuildSceneName(fileName, m_sceneName, (chap+1)*100+(j+1)); - file = fopen(fileName.c_str(), "r"); - if ( file == NULL ) break; + + CInputStream stream; + stream.open(fileName); + if (!stream.is_open()) break; BuildResumeName(name, m_sceneName, j+1); // default name sprintf(op, "Title.E"); sprintf(op_i18n, "Title.%c", m_app->GetLanguageChar()); - while ( fgets(line, 500, file) != NULL ) + while (stream.getline(line, 500)) { for ( i=0 ; i<500 ; i++ ) { @@ -4910,7 +4925,7 @@ void CMainDialog::UpdateSceneList(int chap, int &sel) break; } } - fclose(file); + stream.close(); bPassed = GetGamerInfoPassed((chap+1)*100+(j+1)); sprintf(line, "%d: %s", j+1, name); -- cgit v1.2.3-1-g7c22 From 7b04f673580f0c24aecc103a25c4c4b82da1380f Mon Sep 17 00:00:00 2001 From: krzys-h Date: Thu, 10 Jul 2014 15:38:37 +0200 Subject: Fixed music loading --- src/sound/oalsound/alsound.cpp | 20 ++++++++++---------- src/sound/sound.cpp | 8 ++++---- src/ui/maindialog.cpp | 7 +++---- 3 files changed, 17 insertions(+), 18 deletions(-) diff --git a/src/sound/oalsound/alsound.cpp b/src/sound/oalsound/alsound.cpp index e9bc116..54c94a5 100644 --- a/src/sound/oalsound/alsound.cpp +++ b/src/sound/oalsound/alsound.cpp @@ -173,12 +173,12 @@ bool ALSound::Cache(Sound sound, const std::string &filename) bool ALSound::CacheMusic(const std::string &filename) { - if (m_music.find(filename) == m_music.end()) + if (m_music.find("music/"+filename) == m_music.end()) { Buffer *buffer = new Buffer(); - if (buffer->LoadFromFile(filename, static_cast(-1))) + if (buffer->LoadFromFile("music/"+filename, static_cast(-1))) { - m_music[filename] = buffer; + m_music["music/"+filename] = buffer; return true; } } @@ -609,7 +609,7 @@ void ALSound::SetListener(const Math::Vector &eye, const Math::Vector &lookat) bool ALSound::PlayMusic(int rank, bool bRepeat, float fadeTime) { std::stringstream filename; - filename << "music/music" << std::setfill('0') << std::setw(3) << rank << ".ogg"; + filename << "music" << std::setfill('0') << std::setw(3) << rank << ".ogg"; return PlayMusic(filename.str(), bRepeat, fadeTime); } @@ -636,26 +636,26 @@ bool ALSound::PlayMusic(const std::string &filename, bool bRepeat, float fadeTim Buffer *buffer; // check if we have music in cache - if (m_music.find(filename) == m_music.end()) + if (m_music.find("music/"+filename) == m_music.end()) { GetLogger()->Debug("Music %s was not cached!\n", filename.c_str()); - if (!boost::filesystem::exists(filename)) + /* TODO: if (!boost::filesystem::exists("music/"+filename)) { GetLogger()->Debug("Requested music %s was not found.\n", filename.c_str()); return false; - } + } */ buffer = new Buffer(); - if (!buffer->LoadFromFile(filename, static_cast(-1))) + if (!buffer->LoadFromFile("music/"+filename, static_cast(-1))) { return false; } - m_music[filename] = buffer; + m_music["music/"+filename] = buffer; } else { GetLogger()->Debug("Music loaded from cache\n"); - buffer = m_music[filename]; + buffer = m_music["music/"+filename]; } if (m_currentMusic) diff --git a/src/sound/sound.cpp b/src/sound/sound.cpp index 9c9f483..5d99cdb 100644 --- a/src/sound/sound.cpp +++ b/src/sound/sound.cpp @@ -54,10 +54,10 @@ void CSoundInterface::CacheAll() void CSoundInterface::AddMusicFiles() { - CacheMusic("music/Intro1.ogg"); - CacheMusic("music/Intro2.ogg"); - CacheMusic("music/music010.ogg"); - CacheMusic("music/music011.ogg"); + CacheMusic("Intro1.ogg"); + CacheMusic("Intro2.ogg"); + CacheMusic("music010.ogg"); + CacheMusic("music011.ogg"); } bool CSoundInterface::Cache(Sound bSound, const std::string &bFile) diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index c6322b6..2699b46 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -764,7 +764,7 @@ pb->SetState(STATE_SHADOW); { if (!m_sound->IsPlayingMusic()) { - m_sound->PlayMusic("music/Intro1.ogg", false); + m_sound->PlayMusic("Intro1.ogg", false); } } @@ -2013,7 +2013,7 @@ bool CMainDialog::EventProcess(const Event &event) { if (!m_sound->IsPlayingMusic()) { - m_sound->PlayMusic("music/Intro2.ogg", true); + m_sound->PlayMusic("Intro2.ogg", true); } } @@ -3579,7 +3579,7 @@ void CMainDialog::SetUserDir(char *base, int rank) void CMainDialog::BuildSceneName(std::string &filename, char *base, int rank) { - //TODO: Support for more than 100 + //TODO: Support for more than 9 chapters int chapter = rank/100; int new_rank = rank%100; @@ -3614,7 +3614,6 @@ void CMainDialog::BuildSceneName(std::string &filename, char *base, int rank) outstream << "scene.txt"; } filename = outstream.str(); - std::cout << filename.c_str() << std::endl; } } -- cgit v1.2.3-1-g7c22 From 106ec014b812c6f5eb93ea30c04b3bba333542dd Mon Sep 17 00:00:00 2001 From: krzys-h Date: Thu, 10 Jul 2014 16:25:40 +0200 Subject: Fixed texture and script loading --- src/common/image.cpp | 11 ++++++- src/graphics/engine/engine.cpp | 26 ++++++++--------- src/graphics/engine/lightning.cpp | 2 +- src/graphics/engine/particle.cpp | 10 +++---- src/graphics/engine/terrain.cpp | 6 ---- src/object/robotmain.cpp | 15 +++++----- src/ui/button.cpp | 2 +- src/ui/check.cpp | 2 +- src/ui/color.cpp | 2 +- src/ui/compass.cpp | 2 +- src/ui/control.cpp | 16 +++++------ src/ui/edit.cpp | 6 ++-- src/ui/gauge.cpp | 2 +- src/ui/group.cpp | 60 +++++++++++++++++++-------------------- src/ui/image.cpp | 2 +- src/ui/key.cpp | 2 +- src/ui/list.cpp | 10 +++---- src/ui/maindialog.cpp | 20 ++++++------- src/ui/map.cpp | 28 +++++++++--------- src/ui/scroll.cpp | 8 +++--- src/ui/shortcut.cpp | 6 ++-- src/ui/slider.cpp | 6 ++-- src/ui/window.cpp | 38 ++++++++++++------------- 23 files changed, 143 insertions(+), 139 deletions(-) diff --git a/src/common/image.cpp b/src/common/image.cpp index aec3d4e..9916c8f 100644 --- a/src/common/image.cpp +++ b/src/common/image.cpp @@ -382,7 +382,16 @@ bool CImage::Load(const std::string& fileName) m_error = ""; - m_data->surface = IMG_Load_RW(CResourceManager::GetSDLFileHandler(fileName.c_str()), 1); + SDL_RWops* pointer = CResourceManager::GetSDLFileHandler(fileName.c_str()); + if (pointer == nullptr) + { + delete m_data; + m_data = nullptr; + + m_error = "Unable to open file"; + return false; + } + m_data->surface = IMG_Load_RW(pointer, 1); if (m_data->surface == nullptr) { delete m_data; diff --git a/src/graphics/engine/engine.cpp b/src/graphics/engine/engine.cpp index 6f6141b..2745068 100644 --- a/src/graphics/engine/engine.cpp +++ b/src/graphics/engine/engine.cpp @@ -282,7 +282,7 @@ bool CEngine::Create() params.minFilter = TEX_MIN_FILTER_NEAREST; params.magFilter = TEX_MAG_FILTER_NEAREST; params.mipmap = false; - m_miceTexture = LoadTexture("textures/interface/mouse.png", params); + m_miceTexture = LoadTexture("interface/mouse.png", params); GetSystemUtils()->GetCurrentTimeStamp(m_currentFrameTime); GetSystemUtils()->GetCurrentTimeStamp(m_lastFrameTime); @@ -2246,7 +2246,7 @@ Texture CEngine::CreateTexture(const std::string& texName, const TextureCreatePa if (image == nullptr) { - if (!img.Load(texName)) + if (!img.Load("textures/"+texName)) { std::string error = img.GetError(); GetLogger()->Error("Couldn't load texture '%s': %s, blacklisting\n", texName.c_str(), error.c_str()); @@ -2297,15 +2297,15 @@ Texture CEngine::LoadTexture(const std::string& name, const TextureCreateParams& bool CEngine::LoadAllTextures() { - LoadTexture("textures/interface/text.png"); - m_miceTexture = LoadTexture("textures/interface/mouse.png"); - LoadTexture("textures/interface/button1.png"); - LoadTexture("textures/interface/button2.png"); - LoadTexture("textures/interface/button3.png"); - LoadTexture("textures/interface/effect00.png"); - LoadTexture("textures/interface/effect01.png"); - LoadTexture("textures/interface/effect02.png"); - LoadTexture("textures/interface/map.png"); + LoadTexture("interface/text.png"); + m_miceTexture = LoadTexture("interface/mouse.png"); + LoadTexture("interface/button1.png"); + LoadTexture("interface/button2.png"); + LoadTexture("interface/button3.png"); + LoadTexture("interface/effect00.png"); + LoadTexture("interface/effect01.png"); + LoadTexture("interface/effect02.png"); + LoadTexture("interface/map.png"); if (! m_backgroundName.empty()) { @@ -2414,7 +2414,7 @@ bool CEngine::ChangeTextureColor(const std::string& texName, CImage img; - if (!img.Load(texName)) + if (!img.Load("textures/"+texName)) { std::string error = img.GetError(); GetLogger()->Error("Couldn't load texture '%s': %s, blacklisting\n", texName.c_str(), error.c_str()); @@ -3773,7 +3773,7 @@ void CEngine::DrawShadow() SetMaterial(material); // TODO: create a separate texture - SetTexture("textures/interface/text.png"); + SetTexture("interface/text.png"); Math::Point ts, ti; diff --git a/src/graphics/engine/lightning.cpp b/src/graphics/engine/lightning.cpp index 69d8a3c..b0e144c 100644 --- a/src/graphics/engine/lightning.cpp +++ b/src/graphics/engine/lightning.cpp @@ -235,7 +235,7 @@ void CLightning::Draw() mat.LoadIdentity(); device->SetTransform(TRANSFORM_WORLD, mat); - m_engine->SetTexture("textures/interface/effect00.png"); + m_engine->SetTexture("interface/effect00.png"); m_engine->SetState(ENG_RSTATE_TTEXTURE_BLACK); Math::Point texInf; diff --git a/src/graphics/engine/particle.cpp b/src/graphics/engine/particle.cpp index 9e36153..3dc8c0d 100644 --- a/src/graphics/engine/particle.cpp +++ b/src/graphics/engine/particle.cpp @@ -198,10 +198,10 @@ void CParticle::FlushParticle(int sheet) //! Returns file name of the effect effectNN.png, with NN = number void NameParticle(std::string &name, int num) { - if (num == 1) name = "textures/interface/effect00.png"; - else if (num == 2) name = "textures/interface/effect01.png"; - else if (num == 3) name = "textures/interface/effect02.png"; - else if (num == 4) name = "textures/interface/text.png"; + if (num == 1) name = "interface/effect00.png"; + else if (num == 2) name = "interface/effect01.png"; + else if (num == 3) name = "interface/effect02.png"; + else if (num == 4) name = "interface/text.png"; else name = ""; } @@ -3551,7 +3551,7 @@ void CParticle::DrawParticle(int sheet) // Draw tire marks. if (m_wheelTraceTotal > 0 && sheet == SH_WORLD) { - m_engine->SetTexture("textures/interface/text.png"); + m_engine->SetTexture("interface/text.png"); m_engine->SetState(ENG_RSTATE_TTEXTURE_WHITE); Math::Matrix matrix; matrix.LoadIdentity(); diff --git a/src/graphics/engine/terrain.cpp b/src/graphics/engine/terrain.cpp index 037cba6..6a8dc6b 100644 --- a/src/graphics/engine/terrain.cpp +++ b/src/graphics/engine/terrain.cpp @@ -365,17 +365,11 @@ bool CTerrain::RandomizeRelief() double xi, yi, a, b; a = modf(x * (rozmiar_oktawy-1), &xi); b = modf(y * (rozmiar_oktawy-1), &yi); - /*int xi = floor(x * (rozmiar_oktawy-1)); - int yi = floor(y * (rozmiar_oktawy-1)); - float a = (x * (rozmiar_oktawy-1)) - xi; - float b = (y * (rozmiar_oktawy-1)) - yi;*/ - //CLogger::GetInstancePointer()->Error("%f %f %f %f\n", xi, yi, a, b); float lg = oktawy[i][static_cast(yi * rozmiar_oktawy + xi)]; float pg = oktawy[i][static_cast(yi * rozmiar_oktawy + xi + 1)]; float ld = oktawy[i][static_cast((yi+1) * rozmiar_oktawy + xi)]; float pd = oktawy[i][static_cast((yi+1) * rozmiar_oktawy + xi + 1)]; - //CLogger::GetInstancePointer()->Error("%f %f %f %f\n", lg, pg, ld, pd); float g = pg * a + lg * (1-a); float d = pd * a + ld * (1-a); diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp index 87cd5fc..dee52d7 100644 --- a/src/object/robotmain.cpp +++ b/src/object/robotmain.cpp @@ -4374,7 +4374,7 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) } OpString(line, "image", name); - m_terrain->LoadRelief(name, OpFloat(line, "factor", 1.0f), OpInt(line, "border", 1)); + m_terrain->LoadRelief(std::string("textures/")+name, OpFloat(line, "factor", 1.0f), OpInt(line, "border", 1)); continue; } @@ -4405,7 +4405,7 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) } OpString(line, "image", name); - m_terrain->LoadResources(name); + m_terrain->LoadResources(std::string("textures/")+name); continue; } @@ -5307,12 +5307,12 @@ void CRobotMain::ChangeColor() // PARTIPLOUF0 and PARTIDROP : ts = Math::Point(0.500f, 0.500f); ti = Math::Point(0.875f, 0.750f); - m_engine->ChangeTextureColor("textures/interface/effect00.png", m_colorRefWater, m_colorNewWater, colorRef2, colorNew2, 0.20f, -1.0f, ts, ti, 0, m_colorShiftWater, true); + m_engine->ChangeTextureColor("interface/effect00.png", m_colorRefWater, m_colorNewWater, colorRef2, colorNew2, 0.20f, -1.0f, ts, ti, 0, m_colorShiftWater, true); // PARTIFLIC : ts = Math::Point(0.00f, 0.75f); ti = Math::Point(0.25f, 1.00f); - m_engine->ChangeTextureColor("textures/interface/effect02.png", m_colorRefWater, m_colorNewWater, colorRef2, colorNew2, 0.20f, -1.0f, ts, ti, 0, m_colorShiftWater, true); + m_engine->ChangeTextureColor("interface/effect02.png", m_colorRefWater, m_colorNewWater, colorRef2, colorNew2, 0.20f, -1.0f, ts, ti, 0, m_colorShiftWater, true); } //! Updates the number of unnecessary objects @@ -5746,11 +5746,12 @@ void CRobotMain::CompileScript(bool soluce) { if (brain->GetCompile(j)) continue; - char* name = brain->GetScriptName(j); + std::string name = brain->GetScriptName(j); + name = "ai/"+name; if (name[0] != 0) { - if(! brain->ReadProgram(j, name)) { - CLogger::GetInstancePointer()->Error("Unable to read script from file \"%s\"\n", name); + if(! brain->ReadProgram(j, const_cast(name.c_str()))) { + CLogger::GetInstancePointer()->Error("Unable to read script from file \"%s\"\n", name.c_str()); } if (!brain->GetCompile(j)) nbError++; } diff --git a/src/ui/button.cpp b/src/ui/button.cpp index d859fb7..2a1fb3b 100644 --- a/src/ui/button.cpp +++ b/src/ui/button.cpp @@ -176,7 +176,7 @@ void CButton::Draw() (m_state & STATE_CARD ) == 0 && (m_state & STATE_SIMPLY) == 0 ) { - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); dp = 0.5f / 256.0f; diff --git a/src/ui/check.cpp b/src/ui/check.cpp index 3410d2e..9d42b86 100644 --- a/src/ui/check.cpp +++ b/src/ui/check.cpp @@ -102,7 +102,7 @@ void CCheck::Draw() DrawShadow(m_pos, m_dim); } - m_engine->SetTexture("textures/interface/button1.png"); + m_engine->SetTexture("interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); zoomExt = 1.00f; diff --git a/src/ui/color.cpp b/src/ui/color.cpp index b8659e3..00af8a5 100644 --- a/src/ui/color.cpp +++ b/src/ui/color.cpp @@ -138,7 +138,7 @@ void CColor::Draw() DrawShadow(m_pos, m_dim); } - m_engine->SetTexture("textures/interface/button1.png"); + m_engine->SetTexture("interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); CControl::Draw(); diff --git a/src/ui/compass.cpp b/src/ui/compass.cpp index ebe1908..068c37f 100644 --- a/src/ui/compass.cpp +++ b/src/ui/compass.cpp @@ -88,7 +88,7 @@ void CCompass::Draw() device = m_engine->GetDevice(); - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); p1.x = m_pos.x; diff --git a/src/ui/control.cpp b/src/ui/control.cpp index c759505..1eff38c 100644 --- a/src/ui/control.cpp +++ b/src/ui/control.cpp @@ -437,7 +437,7 @@ void CControl::Draw() if ( (m_state & STATE_VISIBLE) == 0 ) return; - m_engine->SetTexture("textures/interface/button1.png"); + m_engine->SetTexture("interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); zoomExt = 1.00f; @@ -491,7 +491,7 @@ void CControl::Draw() if ( m_state & STATE_OKAY ) { - m_engine->SetTexture("textures/interface/button3.png"); + m_engine->SetTexture("interface/button3.png"); icon = 3; // yellow with green point pressed } @@ -507,22 +507,22 @@ void CControl::Draw() { icon -= 192; #if _POLISH - m_engine->SetTexture("textures/interface/textp.png"); + m_engine->SetTexture("interface/textp.png"); #else - m_engine->SetTexture("textures/interface/text.png"); + m_engine->SetTexture("interface/text.png"); #endif m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); } else if ( icon >= 128 ) { icon -= 128; - m_engine->SetTexture("textures/interface/button3.png"); + m_engine->SetTexture("interface/button3.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); } else if ( icon >= 64 ) { icon -= 64; - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); } else @@ -755,7 +755,7 @@ void CControl::DrawWarning(Math::Point pos, Math::Point dim) dp = 0.5f / 256.0f; - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 64.0f / 256.0f; @@ -799,7 +799,7 @@ void CControl::DrawShadow(Math::Point pos, Math::Point dim, float deep) dp = 0.5f/256.0f; - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState( Gfx::ENG_RSTATE_TTEXTURE_WHITE); pos.x += deep * 0.010f * 0.75f; diff --git a/src/ui/edit.cpp b/src/ui/edit.cpp index e645063..fb2fcb4 100644 --- a/src/ui/edit.cpp +++ b/src/ui/edit.cpp @@ -1175,7 +1175,7 @@ void CEdit::DrawBack(Math::Point pos, Math::Point dim) if ( m_bGeneric ) return; - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); if ( m_bMulti ) @@ -1226,9 +1226,9 @@ void CEdit::DrawPart(Math::Point pos, Math::Point dim, int icon) float dp; #if _POLISH - m_engine->SetTexture("textures/interface/textp.png"); + m_engine->SetTexture("interface/textp.png"); #else - m_engine->SetTexture("textures/interface/text.png"); + m_engine->SetTexture("interface/text.png"); #endif m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); diff --git a/src/ui/gauge.cpp b/src/ui/gauge.cpp index 170db5b..73585d3 100644 --- a/src/ui/gauge.cpp +++ b/src/ui/gauge.cpp @@ -75,7 +75,7 @@ void CGauge::Draw() if ( (m_state & STATE_VISIBLE) == 0 ) return; - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); dp = 0.5f/256.0f; diff --git a/src/ui/group.cpp b/src/ui/group.cpp index d90a9e6..723a9fc 100644 --- a/src/ui/group.cpp +++ b/src/ui/group.cpp @@ -87,7 +87,7 @@ void CGroup::Draw() if ( m_icon == 0 ) // hollow frame? { - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 160.0f / 256.0f; uv1.y = 192.0f / 256.0f; // u-v texture @@ -103,7 +103,7 @@ void CGroup::Draw() } if ( m_icon == 1 ) // orange solid opaque? { - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 104.0f / 256.0f; uv1.y = 48.0f / 256.0f; @@ -117,7 +117,7 @@ void CGroup::Draw() } if ( m_icon == 2 ) // orange degrade -> transparent? { - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); uv1.x = 112.0f / 256.0f; uv1.y = 48.0f / 256.0f; @@ -131,7 +131,7 @@ void CGroup::Draw() } if ( m_icon == 3 ) // transparent gradient -> gray? { - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); uv1.x = 120.0f / 256.0f; uv1.y = 48.0f / 256.0f; @@ -145,7 +145,7 @@ void CGroup::Draw() } if ( m_icon == 4 ) // degrade blue corner? { - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); uv1.x = 192.0f / 256.0f; uv1.y = 128.0f / 256.0f; @@ -159,7 +159,7 @@ void CGroup::Draw() } if ( m_icon == 5 ) // degrade orange corner? { - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); uv1.x = 224.0f / 256.0f; uv1.y = 128.0f / 256.0f; @@ -173,7 +173,7 @@ void CGroup::Draw() } if ( m_icon == 6 ) { - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 0.0f / 256.0f; // brown transparent uv1.y = 75.0f / 256.0f; @@ -189,7 +189,7 @@ void CGroup::Draw() } if ( m_icon == 7 ) { - m_engine->SetTexture("textures/interface/button1.png"); + m_engine->SetTexture("interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 64.0f / 256.0f; uv1.y = 0.0f / 256.0f; @@ -203,7 +203,7 @@ void CGroup::Draw() } if ( m_icon == 8 ) { - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 64.0f / 256.0f; // green transparent uv1.y = 160.0f / 256.0f; @@ -217,7 +217,7 @@ void CGroup::Draw() } if ( m_icon == 9 ) { - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 64.0f / 256.0f; // red transparent uv1.y = 176.0f/256.0f; @@ -231,7 +231,7 @@ void CGroup::Draw() } if ( m_icon == 10 ) { - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 64.0f / 256.0f; // blue transparent uv1.y = 192.0f / 256.0f; @@ -245,7 +245,7 @@ void CGroup::Draw() } if ( m_icon == 11 ) { - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 64.0f / 256.0f; // yellow transparent uv1.y = 224.0f / 256.0f; @@ -262,7 +262,7 @@ void CGroup::Draw() dim.x = m_dim.x / 2.0f; dim.y = m_dim.y / 2.0f; - m_engine->SetTexture("textures/interface/mouse.png"); + m_engine->SetTexture("interface/mouse.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); pos.x = m_pos.x-m_dim.x/300.0f; pos.y = m_pos.y+m_dim.y/300.0f+dim.y; @@ -301,7 +301,7 @@ void CGroup::Draw() } if ( m_icon == 13 ) // corner upper / left? { - m_engine->SetTexture("textures/interface/mouse.png"); + m_engine->SetTexture("interface/mouse.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); pos.x = m_pos.x-m_dim.x/150.0f; pos.y = m_pos.y+m_dim.y/150.0f; @@ -322,7 +322,7 @@ void CGroup::Draw() } if ( m_icon == 14 ) // corner upper / right? { - m_engine->SetTexture("textures/interface/mouse.png"); + m_engine->SetTexture("interface/mouse.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); pos.x = m_pos.x-m_dim.x/150.0f; pos.y = m_pos.y+m_dim.y/150.0f; @@ -343,7 +343,7 @@ void CGroup::Draw() } if ( m_icon == 15 ) // corner lower / left? { - m_engine->SetTexture("textures/interface/mouse.png"); + m_engine->SetTexture("interface/mouse.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); pos.x = m_pos.x-m_dim.x/150.0f; pos.y = m_pos.y+m_dim.y/150.0f; @@ -364,7 +364,7 @@ void CGroup::Draw() } if ( m_icon == 16 ) // corner lower / left? { - m_engine->SetTexture("textures/interface/mouse.png"); + m_engine->SetTexture("interface/mouse.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); pos.x = m_pos.x-m_dim.x/150.0f; pos.y = m_pos.y+m_dim.y/150.0f; @@ -385,7 +385,7 @@ void CGroup::Draw() } if ( m_icon == 17 ) { - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 0.0f / 256.0f; // blue frame uv1.y = 75.0f / 256.0f; @@ -401,7 +401,7 @@ void CGroup::Draw() } if ( m_icon == 18 ) // arrow> for SatCom? { - m_engine->SetTexture("textures/interface/button1.png"); + m_engine->SetTexture("interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); uv1.x = 0.0f / 256.0f; // > uv1.y = 192.0f / 256.0f; @@ -415,7 +415,7 @@ void CGroup::Draw() } if ( m_icon == 19 ) // SatCom symbol? { - m_engine->SetTexture("textures/interface/button1.png"); + m_engine->SetTexture("interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); uv1.x = 224.0f / 256.0f; // SatCom symbol uv1.y = 224.0f / 256.0f; @@ -429,7 +429,7 @@ void CGroup::Draw() } if ( m_icon == 20 ) // solid blue background? { - m_engine->SetTexture("textures/interface/button1.png"); + m_engine->SetTexture("interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); uv1.x = 224.0f / 256.0f; uv1.y = 32.0f / 256.0f; @@ -443,7 +443,7 @@ void CGroup::Draw() } if ( m_icon == 21 ) // stand-by symbol? { - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); uv1.x = 160.0f / 256.0f; uv1.y = 32.0f / 256.0f; @@ -457,7 +457,7 @@ void CGroup::Draw() } if ( m_icon == 22 ) { - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 64.0f / 256.0f; // opaque yellow uv1.y = 224.0f / 256.0f; @@ -474,7 +474,7 @@ void CGroup::Draw() if ( m_icon == 23 ) { - m_engine->SetTexture("textures/interface/button3.png"); + m_engine->SetTexture("interface/button3.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 64.0f / 256.0f; // yellow uv1.y = 192.0f / 256.0f; @@ -490,7 +490,7 @@ void CGroup::Draw() } if ( m_icon == 24 ) { - m_engine->SetTexture("textures/interface/button3.png"); + m_engine->SetTexture("interface/button3.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 80.0f / 256.0f; // orange uv1.y = 192.0f / 256.0f; @@ -506,7 +506,7 @@ void CGroup::Draw() } if ( m_icon == 25 ) { - m_engine->SetTexture("textures/interface/button3.png"); + m_engine->SetTexture("interface/button3.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 64.0f / 256.0f; // orange uv1.y = 208.0f / 256.0f; @@ -522,7 +522,7 @@ void CGroup::Draw() } if ( m_icon == 26 ) { - m_engine->SetTexture("textures/interface/button3.png"); + m_engine->SetTexture("interface/button3.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 80.0f / 256.0f; // red uv1.y = 208.0f / 256.0f; @@ -538,7 +538,7 @@ void CGroup::Draw() } if ( m_icon == 27 ) { - m_engine->SetTexture("textures/interface/button3.png"); + m_engine->SetTexture("interface/button3.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 32.0f / 256.0f; uv1.y = 0.0f / 256.0f; @@ -556,7 +556,7 @@ void CGroup::Draw() pos = m_pos; dim = m_dim; - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 32.0f / 256.0f; uv1.y = 32.0f / 256.0f; @@ -568,7 +568,7 @@ void CGroup::Draw() uv2.y -= dp; DrawIcon(pos, dim, uv1, uv2); - m_engine->SetTexture("textures/interface/button3.png"); + m_engine->SetTexture("interface/button3.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); pos.x += 8.0f / 640.0f; pos.y += 8.0f / 480.0f; diff --git a/src/ui/image.cpp b/src/ui/image.cpp index bd261b3..07b0675 100644 --- a/src/ui/image.cpp +++ b/src/ui/image.cpp @@ -110,7 +110,7 @@ void CImage::Draw() if ( m_icon == 0 ) // hollow frame? { - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 160.0f / 256.0f; uv1.y = 192.0f / 256.0f; // u-v texture diff --git a/src/ui/key.cpp b/src/ui/key.cpp index 0b86a91..1c8ebcd 100644 --- a/src/ui/key.cpp +++ b/src/ui/key.cpp @@ -136,7 +136,7 @@ void CKey::Draw() DrawShadow(m_pos, m_dim); - m_engine->SetTexture("textures/interface/button1.png"); + m_engine->SetTexture("interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); // was D3DSTATENORMAL float zoomExt = 1.00f; diff --git a/src/ui/list.cpp b/src/ui/list.cpp index b5f7599..bccb435 100644 --- a/src/ui/list.cpp +++ b/src/ui/list.cpp @@ -388,7 +388,7 @@ void CList::Draw() if (m_icon == 0) { - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 128.0f / 256.0f; @@ -398,7 +398,7 @@ void CList::Draw() } else { - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 132.0f / 256.0f; @@ -434,7 +434,7 @@ void CList::Draw() dim.y *= 0.4f; pos.y -= dim.y; - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); // was D3DSTATETTw uv1.x = 120.0f / 256.0f; uv1.y = 64.0f / 256.0f; @@ -509,7 +509,7 @@ void CList::Draw() if ( m_check[i + m_firstLine] ) { - m_engine->SetTexture("textures/interface/button1.png"); + m_engine->SetTexture("interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 64.0f / 256.0f; uv1.y = 0.0f / 256.0f; @@ -534,7 +534,7 @@ void CList::Draw() } else { - m_engine->SetTexture("textures/interface/button1.png"); + m_engine->SetTexture("interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); // was D3DSTATETTw if ( i + m_firstLine == m_selectLine ) { diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index 2699b46..ed5edb4 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -390,7 +390,7 @@ pb->SetState(STATE_SHADOW); pl->SetFontType(Gfx::FONT_COURIER); pl->SetFontSize(Gfx::FONT_SIZE_SMALL); - m_engine->SetBackground("textures/interface/interface.png", + m_engine->SetBackground("interface/interface.png", Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), @@ -510,7 +510,7 @@ pb->SetState(STATE_SHADOW); UpdateNameControl(); UpdateNameFace(); - m_engine->SetBackground("textures/interface/interface.png", + m_engine->SetBackground("interface/interface.png", Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), @@ -974,7 +974,7 @@ pb->SetState(STATE_SHADOW); pb = pw->CreateButton(pos, ddim, -1, EVENT_INTERFACE_BACK); pb->SetState(STATE_SHADOW); - m_engine->SetBackground("textures/interface/interface.png", + m_engine->SetBackground("interface/interface.png", Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), @@ -1173,7 +1173,7 @@ pb->SetState(STATE_SHADOW); if ( !m_bSimulSetup ) { - m_engine->SetBackground("textures/interface/interface.png", + m_engine->SetBackground("interface/interface.png", Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), @@ -1691,7 +1691,7 @@ pos.y -= 0.048f; if ( m_phase == PHASE_READ ) { - m_engine->SetBackground("textures/interface/interface.png", + m_engine->SetBackground("interface/interface.png", Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), @@ -1741,7 +1741,7 @@ pos.y -= 0.048f; pl->SetFontSize(12.0f); pl->SetTextAlign(Gfx::TEXT_ALIGN_CENTER); - m_engine->SetBackground("textures/interface/interface.png", + m_engine->SetBackground("interface/interface.png", Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), @@ -1763,7 +1763,7 @@ pos.y -= 0.048f; m_engine->SetOverColor(Gfx::Color(1.0f, 1.0f, 1.0f, 1.0f), Gfx::ENG_RSTATE_TCOLOR_BLACK); // TODO: color ok? m_engine->SetOverFront(true); - m_engine->SetBackground("textures/interface/ppc.png", + m_engine->SetBackground("interface/ppc.png", Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), @@ -1782,7 +1782,7 @@ pos.y -= 0.048f; m_engine->SetOverColor(Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::ENG_RSTATE_TCOLOR_WHITE); // TODO: color ok? m_engine->SetOverFront(true); - m_engine->SetBackground("textures/interface/colobot.png", + m_engine->SetBackground("interface/colobot.png", Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), @@ -1801,7 +1801,7 @@ pos.y -= 0.048f; m_engine->SetOverColor(Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::ENG_RSTATE_TCOLOR_WHITE); // TODO: color ok? m_engine->SetOverFront(true); - m_engine->SetBackground("textures/interface/epsitec.png", + m_engine->SetBackground("interface/epsitec.png", Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), @@ -1926,7 +1926,7 @@ pos.y -= 0.048f; pb->SetState(STATE_SHADOW); // #endif - m_engine->SetBackground("textures/interface/generico.png", + m_engine->SetBackground("interface/generico.png", Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), diff --git a/src/ui/map.cpp b/src/ui/map.cpp index 1e77c08..22cd616 100644 --- a/src/ui/map.cpp +++ b/src/ui/map.cpp @@ -322,7 +322,7 @@ void CMap::Draw() m_offset = AdjustOffset(m_map[MAPMAXOBJECT - 1].pos); if ( m_fixImage[0] == 0 ) { // drawing of the relief? - m_engine->SetTexture("textures/interface/map.png"); + m_engine->SetTexture("interface/map.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 0.5f + (m_offset.x - (m_half / m_zoom)) / (m_half * 2.0f); uv1.y = 0.5f - (m_offset.y + (m_half / m_zoom)) / (m_half * 2.0f); @@ -469,7 +469,7 @@ void CMap::DrawFocus(Math::Point pos, float dir, ObjectType type, MapColor color uv2.x = 126.0f/256.0f; uv2.y = 255.0f/256.0f; - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); bEnding = false; @@ -529,7 +529,7 @@ void CMap::DrawObject(Math::Point pos, float dir, ObjectType type, MapColor colo return; // flashes } - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); if ( bUp ) { @@ -672,7 +672,7 @@ void CMap::DrawObject(Math::Point pos, float dir, ObjectType type, MapColor colo { if ( bSelect ) { - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); if ( m_bToy ) { @@ -698,7 +698,7 @@ void CMap::DrawObject(Math::Point pos, float dir, ObjectType type, MapColor colo { if ( m_bRadar ) { - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); uv1.x = 64.5f/256.0f; // blue triangle uv1.y = 240.5f/256.0f; @@ -718,7 +718,7 @@ void CMap::DrawObject(Math::Point pos, float dir, ObjectType type, MapColor colo if ( color == MAPCOLOR_WAYPOINTb ) { - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 192.5f/256.0f; // blue cross uv1.y = 240.5f/256.0f; @@ -728,7 +728,7 @@ void CMap::DrawObject(Math::Point pos, float dir, ObjectType type, MapColor colo } if ( color == MAPCOLOR_WAYPOINTr ) { - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 208.5f/256.0f; // red cross uv1.y = 240.5f/256.0f; @@ -738,7 +738,7 @@ void CMap::DrawObject(Math::Point pos, float dir, ObjectType type, MapColor colo } if ( color == MAPCOLOR_WAYPOINTg ) { - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 224.5f/256.0f; // green cross uv1.y = 240.5f/256.0f; @@ -748,7 +748,7 @@ void CMap::DrawObject(Math::Point pos, float dir, ObjectType type, MapColor colo } if ( color == MAPCOLOR_WAYPOINTy ) { - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 240.5f/256.0f; // yellow cross uv1.y = 240.5f/256.0f; @@ -758,7 +758,7 @@ void CMap::DrawObject(Math::Point pos, float dir, ObjectType type, MapColor colo } if ( color == MAPCOLOR_WAYPOINTv ) { - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 192.5f/256.0f; // violet cross uv1.y = 224.5f/256.0f; @@ -779,7 +779,7 @@ void CMap::DrawObjectIcon(Math::Point pos, Math::Point dim, MapColor color, dp = 0.5f/256.0f; - m_engine->SetTexture("textures/interface/button3.png"); + m_engine->SetTexture("interface/button3.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); if ( color == MAPCOLOR_MOVE ) { @@ -894,7 +894,7 @@ void CMap::DrawHighlight(Math::Point pos) dim.x *= 2.0f+cosf(m_time*8.0f)*0.5f; dim.y *= 2.0f+cosf(m_time*8.0f)*0.5f; - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 160.5f/256.0f; // hilite uv1.y = 224.5f/256.0f; @@ -1052,8 +1052,8 @@ void CMap::UpdateTerrain() } } - m_engine->DeleteTexture("textures/interface/map.png"); - m_engine->LoadTexture("textures/interface/map.png", &img); + m_engine->DeleteTexture("interface/map.png"); + m_engine->LoadTexture("interface/map.png", &img); } // Updates the field in the map. diff --git a/src/ui/scroll.cpp b/src/ui/scroll.cpp index 680f647..6be1e6d 100644 --- a/src/ui/scroll.cpp +++ b/src/ui/scroll.cpp @@ -379,7 +379,7 @@ void CScroll::DrawVertex(Math::Point pos, Math::Point dim, int icon) if ( icon == 0 ) { - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 0.0f/256.0f; // yellow rectangle uv1.y = 32.0f/256.0f; @@ -389,7 +389,7 @@ void CScroll::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 1 ) { - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 128.0f/256.0f; // gray rectangle uv1.y = 32.0f/256.0f; @@ -399,7 +399,7 @@ void CScroll::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 2 ) { - m_engine->SetTexture("textures/interface/button1.png"); + m_engine->SetTexture("interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 64.0f/256.0f; // blue rectangle uv1.y = 0.0f/256.0f; @@ -409,7 +409,7 @@ void CScroll::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else { - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 104.0f/256.0f; // blue line - uv1.y = 32.0f/256.0f; diff --git a/src/ui/shortcut.cpp b/src/ui/shortcut.cpp index 8971e9d..456b69a 100644 --- a/src/ui/shortcut.cpp +++ b/src/ui/shortcut.cpp @@ -114,7 +114,7 @@ void CShortcut::Draw() zoom = 1.0f; } - m_engine->SetTexture("textures/interface/button3.png"); + m_engine->SetTexture("interface/button3.png"); if ( icon != -1 ) { @@ -130,7 +130,7 @@ void CShortcut::Draw() Math::Point p1, p2, c, uv1, uv2; float dp; - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); zoom = 0.9f+sinf(m_time*8.0f)*0.1f; @@ -170,7 +170,7 @@ void CShortcut::Draw() Math::Point uv1, uv2; float dp; - m_engine->SetTexture("textures/interface/button3.png"); + m_engine->SetTexture("interface/button3.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); uv1.x = 160.0f/256.0f; diff --git a/src/ui/slider.cpp b/src/ui/slider.cpp index 7e41083..9078cfe 100644 --- a/src/ui/slider.cpp +++ b/src/ui/slider.cpp @@ -498,7 +498,7 @@ void CSlider::DrawVertex(Math::Point pos, Math::Point dim, int icon) if ( icon == 0 ) { - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 0.0f/256.0f; // yellow rectangle uv1.y = 32.0f/256.0f; @@ -510,7 +510,7 @@ void CSlider::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 1 ) { - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 128.0f/256.0f; // gray rectangle uv1.y = 32.0f/256.0f; @@ -522,7 +522,7 @@ void CSlider::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else { - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 224.0f/256.0f; // cursor uv1.y = 32.0f/256.0f; diff --git a/src/ui/window.cpp b/src/ui/window.cpp index 70bb2d5..39612a5 100644 --- a/src/ui/window.cpp +++ b/src/ui/window.cpp @@ -1174,7 +1174,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) if ( icon == 0 ) { - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); uv1.x = 64.0f/256.0f; // dark blue transparent uv1.y = 64.0f/256.0f; @@ -1190,7 +1190,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 1 ) { - m_engine->SetTexture("textures/interface/button1.png"); + m_engine->SetTexture("interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 128.0f/256.0f; // white tooltip uv1.y = 0.0f/256.0f; @@ -1204,7 +1204,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 2 ) { - m_engine->SetTexture("textures/interface/button1.png"); + m_engine->SetTexture("interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 128.0f/256.0f; // yellow uv1.y = 16.0f/256.0f; @@ -1218,7 +1218,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 3 ) { - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 0.0f/256.0f; // transparent blue bar with yellow upper uv1.y = 64.0f/256.0f; @@ -1237,7 +1237,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) dim.x += 100.0f/640.0f; dim.y += 60.0f/480.0f; - m_engine->SetTexture("textures/interface/human.png"); + m_engine->SetTexture("interface/human.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 140.0f/256.0f; uv1.y = 32.0f/256.0f; @@ -1254,7 +1254,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) dim.x -= 20.0f/640.0f; dim.y += 0.0f/480.0f; - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); uv1.x = 192.0f/256.0f; uv1.y = 32.0f/256.0f; @@ -1273,7 +1273,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) dim.x -= 20.0f/640.0f; dim.y -= 20.0f/480.0f; - m_engine->SetTexture("textures/interface/button1.png"); + m_engine->SetTexture("interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 64.0f/256.0f; uv1.y = 0.0f/256.0f; @@ -1309,7 +1309,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) dim.x -= 20.0f/640.0f; dim.y -= 20.0f/480.0f; - m_engine->SetTexture("textures/interface/button3.png"); + m_engine->SetTexture("interface/button3.png"); uv1.x = 0.0f/256.0f; uv1.y = 224.0f/256.0f; uv2.x = 32.0f/256.0f; @@ -1320,7 +1320,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) uv2.y -= dp; DrawIcon(pos, dim, uv1, uv2); // dark blue background - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); uv1.x = 224.0f/256.0f; uv1.y = 224.0f/256.0f; uv2.x = 249.0f/256.0f; @@ -1392,7 +1392,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 5 ) { - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 64.0f/256.0f; // transparent green uv1.y = 160.0f/256.0f; @@ -1406,7 +1406,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 6 ) { - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 64.0f/256.0f; // transparent red uv1.y = 176.0f/256.0f; @@ -1420,7 +1420,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 7 ) { - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 64.0f/256.0f; // transparent blue uv1.y = 192.0f/256.0f; @@ -1434,7 +1434,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 8 ) { - m_engine->SetTexture("textures/interface/button1.png"); + m_engine->SetTexture("interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 0.0f/256.0f; // opaque orange uv1.y = 0.0f/256.0f; @@ -1450,7 +1450,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 9 ) { - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 32.0f/256.0f; // opaque gray uv1.y = 32.0f/256.0f; @@ -1470,7 +1470,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 11 ) { - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 64.0f/256.0f; // transparent yellow uv1.y = 224.0f/256.0f; @@ -1484,7 +1484,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 12 ) { - m_engine->SetTexture("textures/interface/button1.png"); + m_engine->SetTexture("interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 128.0f/256.0f; // dirty opaque gray uv1.y = 128.0f/256.0f; @@ -1500,7 +1500,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 13 ) { - m_engine->SetTexture("textures/interface/button1.png"); + m_engine->SetTexture("interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 192.0f/256.0f; // dirty opaque blue uv1.y = 128.0f/256.0f; @@ -1516,7 +1516,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 14 ) { - m_engine->SetTexture("textures/interface/button1.png"); + m_engine->SetTexture("interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 160.0f/256.0f; // dirty opaque red uv1.y = 128.0f/256.0f; @@ -1544,7 +1544,7 @@ void CWindow::DrawHach(Math::Point pos, Math::Point dim) dp = 0.5f/256.0f; - m_engine->SetTexture("textures/interface/button2.png"); + m_engine->SetTexture("interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 64.0f/256.0f; // hatching uv1.y = 208.0f/256.0f; -- cgit v1.2.3-1-g7c22 From 5223ef1fb116780298495a4d2f63e6c2c39fdfbd Mon Sep 17 00:00:00 2001 From: krzys-h Date: Thu, 10 Jul 2014 16:36:00 +0200 Subject: Fixed mission description loading --- src/ui/maindialog.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index ed5edb4..dffa424 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -4852,7 +4852,6 @@ void CMainDialog::UpdateSceneChap(int &chap) void CMainDialog::UpdateSceneList(int chap, int &sel) { - FILE* file = NULL; CWindow* pw; CList* pl; std::string fileName; @@ -4947,6 +4946,7 @@ void CMainDialog::UpdateSceneList(int chap, int &sel) #endif*/ } + /* TODO: ????? BuildSceneName(fileName, m_sceneName, (chap+1)*100+(j+1)); file = fopen(fileName.c_str(), "r"); if ( file == NULL ) @@ -4957,7 +4957,8 @@ void CMainDialog::UpdateSceneList(int chap, int &sel) { m_maxList = j+1; // this is not the last! fclose(file); - } + }*/ + m_maxList = j; if ( sel > j-1 ) sel = j-1; @@ -5008,7 +5009,6 @@ void CMainDialog::ShowSoluceUpdate() void CMainDialog::UpdateSceneResume(int rank) { - FILE* file = NULL; CWindow* pw; CEdit* pe; CCheck* pc; @@ -5048,11 +5048,12 @@ void CMainDialog::UpdateSceneResume(int rank) sprintf(op, "Resume.E"); sprintf(op_i18n, "Resume.%c", m_app->GetLanguageChar()); - file = fopen(fileName.c_str(), "r"); - if ( file == NULL ) return; + CInputStream stream; + stream.open(fileName); + if (!stream.is_open()) return; name[0] = 0; - while ( fgets(line, 500, file) != NULL ) + while ( stream.getline(line, 500) ) { for ( i=0 ; i<500 ; i++ ) { @@ -5077,7 +5078,7 @@ void CMainDialog::UpdateSceneResume(int rank) break; } } - fclose(file); + stream.close(); pe->SetText(name); } -- cgit v1.2.3-1-g7c22 From c22e55b99a38d405fb79184106261229bd2d1855 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Thu, 10 Jul 2014 16:52:29 +0200 Subject: Removed some unused code related to Quit button The button itself has been removed a long time ago --- po/colobot.pot | 34 +++++++++++++++++++++++++--------- po/de.po | 41 +++++++++++++++++++++++++++++++++-------- po/fr.po | 41 +++++++++++++++++++++++++++++++++-------- po/pl.po | 41 +++++++++++++++++++++++++++++++++-------- po/ru.po | 44 ++++++++++++++++++++++++++++++++++++-------- src/common/event.cpp | 1 - src/common/event.h | 1 - src/common/restext.cpp | 1 - src/object/robotmain.cpp | 40 ---------------------------------------- src/ui/maindialog.cpp | 12 ------------ src/ui/studio.cpp | 10 ---------- 11 files changed, 160 insertions(+), 106 deletions(-) diff --git a/po/colobot.pot b/po/colobot.pot index f062658..4695600 100644 --- a/po/colobot.pot +++ b/po/colobot.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-12-27 17:09+0100\n" +"POT-Creation-Date: 2014-07-10 16:50+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -255,9 +255,6 @@ msgstr "" msgid "Previous" msgstr "" -msgid "Menu (\\key quit;)" -msgstr "" - msgid "Exercises\\Programming exercises" msgstr "" @@ -641,6 +638,9 @@ msgstr "" msgid "Take off to finish the mission" msgstr "" +msgid "Destroy" +msgstr "" + msgid "Build a derrick" msgstr "" @@ -680,6 +680,9 @@ msgstr "" msgid "Build a exchange post" msgstr "" +msgid "Build a destroyer" +msgstr "" + msgid "Show if the ground is flat" msgstr "" @@ -809,6 +812,9 @@ msgstr "" msgid "Shoot (\\key action;)" msgstr "" +msgid "Explode (\\key action;)" +msgstr "" + msgid "Recycle (\\key action;)" msgstr "" @@ -1280,6 +1286,9 @@ msgstr "" msgid "Lunar Roving Vehicle" msgstr "" +msgid "Internal error - tell the developers" +msgstr "" + msgid "Unknown command" msgstr "" @@ -1340,6 +1349,12 @@ msgstr "" msgid "Too close to a building" msgstr "" +msgid "Can not produce this object in this mission" +msgstr "" + +msgid "Can not produce not researched object" +msgstr "" + msgid "Ground inappropriate" msgstr "" @@ -1445,6 +1460,12 @@ msgstr "" msgid "No flag nearby" msgstr "" +msgid "Not found anything to destroy" +msgstr "" + +msgid "Inappropriate object" +msgstr "" + msgid "" "The mission is not accomplished yet (press \\key help; for more details)" msgstr "" @@ -1789,10 +1810,6 @@ msgstr "" msgid "speed20;" msgstr "" -#, c-format -msgid "GetResource event num out of range: %d\n" -msgstr "" - msgid "Ctrl" msgstr "" @@ -1810,4 +1827,3 @@ msgstr "" msgid "%1" msgstr "" - diff --git a/po/de.po b/po/de.po index 93a1d7b..9f4c3bd 100644 --- a/po/de.po +++ b/po/de.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-12-27 17:09+0100\n" +"POT-Creation-Date: 2014-07-10 16:50+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -203,6 +203,10 @@ msgstr "Baut einen Geschützturm" msgid "Build a derrick" msgstr "Baut einen Bohrturm" +#, fuzzy +msgid "Build a destroyer" +msgstr "Gebäude zerstört" + msgid "Build a exchange post" msgstr "Baut einen Infoserver" @@ -338,6 +342,12 @@ msgstr "Kamera rechts" msgid "Can not create this; there are too many objects" msgstr "Kein neues Objekt kann erstellt werden (zu viele vorhanden)" +msgid "Can not produce not researched object" +msgstr "" + +msgid "Can not produce this object in this mission" +msgstr "" + msgid "Can't open file" msgstr "Die Datei kann nicht geöffnet werden" @@ -446,6 +456,10 @@ msgstr "Bohrturm" msgid "Descend\\Reduces the power of the jet" msgstr "Sinken\\Leistung des Triebwerks drosseln" +#, fuzzy +msgid "Destroy" +msgstr "Einstampfer" + msgid "Destroy the building" msgstr "Gebäude sprengen" @@ -525,6 +539,10 @@ msgstr "Programmieren\\Programmierübungen" msgid "Exit film\\Film at the exit of exercises" msgstr "Zurücksetzen \\Kleine Show beim Zurücksetzen in den Übungen" +#, fuzzy +msgid "Explode (\\key action;)" +msgstr "Recyceln (\\key action;)" + msgid "Explosive" msgstr "Sprengstoff" @@ -622,10 +640,6 @@ msgstr "Spiel\\Gameplay Einstellungen" msgid "Gantry crane" msgstr "Träger" -#, c-format -msgid "GetResource event num out of range: %d\n" -msgstr "" - msgid "Goto: destination occupied" msgstr "Ziel ist schon besetzt" @@ -695,6 +709,10 @@ msgstr "Roboter ungeeignet" msgid "Inappropriate cell type" msgstr "Falscher Batterietyp" +#, fuzzy +msgid "Inappropriate object" +msgstr "Roboter ungeeignet" + msgid "Incorrect index type" msgstr "Falscher Typ für einen Index" @@ -731,6 +749,9 @@ msgstr "Anweisungen von Houston" msgid "Instructions\\Shows the instructions for the current mission" msgstr "Anweisungen\\Anweisungen für die Mission oder Übung" +msgid "Internal error - tell the developers" +msgstr "" + msgid "Jet temperature" msgstr "Triebwerktemperatur" @@ -800,9 +821,6 @@ msgstr "Markierungen\\Markierungen auf dem Boden" msgid "Maximize" msgstr "Großes Fenster" -msgid "Menu (\\key quit;)" -msgstr "Menü (\\key quit;)" - msgid "Minimize" msgstr "Reduzieren" @@ -911,6 +929,10 @@ msgstr "Nicht genug Energie" msgid "Not enough energy yet" msgstr "Noch nicht genug Energie" +#, fuzzy +msgid "Not found anything to destroy" +msgstr "Nichts abzulegen" + msgid "Not yet enough energy" msgstr "Noch nicht genug Energie" @@ -1947,6 +1969,9 @@ msgstr "www.epsitec.com" #~ msgid "Left Windows" #~ msgstr "Left Windows" +#~ msgid "Menu (\\key quit;)" +#~ msgstr "Menü (\\key quit;)" + #~ msgid "Mini-map" #~ msgstr "Minikarte" diff --git a/po/fr.po b/po/fr.po index e6be922..291193c 100644 --- a/po/fr.po +++ b/po/fr.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-12-27 17:09+0100\n" +"POT-Creation-Date: 2014-07-10 16:50+0200\n" "PO-Revision-Date: 2012-12-27 14:07+0100\n" "Last-Translator: Didier Raboud \n" "Language: fr\n" @@ -207,6 +207,10 @@ msgstr "Construit une tour" msgid "Build a derrick" msgstr "Construit un derrick" +#, fuzzy +msgid "Build a destroyer" +msgstr "Bâtiment détruit" + msgid "Build a exchange post" msgstr "Construit une borne d'information" @@ -342,6 +346,12 @@ msgstr "Caméra à droite" msgid "Can not create this; there are too many objects" msgstr "Création impossible; il y a trop d'objets" +msgid "Can not produce not researched object" +msgstr "" + +msgid "Can not produce this object in this mission" +msgstr "" + msgid "Can't open file" msgstr "Ouverture du fichier impossible" @@ -450,6 +460,10 @@ msgstr "Derrick" msgid "Descend\\Reduces the power of the jet" msgstr "Descendre\\Diminuer la puissance du réacteur" +#, fuzzy +msgid "Destroy" +msgstr "Destructeur" + msgid "Destroy the building" msgstr "Démolit le bâtiment" @@ -529,6 +543,10 @@ msgstr "Programmation\\Exercices de programmation" msgid "Exit film\\Film at the exit of exercises" msgstr "Retour animé\\Retour animé dans les exercices" +#, fuzzy +msgid "Explode (\\key action;)" +msgstr "Recycle (\\key action;)" + msgid "Explosive" msgstr "Explosif" @@ -626,10 +644,6 @@ msgstr "Jeu\\Options de jouabilité" msgid "Gantry crane" msgstr "Portique" -#, c-format -msgid "GetResource event num out of range: %d\n" -msgstr "" - msgid "Goto: destination occupied" msgstr "Goto: Destination occupée" @@ -699,6 +713,10 @@ msgstr "Robot inadapté" msgid "Inappropriate cell type" msgstr "Pas le bon type de pile" +#, fuzzy +msgid "Inappropriate object" +msgstr "Robot inadapté" + msgid "Incorrect index type" msgstr "Mauvais type d'index" @@ -735,6 +753,9 @@ msgstr "Instructions de Houston" msgid "Instructions\\Shows the instructions for the current mission" msgstr "Instructions mission\\Marche à suivre" +msgid "Internal error - tell the developers" +msgstr "" + msgid "Jet temperature" msgstr "Température du réacteur" @@ -804,9 +825,6 @@ msgstr "Marques sur le sol\\Marques dessinées sur le sol" msgid "Maximize" msgstr "Taille maximale" -msgid "Menu (\\key quit;)" -msgstr "Menu (\\key quit;)" - msgid "Minimize" msgstr "Taille réduite" @@ -917,6 +935,10 @@ msgstr "Pas assez d'énergie" msgid "Not enough energy yet" msgstr "Pas encore assez d'énergie" +#, fuzzy +msgid "Not found anything to destroy" +msgstr "Rien à déposer" + msgid "Not yet enough energy" msgstr "Pas encore assez d'énergie" @@ -1954,6 +1976,9 @@ msgstr "www.epsitec.com" #~ msgid "Left Windows" #~ msgstr "Left Windows" +#~ msgid "Menu (\\key quit;)" +#~ msgstr "Menu (\\key quit;)" + #~ msgid "Mini-map" #~ msgstr "Mini-carte" diff --git a/po/pl.po b/po/pl.po index 0b13dbb..06ca367 100644 --- a/po/pl.po +++ b/po/pl.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-12-27 17:09+0100\n" +"POT-Creation-Date: 2014-07-10 16:50+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -205,6 +205,10 @@ msgstr "Zbuduj wieżę obronną" msgid "Build a derrick" msgstr "Zbuduj kopalnię" +#, fuzzy +msgid "Build a destroyer" +msgstr "Budynek zniszczony" + msgid "Build a exchange post" msgstr "Zbuduj stację przekaźnikową" @@ -340,6 +344,12 @@ msgstr "Camera to right" msgid "Can not create this; there are too many objects" msgstr "Nie można tego utworzyć, za dużo obiektów" +msgid "Can not produce not researched object" +msgstr "" + +msgid "Can not produce this object in this mission" +msgstr "" + msgid "Can't open file" msgstr "Nie można otworzyć pliku" @@ -448,6 +458,10 @@ msgstr "Kopalnia" msgid "Descend\\Reduces the power of the jet" msgstr "W dół\\Zmniejsza moc silnika" +#, fuzzy +msgid "Destroy" +msgstr "Destroyer" + msgid "Destroy the building" msgstr "Zniszcz budynek" @@ -527,6 +541,10 @@ msgstr "Ćwiczenia\\Ćwiczenia programistyczne" msgid "Exit film\\Film at the exit of exercises" msgstr "Końcowy film\\Film na zakończenie ćwiczeń" +#, fuzzy +msgid "Explode (\\key action;)" +msgstr "Odzyskaj (\\key action;)" + msgid "Explosive" msgstr "Materiały wybuchowe" @@ -624,10 +642,6 @@ msgstr "Gra\\Ustawienia gry" msgid "Gantry crane" msgstr "Żuraw przesuwalny" -#, c-format -msgid "GetResource event num out of range: %d\n" -msgstr "" - msgid "Goto: destination occupied" msgstr "Goto: miejsce docelowe zajęte" @@ -698,6 +712,10 @@ msgstr "Nieodpowiedni robot" msgid "Inappropriate cell type" msgstr "Nieodpowiedni rodzaj ogniw" +#, fuzzy +msgid "Inappropriate object" +msgstr "Nieodpowiedni robot" + msgid "Incorrect index type" msgstr "Nieprawidłowy typ indeksu" @@ -734,6 +752,9 @@ msgstr "Rozkazy z Houston" msgid "Instructions\\Shows the instructions for the current mission" msgstr "Rozkazy\\Pokazuje rozkazy dotyczące bieżącej misji" +msgid "Internal error - tell the developers" +msgstr "" + msgid "Jet temperature" msgstr "Temperatura silnika" @@ -805,9 +826,6 @@ msgstr "Znaki na ziemi\\Znaki na ziemi" msgid "Maximize" msgstr "Powiększ" -msgid "Menu (\\key quit;)" -msgstr "Menu (\\key quit;)" - msgid "Minimize" msgstr "Pomniejsz" @@ -916,6 +934,10 @@ msgstr "Za mało energii" msgid "Not enough energy yet" msgstr "Wciąż za mało energii" +#, fuzzy +msgid "Not found anything to destroy" +msgstr "Nie ma nic do upuszczenia" + msgid "Not yet enough energy" msgstr "Wciąż za mało energii" @@ -1957,6 +1979,9 @@ msgstr "www.epsitec.com" #~ msgid "Left Windows" #~ msgstr "Lewy klawisz Windows" +#~ msgid "Menu (\\key quit;)" +#~ msgstr "Menu (\\key quit;)" + #~ msgid "Mini-map" #~ msgstr "Mapka" diff --git a/po/ru.po b/po/ru.po index 22f84a8..8d2a257 100644 --- a/po/ru.po +++ b/po/ru.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-12-27 17:09+0100\n" +"POT-Creation-Date: 2014-07-10 16:50+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -210,6 +210,10 @@ msgstr "Построить защитную башню" msgid "Build a derrick" msgstr "Построить буровую вышку" +#, fuzzy +msgid "Build a destroyer" +msgstr "Здание разрушено" + msgid "Build a exchange post" msgstr "Построить пост по обмену сообщениями" @@ -345,6 +349,12 @@ msgstr "Камеру вправо" msgid "Can not create this; there are too many objects" msgstr "Не удается это создать, слишком много объектов" +msgid "Can not produce not researched object" +msgstr "" + +msgid "Can not produce this object in this mission" +msgstr "" + msgid "Can't open file" msgstr "Невозможно открыть файл" @@ -453,6 +463,10 @@ msgstr "Космический корабль" msgid "Descend\\Reduces the power of the jet" msgstr "Снижение и посадка\\Понижение мощности реактивного двигателя" +#, fuzzy +msgid "Destroy" +msgstr "Уничтожитель" + msgid "Destroy the building" msgstr "Уничтожить здание" @@ -532,6 +546,10 @@ msgstr "Упражнения\\Упражнения по программиров msgid "Exit film\\Film at the exit of exercises" msgstr "Ролик при выходе\\Ролик во время выхода из упражнения" +#, fuzzy +msgid "Explode (\\key action;)" +msgstr "Утилизация (\\key action;)" + msgid "Explosive" msgstr "Взрывчатка" @@ -629,10 +647,6 @@ msgstr "Игра\\Настройки игры" msgid "Gantry crane" msgstr "Козловой кран" -#, c-format -msgid "GetResource event num out of range: %d\n" -msgstr "событие GetResource, число вне диапазона: %d\n" - msgid "Goto: destination occupied" msgstr "Перейти: место занято" @@ -702,6 +716,10 @@ msgstr "Неверный бот" msgid "Inappropriate cell type" msgstr "Батарея не подходит" +#, fuzzy +msgid "Inappropriate object" +msgstr "Неверный бот" + msgid "Incorrect index type" msgstr "Неверный тип индекса" @@ -738,6 +756,9 @@ msgstr "Инструкции из Хьюстона" msgid "Instructions\\Shows the instructions for the current mission" msgstr "Инструкции\\Показывает инструкции по текущей миссии" +msgid "Internal error - tell the developers" +msgstr "" + msgid "Jet temperature" msgstr "Температура реактивного двигателя" @@ -807,9 +828,6 @@ msgstr "Метки на земле\\Метки на земле" msgid "Maximize" msgstr "Развернуть" -msgid "Menu (\\key quit;)" -msgstr "Меню (\\key выйти;)" - msgid "Minimize" msgstr "Свернуть" @@ -918,6 +936,10 @@ msgstr "Не хватает энергии" msgid "Not enough energy yet" msgstr "Не хватает энергии" +#, fuzzy +msgid "Not found anything to destroy" +msgstr "Нечего бросить" + msgid "Not yet enough energy" msgstr "Не хватает энергии" @@ -1819,3 +1841,9 @@ msgstr "посетить" msgid "www.epsitec.com" msgstr "www.epsitec.com" + +#~ msgid "GetResource event num out of range: %d\n" +#~ msgstr "событие GetResource, число вне диапазона: %d\n" + +#~ msgid "Menu (\\key quit;)" +#~ msgstr "Меню (\\key выйти;)" diff --git a/src/common/event.cpp b/src/common/event.cpp index 9dc3943..9e23b18 100644 --- a/src/common/event.cpp +++ b/src/common/event.cpp @@ -67,7 +67,6 @@ void InitializeEventTypeTexts() EVENT_TYPE_TEXT[EVENT_BUTTON_CANCEL] = "EVENT_BUTTON_CANCEL"; EVENT_TYPE_TEXT[EVENT_BUTTON_NEXT] = "EVENT_BUTTON_NEXT"; EVENT_TYPE_TEXT[EVENT_BUTTON_PREV] = "EVENT_BUTTON_PREV"; - EVENT_TYPE_TEXT[EVENT_BUTTON_QUIT] = "EVENT_BUTTON_QUIT"; EVENT_TYPE_TEXT[EVENT_BUTTON0] = "EVENT_BUTTON0"; EVENT_TYPE_TEXT[EVENT_BUTTON1] = "EVENT_BUTTON1"; diff --git a/src/common/event.h b/src/common/event.h index c5eb615..1d2dbc9 100644 --- a/src/common/event.h +++ b/src/common/event.h @@ -90,7 +90,6 @@ enum EventType EVENT_BUTTON_CANCEL = 41, EVENT_BUTTON_NEXT = 42, EVENT_BUTTON_PREV = 43, - EVENT_BUTTON_QUIT = 44, EVENT_BUTTON0 = 50, EVENT_BUTTON1 = 51, diff --git a/src/common/restext.cpp b/src/common/restext.cpp index b63160d..37b1e9c 100644 --- a/src/common/restext.cpp +++ b/src/common/restext.cpp @@ -141,7 +141,6 @@ void InitializeRestext() stringsEvent[EVENT_BUTTON_CANCEL] = "Cancel"; stringsEvent[EVENT_BUTTON_NEXT] = "Next"; stringsEvent[EVENT_BUTTON_PREV] = "Previous"; - stringsEvent[EVENT_BUTTON_QUIT] = "Menu (\\key quit;)"; stringsEvent[EVENT_DIALOG_OK] = "OK"; stringsEvent[EVENT_DIALOG_CANCEL] = "Cancel"; diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp index 76c234d..83b9fc9 100644 --- a/src/object/robotmain.cpp +++ b/src/object/robotmain.cpp @@ -859,8 +859,6 @@ CRobotMain::CRobotMain(CApplication* app, bool loadProfile) CBotProgram::DefineNum("ResearchSubber", RESEARCH_SUBM); CBotProgram::DefineNum("ResearchSniffer", RESEARCH_SNIFFER); -//? CBotProgram:: - CBotProgram::DefineNum("PolskiPortalColobota", 1337); CBotClass* bc; @@ -1215,14 +1213,6 @@ void CRobotMain::ChangePhase(Phase phase) m_app->ResetTimeAfterLoading(); - /*Math::Point ddim; - - pos.x = 620.0f/640.0f; - pos.y = 460.0f/480.0f; - ddim.x = 20.0f/640.0f; - ddim.y = 20.0f/480.0f; - m_interface->CreateButton(pos, ddim, 11, EVENT_BUTTON_QUIT);*/ - if (m_immediatSatCom && !loading && m_infoFilename[SATCOM_HUSTON][0] != 0) StartDisplayInfo(SATCOM_HUSTON, false); // shows the instructions @@ -1638,18 +1628,6 @@ bool CRobotMain::ProcessEvent(Event &event) m_cameraZoom = 0.0f; break; - case EVENT_BUTTON_QUIT: - if (m_movie->IsExist()) - StartDisplayInfo(SATCOM_HUSTON, false); - else if (m_winDelay > 0.0f) - ChangePhase(PHASE_WIN); - else if (m_lostDelay > 0.0f) - - ChangePhase(PHASE_LOST); - else - m_dialog->StartAbort(); // do you want to leave? - break; - case EVENT_OBJECT_LIMIT: StartShowLimit(); break; @@ -2189,12 +2167,6 @@ void CRobotMain::StartDisplayInfo(const char *filename, int index) m_sound->MuteAll(true); } - Ui::CButton* pb = static_cast(m_interface->SearchControl(EVENT_BUTTON_QUIT)); - if (pb != nullptr) - { - pb->ClearState(Ui::STATE_VISIBLE); - } - bool soluce = m_dialog->GetSceneSoluce(); m_displayInfo = new Ui::CDisplayInfo(); @@ -2223,10 +2195,6 @@ void CRobotMain::StopDisplayInfo() if (!m_editLock) { - Ui::CButton* pb = static_cast(m_interface->SearchControl(EVENT_BUTTON_QUIT)); - if (pb != nullptr) - pb->SetState(Ui::STATE_VISIBLE); - SelectObject(m_infoObject, false); // gives the command buttons m_displayText->HideText(false); @@ -2264,20 +2232,12 @@ void CRobotMain::StartSuspend() m_infoObject = DeselectAll(); // removes the control buttons m_displayText->HideText(true); - Ui::CButton* pb = static_cast(m_interface->SearchControl(EVENT_BUTTON_QUIT)); - if (pb != nullptr) - pb->ClearState(Ui::STATE_VISIBLE); - m_suspend = true; } //! End of dialogue during the game void CRobotMain::StopSuspend() { - Ui::CButton* pb = static_cast(m_interface->SearchControl(EVENT_BUTTON_QUIT)); - if (pb != nullptr) - pb->SetState(Ui::STATE_VISIBLE); - SelectObject(m_infoObject, false); // gives the command buttons m_map->ShowMap(m_mapShow); m_displayText->HideText(false); diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index 11f8f4a..e09e5a0 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -5852,12 +5852,6 @@ void CMainDialog::StartDialog(Math::Point dim, bool bFire, bool bOK, bool bCance pw = static_cast(m_interface->SearchControl(EVENT_WINDOW8)); if ( pw != 0 ) pw->ClearState(STATE_ENABLE); - pb = static_cast(m_interface->SearchControl(EVENT_BUTTON_QUIT)); - if ( pb != 0 ) - { - pb->ClearState(STATE_VISIBLE); - } - m_bDialogFire = bFire; std::string name; @@ -6040,12 +6034,6 @@ void CMainDialog::StopDialog() pw = static_cast(m_interface->SearchControl(EVENT_WINDOW8)); if ( pw != 0 ) pw->SetState(STATE_ENABLE); - pb = static_cast(m_interface->SearchControl(EVENT_BUTTON_QUIT)); - if ( pb != 0 ) - { - pb->SetState(STATE_VISIBLE); - } - StopSuspend(); m_interface->DeleteControl(EVENT_WINDOW9); m_bDialog = false; diff --git a/src/ui/studio.cpp b/src/ui/studio.cpp index f83704e..91e4ea2 100644 --- a/src/ui/studio.cpp +++ b/src/ui/studio.cpp @@ -573,10 +573,6 @@ void CStudio::StartEditScript(CScript *script, std::string name, int rank) m_bRealTime = m_bRunning; m_script->SetStepMode(!m_bRealTime); - button = static_cast< CButton* >(m_interface->SearchControl(EVENT_BUTTON_QUIT)); - if (button != nullptr) - button->ClearState(STATE_VISIBLE); - pos = m_editFinalPos = m_editActualPos = m_main->GetWindowPos(); dim = m_editFinalDim = m_editActualDim = m_main->GetWindowDim(); pw = m_interface->CreateWindows(pos, dim, 8, EVENT_WINDOW3); @@ -877,12 +873,6 @@ bool CStudio::StopEditScript(bool bCancel) m_interface->DeleteControl(EVENT_WINDOW3); - button = static_cast< CButton* >(m_interface->SearchControl(EVENT_BUTTON_QUIT)); - if ( button != 0 ) - { - button->SetState(STATE_VISIBLE); - } - m_pause->SetPause(m_bInitPause); m_sound->MuteAll(false); m_main->SetEditLock(false, true); -- cgit v1.2.3-1-g7c22 From 36e501921031c20083ba9571fc74737a208fedd1 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Thu, 10 Jul 2014 17:16:31 +0200 Subject: Initial Pootle<->Git integration commit This commit was automatically generated from http://translations.colobot.info/ --- data | 2 +- po/de.po | 2397 ++++++++++++++++++++++++++++++------------------------------ po/fr.po | 2403 ++++++++++++++++++++++++++++++------------------------------ po/pl.po | 2458 +++++++++++++++++++++++++++++++------------------------------- po/ru.po | 2403 ++++++++++++++++++++++++++++++------------------------------ 5 files changed, 4839 insertions(+), 4824 deletions(-) diff --git a/data b/data index edd849b..d9ad327 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit edd849b1c8f41217f1715683a7e6dc5122935763 +Subproject commit d9ad3270af60905f53929cdf44aa47b4f910f603 diff --git a/po/de.po b/po/de.po index 9f4c3bd..b6ce0cf 100644 --- a/po/de.po +++ b/po/de.po @@ -1,1816 +1,1814 @@ +# 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. msgid "" msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-07-10 16:50+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Translate Toolkit 1.11.0\n" "X-Language: de_DE\n" "X-Source-Language: en_US\n" -msgid " " -msgstr " " - -msgid " Challenges in the chapter:" -msgstr " Liste der Challenges des Kapitels:" - -msgid " Chapters:" -msgstr " Liste der Kapitel:" - -msgid " Drivers:" -msgstr " Driver:" +msgid "Colobot rules!" +msgstr "Colobot ist wunderbar!" -msgid " Exercises in the chapter:" -msgstr " Liste der Übungen des Kapitels:" +msgid "SatCom" +msgstr "SatCom" -msgid " Free game on this chapter:" -msgstr " Liste der freien Levels des Kapitel:" +msgid "Maximize" +msgstr "Großes Fenster" -msgid " Free game on this planet:" -msgstr " Liste der freien Levels des Planeten:" +msgid "Minimize" +msgstr "Reduzieren" -msgid " Missions on this level:" -msgstr " Missionen des Userlevels:" +msgid "Normal size" +msgstr "Normale Größe" -msgid " Missions on this planet:" -msgstr " Liste der Missionen des Planeten:" +msgid "Close" +msgstr "Schließen" -msgid " Planets:" -msgstr " Liste der Planeten:" +msgid "Program editor" +msgstr "Programmeditor" -msgid " Resolution:" -msgstr " Auflösung:" +msgid "New" +msgstr "Neu" -msgid " Summary:" -msgstr " Zusammenfassung:" +msgid "Player" +msgstr "Spieler" -msgid " User levels:" -msgstr " Userlevels:" +msgid "New ..." +msgstr "Neu ..." msgid " or " msgstr " oder " -msgid "\" [ \" expected" -msgstr "Es fehlt eine offene eckige Klammer \" [ \"" - -msgid "\" ] \" missing" -msgstr "Es fehlt eine geschlossene eckige Klammer \" ] \"" - -#, c-format -msgid "\"%s\" missing in this exercise" -msgstr "Es fehlt \"%s\" in Ihrem Programm" - -msgid "%1" -msgstr "" - -msgid "..behind" -msgstr "..hinten" - -msgid "..in front" -msgstr "..vorne" - -msgid "..power cell" -msgstr "..Batterie" - -msgid "1) First click on the key you want to redefine." -msgstr "1) Klicken Sie auf die neu zu definierende Taste." - -msgid "2) Then press the key you want to use instead." -msgstr "2) Drücken Sie auf die neue Taste." - -msgid "3D sound\\3D positioning of the sound" -msgstr "3D-Geräusche\\Orten der Geräusche im Raum" +msgid "COLOBOT" +msgstr "COLOBOT" -msgid "<< Back \\Back to the previous screen" -msgstr "<< Zurück \\Zurück zum Hauptmenü" +msgid "COLOBOT: Gold Edition" +msgstr "COLOBOT: Gold Edition" -msgid "<<< Sorry; mission failed >>>" -msgstr "<<< Mission gescheitert >>>" +msgid "Programming exercises" +msgstr "Programmieren" -msgid "<<< Well done; mission accomplished >>>" -msgstr "<<< Bravo, Mission vollendet >>>" +msgid "Challenges" +msgstr "Challenges" -msgid "A label must be followed by \"for\"; \"while\"; \"do\" or \"switch\"" -msgstr "" -"Ein Label kann nur vor den Anweisungen \"for\", \"while\", \"do\" oder " -"\"switch\" vorkommen" +msgid "Missions" +msgstr "Missionen" -msgid "A variable can not be declared twice" -msgstr "Eine Variable wird zum zweiten Mal deklariert" +msgid "Free game" +msgstr "Freestyle" -msgid "Abort\\Abort the current mission" -msgstr "Abbrechen\\Mission abbrechen" +msgid "User levels" +msgstr "Userlevels" -msgid "Access beyond array limit" -msgstr "Zugriff im Array außerhalb der Grenzen" +msgid "Options" +msgstr "Einstellungen" -msgid "" -"Access to solution\\Shows the solution (detailed instructions for missions)" -msgstr "Zeigt die Lösung\\Zeigt nach 3mal Scheitern die Lösung" +msgid "Player's name" +msgstr "Name " -msgid "Access to solutions\\Show program \"4: Solution\" in the exercises" -msgstr "" -"Lösung zugänglich\\Die Lösung ist im Programmslot \"4: Lösung\" zugänglich" +msgid "Customize your appearance" +msgstr "Aussehen einstellen" -msgid "Alien Queen" -msgstr "Insektenkönigin" +msgid "Save the current mission" +msgstr "Aktuelle Mission speichern" -msgid "Alien Queen killed" -msgstr "Insektenkönigin tödlich verwundet" +msgid "Load a saved mission" +msgstr "Gespeicherte Mission laden" -msgid "Already carrying something" -msgstr "Trägt schon etwas" +msgid " Chapters:" +msgstr " Liste der Kapitel:" -msgid "Alt" -msgstr "Alt" +msgid " Planets:" +msgstr " Liste der Planeten:" -msgid "Analysis already performed" -msgstr "Analyse schon durchgeführt" +msgid " User levels:" +msgstr " Userlevels:" -msgid "Analysis performed" -msgstr "Analyse vollendet" +msgid " Exercises in the chapter:" +msgstr " Liste der Übungen des Kapitels:" -msgid "Analyzes only organic matter" -msgstr "Analysiert nur Orgastoff" +msgid " Challenges in the chapter:" +msgstr " Liste der Challenges des Kapitels:" -msgid "Ant" -msgstr "Ameise" +msgid " Missions on this planet:" +msgstr " Liste der Missionen des Planeten:" -msgid "Ant fatally wounded" -msgstr "Ameise tödlich verwundet" +msgid " Free game on this planet:" +msgstr " Liste der freien Levels des Planeten:" -msgid "Appearance\\Choose your appearance" -msgstr "Aussehen\\Erscheinungsbild des Astronauten einstellen" +msgid " Missions on this level:" +msgstr " Missionen des Userlevels:" -msgid "Apply changes\\Activates the changed settings" -msgstr "Änderungen ausführen\\Getätigte Einstellungen ausführen" +msgid " Free game on this chapter:" +msgstr " Liste der freien Levels des Kapitel:" -msgid "Appropriate constructor missing" -msgstr "Es gibt keinen geeigneten Konstruktor" +msgid " Summary:" +msgstr " Zusammenfassung:" -msgid "Assignment impossible" -msgstr "Zuweisung unmöglich" +msgid " Drivers:" +msgstr " Driver:" -msgid "Autolab" -msgstr "Automatisches Labor" +msgid " Resolution:" +msgstr " Auflösung:" -msgid "Automatic indent\\When program editing" -msgstr "Automatisches Einrücken\\Beim Bearbeiten der Programme" +msgid "1) First click on the key you want to redefine." +msgstr "1) Klicken Sie auf die neu zu definierende Taste." -msgid "Back" -msgstr "Vorherg. Seite" +msgid "2) Then press the key you want to use instead." +msgstr "2) Drücken Sie auf die neue Taste." -msgid "Background sound :\\Volume of audio tracks on the CD" -msgstr "Geräuschkulisse:\\Lautstärke der Soundtracks der CD" +msgid "Face type:" +msgstr "Kopf:" -msgid "Backward (\\key down;)" -msgstr "Rückwärts (\\key down;)" +msgid "Eyeglasses:" +msgstr "Brille:" -msgid "Backward\\Moves backward" -msgstr "Rückwärts\\Bewegung nach hinten" +msgid "Hair color:" +msgstr "Haarfarbe:" -msgid "Bad argument for \"new\"" -msgstr "Falsche Argumente für \"new\"" +msgid "Suit color:" +msgstr "Farbe des Anzugs:" -msgid "Big indent\\Indent 2 or 4 spaces per level defined by braces" -msgstr "Einrücken mit 4 Leerstellen\\Einrücken mit 2 oder 4 Leerstellen" +msgid "Strip color:" +msgstr "Farbe der Streifen:" -msgid "Black box" -msgstr "Flugschreiber" +msgid "Do you want to quit COLOBOT ?" +msgstr "Wollen Sie COLOBOT schließen ?" -msgid "Blue" -msgstr "Blau" +msgid "Quit\\Quit COLOBOT" +msgstr "Schließen\\COLOBOT schließen" -msgid "Blue flag" -msgstr "Blaue Fahne" +msgid "Quit the mission?" +msgstr "Mission abbrechen ?" -msgid "Bot destroyed" -msgstr "Roboter zerstört" +msgid "Abort\\Abort the current mission" +msgstr "Abbrechen\\Mission abbrechen" -msgid "Bot factory" -msgstr "Roboterfabrik" +msgid "Continue\\Continue the current mission" +msgstr "Weitermachen\\Mission weitermachen" -msgid "Build a bot factory" -msgstr "Baut eine Roboterfabrik" +msgid "Continue\\Continue the game" +msgstr "Weitermachen\\Weitermachen" -msgid "Build a converter" -msgstr "Baut einen Konverter" +msgid "Do you really want to destroy the selected building?" +msgstr "Wollen Sie das angewählte Gebäude wirklich zerstören ?" -msgid "Build a defense tower" -msgstr "Baut einen Geschützturm" +#, c-format +msgid "Do you want to delete %s's saved games? " +msgstr "Wollen Sie die gespeicherten Missionen von %s löschen ?" -msgid "Build a derrick" -msgstr "Baut einen Bohrturm" +msgid "Delete" +msgstr "Zerstören" -#, fuzzy -msgid "Build a destroyer" -msgstr "Gebäude zerstört" +msgid "Cancel" +msgstr "Abbrechen" -msgid "Build a exchange post" -msgstr "Baut einen Infoserver" +msgid "LOADING" +msgstr "Laden" -msgid "Build a legged grabber" -msgstr "Baut einen Krabbeltransporter" +msgid "Keyword help(\\key cbot;)" +msgstr "Hilfe über den Begriff (\\key cbot;)" -msgid "Build a legged orga shooter" -msgstr "Baut einen Krabbelorgashooter" +msgid "Compilation ok (0 errors)" +msgstr "Kompilieren OK (0 Fehler)" -msgid "Build a legged shooter" -msgstr "Baut einen Krabbelshooter" +msgid "Program finished" +msgstr "Programm beendet" -msgid "Build a legged sniffer" -msgstr "Baut einen Krabbelschnüffler" +msgid "\\b;List of objects\n" +msgstr "\\b;Liste der Objekte\n" -msgid "Build a lightning conductor" -msgstr "Baut einen Blitzableiter" +msgid "\\b;Robots\n" +msgstr "\\b;Liste der Roboter\n" -msgid "Build a nuclear power plant" -msgstr "Baut eine Brennstoffzellenfabrik" +msgid "\\b;Buildings\n" +msgstr "\\b;Listes der Gebäude\n" -msgid "Build a phazer shooter" -msgstr "Baut einen Phazershooter" +msgid "\\b;Moveable objects\n" +msgstr "\\b;Listes der tragbaren Gegenstände\n" -msgid "Build a power cell factory" -msgstr "Baut eine Batteriefabrik" +msgid "\\b;Aliens\n" +msgstr "\\b;Listes der Feinde\n" -msgid "Build a power station" -msgstr "Baut ein Kraftwerk" +msgid "\\c; (none)\\n;\n" +msgstr "" +"\\c; (keine)\\n" +";\n" -msgid "Build a radar station" -msgstr "Baut ein Radar" +msgid "\\b;Error\n" +msgstr "\\b;Fehler\n" -msgid "Build a recycler" -msgstr "Baut einen Recycler" +msgid "" +"The list is only available if a \\l;radar station\\u object\\radar; is " +"working.\n" +msgstr "Die Liste ist ohne \\l;Radar\\u object\\radar; nicht verfügbar.\n" -msgid "Build a repair center" -msgstr "Baut ein Reparaturzentrum" +msgid "Open" +msgstr "Öffnen" -msgid "Build a research center" -msgstr "Baut ein Forschungszentrum" +msgid "Save" +msgstr "Speichern" -msgid "Build a shielder" -msgstr "Baut einen Schutzschild" +#, c-format +msgid "Folder: %s" +msgstr "Ordner: %s" -msgid "Build a subber" -msgstr "Baut einen Kettentaucher" +msgid "Name:" +msgstr "Name:" -msgid "Build a thumper" -msgstr "Baut einen Stampfer" +msgid "Folder:" +msgstr "In:" -msgid "Build a tracked grabber" -msgstr "Baut einen Kettentransporter" +msgid "Private\\Private folder" +msgstr "Privat\\Privater Ordner" -msgid "Build a tracked orga shooter" -msgstr "Baut einen Kettenorgashooter" +msgid "Public\\Common folder" +msgstr "Öffentlich\\Gemeinsamer Ordner für alle Spieler" -msgid "Build a tracked shooter" -msgstr "Baut einen Kettenshooter" +msgid "Developed by :" +msgstr "Entwickelt von:" -msgid "Build a tracked sniffer" -msgstr "Baut einen Kettenschnüffler" +msgid "www.epsitec.com" +msgstr "www.epsitec.com" -msgid "Build a wheeled grabber" -msgstr "Baut einen Radtransporter" +msgid " " +msgstr " " -msgid "Build a wheeled orga shooter" -msgstr "Baut einen Radorgashooter" +msgid "Recorder" +msgstr "Recorder" -msgid "Build a wheeled shooter" -msgstr "Baut einen Radshooter" +msgid "OK" +msgstr "OK" -msgid "Build a wheeled sniffer" -msgstr "Baut einen Radschnüffler" +msgid "Next" +msgstr "Nächster" -msgid "Build a winged grabber" -msgstr "Baut einen Jettransporter" +msgid "Previous" +msgstr "Vorherg" -msgid "Build a winged orga shooter" -msgstr "Baut einen Jetorgashooter" +msgid "Exercises\\Programming exercises" +msgstr "Programmieren\\Programmierübungen" -msgid "Build a winged shooter" -msgstr "Baut einen Jetshooter" +msgid "Challenges\\Programming challenges" +msgstr "Challenges\\Herausforderungen" -msgid "Build a winged sniffer" -msgstr "Baut einen Jetschnüffler" +msgid "Missions\\Select mission" +msgstr "Missionen\\Aufbruch ins Weltall" -msgid "Build an autolab" -msgstr "Baut ein automatisches Labor" +msgid "Free game\\Free game without a specific goal" +msgstr "Freestyle\\Freies Spielen ohne vorgegebenes Ziel" -msgid "Building completed" -msgstr "Gebäude fertiggestellt" +msgid "User\\User levels" +msgstr "User\\Userlevels" -msgid "Building destroyed" -msgstr "Gebäude zerstört" +msgid "Change player\\Change player" +msgstr "Anderer Spieler\\Spielername ändern" -msgid "Building too close" -msgstr "Gebäude zu nahe" +msgid "Options\\Preferences" +msgstr "Einstellungen\\Einstellungen" -msgid "Button %1" -msgstr "Knopf %1" +msgid "Restart\\Restart the mission from the beginning" +msgstr "Neu anfangen\\Die Mission von vorne anfangen" -msgid "COLOBOT" -msgstr "COLOBOT" +msgid "Save\\Save the current mission " +msgstr "Speichern\\Aktuelle Mission speichern" -msgid "COLOBOT: Gold Edition" -msgstr "COLOBOT: Gold Edition" +msgid "Load\\Load a saved mission" +msgstr "Laden\\Eine gespeicherte Mission öffnen" -msgid "Calling an unknown function" -msgstr "Die aufgerufene Funktion existiert nicht" +msgid "\\Return to COLOBOT" +msgstr "\\Zurück zu COLOBOT" -msgid "Camera (\\key camera;)" -msgstr "Kamera (\\key camera;)" +msgid "<< Back \\Back to the previous screen" +msgstr "<< Zurück \\Zurück zum Hauptmenü" -msgid "Camera awayest" -msgstr "Kamera weiter weg" +msgid "Play\\Start mission!" +msgstr "Spielen ...\\Los geht's!" -msgid "Camera back\\Moves the camera backward" -msgstr "Kamera weiter\\Bewegung der Kamera rückwärts" +msgid "Device\\Driver and resolution settings" +msgstr "Bildschirm\\Driver und Bildschirmauflösung" -msgid "Camera closer\\Moves the camera forward" -msgstr "Kamera näher\\Bewegung der Kamera vorwärts" +msgid "Graphics\\Graphics settings" +msgstr "Grafik\\Grafische Einstellungen" -msgid "Camera nearest" -msgstr "Kamera näher" +msgid "Game\\Game settings" +msgstr "Spiel\\Gameplay Einstellungen" -msgid "Camera to left" -msgstr "Kamera links" +msgid "Controls\\Keyboard, joystick and mouse settings" +msgstr "Steuerung\\Auswahl der Tasten" -msgid "Camera to right" -msgstr "Kamera rechts" +msgid "Sound\\Music and game sound volume" +msgstr "Geräusche\\Lautstärke Geräusche und Musik" -msgid "Can not create this; there are too many objects" -msgstr "Kein neues Objekt kann erstellt werden (zu viele vorhanden)" +msgid "Unit" +msgstr "Einheit" -msgid "Can not produce not researched object" -msgstr "" +msgid "Resolution" +msgstr "Auflösung" -msgid "Can not produce this object in this mission" -msgstr "" +msgid "Full screen\\Full screen or window mode" +msgstr "Vollbildschirm\\Vollbildschirm oder Fenster" -msgid "Can't open file" -msgstr "Die Datei kann nicht geöffnet werden" +msgid "Apply changes\\Activates the changed settings" +msgstr "Änderungen ausführen\\Getätigte Einstellungen ausführen" -msgid "Cancel" -msgstr "Abbrechen" +msgid "Robbie\\Your assistant" +msgstr "Robby\\Ihr Assistent" -msgid "Cancel\\Cancel all changes" -msgstr "Abbrechen\\Editor schließen" +msgid "Shadows\\Shadows on the ground" +msgstr "Schatten\\Schlagschatten auf dem Boden" -msgid "Cancel\\Keep current player name" -msgstr "Abbrechen\\Behält den bisherigen Spieler bei" +msgid "Marks on the ground\\Marks on the ground" +msgstr "Markierungen\\Markierungen auf dem Boden" -msgid "Challenges" -msgstr "Challenges" +msgid "Dust\\Dust and dirt on bots and buildings" +msgstr "Schmutz\\Schmutz auf Robotern und Bauten" -msgid "Challenges\\Programming challenges" -msgstr "Challenges\\Herausforderungen" +msgid "Fog\\Fog" +msgstr "Nebel\\Nebelschwaden" -msgid "Change camera\\Switches between onboard camera and following camera" -msgstr "Andere Kamera\\Sichtpunkt einstellen" +msgid "Sunbeams\\Sunbeams in the sky" +msgstr "Sonnenstrahlen\\Sonnenstrahlen" -msgid "Change player\\Change player" -msgstr "Anderer Spieler\\Spielername ändern" +msgid "Sky\\Clouds and nebulae" +msgstr "Himmel\\Himmel und Wolken" -msgid "Checkpoint" -msgstr "Checkpoint" +msgid "Planets and stars\\Astronomical objects in the sky" +msgstr "Planeten und Sterne\\Kreisende Planeten und Sterne" -msgid "Checkpoint crossed" -msgstr "Checkpoint erreicht" +msgid "Dynamic lighting\\Mobile light sources" +msgstr "Dynamische Beleuchtung\\Dynamische Beleuchtung" -msgid "Climb\\Increases the power of the jet" -msgstr "Steigen\\Leistung des Triebwerks steigern" +msgid "Number of particles\\Explosions, dust, reflections, etc." +msgstr "Anzahl Partikel\\Explosionen, Staub, usw." -msgid "Close" -msgstr "Schließen" +msgid "Depth of field\\Maximum visibility" +msgstr "Sichtweite\\Maximale Sichtweite" -msgid "Closing bracket missing " -msgstr "Es fehlt eine geschlossene Klammer \")\"" +msgid "Details\\Visual quality of 3D objects" +msgstr "Details\\Detailliertheit der Objekte in 3D" -msgid "Colobot rules!" -msgstr "Colobot ist wunderbar!" +msgid "Textures\\Quality of textures " +msgstr "Qualität der Texturen\\Qualität der Anzeige" -msgid "Command line" -msgstr "Befehleingabe" +msgid "Num of decorative objects\\Number of purely ornamental objects" +msgstr "Anzahl Ziergegenstände\\Anzahl Gegenstände ohne Funktion" -msgid "Compass" -msgstr "Kompass" +msgid "Particles in the interface\\Steam clouds and sparks in the interface" +msgstr "Partikel in den Menüs\\Funken und Sterne in den Menüs" -msgid "Compilation ok (0 errors)" -msgstr "Kompilieren OK (0 Fehler)" +msgid "Reflections on the buttons \\Shiny buttons" +msgstr "Glänzende Tasten\\Glänzende Tasten in den Menüs" -msgid "Compile" -msgstr "Kompilieren" +msgid "Help balloons\\Explain the function of the buttons" +msgstr "Hilfsblasen\\Hilfsblasen" -msgid "Continue" -msgstr "Weitermachen" +msgid "Film sequences\\Films before and after the missions" +msgstr "Filme\\Filme vor und nach den Missionen" -msgid "Continue\\Continue the current mission" -msgstr "Weitermachen\\Mission weitermachen" +msgid "Exit film\\Film at the exit of exercises" +msgstr "Zurücksetzen \\Kleine Show beim Zurücksetzen in den Übungen" -msgid "Continue\\Continue the game" -msgstr "Weitermachen\\Weitermachen" +msgid "Friendly fire\\Your shooting can damage your own objects " +msgstr "Eigenbeschuss\\Ihre Einheiten werden von Ihren Waffen beschädigt" -msgid "Controls\\Keyboard, joystick and mouse settings" -msgstr "Steuerung\\Auswahl der Tasten" +msgid "Scrolling\\Scrolling when the mouse touches right or left border" +msgstr "" +"Kameradrehung mit der Maus\\Die Kamera dreht wenn die Maus den Rand erreicht" -msgid "Converts ore to titanium" -msgstr "Konverter Erz-Titan" +msgid "Mouse inversion X\\Inversion of the scrolling direction on the X axis" +msgstr "Umkehr X\\Umkehr der Kameradrehung X-Achse" -msgid "Copy" -msgstr "Kopieren" +msgid "Mouse inversion Y\\Inversion of the scrolling direction on the Y axis" +msgstr "Umkehr Y\\Umkehr der Kameradrehung Y-Achse" -msgid "Copy (Ctrl+c)" -msgstr "Kopieren (Ctrl+c)" +msgid "Quake at explosions\\The screen shakes at explosions" +msgstr "Beben bei Explosionen\\Die Kamera bebt bei Explosionen" -msgid "Ctrl" -msgstr "Ctrl" +msgid "Mouse shadow\\Gives the mouse a shadow" +msgstr "Schatten unter der Maus\\Ein Schatten erscheint unter der Maus" -msgid "Current mission saved" -msgstr "Mission gespeichert" +msgid "Automatic indent\\When program editing" +msgstr "Automatisches Einrücken\\Beim Bearbeiten der Programme" -msgid "Customize your appearance" -msgstr "Aussehen einstellen" +msgid "Big indent\\Indent 2 or 4 spaces per level defined by braces" +msgstr "Einrücken mit 4 Leerstellen\\Einrücken mit 2 oder 4 Leerstellen" -msgid "Cut (Ctrl+x)" -msgstr "Ausschneiden (Ctrl+x)" +msgid "Access to solutions\\Show program \"4: Solution\" in the exercises" +msgstr "" +"Lösung zugänglich\\Die Lösung ist im Programmslot \"4: Lösung\" zugänglich" -msgid "Defense tower" -msgstr "Geschützturm" +msgid "Standard controls\\Standard key functions" +msgstr "Alles zurücksetzen\\Standarddefinition aller Tasten" -msgid "Delete" -msgstr "Zerstören" +msgid "Turn left\\turns the bot to the left" +msgstr "Drehung nach links\\Steuer links" -msgid "Delete player\\Deletes the player from the list" -msgstr "Spieler löschen\\Löscht den Spieler aus der Liste" +msgid "Turn right\\turns the bot to the right" +msgstr "Drehung nach rechts\\Steuer rechts" -msgid "Delete\\Deletes the selected file" -msgstr "Löschen\\Löscht die gespeicherte Mission" +msgid "Forward\\Moves forward" +msgstr "Vorwärts\\Bewegung nach vorne" -msgid "Depth of field\\Maximum visibility" -msgstr "Sichtweite\\Maximale Sichtweite" +msgid "Backward\\Moves backward" +msgstr "Rückwärts\\Bewegung nach hinten" -msgid "Derrick" -msgstr "Bohrturm" +msgid "Climb\\Increases the power of the jet" +msgstr "Steigen\\Leistung des Triebwerks steigern" msgid "Descend\\Reduces the power of the jet" msgstr "Sinken\\Leistung des Triebwerks drosseln" -#, fuzzy -msgid "Destroy" -msgstr "Einstampfer" +msgid "Change camera\\Switches between onboard camera and following camera" +msgstr "Andere Kamera\\Sichtpunkt einstellen" + +msgid "Previous object\\Selects the previous object" +msgstr "Vorherg. Auswahl\\Das vorhergehende Objekt auswählen" -msgid "Destroy the building" -msgstr "Gebäude sprengen" +msgid "" +"Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)" +msgstr "Standardhandlung\\Führt die Standardhandlung des Roboters aus" -msgid "Destroyer" -msgstr "Einstampfer" +msgid "Camera closer\\Moves the camera forward" +msgstr "Kamera näher\\Bewegung der Kamera vorwärts" -msgid "Details\\Visual quality of 3D objects" -msgstr "Details\\Detailliertheit der Objekte in 3D" +msgid "Camera back\\Moves the camera backward" +msgstr "Kamera weiter\\Bewegung der Kamera rückwärts" -msgid "Developed by :" -msgstr "Entwickelt von:" +msgid "Next object\\Selects the next object" +msgstr "Nächstes auswählen\\Nächstes Objekt auswählen" -msgid "Device\\Driver and resolution settings" -msgstr "Bildschirm\\Driver und Bildschirmauflösung" +msgid "Select the astronaut\\Selects the astronaut" +msgstr "Astronauten auswählen\\Astronauten auswählen" -msgid "Dividing by zero" -msgstr "Teilung durch Null" +msgid "Quit\\Quit the current mission or exercise" +msgstr "Mission verlassen\\Eine Mission oder Übung verlassen" -msgid "Do not use in this exercise" -msgstr "In dieser Übung verboten" +msgid "Instructions\\Shows the instructions for the current mission" +msgstr "Anweisungen\\Anweisungen für die Mission oder Übung" -msgid "Do you really want to destroy the selected building?" -msgstr "Wollen Sie das angewählte Gebäude wirklich zerstören ?" +msgid "Programming help\\Gives more detailed help with programming" +msgstr "Hilfe CBOT-Sprache\\Hilfe über die Programmiersprache CBOT" -#, c-format -msgid "Do you want to delete %s's saved games? " -msgstr "Wollen Sie die gespeicherten Missionen von %s löschen ?" +msgid "Key word help\\More detailed help about key words" +msgstr "Hilfe über Begriff\\Hilfe über einen Begriff" -msgid "Do you want to quit COLOBOT ?" -msgstr "Wollen Sie COLOBOT schließen ?" +msgid "Origin of last message\\Shows where the last message was sent from" +msgstr "Ort der Meldung\\Zeigt den Ort, von dem die letzte Meldung stammt" -msgid "Doors blocked by a robot or another object " -msgstr "Die Türen werden von einem Gegenstand blockiert" +msgid "Speed 1.0x\\Normal speed" +msgstr "Geschwindigkeit 1.0x\\Normale Spielgeschwindigkeit" -msgid "Down (\\key gdown;)" -msgstr "Sinkt (\\key gdown;)" +msgid "Speed 1.5x\\1.5 times faster" +msgstr "Geschwindigkeit 1.5x\\Spielgeschwindigkeit anderthalb Mal schneller" -msgid "Drawer bot" -msgstr "Zeichner" +msgid "Speed 2.0x\\Double speed" +msgstr "Geschwindigkeit 2.0x\\Spielgeschwindigkeit doppelt so schnell" -msgid "Dust\\Dust and dirt on bots and buildings" -msgstr "Schmutz\\Schmutz auf Robotern und Bauten" +msgid "Speed 3.0x\\Three times faster" +msgstr "Geschwindigkeit 3.0x\\Spielgeschwindigkeit drei Mal schneller" -msgid "Dynamic lighting\\Mobile light sources" -msgstr "Dynamische Beleuchtung\\Dynamische Beleuchtung" +msgid "Sound effects:\\Volume of engines, voice, shooting, etc." +msgstr "Geräusche:\\Lautstärke Motoren, Stimmen, usw." -msgid "Edit the selected program" -msgstr "Gewähltes Programm bearbeiten" +msgid "Background sound :\\Volume of audio tracks on the CD" +msgstr "Geräuschkulisse:\\Lautstärke der Soundtracks der CD" -msgid "Egg" -msgstr "Ei" +msgid "3D sound\\3D positioning of the sound" +msgstr "3D-Geräusche\\Orten der Geräusche im Raum" -msgid "End of block missing" -msgstr "Es fehlt eine geschlossene geschweifte Klammer \"}\" (Ende des Blocks)" +msgid "Lowest\\Minimum graphic quality (highest frame rate)" +msgstr "Min.\\Minimale Qualität (großes Framerate)" -msgid "Energy deposit (site for power station)" -msgstr "Markierung für unterirdische Energiequelle" +msgid "Normal\\Normal graphic quality" +msgstr "Normal\\Standardqualität" -msgid "Energy level" -msgstr "Energievorrat" +msgid "Highest\\Highest graphic quality (lowest frame rate)" +msgstr "Max.\\Beste Qualität (niedriges Framerate)" -msgid "Engineer" -msgstr "Techniker" +msgid "Mute\\No sound" +msgstr "Kein Ton\\Keine Geräusche und Geräuschkulisse" -msgid "Error in instruction move" -msgstr "Ziel kann nicht erreicht werden" +msgid "Normal\\Normal sound volume" +msgstr "Normal\\Normale Lautstärke" -msgid "Execute the selected program" -msgstr "Gewähltes Programm ausführen" +msgid "Use a joystick\\Joystick or keyboard" +msgstr "Joystick\\Joystick oder Tastatur" -msgid "Execute/stop" -msgstr "Start/Stop" +msgid "" +"Access to solution\\Shows the solution (detailed instructions for missions)" +msgstr "Zeigt die Lösung\\Zeigt nach 3mal Scheitern die Lösung" -msgid "Exercises\\Programming exercises" -msgstr "Programmieren\\Programmierübungen" +msgid "\\New player name" +msgstr "\\Name des Spielers" -msgid "Exit film\\Film at the exit of exercises" -msgstr "Zurücksetzen \\Kleine Show beim Zurücksetzen in den Übungen" +msgid "OK\\Choose the selected player" +msgstr "OK\\Spieler auswählen" -#, fuzzy -msgid "Explode (\\key action;)" -msgstr "Recyceln (\\key action;)" +msgid "Cancel\\Keep current player name" +msgstr "Abbrechen\\Behält den bisherigen Spieler bei" -msgid "Explosive" -msgstr "Sprengstoff" +msgid "Delete player\\Deletes the player from the list" +msgstr "Spieler löschen\\Löscht den Spieler aus der Liste" -msgid "Extend shield (\\key action;)" -msgstr "Schutzschild ausfahren (\\key action;)" +msgid "Player name" +msgstr "Name " -msgid "Eyeglasses:" -msgstr "Brille:" +msgid "Save\\Saves the current mission" +msgstr "Speichern\\Speichert die Mission" -msgid "Face type:" -msgstr "Kopf:" +msgid "Load\\Loads the selected mission" +msgstr "Laden\\Öffnet eine gespeicherte Mission" -msgid "File not open" -msgstr "Die Datei wurde nicht geöffnet" +msgid "List of saved missions" +msgstr "Liste der gespeicherten Missionen" msgid "Filename:" msgstr "Dateiname:" -msgid "Film sequences\\Films before and after the missions" -msgstr "Filme\\Filme vor und nach den Missionen" +msgid "Mission name" +msgstr "Name der Mission" -msgid "Finish" -msgstr "Zielfläche" +msgid "Photography" +msgstr "Ansicht der Mission" -msgid "Fixed mine" -msgstr "Landmine" +msgid "Delete\\Deletes the selected file" +msgstr "Löschen\\Löscht die gespeicherte Mission" -msgid "Flat ground not large enough" -msgstr "Ebener Boden nicht groß genug" +msgid "Appearance\\Choose your appearance" +msgstr "Aussehen\\Erscheinungsbild des Astronauten einstellen" -msgid "Fog\\Fog" -msgstr "Nebel\\Nebelschwaden" +msgid "Standard\\Standard appearance settings" +msgstr "Standard\\Standardfarben einsetzen" -msgid "Folder:" -msgstr "In:" +msgid "Head\\Face and hair" +msgstr "Kopf\\Gesicht und Haare" -#, c-format -msgid "Folder: %s" -msgstr "Ordner: %s" +msgid "Suit\\Astronaut suit" +msgstr "Anzug\\Raumfahrtanzug" -msgid "Font size" -msgstr "Zeichengröße" +msgid "\\Turn left" +msgstr "\\Drehung links" -msgid "Forward" -msgstr "Nächste Seite" +msgid "\\Turn right" +msgstr "\\Drehung rechts" -msgid "Forward (\\key up;)" -msgstr "Vorwärts (\\key up;)" +msgid "Red" +msgstr "Rot" -msgid "Forward\\Moves forward" -msgstr "Vorwärts\\Bewegung nach vorne" +msgid "Green" +msgstr "Grün" -msgid "Found a site for a derrick" -msgstr "Geeignete Stelle für Bohrturm gefunden" +msgid "Blue" +msgstr "Blau" -msgid "Found a site for power station" -msgstr "Geeignete Stelle für Kraftwerk gefunden" +msgid "\\Face 1" +msgstr "\\Kopf 1" -msgid "Found key A (site for derrick)" -msgstr "Markierung für vergrabenen Schlüssel A" +msgid "\\Face 4" +msgstr "\\Kopf 4" -msgid "Found key B (site for derrick)" -msgstr "Markierung für vergrabenen Schlüssel B" +msgid "\\Face 3" +msgstr "\\Kopf 3" -msgid "Found key C (site for derrick)" -msgstr "Markierung für vergrabenen Schlüssel C" +msgid "\\Face 2" +msgstr "\\Kopf 2" -msgid "Found key D (site for derrick)" -msgstr "Markierung für vergrabenen Schlüssel D" +msgid "\\No eyeglasses" +msgstr "\\Keine Brille" -msgid "Free game" -msgstr "Freestyle" +msgid "\\Eyeglasses 1" +msgstr "\\Brille 1" -msgid "Free game\\Free game without a specific goal" -msgstr "Freestyle\\Freies Spielen ohne vorgegebenes Ziel" +msgid "\\Eyeglasses 2" +msgstr "\\Brille 2" -msgid "Friendly fire\\Your shooting can damage your own objects " -msgstr "Eigenbeschuss\\Ihre Einheiten werden von Ihren Waffen beschädigt" +msgid "\\Eyeglasses 3" +msgstr "\\Brille 3" -msgid "Full screen\\Full screen or window mode" -msgstr "Vollbildschirm\\Vollbildschirm oder Fenster" +msgid "\\Eyeglasses 4" +msgstr "\\Brille 4" -msgid "Function already exists" -msgstr "Diese Funktion gibt es schon" +msgid "\\Eyeglasses 5" +msgstr "\\Brille 5" -msgid "Function name missing" -msgstr "Hier muss der Name der Funktion stehen" +msgid "Previous selection (\\key desel;)" +msgstr "Vorherg. Auwahl (\\key desel;)" -msgid "Game speed" -msgstr "Spielgeschwindigkeit" +msgid "Turn left (\\key left;)" +msgstr "Drehung links (\\key left;)" -msgid "Game\\Game settings" -msgstr "Spiel\\Gameplay Einstellungen" +msgid "Turn right (\\key right;)" +msgstr "Drehung rechts (\\key right;)" -msgid "Gantry crane" -msgstr "Träger" +msgid "Forward (\\key up;)" +msgstr "Vorwärts (\\key up;)" -msgid "Goto: destination occupied" -msgstr "Ziel ist schon besetzt" +msgid "Backward (\\key down;)" +msgstr "Rückwärts (\\key down;)" -msgid "Goto: inaccessible destination" -msgstr "Ziel kann nicht erreicht werden" +msgid "Up (\\key gup;)" +msgstr "Steigt (\\key gup;)" + +msgid "Down (\\key gdown;)" +msgstr "Sinkt (\\key gdown;)" + +msgid "Grab or drop (\\key action;)" +msgstr "Nehmen oder hinlegen (\\key action;)" + +msgid "..in front" +msgstr "..vorne" + +msgid "..behind" +msgstr "..hinten" -msgid "Grab or drop (\\key action;)" -msgstr "Nehmen oder hinlegen (\\key action;)" +msgid "..power cell" +msgstr "..Batterie" -msgid "Graphics\\Graphics settings" -msgstr "Grafik\\Grafische Einstellungen" +msgid "Instructions for the mission (\\key help;)" +msgstr "Anweisungen über die Mission(\\key help;)" -msgid "Green" -msgstr "Grün" +msgid "Take off to finish the mission" +msgstr "Abheben nach vollbrachter Mission" -msgid "Green flag" -msgstr "Grüne Fahne" +msgid "Destroy" +msgstr "" -msgid "Ground inappropriate" -msgstr "Boden ungeeignet" +msgid "Build a derrick" +msgstr "Baut einen Bohrturm" -msgid "Ground not flat enough" -msgstr "Boden nicht eben genug" +msgid "Build a power station" +msgstr "Baut ein Kraftwerk" -msgid "Hair color:" -msgstr "Haarfarbe:" +msgid "Build a bot factory" +msgstr "Baut eine Roboterfabrik" -msgid "Head\\Face and hair" -msgstr "Kopf\\Gesicht und Haare" +msgid "Build a repair center" +msgstr "Baut ein Reparaturzentrum" -msgid "Help about selected object" -msgstr "Anweisungen über das ausgewählte Objekt" +msgid "Build a converter" +msgstr "Baut einen Konverter" -msgid "Help balloons\\Explain the function of the buttons" -msgstr "Hilfsblasen\\Hilfsblasen" +msgid "Build a defense tower" +msgstr "Baut einen Geschützturm" -msgid "Highest\\Highest graphic quality (lowest frame rate)" -msgstr "Max.\\Beste Qualität (niedriges Framerate)" +msgid "Build a research center" +msgstr "Baut ein Forschungszentrum" -msgid "Home" -msgstr "Home" +msgid "Build a radar station" +msgstr "Baut ein Radar" -msgid "Houston Mission Control" -msgstr "Kontrollzentrum" +msgid "Build a power cell factory" +msgstr "Baut eine Batteriefabrik" -msgid "Illegal object" -msgstr "Objekt nicht verfügbar" +msgid "Build an autolab" +msgstr "Baut ein automatisches Labor" -msgid "Impossible under water" -msgstr "Unter Wasser unmöglich" +msgid "Build a nuclear power plant" +msgstr "Baut eine Brennstoffzellenfabrik" -msgid "Impossible when carrying an object" -msgstr "Unmöglich wenn Sie etwas tragen" +msgid "Build a lightning conductor" +msgstr "Baut einen Blitzableiter" -msgid "Impossible when flying" -msgstr "Im Flug unmöglich" +msgid "Build a exchange post" +msgstr "Baut einen Infoserver" -msgid "Impossible when moving" -msgstr "In Fahrt unmöglich" +msgid "Build a destroyer" +msgstr "" -msgid "Impossible when swimming" -msgstr "Im Wasser unmöglich" +msgid "Show if the ground is flat" +msgstr "Zeigt ob der Boden eben ist" -msgid "Inappropriate bot" -msgstr "Roboter ungeeignet" +msgid "Plant a flag" +msgstr "Setzt eine Fahne" -msgid "Inappropriate cell type" -msgstr "Falscher Batterietyp" +msgid "Remove a flag" +msgstr "Sammelt die Fahne ein" -#, fuzzy -msgid "Inappropriate object" -msgstr "Roboter ungeeignet" +msgid "\\Blue flags" +msgstr "\\Blaue Fahne" -msgid "Incorrect index type" -msgstr "Falscher Typ für einen Index" +msgid "\\Red flags" +msgstr "\\Rote Fahne" -msgid "Infected by a virus; temporarily out of order" -msgstr "Von Virus infiziert, zeitweise außer Betrieb" +msgid "\\Green flags" +msgstr "\\Grüne Fahne" -msgid "Information exchange post" -msgstr "Infoserver" +msgid "\\Yellow flags" +msgstr "\\Gelbe Fahne" -msgid "Instruction \"break\" outside a loop" -msgstr "Anweisung \"break\" außerhalb einer Schleife" +msgid "\\Violet flags" +msgstr "\\Violette Fahne" -msgid "Instruction \"case\" missing" -msgstr "Es fehlt eine Anweisung \"case\"" +msgid "Build a winged grabber" +msgstr "Baut einen Jettransporter" -msgid "Instruction \"case\" outside a block \"switch\"" -msgstr "Anweisung \"case\" ohne vorhergehende Anweisung \"switch\"" +msgid "Build a tracked grabber" +msgstr "Baut einen Kettentransporter" -msgid "Instruction \"else\" without corresponding \"if\" " -msgstr "Anweisung \"else\" ohne vorhergehende Anweisung \"if\"" +msgid "Build a wheeled grabber" +msgstr "Baut einen Radtransporter" -msgid "Instructions (\\key help;)" -msgstr "Anweisungen (\\key help;)" +msgid "Build a legged grabber" +msgstr "Baut einen Krabbeltransporter" -msgid "Instructions after the final closing brace" -msgstr "Hier ist eine Anweisung nach dem Ende des Programms" +msgid "Build a winged shooter" +msgstr "Baut einen Jetshooter" -msgid "Instructions for the mission (\\key help;)" -msgstr "Anweisungen über die Mission(\\key help;)" +msgid "Build a tracked shooter" +msgstr "Baut einen Kettenshooter" -msgid "Instructions from Houston" -msgstr "Anweisungen von Houston" +msgid "Build a wheeled shooter" +msgstr "Baut einen Radshooter" -msgid "Instructions\\Shows the instructions for the current mission" -msgstr "Anweisungen\\Anweisungen für die Mission oder Übung" +msgid "Build a legged shooter" +msgstr "Baut einen Krabbelshooter" -msgid "Internal error - tell the developers" -msgstr "" +msgid "Build a winged orga shooter" +msgstr "Baut einen Jetorgashooter" -msgid "Jet temperature" -msgstr "Triebwerktemperatur" +msgid "Build a tracked orga shooter" +msgstr "Baut einen Kettenorgashooter" -msgid "Key A" -msgstr "Schlüssel A" +msgid "Build a wheeled orga shooter" +msgstr "Baut einen Radorgashooter" -msgid "Key B" -msgstr "Schlüssel B" +msgid "Build a legged orga shooter" +msgstr "Baut einen Krabbelorgashooter" -msgid "Key C" -msgstr "Schlüssel C" +msgid "Build a winged sniffer" +msgstr "Baut einen Jetschnüffler" -msgid "Key D" -msgstr "Schlüssel D" +msgid "Build a tracked sniffer" +msgstr "Baut einen Kettenschnüffler" -msgid "Key word help\\More detailed help about key words" -msgstr "Hilfe über Begriff\\Hilfe über einen Begriff" +msgid "Build a wheeled sniffer" +msgstr "Baut einen Radschnüffler" -msgid "Keyword \"while\" missing" -msgstr "Es fehlt das Wort \"while\"" +msgid "Build a legged sniffer" +msgstr "Baut einen Krabbelschnüffler" -msgid "Keyword help(\\key cbot;)" -msgstr "Hilfe über den Begriff (\\key cbot;)" +msgid "Build a thumper" +msgstr "Baut einen Stampfer" -msgid "LOADING" -msgstr "Laden" +msgid "Build a phazer shooter" +msgstr "Baut einen Phazershooter" -msgid "Legged grabber" -msgstr "Transporter" +msgid "Build a recycler" +msgstr "Baut einen Recycler" -msgid "Legged orga shooter" -msgstr "OrgaShooter" +msgid "Build a shielder" +msgstr "Baut einen Schutzschild" -msgid "Legged shooter" -msgstr "Shooter" +msgid "Build a subber" +msgstr "Baut einen Kettentaucher" -msgid "Legged sniffer" -msgstr "Schnüffler" +msgid "Run research program for tracked bots" +msgstr "Forschungsprogramm Kettenantrieb" -msgid "Lightning conductor" -msgstr "Blitzableiter" +msgid "Run research program for winged bots" +msgstr "Forschungsprogramm Jetantrieb" -msgid "List of objects" -msgstr "Liste der Objekte" +msgid "Run research program for thumper" +msgstr "Forschungsprogramm Stampfer" -msgid "List of saved missions" -msgstr "Liste der gespeicherten Missionen" +msgid "Run research program for shooter" +msgstr "Forschungsprogramm Shooterkanone" -msgid "Load a saved mission" -msgstr "Gespeicherte Mission laden" +msgid "Run research program for defense tower" +msgstr "Forschungsprogramm Geschützturm" -msgid "Load\\Load a saved mission" -msgstr "Laden\\Eine gespeicherte Mission öffnen" +msgid "Run research program for phazer shooter" +msgstr "Forschungsprogramm Phazerkanone" -msgid "Load\\Loads the selected mission" -msgstr "Laden\\Öffnet eine gespeicherte Mission" +msgid "Run research program for shielder" +msgstr "Forschungsprogramm Schutzschild" -msgid "Lowest\\Minimum graphic quality (highest frame rate)" -msgstr "Min.\\Minimale Qualität (großes Framerate)" +msgid "Run research program for nuclear power" +msgstr "Forschungsprogramm Brennstoffzelle" -msgid "Lunar Roving Vehicle" -msgstr "Lunar Roving Vehicle" +msgid "Run research program for legged bots" +msgstr "Forschungsprogramm Krabbelantrieb" -msgid "Marks on the ground\\Marks on the ground" -msgstr "Markierungen\\Markierungen auf dem Boden" +msgid "Run research program for orga shooter" +msgstr "Forschungsprogramm Orgashooterkanone" -msgid "Maximize" -msgstr "Großes Fenster" +msgid "Return to start" +msgstr "Alles zurücksetzen" -msgid "Minimize" -msgstr "Reduzieren" +msgid "Sniff (\\key action;)" +msgstr "Schnüffeln (\\key action;)" -msgid "Mission name" -msgstr "Name der Mission" +msgid "Thump (\\key action;)" +msgstr "Stampfen (\\key action;)" -msgid "Missions" -msgstr "Missionen" +msgid "Shoot (\\key action;)" +msgstr "Feuer (\\key action;)" -msgid "Missions\\Select mission" -msgstr "Missionen\\Aufbruch ins Weltall" +msgid "Explode (\\key action;)" +msgstr "" -msgid "Mouse inversion X\\Inversion of the scrolling direction on the X axis" -msgstr "Umkehr X\\Umkehr der Kameradrehung X-Achse" +msgid "Recycle (\\key action;)" +msgstr "Recyceln (\\key action;)" -msgid "Mouse inversion Y\\Inversion of the scrolling direction on the Y axis" -msgstr "Umkehr Y\\Umkehr der Kameradrehung Y-Achse" +msgid "Extend shield (\\key action;)" +msgstr "Schutzschild ausfahren (\\key action;)" -msgid "Mouse shadow\\Gives the mouse a shadow" -msgstr "Schatten unter der Maus\\Ein Schatten erscheint unter der Maus" +msgid "Withdraw shield (\\key action;)" +msgstr "Schutzschild einholen (\\key action;)" -msgid "Mute\\No sound" -msgstr "Kein Ton\\Keine Geräusche und Geräuschkulisse" +msgid "Shield radius" +msgstr "Reichweite Schutzschild" -msgid "Name:" -msgstr "Name:" +msgid "Execute the selected program" +msgstr "Gewähltes Programm ausführen" -msgid "Negative value rejected by \"throw\"" -msgstr "Negativer Wert ungeeignet für Anweisung \"throw\"" +msgid "Edit the selected program" +msgstr "Gewähltes Programm bearbeiten" -msgid "Nest" -msgstr "Orgastoffquelle" +msgid "\\SatCom on standby" +msgstr "\\SatCom in Standby" -msgid "New" -msgstr "Neu" +msgid "Destroy the building" +msgstr "Gebäude sprengen" -msgid "New ..." -msgstr "Neu ..." +msgid "Energy level" +msgstr "Energievorrat" -msgid "New bot available" -msgstr "Neuer Roboter verfügbar" +msgid "Shield level" +msgstr "Schäden" -msgid "Next" -msgstr "Nächster" +msgid "Jet temperature" +msgstr "Triebwerktemperatur" -msgid "Next object\\Selects the next object" -msgstr "Nächstes auswählen\\Nächstes Objekt auswählen" +msgid "Still working ..." +msgstr "Prozess im Gang ..." -msgid "No energy in the subsoil" -msgstr "Kein unterirdisches Energievorkommen" +msgid "Number of insects detected" +msgstr "Anzahl erfasster Insekten" -msgid "No flag nearby" -msgstr "Keine Fahne in Reichweite" +msgid "Transmitted information" +msgstr "Gesendete Informationen" -msgid "No function running" -msgstr "Keine Funktion wird ausgeführt" +msgid "Compass" +msgstr "Kompass" -msgid "No function with this name accepts this kind of parameter" -msgstr "Keine Funktion mit diesem Namen verträgt Parameter diesen Typs" +msgid "Zoom mini-map" +msgstr "Zoom Minikarte" -msgid "No function with this name accepts this number of parameters" -msgstr "Keine Funktion mit diesem Namen verträgt diese Anzahl Parameter" +msgid "Camera (\\key camera;)" +msgstr "Kamera (\\key camera;)" -msgid "No information exchange post within range" -msgstr "Kein Infoserver in Reichweite" +msgid "Camera to left" +msgstr "Kamera links" -msgid "No more energy" -msgstr "Keine Energie mehr" +msgid "Camera to right" +msgstr "Kamera rechts" -msgid "No ore in the subsoil" -msgstr "Keine unterirdische Erzlagerstätte" +msgid "Camera nearest" +msgstr "Kamera näher" -msgid "No other robot" -msgstr "Kein anderer Roboter" +msgid "Camera awayest" +msgstr "Kamera weiter weg" -msgid "No power cell" -msgstr "Keine Batterie" +msgid "Help about selected object" +msgstr "Anweisungen über das ausgewählte Objekt" -msgid "No titanium" -msgstr "Kein Titan vorhanden" +msgid "Show the solution" +msgstr "Zeigt die Lösung" -msgid "No titanium around" -msgstr "Kein Titan vorhanden" +msgid "Switch bots <-> buildings" +msgstr "Anzeige Roboter <-> Bauten" -msgid "No titanium ore to convert" -msgstr "Kein konvertierbares Titanerz vorhanden" +msgid "Show the range" +msgstr "Zeigt die Reichweite" -msgid "No titanium to transform" -msgstr "Kein konvertierbares Titanerz vorhanden" +msgid "\\Raise the pencil" +msgstr "\\Bleistift abheben" -msgid "No uranium to transform" -msgstr "Kein konvertierbares Platin" +msgid "\\Use the black pencil" +msgstr "\\Schwarzen Bleistift hinunterlassen" -msgid "Normal size" -msgstr "Normale Größe" +msgid "\\Use the yellow pencil" +msgstr "\\Gelben Bleistift hinunterlassen" -msgid "Normal\\Normal graphic quality" -msgstr "Normal\\Standardqualität" +msgid "\\Use the orange pencil" +msgstr "\\Orangefarbenen Bleistift hinunterlassen" -msgid "Normal\\Normal sound volume" -msgstr "Normal\\Normale Lautstärke" +msgid "\\Use the red pencil" +msgstr "\\Roten Bleistift hinunterlassen" -msgid "Not enough energy" -msgstr "Nicht genug Energie" +msgid "\\Use the purple pencil" +msgstr "\\Violetten Bleistift hinunterlassen" -msgid "Not enough energy yet" -msgstr "Noch nicht genug Energie" +msgid "\\Use the blue pencil" +msgstr "\\Blauen Bleistift hinunterlassen" -#, fuzzy -msgid "Not found anything to destroy" -msgstr "Nichts abzulegen" +msgid "\\Use the green pencil" +msgstr "\\Grünen Bleistift hinunterlassen" -msgid "Not yet enough energy" -msgstr "Noch nicht genug Energie" +msgid "\\Use the brown pencil" +msgstr "\\Braunen Bleistift hinunterlassen" -msgid "Nothing to analyze" -msgstr "Nichts zu analysieren" +msgid "\\Start recording" +msgstr "\\Aufnahme starten" -msgid "Nothing to drop" -msgstr "Nichts abzulegen" +msgid "\\Stop recording" +msgstr "\\Aufnahme stoppen" -msgid "Nothing to grab" -msgstr "Nichts zu ergreifen" +msgid "Show the place" +msgstr "Zeigt den Ort" -msgid "Nothing to recycle" -msgstr "Nichts zu recyceln" +msgid "Continue" +msgstr "Weitermachen" -msgid "Nuclear power cell" -msgstr "Brennstoffzelle" +msgid "Command line" +msgstr "Befehleingabe" -msgid "Nuclear power cell available" -msgstr "Brennstoffzelle verfügbar" +msgid "Game speed" +msgstr "Spielgeschwindigkeit" -msgid "Nuclear power station" -msgstr "Brennstoffzellenfabrik" +msgid "Back" +msgstr "Vorherg. Seite" -msgid "Num of decorative objects\\Number of purely ornamental objects" -msgstr "Anzahl Ziergegenstände\\Anzahl Gegenstände ohne Funktion" +msgid "Forward" +msgstr "Nächste Seite" -msgid "Number missing" -msgstr "Es fehlt eine Zahl" +msgid "Home" +msgstr "Home" -msgid "Number of insects detected" -msgstr "Anzahl erfasster Insekten" +msgid "Copy" +msgstr "Kopieren" -msgid "Number of particles\\Explosions, dust, reflections, etc." -msgstr "Anzahl Partikel\\Explosionen, Staub, usw." +msgid "Size 1" +msgstr "Größe 1" -msgid "OK" -msgstr "OK" +msgid "Size 2" +msgstr "Größe 2" -msgid "OK\\Choose the selected player" -msgstr "OK\\Spieler auswählen" +msgid "Size 3" +msgstr "Größe 3" -msgid "OK\\Close program editor and return to game" -msgstr "OK\\Programm kompilieren" +msgid "Size 4" +msgstr "Größe 4" -msgid "Object not found" -msgstr "Das Objekt existiert nicht" +msgid "Size 5" +msgstr "Größe 5" -msgid "Object too close" -msgstr "Gegenstand zu nahe" +msgid "Instructions from Houston" +msgstr "Anweisungen von Houston" -msgid "One step" -msgstr "Ein Schritt" +msgid "Satellite report" +msgstr "Satellitenbericht" -msgid "Open" -msgstr "Öffnen" +msgid "Programs dispatched by Houston" +msgstr "Von Houston übermittelte Programme" -msgid "Open (Ctrl+o)" -msgstr "Öffnen (Ctrl+o)" +msgid "List of objects" +msgstr "Liste der Objekte" -msgid "Opening brace missing " -msgstr "Es fehlt eine offene geschweifte Klammer\"{\"" +msgid "Programming help" +msgstr "Hilfe über Programmieren" -msgid "Opening bracket missing" -msgstr "Es fehlt eine offene Klammer \"(\"" +msgid "Solution" +msgstr "Lösung" -msgid "Operation impossible with value \"nan\"" -msgstr "Operation mit dem Wert \"nan\"" +msgid "OK\\Close program editor and return to game" +msgstr "OK\\Programm kompilieren" -msgid "Options" -msgstr "Einstellungen" +msgid "Cancel\\Cancel all changes" +msgstr "Abbrechen\\Editor schließen" -msgid "Options\\Preferences" -msgstr "Einstellungen\\Einstellungen" +msgid "Open (Ctrl+o)" +msgstr "Öffnen (Ctrl+o)" -msgid "Organic matter" -msgstr "Orgastoff" +msgid "Save (Ctrl+s)" +msgstr "Speichern (Ctrl+s)" -msgid "Origin of last message\\Shows where the last message was sent from" -msgstr "Ort der Meldung\\Zeigt den Ort, von dem die letzte Meldung stammt" +msgid "Undo (Ctrl+z)" +msgstr "Widerrufen (Ctrl+z)" -msgid "Parameters missing " -msgstr "Nicht genug Parameter" +msgid "Cut (Ctrl+x)" +msgstr "Ausschneiden (Ctrl+x)" -msgid "Particles in the interface\\Steam clouds and sparks in the interface" -msgstr "Partikel in den Menüs\\Funken und Sterne in den Menüs" +msgid "Copy (Ctrl+c)" +msgstr "Kopieren (Ctrl+c)" msgid "Paste (Ctrl+v)" msgstr "Einfügen (Ctrl+v)" -msgid "Pause/continue" -msgstr "Pause/Weitermachen" +msgid "Font size" +msgstr "Zeichengröße" -msgid "Phazer shooter" -msgstr "Phazershooter" +msgid "Instructions (\\key help;)" +msgstr "Anweisungen (\\key help;)" -msgid "Photography" -msgstr "Ansicht der Mission" +msgid "Programming help (\\key prog;)" +msgstr "Hilfe über Programmieren (\\key prog;)" + +msgid "Compile" +msgstr "Kompilieren" -msgid "Place occupied" -msgstr "Stelle schon besetzt" +msgid "Execute/stop" +msgstr "Start/Stop" -msgid "Planets and stars\\Astronomical objects in the sky" -msgstr "Planeten und Sterne\\Kreisende Planeten und Sterne" +msgid "Pause/continue" +msgstr "Pause/Weitermachen" -msgid "Plans for defense tower available" -msgstr "Errichtung eines Geschützturms möglich" +msgid "One step" +msgstr "Ein Schritt" -msgid "Plans for nuclear power plant available" -msgstr "Errichtung einer Brennstoffzellenfabrik möglich" +msgid "Gantry crane" +msgstr "Träger" -msgid "Plans for phazer shooter available" -msgstr "Herstellung eines Phazershooters möglich" +msgid "Spaceship" +msgstr "Raumschiff" -msgid "Plans for shielder available" -msgstr "Herstellung eines Schutzschildes möglich" +msgid "Derrick" +msgstr "Bohrturm" -msgid "Plans for shooter available" -msgstr "Herstellung eines Shooters möglich" +msgid "Bot factory" +msgstr "Roboterfabrik" -msgid "Plans for thumper available" -msgstr "Herstellung eines Stampfers möglich" +msgid "Repair center" +msgstr "Reparaturzentrum" -msgid "Plans for tracked robots available " -msgstr "Herstellung eines Roboters mit Kettenantrieb möglich" +msgid "Destroyer" +msgstr "Einstampfer" -msgid "Plant a flag" -msgstr "Setzt eine Fahne" +msgid "Power station" +msgstr "Kraftwerk" -msgid "Play\\Start mission!" -msgstr "Spielen ...\\Los geht's!" +msgid "Converts ore to titanium" +msgstr "Konverter Erz-Titan" -msgid "Player" -msgstr "Spieler" +msgid "Defense tower" +msgstr "Geschützturm" -msgid "Player name" -msgstr "Name " +msgid "Nest" +msgstr "Orgastoffquelle" -msgid "Player's name" -msgstr "Name " +msgid "Research center" +msgstr "Forschungszentrum" -msgid "Power cell" -msgstr "Elektrolytische Batterie" +msgid "Radar station" +msgstr "Radar" -msgid "Power cell available" -msgstr "Batterie verfügbar" +msgid "Information exchange post" +msgstr "Infoserver" msgid "Power cell factory" msgstr "Batteriefabrik" -msgid "Power station" -msgstr "Kraftwerk" +msgid "Autolab" +msgstr "Automatisches Labor" -msgid "Practice bot" -msgstr "Übungsroboter" +msgid "Nuclear power station" +msgstr "Brennstoffzellenfabrik" -msgid "Press \\key help; to read instructions on your SatCom" -msgstr "Beziehen Sie sich auf Ihren SatCom, indem Sie auf \\key help; drücken" +msgid "Lightning conductor" +msgstr "Blitzableiter" -msgid "Previous" -msgstr "Vorherg" +msgid "Vault" +msgstr "Bunker" -msgid "Previous object\\Selects the previous object" -msgstr "Vorherg. Auswahl\\Das vorhergehende Objekt auswählen" +msgid "Houston Mission Control" +msgstr "Kontrollzentrum" -msgid "Previous selection (\\key desel;)" -msgstr "Vorherg. Auwahl (\\key desel;)" +msgid "Target" +msgstr "Zielscheibe" -msgid "Private element" -msgstr "Geschütztes Element (private)" +msgid "Start" +msgstr "Startfläche" -msgid "Private\\Private folder" -msgstr "Privat\\Privater Ordner" +msgid "Finish" +msgstr "Zielfläche" -msgid "Program editor" -msgstr "Programmeditor" +msgid "Titanium ore" +msgstr "Titanerz" -msgid "Program finished" -msgstr "Programm beendet" +msgid "Uranium ore" +msgstr "Platinerz" -msgid "Program infected by a virus" -msgstr "Ein Programm wurde von einem Virus infiziert" +msgid "Organic matter" +msgstr "Orgastoff" -msgid "Programming exercises" -msgstr "Programmieren" +msgid "Titanium" +msgstr "Titan" -msgid "Programming help" -msgstr "Hilfe über Programmieren" +msgid "Power cell" +msgstr "Elektrolytische Batterie" -msgid "Programming help (\\key prog;)" -msgstr "Hilfe über Programmieren (\\key prog;)" +msgid "Nuclear power cell" +msgstr "Brennstoffzelle" -msgid "Programming help\\Gives more detailed help with programming" -msgstr "Hilfe CBOT-Sprache\\Hilfe über die Programmiersprache CBOT" +msgid "Black box" +msgstr "Flugschreiber" -msgid "Programs dispatched by Houston" -msgstr "Von Houston übermittelte Programme" +msgid "Key A" +msgstr "Schlüssel A" -msgid "Public required" -msgstr "Hier muss das Wort \"public\" stehen" +msgid "Key B" +msgstr "Schlüssel B" -msgid "Public\\Common folder" -msgstr "Öffentlich\\Gemeinsamer Ordner für alle Spieler" +msgid "Key C" +msgstr "Schlüssel C" -msgid "Quake at explosions\\The screen shakes at explosions" -msgstr "Beben bei Explosionen\\Die Kamera bebt bei Explosionen" +msgid "Key D" +msgstr "Schlüssel D" -msgid "Quit the mission?" -msgstr "Mission abbrechen ?" +msgid "Explosive" +msgstr "Sprengstoff" -msgid "Quit\\Quit COLOBOT" -msgstr "Schließen\\COLOBOT schließen" +msgid "Fixed mine" +msgstr "Landmine" -msgid "Quit\\Quit the current mission or exercise" -msgstr "Mission verlassen\\Eine Mission oder Übung verlassen" +msgid "Survival kit" +msgstr "Überlebenskit" -msgid "Radar station" -msgstr "Radar" +msgid "Checkpoint" +msgstr "Checkpoint" -msgid "Read error" -msgstr "Fehler beim Lesezugriff" +msgid "Blue flag" +msgstr "Blaue Fahne" -msgid "Recorder" -msgstr "Recorder" +msgid "Red flag" +msgstr "Rote Fahne" -msgid "Recycle (\\key action;)" -msgstr "Recyceln (\\key action;)" +msgid "Green flag" +msgstr "Grüne Fahne" -msgid "Recycler" -msgstr "Recycler" +msgid "Yellow flag" +msgstr "Gelbe Fahne" -msgid "Red" -msgstr "Rot" +msgid "Violet flag" +msgstr "Violette Fahne" -msgid "Red flag" -msgstr "Rote Fahne" +msgid "Energy deposit (site for power station)" +msgstr "Markierung für unterirdische Energiequelle" -msgid "Reflections on the buttons \\Shiny buttons" -msgstr "Glänzende Tasten\\Glänzende Tasten in den Menüs" +msgid "Uranium deposit (site for derrick)" +msgstr "Markierung für unterirdisches Platinvorkommen" -msgid "Remains of Apollo mission" -msgstr "Überreste einer Apollo-Mission" +msgid "Found key A (site for derrick)" +msgstr "Markierung für vergrabenen Schlüssel A" -msgid "Remove a flag" -msgstr "Sammelt die Fahne ein" +msgid "Found key B (site for derrick)" +msgstr "Markierung für vergrabenen Schlüssel B" -msgid "Repair center" -msgstr "Reparaturzentrum" +msgid "Found key C (site for derrick)" +msgstr "Markierung für vergrabenen Schlüssel C" -msgid "Research center" -msgstr "Forschungszentrum" +msgid "Found key D (site for derrick)" +msgstr "Markierung für vergrabenen Schlüssel D" -msgid "Research program already performed" -msgstr "Forschungsprogramm schon ausgeführt" +msgid "Titanium deposit (site for derrick)" +msgstr "Markierung für unterirdisches Titanvorkommen" -msgid "Research program completed" -msgstr "Forschungsprogramm abgeschlossen" +msgid "Practice bot" +msgstr "Übungsroboter" -msgid "Reserved keyword of CBOT language" -msgstr "Dieses Wort ist reserviert" +msgid "Winged grabber" +msgstr "Transporter" -msgid "Resolution" -msgstr "Auflösung" +msgid "Tracked grabber" +msgstr "Transporter" -msgid "Restart\\Restart the mission from the beginning" -msgstr "Neu anfangen\\Die Mission von vorne anfangen" +msgid "Wheeled grabber" +msgstr "Transporter" -msgid "Return to start" -msgstr "Alles zurücksetzen" +msgid "Legged grabber" +msgstr "Transporter" -msgid "Robbie" -msgstr "Robby" +msgid "Winged shooter" +msgstr "Shooter" -msgid "Robbie\\Your assistant" -msgstr "Robby\\Ihr Assistent" +msgid "Tracked shooter" +msgstr "Shooter" -msgid "Ruin" -msgstr "Gebäuderuine" +msgid "Wheeled shooter" +msgstr "Shooter" -msgid "Run research program for defense tower" -msgstr "Forschungsprogramm Geschützturm" +msgid "Legged shooter" +msgstr "Shooter" -msgid "Run research program for legged bots" -msgstr "Forschungsprogramm Krabbelantrieb" +msgid "Winged orga shooter" +msgstr "OrgaShooter" -msgid "Run research program for nuclear power" -msgstr "Forschungsprogramm Brennstoffzelle" +msgid "Tracked orga shooter" +msgstr "OrgaShooter" -msgid "Run research program for orga shooter" -msgstr "Forschungsprogramm Orgashooterkanone" +msgid "Wheeled orga shooter" +msgstr "OrgaShooter" -msgid "Run research program for phazer shooter" -msgstr "Forschungsprogramm Phazerkanone" +msgid "Legged orga shooter" +msgstr "OrgaShooter" -msgid "Run research program for shielder" -msgstr "Forschungsprogramm Schutzschild" +msgid "Winged sniffer" +msgstr "Schnüffler" -msgid "Run research program for shooter" -msgstr "Forschungsprogramm Shooterkanone" +msgid "Tracked sniffer" +msgstr "Schnüffler" -msgid "Run research program for thumper" -msgstr "Forschungsprogramm Stampfer" +msgid "Wheeled sniffer" +msgstr "Schnüffler" -msgid "Run research program for tracked bots" -msgstr "Forschungsprogramm Kettenantrieb" +msgid "Legged sniffer" +msgstr "Schnüffler" -msgid "Run research program for winged bots" -msgstr "Forschungsprogramm Jetantrieb" +msgid "Thumper" +msgstr "Stampfer" -msgid "SatCom" -msgstr "SatCom" +msgid "Phazer shooter" +msgstr "Phazershooter" -msgid "Satellite report" -msgstr "Satellitenbericht" +msgid "Recycler" +msgstr "Recycler" -msgid "Save" -msgstr "Speichern" +msgid "Shielder" +msgstr "Schutzschild" -msgid "Save (Ctrl+s)" -msgstr "Speichern (Ctrl+s)" +msgid "Subber" +msgstr "Kettentaucher" -msgid "Save the current mission" -msgstr "Aktuelle Mission speichern" +msgid "Target bot" +msgstr "Mobile Zielscheibe" -msgid "Save\\Save the current mission " -msgstr "Speichern\\Aktuelle Mission speichern" +msgid "Drawer bot" +msgstr "Zeichner" -msgid "Save\\Saves the current mission" -msgstr "Speichern\\Speichert die Mission" +msgid "Engineer" +msgstr "Techniker" -msgid "Scrolling\\Scrolling when the mouse touches right or left border" -msgstr "" -"Kameradrehung mit der Maus\\Die Kamera dreht wenn die Maus den Rand erreicht" +msgid "Robbie" +msgstr "Robby" -msgid "Select the astronaut\\Selects the astronaut" -msgstr "Astronauten auswählen\\Astronauten auswählen" +msgid "Alien Queen" +msgstr "Insektenkönigin" -msgid "Semicolon terminator missing" -msgstr "Es fehlt ein Strichpunkt \";\" am Ende der Anweisung" +msgid "Ant" +msgstr "Ameise" -msgid "Shadows\\Shadows on the ground" -msgstr "Schatten\\Schlagschatten auf dem Boden" +msgid "Spider" +msgstr "Spinne" -msgid "Shield level" -msgstr "Schäden" +msgid "Wasp" +msgstr "Wespe" -msgid "Shield radius" -msgstr "Reichweite Schutzschild" +msgid "Worm" +msgstr "Wurm" -msgid "Shielder" -msgstr "Schutzschild" +msgid "Egg" +msgstr "Ei" -msgid "Shift" -msgstr "Shift" +msgid "Wreckage" +msgstr "Roboterwrack" -msgid "Shoot (\\key action;)" -msgstr "Feuer (\\key action;)" +msgid "Ruin" +msgstr "Gebäuderuine" -msgid "Show if the ground is flat" -msgstr "Zeigt ob der Boden eben ist" +msgid "Waste" +msgstr "Abfall" -msgid "Show the place" -msgstr "Zeigt den Ort" +msgid "Spaceship ruin" +msgstr "Raumschiffruine" -msgid "Show the range" -msgstr "Zeigt die Reichweite" +msgid "Remains of Apollo mission" +msgstr "Überreste einer Apollo-Mission" -msgid "Show the solution" -msgstr "Zeigt die Lösung" +msgid "Lunar Roving Vehicle" +msgstr "Lunar Roving Vehicle" -msgid "Sign \" : \" missing" -msgstr "Es fehlt ein Doppelpunkt \" : \"" +msgid "Internal error - tell the developers" +msgstr "" -msgid "Size 1" -msgstr "Größe 1" +msgid "Unknown command" +msgstr "Befehl unbekannt" -msgid "Size 2" -msgstr "Größe 2" +msgid "Inappropriate bot" +msgstr "Roboter ungeeignet" -msgid "Size 3" -msgstr "Größe 3" +msgid "Impossible when flying" +msgstr "Im Flug unmöglich" -msgid "Size 4" -msgstr "Größe 4" +msgid "Already carrying something" +msgstr "Trägt schon etwas" -msgid "Size 5" -msgstr "Größe 5" +msgid "Nothing to grab" +msgstr "Nichts zu ergreifen" -msgid "Sky\\Clouds and nebulae" -msgstr "Himmel\\Himmel und Wolken" +msgid "Impossible when moving" +msgstr "In Fahrt unmöglich" -msgid "Sniff (\\key action;)" -msgstr "Schnüffeln (\\key action;)" +msgid "Place occupied" +msgstr "Stelle schon besetzt" -msgid "Solution" -msgstr "Lösung" +msgid "No other robot" +msgstr "Kein anderer Roboter" -msgid "Sound effects:\\Volume of engines, voice, shooting, etc." -msgstr "Geräusche:\\Lautstärke Motoren, Stimmen, usw." +msgid "You can not carry a radioactive object" +msgstr "Sie können keinen radioaktiven Gegenstand tragen" -msgid "Sound\\Music and game sound volume" -msgstr "Geräusche\\Lautstärke Geräusche und Musik" +msgid "You can not carry an object under water" +msgstr "Sie können unter Wasser nichts tragen" -msgid "Spaceship" -msgstr "Raumschiff" +msgid "Nothing to drop" +msgstr "Nichts abzulegen" -msgid "Spaceship ruin" -msgstr "Raumschiffruine" +msgid "Impossible under water" +msgstr "Unter Wasser unmöglich" -msgid "Speed 1.0x\\Normal speed" -msgstr "Geschwindigkeit 1.0x\\Normale Spielgeschwindigkeit" +msgid "Not enough energy" +msgstr "Nicht genug Energie" -msgid "Speed 1.5x\\1.5 times faster" -msgstr "Geschwindigkeit 1.5x\\Spielgeschwindigkeit anderthalb Mal schneller" +msgid "Titanium too far away" +msgstr "Titan zu weit weg" -msgid "Speed 2.0x\\Double speed" -msgstr "Geschwindigkeit 2.0x\\Spielgeschwindigkeit doppelt so schnell" +msgid "Titanium too close" +msgstr "Titan zu nahe" -msgid "Speed 3.0x\\Three times faster" -msgstr "Geschwindigkeit 3.0x\\Spielgeschwindigkeit drei Mal schneller" +msgid "No titanium around" +msgstr "Kein Titan vorhanden" -msgid "Spider" -msgstr "Spinne" +msgid "Ground not flat enough" +msgstr "Boden nicht eben genug" -msgid "Spider fatally wounded" -msgstr "Spinne tödlich verwundet" +msgid "Flat ground not large enough" +msgstr "Ebener Boden nicht groß genug" -msgid "Stack overflow" -msgstr "Stack overflow" +msgid "Too close to space ship" +msgstr "Zu nahe am Raumschiff" -msgid "" -"Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)" -msgstr "Standardhandlung\\Führt die Standardhandlung des Roboters aus" +msgid "Too close to a building" +msgstr "Zu nahe an einem Gebäude" -msgid "Standard controls\\Standard key functions" -msgstr "Alles zurücksetzen\\Standarddefinition aller Tasten" +msgid "Can not produce this object in this mission" +msgstr "" -msgid "Standard\\Standard appearance settings" -msgstr "Standard\\Standardfarben einsetzen" +msgid "Can not produce not researched object" +msgstr "" -msgid "Start" -msgstr "Startfläche" +msgid "Ground inappropriate" +msgstr "Boden ungeeignet" -msgid "Still working ..." -msgstr "Prozess im Gang ..." +msgid "Building too close" +msgstr "Gebäude zu nahe" -msgid "String missing" -msgstr "Hier wird eine Zeichenkette erwartet" +msgid "Object too close" +msgstr "Gegenstand zu nahe" -msgid "Strip color:" -msgstr "Farbe der Streifen:" +msgid "Nothing to recycle" +msgstr "Nichts zu recyceln" -msgid "Subber" -msgstr "Kettentaucher" +msgid "No more energy" +msgstr "Keine Energie mehr" -msgid "Suit color:" -msgstr "Farbe des Anzugs:" +msgid "Error in instruction move" +msgstr "Ziel kann nicht erreicht werden" -msgid "Suit\\Astronaut suit" -msgstr "Anzug\\Raumfahrtanzug" +msgid "Object not found" +msgstr "Das Objekt existiert nicht" -msgid "Sunbeams\\Sunbeams in the sky" -msgstr "Sonnenstrahlen\\Sonnenstrahlen" +msgid "Goto: inaccessible destination" +msgstr "Ziel kann nicht erreicht werden" -msgid "Survival kit" -msgstr "Überlebenskit" +msgid "Goto: destination occupied" +msgstr "Ziel ist schon besetzt" -msgid "Switch bots <-> buildings" -msgstr "Anzeige Roboter <-> Bauten" +msgid "No titanium ore to convert" +msgstr "Kein konvertierbares Titanerz vorhanden" -msgid "Take off to finish the mission" -msgstr "Abheben nach vollbrachter Mission" +msgid "No ore in the subsoil" +msgstr "Keine unterirdische Erzlagerstätte" -msgid "Target" -msgstr "Zielscheibe" +msgid "No energy in the subsoil" +msgstr "Kein unterirdisches Energievorkommen" -msgid "Target bot" -msgstr "Mobile Zielscheibe" +msgid "No power cell" +msgstr "Keine Batterie" -msgid "Textures\\Quality of textures " -msgstr "Qualität der Texturen\\Qualität der Anzeige" +msgid "Inappropriate cell type" +msgstr "Falscher Batterietyp" -msgid "The expression must return a boolean value" -msgstr "Der Ausdruck muss einen boolschen Wert ergeben" +msgid "Research program already performed" +msgstr "Forschungsprogramm schon ausgeführt" -msgid "The function returned no value " -msgstr "Die Funktion hat kein Ergebnis zurückgegeben" +msgid "Not enough energy yet" +msgstr "Noch nicht genug Energie" -msgid "" -"The list is only available if a \\l;radar station\\u object\\radar; is " -"working.\n" -msgstr "Die Liste ist ohne \\l;Radar\\u object\\radar; nicht verfügbar.\n" +msgid "No titanium to transform" +msgstr "Kein konvertierbares Titanerz vorhanden" -msgid "" -"The mission is not accomplished yet (press \\key help; for more details)" -msgstr "" -"Mission noch nicht beendet (Drücken Sie auf \\key help; für weitere " -"Informationen)" +msgid "Transforms only titanium" +msgstr "Wandelt nur Titanerz um" -msgid "The types of the two operands are incompatible " -msgstr "Die zwei Operanden sind nicht kompatibel" +msgid "Doors blocked by a robot or another object " +msgstr "Die Türen werden von einem Gegenstand blockiert" -msgid "This class already exists" -msgstr "Diese Klasse gibt es schon" +msgid "You must get on the spaceship to take off " +msgstr "Gehen Sie an Bord, bevor Sie abheben" -msgid "This class does not exist" -msgstr "Diese Klasse existiert nicht" +msgid "Nothing to analyze" +msgstr "Nichts zu analysieren" -msgid "This is not a member of this class" -msgstr "Dieses Element gibt es nicht in dieser Klasse" +msgid "Analyzes only organic matter" +msgstr "Analysiert nur Orgastoff" -msgid "This label does not exist" -msgstr "Dieses Label existiert nicht" +msgid "Analysis already performed" +msgstr "Analyse schon durchgeführt" -msgid "This object is not a member of a class" -msgstr "Das Objekt ist nicht eine Instanz einer Klasse" +msgid "Not yet enough energy" +msgstr "Noch nicht genug Energie" -msgid "Thump (\\key action;)" -msgstr "Stampfen (\\key action;)" +msgid "No uranium to transform" +msgstr "Kein konvertierbares Platin" -msgid "Thumper" -msgstr "Stampfer" +msgid "Transforms only uranium" +msgstr "Wandelt nur Platin um" -msgid "Titanium" -msgstr "Titan" +msgid "No titanium" +msgstr "Kein Titan vorhanden" -msgid "Titanium available" -msgstr "Titan verfügbar" +msgid "No information exchange post within range" +msgstr "Kein Infoserver in Reichweite" -msgid "Titanium deposit (site for derrick)" -msgstr "Markierung für unterirdisches Titanvorkommen" +msgid "Program infected by a virus" +msgstr "Ein Programm wurde von einem Virus infiziert" -msgid "Titanium ore" -msgstr "Titanerz" +msgid "Infected by a virus; temporarily out of order" +msgstr "Von Virus infiziert, zeitweise außer Betrieb" -msgid "Titanium too close" -msgstr "Titan zu nahe" +msgid "Impossible when swimming" +msgstr "Im Wasser unmöglich" -msgid "Titanium too far away" -msgstr "Titan zu weit weg" +msgid "Impossible when carrying an object" +msgstr "Unmöglich wenn Sie etwas tragen" -msgid "Too close to a building" -msgstr "Zu nahe an einem Gebäude" +msgid "Too many flags of this color (maximum 5)" +msgstr "Zu viele Fahnen dieser Farbe (Maximum 5)" msgid "Too close to an existing flag" msgstr "Zu nahe an einer anderen Fahne" -msgid "Too close to space ship" -msgstr "Zu nahe am Raumschiff" +msgid "No flag nearby" +msgstr "Keine Fahne in Reichweite" -msgid "Too many flags of this color (maximum 5)" -msgstr "Zu viele Fahnen dieser Farbe (Maximum 5)" +msgid "Not found anything to destroy" +msgstr "" -msgid "Too many parameters" -msgstr "Zu viele Parameter" +msgid "Inappropriate object" +msgstr "" -msgid "Tracked grabber" -msgstr "Transporter" +msgid "" +"The mission is not accomplished yet (press \\key help; for more details)" +msgstr "" +"Mission noch nicht beendet (Drücken Sie auf \\key help; für weitere " +"Informationen)" -msgid "Tracked orga shooter" -msgstr "OrgaShooter" +msgid "Bot destroyed" +msgstr "Roboter zerstört" -msgid "Tracked shooter" -msgstr "Shooter" +msgid "Building destroyed" +msgstr "Gebäude zerstört" -msgid "Tracked sniffer" -msgstr "Schnüffler" +msgid "Can not create this; there are too many objects" +msgstr "Kein neues Objekt kann erstellt werden (zu viele vorhanden)" -msgid "Transforms only titanium" -msgstr "Wandelt nur Titanerz um" +#, c-format +msgid "\"%s\" missing in this exercise" +msgstr "Es fehlt \"%s\" in Ihrem Programm" -msgid "Transforms only uranium" -msgstr "Wandelt nur Platin um" +msgid "Do not use in this exercise" +msgstr "In dieser Übung verboten" -msgid "Transmitted information" -msgstr "Gesendete Informationen" +msgid "Building completed" +msgstr "Gebäude fertiggestellt" -msgid "Turn left (\\key left;)" -msgstr "Drehung links (\\key left;)" +msgid "Titanium available" +msgstr "Titan verfügbar" -msgid "Turn left\\turns the bot to the left" -msgstr "Drehung nach links\\Steuer links" +msgid "Research program completed" +msgstr "Forschungsprogramm abgeschlossen" -msgid "Turn right (\\key right;)" -msgstr "Drehung rechts (\\key right;)" +msgid "Plans for tracked robots available " +msgstr "Herstellung eines Roboters mit Kettenantrieb möglich" -msgid "Turn right\\turns the bot to the right" -msgstr "Drehung nach rechts\\Steuer rechts" +msgid "You can fly with the keys (\\key gup;) and (\\key gdown;)" +msgstr "Sie können jetzt mit den Tasten \\key gup; und \\key gdown; fliegen" -msgid "Type declaration missing" -msgstr "Hier muss ein Variablentyp stehen" +msgid "Plans for thumper available" +msgstr "Herstellung eines Stampfers möglich" -msgid "Undo (Ctrl+z)" -msgstr "Widerrufen (Ctrl+z)" +msgid "Plans for shooter available" +msgstr "Herstellung eines Shooters möglich" -msgid "Unit" -msgstr "Einheit" +msgid "Plans for defense tower available" +msgstr "Errichtung eines Geschützturms möglich" -msgid "Unknown Object" -msgstr "Das Objekt existiert nicht" +msgid "Plans for phazer shooter available" +msgstr "Herstellung eines Phazershooters möglich" -msgid "Unknown command" -msgstr "Befehl unbekannt" +msgid "Plans for shielder available" +msgstr "Herstellung eines Schutzschildes möglich" -msgid "Unknown function" -msgstr "Unbekannte Funktion" +msgid "Plans for nuclear power plant available" +msgstr "Errichtung einer Brennstoffzellenfabrik möglich" -msgid "Up (\\key gup;)" -msgstr "Steigt (\\key gup;)" +msgid "New bot available" +msgstr "Neuer Roboter verfügbar" -msgid "Uranium deposit (site for derrick)" -msgstr "Markierung für unterirdisches Platinvorkommen" +msgid "Analysis performed" +msgstr "Analyse vollendet" -msgid "Uranium ore" -msgstr "Platinerz" +msgid "Power cell available" +msgstr "Batterie verfügbar" -msgid "Use a joystick\\Joystick or keyboard" -msgstr "Joystick\\Joystick oder Tastatur" +msgid "Nuclear power cell available" +msgstr "Brennstoffzelle verfügbar" -msgid "User levels" -msgstr "Userlevels" +msgid "You found a usable object" +msgstr "Sie haben ein brauchbares Objekt gefunden" -msgid "User\\User levels" -msgstr "User\\Userlevels" +msgid "Found a site for power station" +msgstr "Geeignete Stelle für Kraftwerk gefunden" -msgid "Variable name missing" -msgstr "Es fehlt der Name einer Variable" +msgid "Found a site for a derrick" +msgstr "Geeignete Stelle für Bohrturm gefunden" -msgid "Variable not declared" -msgstr "Variable nicht deklariert" +msgid "<<< Well done; mission accomplished >>>" +msgstr "<<< Bravo, Mission vollendet >>>" -msgid "Variable not initialized" -msgstr "Der Wert dieser Variable wurde nicht definiert" +msgid "<<< Sorry; mission failed >>>" +msgstr "<<< Mission gescheitert >>>" -msgid "Vault" -msgstr "Bunker" +msgid "Current mission saved" +msgstr "Mission gespeichert" -msgid "Violet flag" -msgstr "Violette Fahne" +msgid "Checkpoint crossed" +msgstr "Checkpoint erreicht" -msgid "Void parameter" -msgstr "Parameter void" +msgid "Alien Queen killed" +msgstr "Insektenkönigin tödlich verwundet" -msgid "Wasp" -msgstr "Wespe" +msgid "Ant fatally wounded" +msgstr "Ameise tödlich verwundet" msgid "Wasp fatally wounded" msgstr "Wespe tödlich verwundet" -msgid "Waste" -msgstr "Abfall" - -msgid "Wheeled grabber" -msgstr "Transporter" +msgid "Worm fatally wounded" +msgstr "Wurm tödlich verwundet" -msgid "Wheeled orga shooter" -msgstr "OrgaShooter" +msgid "Spider fatally wounded" +msgstr "Spinne tödlich verwundet" -msgid "Wheeled shooter" -msgstr "Shooter" +msgid "Press \\key help; to read instructions on your SatCom" +msgstr "Beziehen Sie sich auf Ihren SatCom, indem Sie auf \\key help; drücken" -msgid "Wheeled sniffer" -msgstr "Schnüffler" +msgid "Opening bracket missing" +msgstr "Es fehlt eine offene Klammer \"(\"" -msgid "Win" -msgstr "" +msgid "Closing bracket missing " +msgstr "Es fehlt eine geschlossene Klammer \")\"" -msgid "Winged grabber" -msgstr "Transporter" +msgid "The expression must return a boolean value" +msgstr "Der Ausdruck muss einen boolschen Wert ergeben" -msgid "Winged orga shooter" -msgstr "OrgaShooter" +msgid "Variable not declared" +msgstr "Variable nicht deklariert" -msgid "Winged shooter" -msgstr "Shooter" +msgid "Assignment impossible" +msgstr "Zuweisung unmöglich" -msgid "Winged sniffer" -msgstr "Schnüffler" +msgid "Semicolon terminator missing" +msgstr "Es fehlt ein Strichpunkt \";\" am Ende der Anweisung" -msgid "Withdraw shield (\\key action;)" -msgstr "Schutzschild einholen (\\key action;)" +msgid "Instruction \"case\" outside a block \"switch\"" +msgstr "Anweisung \"case\" ohne vorhergehende Anweisung \"switch\"" -msgid "Worm" -msgstr "Wurm" +msgid "Instructions after the final closing brace" +msgstr "Hier ist eine Anweisung nach dem Ende des Programms" -msgid "Worm fatally wounded" -msgstr "Wurm tödlich verwundet" +msgid "End of block missing" +msgstr "Es fehlt eine geschlossene geschweifte Klammer \"}\" (Ende des Blocks)" -msgid "Wreckage" -msgstr "Roboterwrack" +msgid "Instruction \"else\" without corresponding \"if\" " +msgstr "Anweisung \"else\" ohne vorhergehende Anweisung \"if\"" -msgid "Write error" -msgstr "Fehler beim Schreibzugriff" +msgid "Opening brace missing " +msgstr "Es fehlt eine offene geschweifte Klammer\"{\"" msgid "Wrong type for the assignment" msgstr "Der Ausdruck ergibt einen falschen Typ für die Zuweisung" -msgid "Yellow flag" -msgstr "Gelbe Fahne" +msgid "A variable can not be declared twice" +msgstr "Eine Variable wird zum zweiten Mal deklariert" -msgid "You can fly with the keys (\\key gup;) and (\\key gdown;)" -msgstr "Sie können jetzt mit den Tasten \\key gup; und \\key gdown; fliegen" +msgid "The types of the two operands are incompatible " +msgstr "Die zwei Operanden sind nicht kompatibel" -msgid "You can not carry a radioactive object" -msgstr "Sie können keinen radioaktiven Gegenstand tragen" +msgid "Unknown function" +msgstr "Unbekannte Funktion" -msgid "You can not carry an object under water" -msgstr "Sie können unter Wasser nichts tragen" +msgid "Sign \" : \" missing" +msgstr "Es fehlt ein Doppelpunkt \" : \"" -msgid "You found a usable object" -msgstr "Sie haben ein brauchbares Objekt gefunden" +msgid "Keyword \"while\" missing" +msgstr "Es fehlt das Wort \"while\"" -msgid "You must get on the spaceship to take off " -msgstr "Gehen Sie an Bord, bevor Sie abheben" +msgid "Instruction \"break\" outside a loop" +msgstr "Anweisung \"break\" außerhalb einer Schleife" -msgid "Zoom mini-map" -msgstr "Zoom Minikarte" +msgid "A label must be followed by \"for\"; \"while\"; \"do\" or \"switch\"" +msgstr "" +"Ein Label kann nur vor den Anweisungen \"for\", \"while\", \"do\" oder \"" +"switch\" vorkommen" -msgid "\\Blue flags" -msgstr "\\Blaue Fahne" +msgid "This label does not exist" +msgstr "Dieses Label existiert nicht" -msgid "\\Eyeglasses 1" -msgstr "\\Brille 1" +msgid "Instruction \"case\" missing" +msgstr "Es fehlt eine Anweisung \"case\"" -msgid "\\Eyeglasses 2" -msgstr "\\Brille 2" +msgid "Number missing" +msgstr "Es fehlt eine Zahl" -msgid "\\Eyeglasses 3" -msgstr "\\Brille 3" +msgid "Void parameter" +msgstr "Parameter void" -msgid "\\Eyeglasses 4" -msgstr "\\Brille 4" +msgid "Type declaration missing" +msgstr "Hier muss ein Variablentyp stehen" -msgid "\\Eyeglasses 5" -msgstr "\\Brille 5" +msgid "Variable name missing" +msgstr "Es fehlt der Name einer Variable" -msgid "\\Face 1" -msgstr "\\Kopf 1" +msgid "Function name missing" +msgstr "Hier muss der Name der Funktion stehen" -msgid "\\Face 2" -msgstr "\\Kopf 2" +msgid "Too many parameters" +msgstr "Zu viele Parameter" -msgid "\\Face 3" -msgstr "\\Kopf 3" +msgid "Function already exists" +msgstr "Diese Funktion gibt es schon" -msgid "\\Face 4" -msgstr "\\Kopf 4" +msgid "Parameters missing " +msgstr "Nicht genug Parameter" -msgid "\\Green flags" -msgstr "\\Grüne Fahne" +msgid "No function with this name accepts this kind of parameter" +msgstr "Keine Funktion mit diesem Namen verträgt Parameter diesen Typs" -msgid "\\New player name" -msgstr "\\Name des Spielers" +msgid "No function with this name accepts this number of parameters" +msgstr "Keine Funktion mit diesem Namen verträgt diese Anzahl Parameter" -msgid "\\No eyeglasses" -msgstr "\\Keine Brille" +msgid "This is not a member of this class" +msgstr "Dieses Element gibt es nicht in dieser Klasse" -msgid "\\Raise the pencil" -msgstr "\\Bleistift abheben" +msgid "This object is not a member of a class" +msgstr "Das Objekt ist nicht eine Instanz einer Klasse" -msgid "\\Red flags" -msgstr "\\Rote Fahne" +msgid "Appropriate constructor missing" +msgstr "Es gibt keinen geeigneten Konstruktor" -msgid "\\Return to COLOBOT" -msgstr "\\Zurück zu COLOBOT" +msgid "This class already exists" +msgstr "Diese Klasse gibt es schon" -msgid "\\SatCom on standby" -msgstr "\\SatCom in Standby" +msgid "\" ] \" missing" +msgstr "Es fehlt eine geschlossene eckige Klammer \" ] \"" -msgid "\\Start recording" -msgstr "\\Aufnahme starten" +msgid "Reserved keyword of CBOT language" +msgstr "Dieses Wort ist reserviert" -msgid "\\Stop recording" -msgstr "\\Aufnahme stoppen" +msgid "Bad argument for \"new\"" +msgstr "Falsche Argumente für \"new\"" -msgid "\\Turn left" -msgstr "\\Drehung links" +msgid "\" [ \" expected" +msgstr "Es fehlt eine offene eckige Klammer \" [ \"" -msgid "\\Turn right" -msgstr "\\Drehung rechts" +msgid "String missing" +msgstr "Hier wird eine Zeichenkette erwartet" -msgid "\\Use the black pencil" -msgstr "\\Schwarzen Bleistift hinunterlassen" +msgid "Incorrect index type" +msgstr "Falscher Typ für einen Index" -msgid "\\Use the blue pencil" -msgstr "\\Blauen Bleistift hinunterlassen" +msgid "Private element" +msgstr "Geschütztes Element (private)" -msgid "\\Use the brown pencil" -msgstr "\\Braunen Bleistift hinunterlassen" +msgid "Public required" +msgstr "Hier muss das Wort \"public\" stehen" -msgid "\\Use the green pencil" -msgstr "\\Grünen Bleistift hinunterlassen" +msgid "Dividing by zero" +msgstr "Teilung durch Null" -msgid "\\Use the orange pencil" -msgstr "\\Orangefarbenen Bleistift hinunterlassen" +msgid "Variable not initialized" +msgstr "Der Wert dieser Variable wurde nicht definiert" -msgid "\\Use the purple pencil" -msgstr "\\Violetten Bleistift hinunterlassen" +msgid "Negative value rejected by \"throw\"" +msgstr "Negativer Wert ungeeignet für Anweisung \"throw\"" -msgid "\\Use the red pencil" -msgstr "\\Roten Bleistift hinunterlassen" +msgid "The function returned no value " +msgstr "Die Funktion hat kein Ergebnis zurückgegeben" -msgid "\\Use the yellow pencil" -msgstr "\\Gelben Bleistift hinunterlassen" +msgid "No function running" +msgstr "Keine Funktion wird ausgeführt" -msgid "\\Violet flags" -msgstr "\\Violette Fahne" +msgid "Calling an unknown function" +msgstr "Die aufgerufene Funktion existiert nicht" -msgid "\\Yellow flags" -msgstr "\\Gelbe Fahne" +msgid "This class does not exist" +msgstr "Diese Klasse existiert nicht" -msgid "\\b;Aliens\n" -msgstr "\\b;Listes der Feinde\n" +msgid "Unknown Object" +msgstr "Das Objekt existiert nicht" -msgid "\\b;Buildings\n" -msgstr "\\b;Listes der Gebäude\n" +msgid "Operation impossible with value \"nan\"" +msgstr "Operation mit dem Wert \"nan\"" -msgid "\\b;Error\n" -msgstr "\\b;Fehler\n" +msgid "Access beyond array limit" +msgstr "Zugriff im Array außerhalb der Grenzen" -msgid "\\b;List of objects\n" -msgstr "\\b;Liste der Objekte\n" +msgid "Stack overflow" +msgstr "Stack overflow" -msgid "\\b;Moveable objects\n" -msgstr "\\b;Listes der tragbaren Gegenstände\n" +msgid "Illegal object" +msgstr "Objekt nicht verfügbar" -msgid "\\b;Robots\n" -msgstr "\\b;Liste der Roboter\n" +msgid "Can't open file" +msgstr "Die Datei kann nicht geöffnet werden" -msgid "\\c; (none)\\n;\n" -msgstr "\\c; (keine)\\n;\n" +msgid "File not open" +msgstr "Die Datei wurde nicht geöffnet" -msgid "action;" -msgstr "" +msgid "Read error" +msgstr "Fehler beim Lesezugriff" -msgid "away;" -msgstr "" +msgid "Write error" +msgstr "Fehler beim Schreibzugriff" -msgid "camera;" +msgid "left;" msgstr "" -msgid "cbot;" +msgid "right;" msgstr "" -msgid "desel;" +msgid "up;" msgstr "" msgid "down;" msgstr "" -msgid "gdown;" +msgid "gup;" msgstr "" -msgid "gup;" +msgid "gdown;" msgstr "" -msgid "help;" +msgid "camera;" msgstr "" -msgid "human;" +msgid "desel;" msgstr "" -msgid "left;" +msgid "action;" msgstr "" msgid "near;" msgstr "" +msgid "away;" +msgstr "" + msgid "next;" msgstr "" -msgid "prog;" +msgid "human;" msgstr "" msgid "quit;" msgstr "" -msgid "right;" +msgid "help;" +msgstr "" + +msgid "prog;" +msgstr "" + +msgid "cbot;" +msgstr "" + +msgid "visit;" msgstr "" msgid "speed10;" @@ -1822,14 +1820,26 @@ msgstr "" msgid "speed20;" msgstr "" -msgid "up;" +msgid "Ctrl" +msgstr "Ctrl" + +msgid "Shift" +msgstr "Shift" + +msgid "Alt" +msgstr "Alt" + +msgid "Win" msgstr "" -msgid "visit;" +msgid "Button %1" +msgstr "Knopf %1" + +msgid "%1" msgstr "" -msgid "www.epsitec.com" -msgstr "www.epsitec.com" +#~ msgid "Menu (\\key quit;)" +#~ msgstr "Menü (\\key quit;)" #~ msgid "< none >" #~ msgstr "< keine >" @@ -1969,9 +1979,6 @@ msgstr "www.epsitec.com" #~ msgid "Left Windows" #~ msgstr "Left Windows" -#~ msgid "Menu (\\key quit;)" -#~ msgstr "Menü (\\key quit;)" - #~ msgid "Mini-map" #~ msgstr "Minikarte" diff --git a/po/fr.po b/po/fr.po index 291193c..edf5466 100644 --- a/po/fr.po +++ b/po/fr.po @@ -1,1823 +1,1813 @@ # Didier Raboud , 2012. msgid "" msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-07-10 16:50+0200\n" "PO-Revision-Date: 2012-12-27 14:07+0100\n" "Last-Translator: Didier Raboud \n" +"Language-Team: LANGUAGE \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Lokalize 1.4\n" "X-Language: fr_FR\n" "X-Source-Language: en_US\n" -"X-Generator: Lokalize 1.4\n" - -msgid " " -msgstr " " - -msgid " Challenges in the chapter:" -msgstr " Liste des défis du chapitre :" -msgid " Chapters:" -msgstr " Liste des chapitres :" - -msgid " Drivers:" -msgstr " Pilotes :" +msgid "Colobot rules!" +msgstr "Colobot est super!" -msgid " Exercises in the chapter:" -msgstr " Liste des exercices du chapitre :" +msgid "SatCom" +msgstr "SatCom" -msgid " Free game on this chapter:" -msgstr " Liste des jeux libres du chapitre :" +msgid "Maximize" +msgstr "Taille maximale" -msgid " Free game on this planet:" -msgstr " Liste des jeux libres du chapitre :" +msgid "Minimize" +msgstr "Taille réduite" -msgid " Missions on this level:" -msgstr " Missions du niveau :" +msgid "Normal size" +msgstr "Taille normale" -msgid " Missions on this planet:" -msgstr " Liste des missions du chapitre :" +msgid "Close" +msgstr "Fermer" -msgid " Planets:" -msgstr " Liste des planètes :" +msgid "Program editor" +msgstr "Edition du programme" -msgid " Resolution:" -msgstr " Résolutions :" +msgid "New" +msgstr "Nouveau" -msgid " Summary:" -msgstr " Résumé :" +msgid "Player" +msgstr "Joueur" -msgid " User levels:" -msgstr " Niveaux supplémentaires :" +msgid "New ..." +msgstr "Nouveau ..." msgid " or " msgstr " ou " -msgid "\" [ \" expected" -msgstr "\" [ \" attendu" +msgid "COLOBOT" +msgstr "COLOBOT" -msgid "\" ] \" missing" -msgstr "\" ] \" attendu" +msgid "COLOBOT: Gold Edition" +msgstr "COLOBOT: Gold Edition" -#, c-format -msgid "\"%s\" missing in this exercise" -msgstr "Il manque \"%s\" dans le programme" +msgid "Programming exercises" +msgstr "Programmation" -msgid "%1" -msgstr "%1" +msgid "Challenges" +msgstr "Défis" -msgid "..behind" -msgstr "..derrière" +msgid "Missions" +msgstr "Missions" -msgid "..in front" -msgstr "..devant" +msgid "Free game" +msgstr "Jeu libre" -msgid "..power cell" -msgstr "..pile" +msgid "User levels" +msgstr "Niveaux supplémentaires" -msgid "1) First click on the key you want to redefine." -msgstr "1) Cliquez d'abord sur la touche à redéfinir." +msgid "Options" +msgstr "Options" -msgid "2) Then press the key you want to use instead." -msgstr "2) Appuyez ensuite sur la nouvelle touche souhaitée." +msgid "Player's name" +msgstr "Nom du joueur" -msgid "3D sound\\3D positioning of the sound" -msgstr "Bruitages 3D\\Positionnement sonore dans l'espace" +msgid "Customize your appearance" +msgstr "Personnalisation de votre apparence" -msgid "<< Back \\Back to the previous screen" -msgstr "<< Retour \\Retour au niveau précédent" +msgid "Save the current mission" +msgstr "Enregistrement de la mission en cours" -msgid "<<< Sorry; mission failed >>>" -msgstr "<<< Désolé; mission échouée >>>" +msgid "Load a saved mission" +msgstr "Chargement d'une mission enregistrée" -msgid "<<< Well done; mission accomplished >>>" -msgstr "<<< Bravo; mission terminée >>>" +msgid " Chapters:" +msgstr " Liste des chapitres :" -msgid "A label must be followed by \"for\"; \"while\"; \"do\" or \"switch\"" -msgstr "" -"Un label ne peut se placer que devant un \"for\"; un \"while\"; un \"do\" ou " -"un \"switch\"" +msgid " Planets:" +msgstr " Liste des planètes :" -msgid "A variable can not be declared twice" -msgstr "Redéfinition d'une variable" +msgid " User levels:" +msgstr " Niveaux supplémentaires :" -msgid "Abort\\Abort the current mission" -msgstr "Abandonner\\Abandonner la mission en cours" +msgid " Exercises in the chapter:" +msgstr " Liste des exercices du chapitre :" -msgid "Access beyond array limit" -msgstr "Accès hors du tableau" +msgid " Challenges in the chapter:" +msgstr " Liste des défis du chapitre :" -msgid "" -"Access to solution\\Shows the solution (detailed instructions for missions)" -msgstr "Accès à la solution\\Donne la solution" +msgid " Missions on this planet:" +msgstr " Liste des missions du chapitre :" -msgid "Access to solutions\\Show program \"4: Solution\" in the exercises" -msgstr "Accès aux solutions\\Programme \"4: Solution\" dans les exercices" +msgid " Free game on this planet:" +msgstr " Liste des jeux libres du chapitre :" -msgid "Alien Queen" -msgstr "Pondeuse" +msgid " Missions on this level:" +msgstr " Missions du niveau :" -msgid "Alien Queen killed" -msgstr "Pondeuse mortellement touchée" +msgid " Free game on this chapter:" +msgstr " Liste des jeux libres du chapitre :" -msgid "Already carrying something" -msgstr "Porte déjà quelque chose" +msgid " Summary:" +msgstr " Résumé :" -msgid "Alt" -msgstr "Alt" +msgid " Drivers:" +msgstr " Pilotes :" -msgid "Analysis already performed" -msgstr "Analyse déjà effectuée" +msgid " Resolution:" +msgstr " Résolutions :" -msgid "Analysis performed" -msgstr "Analyse terminée" +msgid "1) First click on the key you want to redefine." +msgstr "1) Cliquez d'abord sur la touche à redéfinir." -msgid "Analyzes only organic matter" -msgstr "N'analyse que la matière organique" +msgid "2) Then press the key you want to use instead." +msgstr "2) Appuyez ensuite sur la nouvelle touche souhaitée." -msgid "Ant" -msgstr "Fourmi" +msgid "Face type:" +msgstr "Type de visage :" -msgid "Ant fatally wounded" -msgstr "Fourmi mortellement touchée" +msgid "Eyeglasses:" +msgstr "Lunettes :" -msgid "Appearance\\Choose your appearance" -msgstr "Aspect\\Choisir votre aspect" +msgid "Hair color:" +msgstr "Couleur des cheveux :" -msgid "Apply changes\\Activates the changed settings" -msgstr "Appliquer les changements\\Active les changements effectués" +msgid "Suit color:" +msgstr "Couleur de la combinaison :" -msgid "Appropriate constructor missing" -msgstr "Il n'y a pas de constructeur approprié" +msgid "Strip color:" +msgstr "Couleur des bandes :" -msgid "Assignment impossible" -msgstr "Assignation impossible" +msgid "Do you want to quit COLOBOT ?" +msgstr "Voulez-vous quitter COLOBOT ?" -msgid "Autolab" -msgstr "Laboratoire de matières organiques" +msgid "Quit\\Quit COLOBOT" +msgstr "Quitter\\Quitter COLOBOT" -msgid "Automatic indent\\When program editing" -msgstr "Indentation automatique\\Pendant l'édition d'un programme" +msgid "Quit the mission?" +msgstr "Quitter la mission ?" -msgid "Back" -msgstr "Page précédente" +msgid "Abort\\Abort the current mission" +msgstr "Abandonner\\Abandonner la mission en cours" -msgid "Background sound :\\Volume of audio tracks on the CD" -msgstr "Fond sonore :\\Volume des pistes audio du CD" +msgid "Continue\\Continue the current mission" +msgstr "Continuer\\Continuer la mission en cours" -msgid "Backward (\\key down;)" -msgstr "Recule (\\key down;)" +msgid "Continue\\Continue the game" +msgstr "Continuer\\Continuer de jouer" -msgid "Backward\\Moves backward" -msgstr "Reculer\\Moteur en arrière" +msgid "Do you really want to destroy the selected building?" +msgstr "Voulez-vous vraiment détruire le bâtiment sélectionné ?" -msgid "Bad argument for \"new\"" -msgstr "Mauvais argument pour \"new\"" +#, c-format +msgid "Do you want to delete %s's saved games? " +msgstr "Voulez-vous détruire les sauvegardes de %s ?" -msgid "Big indent\\Indent 2 or 4 spaces per level defined by braces" -msgstr "Grande indentation\\Indente avec 2 ou 4 espaces" +msgid "Delete" +msgstr "Détruire" -msgid "Black box" -msgstr "Boîte noire" +msgid "Cancel" +msgstr "Annuler" -msgid "Blue" -msgstr "Bleu" +msgid "LOADING" +msgstr "CHARGEMENT" -msgid "Blue flag" -msgstr "Drapeau bleu" +msgid "Keyword help(\\key cbot;)" +msgstr "Aide sur le mot-clé (\\key cbot;)" -msgid "Bot destroyed" -msgstr "Robot détruit" +msgid "Compilation ok (0 errors)" +msgstr "Compilation ok (0 erreur)" -msgid "Bot factory" -msgstr "Fabrique de robots" +msgid "Program finished" +msgstr "Programme terminé" -msgid "Build a bot factory" -msgstr "Construit une fabrique de robots" +msgid "\\b;List of objects\n" +msgstr "\\b;Listes des objets\n" -msgid "Build a converter" -msgstr "Construit un convertisseur" +msgid "\\b;Robots\n" +msgstr "\\b;Listes des robots\n" -msgid "Build a defense tower" -msgstr "Construit une tour" +msgid "\\b;Buildings\n" +msgstr "\\b;Listes des bâtiments\n" -msgid "Build a derrick" -msgstr "Construit un derrick" +msgid "\\b;Moveable objects\n" +msgstr "\\b;Listes des objets transportables\n" -#, fuzzy -msgid "Build a destroyer" -msgstr "Bâtiment détruit" +msgid "\\b;Aliens\n" +msgstr "\\b;Listes des ennemis\n" -msgid "Build a exchange post" -msgstr "Construit une borne d'information" - -msgid "Build a legged grabber" -msgstr "Fabrique un déménageur à pattes" - -msgid "Build a legged orga shooter" -msgstr "Fabrique un orgaShooter à pattes" - -msgid "Build a legged shooter" -msgstr "Fabrique un shooter à pattes" - -msgid "Build a legged sniffer" -msgstr "Fabrique un renifleur à pattes" - -msgid "Build a lightning conductor" -msgstr "Construit un paratonnerre" - -msgid "Build a nuclear power plant" -msgstr "Construit une centrale nucléaire" - -msgid "Build a phazer shooter" -msgstr "Fabrique un robot phazer" - -msgid "Build a power cell factory" -msgstr "Construit une fabrique de piles" - -msgid "Build a power station" -msgstr "Construit une station" +msgid "\\c; (none)\\n;\n" +msgstr "" +"\\c; (aucun)\\n" +";\n" -msgid "Build a radar station" -msgstr "Construit un radar" +msgid "\\b;Error\n" +msgstr "\\b;Erreur\n" -msgid "Build a recycler" -msgstr "Fabrique un robot recycleur" +msgid "" +"The list is only available if a \\l;radar station\\u object\\radar; is " +"working.\n" +msgstr "Liste non disponible sans \\l;radar\\u object\\radar;.\n" -msgid "Build a repair center" -msgstr "Construit un centre de réparation" +msgid "Open" +msgstr "Ouvrir" -msgid "Build a research center" -msgstr "Construit un centre de recherches" +msgid "Save" +msgstr "Enregistrer" -msgid "Build a shielder" -msgstr "Fabrique un robot bouclier" +#, c-format +msgid "Folder: %s" +msgstr "Dossier: %s" -msgid "Build a subber" -msgstr "Fabrique un robot sous-marin" +msgid "Name:" +msgstr "Nom:" -msgid "Build a thumper" -msgstr "Fabrique un robot secoueur" +msgid "Folder:" +msgstr "Dans:" -msgid "Build a tracked grabber" -msgstr "Fabrique un déménageur à chenilles" +msgid "Private\\Private folder" +msgstr "Privé\\Dossier privé" -msgid "Build a tracked orga shooter" -msgstr "Fabrique un orgaShooter à chenilles" +msgid "Public\\Common folder" +msgstr "Public\\Dossier commun à tous les joueurs" -msgid "Build a tracked shooter" -msgstr "Fabrique un shooter à chenilles" +msgid "Developed by :" +msgstr "Développé par :" -msgid "Build a tracked sniffer" -msgstr "Fabrique un renifleur à chenilles" +msgid "www.epsitec.com" +msgstr "www.epsitec.com" -msgid "Build a wheeled grabber" -msgstr "Fabrique un déménageur à roues" +msgid " " +msgstr " " -msgid "Build a wheeled orga shooter" -msgstr "Fabrique un orgaShooter à roues" +msgid "Recorder" +msgstr "Enregistreur" -msgid "Build a wheeled shooter" -msgstr "Fabrique un shooter à roues" +msgid "OK" +msgstr "D'accord" -msgid "Build a wheeled sniffer" -msgstr "Fabrique un renifleur à roues" +msgid "Next" +msgstr "Suivant" -msgid "Build a winged grabber" -msgstr "Fabrique un déménageur volant" +msgid "Previous" +msgstr "Précédent" -msgid "Build a winged orga shooter" -msgstr "Fabrique un orgaShooter volant" +msgid "Exercises\\Programming exercises" +msgstr "Programmation\\Exercices de programmation" -msgid "Build a winged shooter" -msgstr "Fabrique un shooter volant" +msgid "Challenges\\Programming challenges" +msgstr "Défis\\Défis de programmation" -msgid "Build a winged sniffer" -msgstr "Fabrique un renifleur volant" +msgid "Missions\\Select mission" +msgstr "Missions\\La grande aventure" -msgid "Build an autolab" -msgstr "Construit un laboratoire" +msgid "Free game\\Free game without a specific goal" +msgstr "Jeu libre\\Jeu libre sans but précis" -msgid "Building completed" -msgstr "Bâtiment terminé" +msgid "User\\User levels" +msgstr "Suppl.\\Niveaux supplémentaires" -msgid "Building destroyed" -msgstr "Bâtiment détruit" +msgid "Change player\\Change player" +msgstr "Autre joueur\\Choix du nom du joueur" -msgid "Building too close" -msgstr "Bâtiment trop proche" +msgid "Options\\Preferences" +msgstr "Options\\Réglages" -msgid "Button %1" -msgstr "Bouton %1" +msgid "Restart\\Restart the mission from the beginning" +msgstr "Recommencer\\Recommencer la mission au début" -msgid "COLOBOT" -msgstr "COLOBOT" +msgid "Save\\Save the current mission " +msgstr "Enregistrer\\Enregistrer la mission en cours" -msgid "COLOBOT: Gold Edition" -msgstr "COLOBOT: Gold Edition" +msgid "Load\\Load a saved mission" +msgstr "Charger\\Charger une mission enregistrée" -msgid "Calling an unknown function" -msgstr "Appel d'une fonction inexistante" +msgid "\\Return to COLOBOT" +msgstr "\\Retourner dans COLOBOT" -msgid "Camera (\\key camera;)" -msgstr "Caméra (\\key camera;)" +msgid "<< Back \\Back to the previous screen" +msgstr "<< Retour \\Retour au niveau précédent" -msgid "Camera awayest" -msgstr "Caméra plus loin" +msgid "Play\\Start mission!" +msgstr "Jouer ...\\Démarrer l'action!" -msgid "Camera back\\Moves the camera backward" -msgstr "Caméra plus loin\\Recule la caméra" +msgid "Device\\Driver and resolution settings" +msgstr "Affichage\\Pilote et résolution d'affichage" -msgid "Camera closer\\Moves the camera forward" -msgstr "Caméra plus proche\\Avance la caméra" +msgid "Graphics\\Graphics settings" +msgstr "Graphique\\Options graphiques" -msgid "Camera nearest" -msgstr "Caméra plus proche" +msgid "Game\\Game settings" +msgstr "Jeu\\Options de jouabilité" -msgid "Camera to left" -msgstr "Caméra à gauche" +msgid "Controls\\Keyboard, joystick and mouse settings" +msgstr "Commandes\\Touches du clavier" -msgid "Camera to right" -msgstr "Caméra à droite" +msgid "Sound\\Music and game sound volume" +msgstr "Son\\Volumes bruitages & musiques" -msgid "Can not create this; there are too many objects" -msgstr "Création impossible; il y a trop d'objets" +msgid "Unit" +msgstr "Unité" -msgid "Can not produce not researched object" -msgstr "" +msgid "Resolution" +msgstr "Résolution" -msgid "Can not produce this object in this mission" -msgstr "" +msgid "Full screen\\Full screen or window mode" +msgstr "Plein écran\\Plein écran ou fenêtré" -msgid "Can't open file" -msgstr "Ouverture du fichier impossible" +msgid "Apply changes\\Activates the changed settings" +msgstr "Appliquer les changements\\Active les changements effectués" -msgid "Cancel" -msgstr "Annuler" +msgid "Robbie\\Your assistant" +msgstr "Robbie\\Votre assistant" -msgid "Cancel\\Cancel all changes" -msgstr "Annuler\\Annuler toutes les modifications" +msgid "Shadows\\Shadows on the ground" +msgstr "Ombres\\Ombres projetées au sol" -msgid "Cancel\\Keep current player name" -msgstr "Annuler\\Conserver le joueur actuel" +msgid "Marks on the ground\\Marks on the ground" +msgstr "Marques sur le sol\\Marques dessinées sur le sol" -msgid "Challenges" -msgstr "Défis" +msgid "Dust\\Dust and dirt on bots and buildings" +msgstr "Salissures\\Salissures des robots et bâtiments" -msgid "Challenges\\Programming challenges" -msgstr "Défis\\Défis de programmation" +msgid "Fog\\Fog" +msgstr "Brouillard\\Nappes de brouillard" -msgid "Change camera\\Switches between onboard camera and following camera" -msgstr "Changement de caméra\\Autre de point de vue" +msgid "Sunbeams\\Sunbeams in the sky" +msgstr "Rayons du soleil\\Rayons selon l'orientation" -msgid "Change player\\Change player" -msgstr "Autre joueur\\Choix du nom du joueur" +msgid "Sky\\Clouds and nebulae" +msgstr "Ciel\\Ciel et nuages" -msgid "Checkpoint" -msgstr "Indicateur" +msgid "Planets and stars\\Astronomical objects in the sky" +msgstr "Planètes et étoiles\\Motifs mobiles dans le ciel" -msgid "Checkpoint crossed" -msgstr "Indicateur atteint" +msgid "Dynamic lighting\\Mobile light sources" +msgstr "Lumières dynamiques\\Éclairages mobiles" -msgid "Climb\\Increases the power of the jet" -msgstr "Monter\\Augmenter la puissance du réacteur" +msgid "Number of particles\\Explosions, dust, reflections, etc." +msgstr "Quantité de particules\\Explosions, poussières, reflets, etc." -msgid "Close" -msgstr "Fermer" +msgid "Depth of field\\Maximum visibility" +msgstr "Profondeur de champ\\Distance de vue maximale" -msgid "Closing bracket missing " -msgstr "Il manque une parenthèse fermante" +msgid "Details\\Visual quality of 3D objects" +msgstr "Détails des objets\\Qualité des objets en 3D" -msgid "Colobot rules!" -msgstr "Colobot est super!" +msgid "Textures\\Quality of textures " +msgstr "Qualité des textures\\Qualité des images" -msgid "Command line" -msgstr "Console de commande" +msgid "Num of decorative objects\\Number of purely ornamental objects" +msgstr "Nb d'objets décoratifs\\Qualité d'objets non indispensables" -msgid "Compass" -msgstr "Boussole" +msgid "Particles in the interface\\Steam clouds and sparks in the interface" +msgstr "Particules dans l'interface\\Pluie de particules" -msgid "Compilation ok (0 errors)" -msgstr "Compilation ok (0 erreur)" +msgid "Reflections on the buttons \\Shiny buttons" +msgstr "Reflets sur les boutons\\Boutons brillants" -msgid "Compile" -msgstr "Compiler" +msgid "Help balloons\\Explain the function of the buttons" +msgstr "Bulles d'aide\\Bulles explicatives" -msgid "Continue" -msgstr "Continuer" +msgid "Film sequences\\Films before and after the missions" +msgstr "Séquences cinématiques\\Films avant ou après une mission" -msgid "Continue\\Continue the current mission" -msgstr "Continuer\\Continuer la mission en cours" +msgid "Exit film\\Film at the exit of exercises" +msgstr "Retour animé\\Retour animé dans les exercices" -msgid "Continue\\Continue the game" -msgstr "Continuer\\Continuer de jouer" +msgid "Friendly fire\\Your shooting can damage your own objects " +msgstr "Dégâts à soi-même\\Vos tirs infligent des dommages à vos unités" -msgid "Controls\\Keyboard, joystick and mouse settings" -msgstr "Commandes\\Touches du clavier" +msgid "Scrolling\\Scrolling when the mouse touches right or left border" +msgstr "" +"Défilement dans les bords\\Défilement lorsque la souris touches les bords " +"gauche ou droite" -msgid "Converts ore to titanium" -msgstr "Conversion minerai en titanium" +msgid "Mouse inversion X\\Inversion of the scrolling direction on the X axis" +msgstr "" +"Inversion souris X\\Inversion de la rotation lorsque la souris touche un bord" -msgid "Copy" -msgstr "Copier" +msgid "Mouse inversion Y\\Inversion of the scrolling direction on the Y axis" +msgstr "" +"Inversion souris Y\\Inversion de la rotation lorsque la souris touche un bord" -msgid "Copy (Ctrl+c)" -msgstr "Copier (Ctrl+c)" +msgid "Quake at explosions\\The screen shakes at explosions" +msgstr "Secousses lors d'explosions\\L'écran vibre lors d'une explosion" -msgid "Ctrl" -msgstr "Ctrl" +msgid "Mouse shadow\\Gives the mouse a shadow" +msgstr "Souris ombrée\\Jolie souris avec une ombre" -msgid "Current mission saved" -msgstr "Enregistrement effectué" +msgid "Automatic indent\\When program editing" +msgstr "Indentation automatique\\Pendant l'édition d'un programme" -msgid "Customize your appearance" -msgstr "Personnalisation de votre apparence" +msgid "Big indent\\Indent 2 or 4 spaces per level defined by braces" +msgstr "Grande indentation\\Indente avec 2 ou 4 espaces" -msgid "Cut (Ctrl+x)" -msgstr "Couper (Ctrl+x)" +msgid "Access to solutions\\Show program \"4: Solution\" in the exercises" +msgstr "Accès aux solutions\\Programme \"4: Solution\" dans les exercices" -msgid "Defense tower" -msgstr "Tour de défense" +msgid "Standard controls\\Standard key functions" +msgstr "Tout réinitialiser\\Remet toutes les touches standards" -msgid "Delete" -msgstr "Détruire" +msgid "Turn left\\turns the bot to the left" +msgstr "Tourner à gauche\\Moteur à gauche" -msgid "Delete player\\Deletes the player from the list" -msgstr "Supprimer le joueur\\Supprimer le joueur de la liste" +msgid "Turn right\\turns the bot to the right" +msgstr "Tourner à droite\\Moteur à droite" -msgid "Delete\\Deletes the selected file" -msgstr "Supprimer\\Supprime l'enregistrement sélectionné" +msgid "Forward\\Moves forward" +msgstr "Avancer\\Moteur en avant" -msgid "Depth of field\\Maximum visibility" -msgstr "Profondeur de champ\\Distance de vue maximale" +msgid "Backward\\Moves backward" +msgstr "Reculer\\Moteur en arrière" -msgid "Derrick" -msgstr "Derrick" +msgid "Climb\\Increases the power of the jet" +msgstr "Monter\\Augmenter la puissance du réacteur" msgid "Descend\\Reduces the power of the jet" msgstr "Descendre\\Diminuer la puissance du réacteur" -#, fuzzy -msgid "Destroy" -msgstr "Destructeur" +msgid "Change camera\\Switches between onboard camera and following camera" +msgstr "Changement de caméra\\Autre de point de vue" -msgid "Destroy the building" -msgstr "Démolit le bâtiment" +msgid "Previous object\\Selects the previous object" +msgstr "Sélection précédente\\Sélectionne l'objet précédent" -msgid "Destroyer" -msgstr "Destructeur" +msgid "" +"Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)" +msgstr "Action standard\\Action du bouton avec le cadre rouge" -msgid "Details\\Visual quality of 3D objects" -msgstr "Détails des objets\\Qualité des objets en 3D" +msgid "Camera closer\\Moves the camera forward" +msgstr "Caméra plus proche\\Avance la caméra" + +msgid "Camera back\\Moves the camera backward" +msgstr "Caméra plus loin\\Recule la caméra" -msgid "Developed by :" -msgstr "Développé par :" +msgid "Next object\\Selects the next object" +msgstr "Sélectionner l'objet suivant\\Sélectionner l'objet suivant" -msgid "Device\\Driver and resolution settings" -msgstr "Affichage\\Pilote et résolution d'affichage" +msgid "Select the astronaut\\Selects the astronaut" +msgstr "Sélectionner le cosmonaute\\Sélectionner le cosmonaute" -msgid "Dividing by zero" -msgstr "Division par zéro" +msgid "Quit\\Quit the current mission or exercise" +msgstr "Quitter la mission en cours\\Terminer un exercice ou une mssion" -msgid "Do not use in this exercise" -msgstr "Interdit dans cet exercice" +msgid "Instructions\\Shows the instructions for the current mission" +msgstr "Instructions mission\\Marche à suivre" -msgid "Do you really want to destroy the selected building?" -msgstr "Voulez-vous vraiment détruire le bâtiment sélectionné ?" +msgid "Programming help\\Gives more detailed help with programming" +msgstr "Instructions programmation\\Explication sur la programmation" -#, c-format -msgid "Do you want to delete %s's saved games? " -msgstr "Voulez-vous détruire les sauvegardes de %s ?" +msgid "Key word help\\More detailed help about key words" +msgstr "Instructions mot-clé\\Explication sur le mot-clé" -msgid "Do you want to quit COLOBOT ?" -msgstr "Voulez-vous quitter COLOBOT ?" +msgid "Origin of last message\\Shows where the last message was sent from" +msgstr "Montrer le lieu d'un message\\Montrer le lieu du dernier message" -msgid "Doors blocked by a robot or another object " -msgstr "Portes bloquées par un robot ou un objet" +msgid "Speed 1.0x\\Normal speed" +msgstr "Vitesse 1.0x\\Vitesse normale" -msgid "Down (\\key gdown;)" -msgstr "Descend (\\key gdown;)" +msgid "Speed 1.5x\\1.5 times faster" +msgstr "Vitesse 1.5x\\Une fois et demi plus rapide" -msgid "Drawer bot" -msgstr "Robot dessinateur" +msgid "Speed 2.0x\\Double speed" +msgstr "Vitesse 2.0x\\Deux fois plus rapide" -msgid "Dust\\Dust and dirt on bots and buildings" -msgstr "Salissures\\Salissures des robots et bâtiments" +msgid "Speed 3.0x\\Three times faster" +msgstr "Vitesse 3.0x\\Trois fois plus rapide" -msgid "Dynamic lighting\\Mobile light sources" -msgstr "Lumières dynamiques\\Éclairages mobiles" +msgid "Sound effects:\\Volume of engines, voice, shooting, etc." +msgstr "Bruitages :\\Volume des moteurs, voix, etc." -msgid "Edit the selected program" -msgstr "Édite le programme sélectionné" +msgid "Background sound :\\Volume of audio tracks on the CD" +msgstr "Fond sonore :\\Volume des pistes audio du CD" -msgid "Egg" -msgstr "Oeuf" +msgid "3D sound\\3D positioning of the sound" +msgstr "Bruitages 3D\\Positionnement sonore dans l'espace" -msgid "End of block missing" -msgstr "Il manque la fin du bloc" +msgid "Lowest\\Minimum graphic quality (highest frame rate)" +msgstr "Mini\\Qualité minimale (+ rapide)" -msgid "Energy deposit (site for power station)" -msgstr "Emplacement pour station" +msgid "Normal\\Normal graphic quality" +msgstr "Normal\\Qualité standard" -msgid "Energy level" -msgstr "Niveau d'énergie" +msgid "Highest\\Highest graphic quality (lowest frame rate)" +msgstr "Maxi\\Haute qualité (+ lent)" -msgid "Engineer" -msgstr "Technicien" +msgid "Mute\\No sound" +msgstr "Silencieux\\Totalement silencieux" -msgid "Error in instruction move" -msgstr "Déplacement impossible" +msgid "Normal\\Normal sound volume" +msgstr "Normal\\Niveaux normaux" -msgid "Execute the selected program" -msgstr "Exécute le programme sélectionné" +msgid "Use a joystick\\Joystick or keyboard" +msgstr "Utilise un joystick\\Joystick ou clavier" -msgid "Execute/stop" -msgstr "Démarrer/stopper" +msgid "" +"Access to solution\\Shows the solution (detailed instructions for missions)" +msgstr "Accès à la solution\\Donne la solution" -msgid "Exercises\\Programming exercises" -msgstr "Programmation\\Exercices de programmation" +msgid "\\New player name" +msgstr "\\Nom du joueur à créer" -msgid "Exit film\\Film at the exit of exercises" -msgstr "Retour animé\\Retour animé dans les exercices" +msgid "OK\\Choose the selected player" +msgstr "D'accord\\Choisir le joueur" -#, fuzzy -msgid "Explode (\\key action;)" -msgstr "Recycle (\\key action;)" +msgid "Cancel\\Keep current player name" +msgstr "Annuler\\Conserver le joueur actuel" -msgid "Explosive" -msgstr "Explosif" +msgid "Delete player\\Deletes the player from the list" +msgstr "Supprimer le joueur\\Supprimer le joueur de la liste" -msgid "Extend shield (\\key action;)" -msgstr "Déploie le bouclier (\\key action;)" +msgid "Player name" +msgstr "Nom du joueur" -msgid "Eyeglasses:" -msgstr "Lunettes :" +msgid "Save\\Saves the current mission" +msgstr "Enregistrer\\Enregistrer la mission en cours" -msgid "Face type:" -msgstr "Type de visage :" +msgid "Load\\Loads the selected mission" +msgstr "Charger\\Charger la mission sélectionnée" -msgid "File not open" -msgstr "Le fichier n'est pas ouvert" +msgid "List of saved missions" +msgstr "Liste des missions enregistrées" msgid "Filename:" msgstr "Nom du fichier :" -msgid "Film sequences\\Films before and after the missions" -msgstr "Séquences cinématiques\\Films avant ou après une mission" +msgid "Mission name" +msgstr "Nom de la mission" -msgid "Finish" -msgstr "But" +msgid "Photography" +msgstr "Vue de la mission" -msgid "Fixed mine" -msgstr "Mine fixe" +msgid "Delete\\Deletes the selected file" +msgstr "Supprimer\\Supprime l'enregistrement sélectionné" -msgid "Flat ground not large enough" -msgstr "Sol plat pas assez grand" +msgid "Appearance\\Choose your appearance" +msgstr "Aspect\\Choisir votre aspect" -msgid "Fog\\Fog" -msgstr "Brouillard\\Nappes de brouillard" +msgid "Standard\\Standard appearance settings" +msgstr "Standard\\Remet les couleurs standards" -msgid "Folder:" -msgstr "Dans:" +msgid "Head\\Face and hair" +msgstr "Tête\\Visage et cheveux" -#, c-format -msgid "Folder: %s" -msgstr "Dossier: %s" +msgid "Suit\\Astronaut suit" +msgstr "Corps\\Combinaison" -msgid "Font size" -msgstr "Taille des caractères" +msgid "\\Turn left" +msgstr "\\Rotation à gauche" -msgid "Forward" -msgstr "Page suivante" +msgid "\\Turn right" +msgstr "\\Rotation à droite" -msgid "Forward (\\key up;)" -msgstr "Avance (\\key up;)" +msgid "Red" +msgstr "Rouge" -msgid "Forward\\Moves forward" -msgstr "Avancer\\Moteur en avant" +msgid "Green" +msgstr "Vert" -msgid "Found a site for a derrick" -msgstr "Emplacement pour derrick trouvé" +msgid "Blue" +msgstr "Bleu" -msgid "Found a site for power station" -msgstr "Emplacement pour station trouvé" +msgid "\\Face 1" +msgstr "\\Visage 1" -msgid "Found key A (site for derrick)" -msgstr "Emplacement pour derrick (clé A)" +msgid "\\Face 4" +msgstr "\\Visage 4" -msgid "Found key B (site for derrick)" -msgstr "Emplacement pour derrick (clé B)" +msgid "\\Face 3" +msgstr "\\Visage 3" -msgid "Found key C (site for derrick)" -msgstr "Emplacement pour derrick (clé C)" +msgid "\\Face 2" +msgstr "\\Visage 2" -msgid "Found key D (site for derrick)" -msgstr "Emplacement pour derrick (clé D)" +msgid "\\No eyeglasses" +msgstr "\\Pas de lunettes" -msgid "Free game" -msgstr "Jeu libre" +msgid "\\Eyeglasses 1" +msgstr "\\Lunettes 1" -msgid "Free game\\Free game without a specific goal" -msgstr "Jeu libre\\Jeu libre sans but précis" +msgid "\\Eyeglasses 2" +msgstr "\\Lunettes 2" -msgid "Friendly fire\\Your shooting can damage your own objects " -msgstr "Dégâts à soi-même\\Vos tirs infligent des dommages à vos unités" +msgid "\\Eyeglasses 3" +msgstr "\\Lunettes 3" -msgid "Full screen\\Full screen or window mode" -msgstr "Plein écran\\Plein écran ou fenêtré" +msgid "\\Eyeglasses 4" +msgstr "\\Lunettes 4" -msgid "Function already exists" -msgstr "Cette fonction existe déjà" +msgid "\\Eyeglasses 5" +msgstr "\\Lunettes 5" -msgid "Function name missing" -msgstr "Nom de la fonction attendu" +msgid "Previous selection (\\key desel;)" +msgstr "Sélection précédente (\\key desel;)" -msgid "Game speed" -msgstr "Vitesse du jeu" +msgid "Turn left (\\key left;)" +msgstr "Tourne à gauche (\\key left;)" -msgid "Game\\Game settings" -msgstr "Jeu\\Options de jouabilité" +msgid "Turn right (\\key right;)" +msgstr "Tourne à droite (\\key right;)" -msgid "Gantry crane" -msgstr "Portique" +msgid "Forward (\\key up;)" +msgstr "Avance (\\key up;)" -msgid "Goto: destination occupied" -msgstr "Goto: Destination occupée" +msgid "Backward (\\key down;)" +msgstr "Recule (\\key down;)" -msgid "Goto: inaccessible destination" -msgstr "Chemin introuvable" +msgid "Up (\\key gup;)" +msgstr "Monte (\\key gup;)" + +msgid "Down (\\key gdown;)" +msgstr "Descend (\\key gdown;)" msgid "Grab or drop (\\key action;)" msgstr "Prend ou dépose (\\key action;)" -msgid "Graphics\\Graphics settings" -msgstr "Graphique\\Options graphiques" +msgid "..in front" +msgstr "..devant" + +msgid "..behind" +msgstr "..derrière" + +msgid "..power cell" +msgstr "..pile" + +msgid "Instructions for the mission (\\key help;)" +msgstr "Instructions sur la mission (\\key help;)" + +msgid "Take off to finish the mission" +msgstr "Décolle pour terminer la mission" + +msgid "Destroy" +msgstr "" + +msgid "Build a derrick" +msgstr "Construit un derrick" + +msgid "Build a power station" +msgstr "Construit une station" -msgid "Green" -msgstr "Vert" +msgid "Build a bot factory" +msgstr "Construit une fabrique de robots" -msgid "Green flag" -msgstr "Drapeau vert" +msgid "Build a repair center" +msgstr "Construit un centre de réparation" -msgid "Ground inappropriate" -msgstr "Terrain inadapté" +msgid "Build a converter" +msgstr "Construit un convertisseur" -msgid "Ground not flat enough" -msgstr "Sol pas assez plat" +msgid "Build a defense tower" +msgstr "Construit une tour" -msgid "Hair color:" -msgstr "Couleur des cheveux :" +msgid "Build a research center" +msgstr "Construit un centre de recherches" -msgid "Head\\Face and hair" -msgstr "Tête\\Visage et cheveux" +msgid "Build a radar station" +msgstr "Construit un radar" -msgid "Help about selected object" -msgstr "Instructions sur la sélection" +msgid "Build a power cell factory" +msgstr "Construit une fabrique de piles" -msgid "Help balloons\\Explain the function of the buttons" -msgstr "Bulles d'aide\\Bulles explicatives" +msgid "Build an autolab" +msgstr "Construit un laboratoire" -msgid "Highest\\Highest graphic quality (lowest frame rate)" -msgstr "Maxi\\Haute qualité (+ lent)" +msgid "Build a nuclear power plant" +msgstr "Construit une centrale nucléaire" -msgid "Home" -msgstr "Page initiale" +msgid "Build a lightning conductor" +msgstr "Construit un paratonnerre" -msgid "Houston Mission Control" -msgstr "Centre de contrôle" +msgid "Build a exchange post" +msgstr "Construit une borne d'information" -msgid "Illegal object" -msgstr "Objet inaccessible" +msgid "Build a destroyer" +msgstr "" -msgid "Impossible under water" -msgstr "Impossible sous l'eau" +msgid "Show if the ground is flat" +msgstr "Montre si le sol est plat" -msgid "Impossible when carrying an object" -msgstr "Impossible en portant un objet" +msgid "Plant a flag" +msgstr "Pose un drapeau de couleur" -msgid "Impossible when flying" -msgstr "Impossible en vol" +msgid "Remove a flag" +msgstr "Enlève un drapeau" -msgid "Impossible when moving" -msgstr "Impossible en mouvement" +msgid "\\Blue flags" +msgstr "\\Drapeaux bleus" -msgid "Impossible when swimming" -msgstr "Impossible en nageant" +msgid "\\Red flags" +msgstr "\\Drapeaux rouges" -msgid "Inappropriate bot" -msgstr "Robot inadapté" +msgid "\\Green flags" +msgstr "\\Drapeaux verts" -msgid "Inappropriate cell type" -msgstr "Pas le bon type de pile" +msgid "\\Yellow flags" +msgstr "\\Drapeaux jaunes" -#, fuzzy -msgid "Inappropriate object" -msgstr "Robot inadapté" +msgid "\\Violet flags" +msgstr "\\Drapeaux violets" -msgid "Incorrect index type" -msgstr "Mauvais type d'index" +msgid "Build a winged grabber" +msgstr "Fabrique un déménageur volant" -msgid "Infected by a virus; temporarily out of order" -msgstr "Infecté par un virus; ne fonctionne plus temporairement" +msgid "Build a tracked grabber" +msgstr "Fabrique un déménageur à chenilles" -msgid "Information exchange post" -msgstr "Borne d'information" +msgid "Build a wheeled grabber" +msgstr "Fabrique un déménageur à roues" -msgid "Instruction \"break\" outside a loop" -msgstr "Instruction \"break\" en dehors d'une boucle" +msgid "Build a legged grabber" +msgstr "Fabrique un déménageur à pattes" -msgid "Instruction \"case\" missing" -msgstr "Manque une instruction \"case\"" +msgid "Build a winged shooter" +msgstr "Fabrique un shooter volant" -msgid "Instruction \"case\" outside a block \"switch\"" -msgstr "Instruction \"case\" hors d'un bloc \"switch\"" +msgid "Build a tracked shooter" +msgstr "Fabrique un shooter à chenilles" -msgid "Instruction \"else\" without corresponding \"if\" " -msgstr "Instruction \"else\" sans \"if\" correspondant" +msgid "Build a wheeled shooter" +msgstr "Fabrique un shooter à roues" -msgid "Instructions (\\key help;)" -msgstr "Instructions (\\key help;)" +msgid "Build a legged shooter" +msgstr "Fabrique un shooter à pattes" -msgid "Instructions after the final closing brace" -msgstr "Instructions après la fin" +msgid "Build a winged orga shooter" +msgstr "Fabrique un orgaShooter volant" -msgid "Instructions for the mission (\\key help;)" -msgstr "Instructions sur la mission (\\key help;)" +msgid "Build a tracked orga shooter" +msgstr "Fabrique un orgaShooter à chenilles" -msgid "Instructions from Houston" -msgstr "Instructions de Houston" +msgid "Build a wheeled orga shooter" +msgstr "Fabrique un orgaShooter à roues" -msgid "Instructions\\Shows the instructions for the current mission" -msgstr "Instructions mission\\Marche à suivre" +msgid "Build a legged orga shooter" +msgstr "Fabrique un orgaShooter à pattes" -msgid "Internal error - tell the developers" -msgstr "" +msgid "Build a winged sniffer" +msgstr "Fabrique un renifleur volant" -msgid "Jet temperature" -msgstr "Température du réacteur" +msgid "Build a tracked sniffer" +msgstr "Fabrique un renifleur à chenilles" -msgid "Key A" -msgstr "Clé A" +msgid "Build a wheeled sniffer" +msgstr "Fabrique un renifleur à roues" -msgid "Key B" -msgstr "Clé B" +msgid "Build a legged sniffer" +msgstr "Fabrique un renifleur à pattes" -msgid "Key C" -msgstr "Clé C" +msgid "Build a thumper" +msgstr "Fabrique un robot secoueur" -msgid "Key D" -msgstr "Clé D" +msgid "Build a phazer shooter" +msgstr "Fabrique un robot phazer" -msgid "Key word help\\More detailed help about key words" -msgstr "Instructions mot-clé\\Explication sur le mot-clé" +msgid "Build a recycler" +msgstr "Fabrique un robot recycleur" -msgid "Keyword \"while\" missing" -msgstr "Manque le mot \"while\"" +msgid "Build a shielder" +msgstr "Fabrique un robot bouclier" -msgid "Keyword help(\\key cbot;)" -msgstr "Aide sur le mot-clé (\\key cbot;)" +msgid "Build a subber" +msgstr "Fabrique un robot sous-marin" -msgid "LOADING" -msgstr "CHARGEMENT" +msgid "Run research program for tracked bots" +msgstr "Recherche les chenilles" -msgid "Legged grabber" -msgstr "Robot déménageur" +msgid "Run research program for winged bots" +msgstr "Recherche les robots volants" -msgid "Legged orga shooter" -msgstr "Robot orgaShooter" +msgid "Run research program for thumper" +msgstr "Recherche le secoueur" -msgid "Legged shooter" -msgstr "Robot shooter" +msgid "Run research program for shooter" +msgstr "Recherche le canon shooter" -msgid "Legged sniffer" -msgstr "Robot renifleur" +msgid "Run research program for defense tower" +msgstr "Recherche la tour de défense" -msgid "Lightning conductor" -msgstr "Paratonnerre" +msgid "Run research program for phazer shooter" +msgstr "Recherche le canon phazer" -msgid "List of objects" -msgstr "Liste des objets" +msgid "Run research program for shielder" +msgstr "Recherche le bouclier" -msgid "List of saved missions" -msgstr "Liste des missions enregistrées" +msgid "Run research program for nuclear power" +msgstr "Recherche le nucléaire" -msgid "Load a saved mission" -msgstr "Chargement d'une mission enregistrée" +msgid "Run research program for legged bots" +msgstr "Recherche les pattes" -msgid "Load\\Load a saved mission" -msgstr "Charger\\Charger une mission enregistrée" +msgid "Run research program for orga shooter" +msgstr "Recherche le canon orgaShooter" -msgid "Load\\Loads the selected mission" -msgstr "Charger\\Charger la mission sélectionnée" +msgid "Return to start" +msgstr "Remet au départ" -msgid "Lowest\\Minimum graphic quality (highest frame rate)" -msgstr "Mini\\Qualité minimale (+ rapide)" +msgid "Sniff (\\key action;)" +msgstr "Cherche (\\key action;)" -msgid "Lunar Roving Vehicle" -msgstr "Lunar Roving Vehicle" +msgid "Thump (\\key action;)" +msgstr "Secoue (\\key action;)" -msgid "Marks on the ground\\Marks on the ground" -msgstr "Marques sur le sol\\Marques dessinées sur le sol" +msgid "Shoot (\\key action;)" +msgstr "Tir (\\key action;)" -msgid "Maximize" -msgstr "Taille maximale" +msgid "Explode (\\key action;)" +msgstr "" -msgid "Minimize" -msgstr "Taille réduite" +msgid "Recycle (\\key action;)" +msgstr "Recycle (\\key action;)" -msgid "Mission name" -msgstr "Nom de la mission" +msgid "Extend shield (\\key action;)" +msgstr "Déploie le bouclier (\\key action;)" -msgid "Missions" -msgstr "Missions" +msgid "Withdraw shield (\\key action;)" +msgstr "Stoppe le bouclier (\\key action;)" -msgid "Missions\\Select mission" -msgstr "Missions\\La grande aventure" +msgid "Shield radius" +msgstr "Rayon du bouclier" -msgid "Mouse inversion X\\Inversion of the scrolling direction on the X axis" -msgstr "" -"Inversion souris X\\Inversion de la rotation lorsque la souris touche un bord" +msgid "Execute the selected program" +msgstr "Exécute le programme sélectionné" -msgid "Mouse inversion Y\\Inversion of the scrolling direction on the Y axis" -msgstr "" -"Inversion souris Y\\Inversion de la rotation lorsque la souris touche un bord" +msgid "Edit the selected program" +msgstr "Édite le programme sélectionné" + +msgid "\\SatCom on standby" +msgstr "\\Mettre le SatCom en veille" -msgid "Mouse shadow\\Gives the mouse a shadow" -msgstr "Souris ombrée\\Jolie souris avec une ombre" +msgid "Destroy the building" +msgstr "Démolit le bâtiment" -msgid "Mute\\No sound" -msgstr "Silencieux\\Totalement silencieux" +msgid "Energy level" +msgstr "Niveau d'énergie" -msgid "Name:" -msgstr "Nom:" +msgid "Shield level" +msgstr "Niveau du bouclier" -msgid "Negative value rejected by \"throw\"" -msgstr "Valeur négative refusée pour \"throw\"" +msgid "Jet temperature" +msgstr "Température du réacteur" -msgid "Nest" -msgstr "Nid" +msgid "Still working ..." +msgstr "Travail en cours ..." -msgid "New" -msgstr "Nouveau" +msgid "Number of insects detected" +msgstr "Nombre d'insectes détectés" -msgid "New ..." -msgstr "Nouveau ..." +msgid "Transmitted information" +msgstr "Informations diffusées" -msgid "New bot available" -msgstr "Nouveau robot disponible" +msgid "Compass" +msgstr "Boussole" -msgid "Next" -msgstr "Suivant" +msgid "Zoom mini-map" +msgstr "Zoom mini-carte" -msgid "Next object\\Selects the next object" -msgstr "Sélectionner l'objet suivant\\Sélectionner l'objet suivant" +msgid "Camera (\\key camera;)" +msgstr "Caméra (\\key camera;)" -msgid "No energy in the subsoil" -msgstr "Pas d'énergie en sous-sol" +msgid "Camera to left" +msgstr "Caméra à gauche" -msgid "No flag nearby" -msgstr "Aucun drapeau à proximité" +msgid "Camera to right" +msgstr "Caméra à droite" -msgid "No function running" -msgstr "Pas de fonction en exécution" +msgid "Camera nearest" +msgstr "Caméra plus proche" -msgid "No function with this name accepts this kind of parameter" -msgstr "Aucune fonction de ce nom n'accepte ce(s) type(s) de paramètre(s)" +msgid "Camera awayest" +msgstr "Caméra plus loin" -msgid "No function with this name accepts this number of parameters" -msgstr "Aucune fonction de ce nom n'accepte ce nombre de paramètres" +msgid "Help about selected object" +msgstr "Instructions sur la sélection" -msgid "No information exchange post within range" -msgstr "Pas trouvé de borne d'information" +msgid "Show the solution" +msgstr "Donne la solution" -msgid "No more energy" -msgstr "Plus d'énergie" +msgid "Switch bots <-> buildings" +msgstr "Permute robots <-> bâtiments" -msgid "No ore in the subsoil" -msgstr "Pas de minerai en sous-sol" +msgid "Show the range" +msgstr "Montre le rayon d'action" -msgid "No other robot" -msgstr "Pas d'autre robot" +msgid "\\Raise the pencil" +msgstr "\\Relève le crayon" -msgid "No power cell" -msgstr "Pas de pile" +msgid "\\Use the black pencil" +msgstr "\\Abaisse le crayon noir" -msgid "No titanium" -msgstr "Pas de titanium" +msgid "\\Use the yellow pencil" +msgstr "\\Abaisse le crayon jaune" -msgid "No titanium around" -msgstr "Titanium inexistant" +msgid "\\Use the orange pencil" +msgstr "\\Abaisse le crayon orange" -msgid "No titanium ore to convert" -msgstr "Pas de minerai de titanium à convertir" +msgid "\\Use the red pencil" +msgstr "\\Abaisse le crayon rouge" -msgid "No titanium to transform" -msgstr "Pas de titanium à transformer" +msgid "\\Use the purple pencil" +msgstr "\\Abaisse le crayon violet" -msgid "No uranium to transform" -msgstr "Pas d'uranium à transformer" +msgid "\\Use the blue pencil" +msgstr "\\Abaisse le crayon bleu" -msgid "Normal size" -msgstr "Taille normale" +msgid "\\Use the green pencil" +msgstr "\\Abaisse le crayon vert" -msgid "Normal\\Normal graphic quality" -msgstr "Normal\\Qualité standard" +msgid "\\Use the brown pencil" +msgstr "\\Abaisse le crayon brun" -msgid "Normal\\Normal sound volume" -msgstr "Normal\\Niveaux normaux" +msgid "\\Start recording" +msgstr "\\Démarre l'enregistrement" -msgid "Not enough energy" -msgstr "Pas assez d'énergie" +msgid "\\Stop recording" +msgstr "\\Stoppe l'enregistrement" -msgid "Not enough energy yet" -msgstr "Pas encore assez d'énergie" +msgid "Show the place" +msgstr "Montre l'endroit" -#, fuzzy -msgid "Not found anything to destroy" -msgstr "Rien à déposer" +msgid "Continue" +msgstr "Continuer" -msgid "Not yet enough energy" -msgstr "Pas encore assez d'énergie" +msgid "Command line" +msgstr "Console de commande" -msgid "Nothing to analyze" -msgstr "Rien à analyser" +msgid "Game speed" +msgstr "Vitesse du jeu" -msgid "Nothing to drop" -msgstr "Rien à déposer" +msgid "Back" +msgstr "Page précédente" -msgid "Nothing to grab" -msgstr "Rien à prendre" +msgid "Forward" +msgstr "Page suivante" -msgid "Nothing to recycle" -msgstr "Rien à recycler" +msgid "Home" +msgstr "Page initiale" -msgid "Nuclear power cell" -msgstr "Pile nucléaire" +msgid "Copy" +msgstr "Copier" -msgid "Nuclear power cell available" -msgstr "Pile nucléaire disponible" +msgid "Size 1" +msgstr "Taille 1" -msgid "Nuclear power station" -msgstr "Centrale nucléaire" +msgid "Size 2" +msgstr "Taille 2" -msgid "Num of decorative objects\\Number of purely ornamental objects" -msgstr "Nb d'objets décoratifs\\Qualité d'objets non indispensables" +msgid "Size 3" +msgstr "Taille 3" -msgid "Number missing" -msgstr "Un nombre est attendu" +msgid "Size 4" +msgstr "Taille 4" -msgid "Number of insects detected" -msgstr "Nombre d'insectes détectés" +msgid "Size 5" +msgstr "Taille 5" -msgid "Number of particles\\Explosions, dust, reflections, etc." -msgstr "Quantité de particules\\Explosions, poussières, reflets, etc." +msgid "Instructions from Houston" +msgstr "Instructions de Houston" -msgid "OK" -msgstr "D'accord" +msgid "Satellite report" +msgstr "Rapport du satellite" -msgid "OK\\Choose the selected player" -msgstr "D'accord\\Choisir le joueur" +msgid "Programs dispatched by Houston" +msgstr "Programmes envoyés par Houston" -msgid "OK\\Close program editor and return to game" -msgstr "D'accord\\Compiler le programme" +msgid "List of objects" +msgstr "Liste des objets" -msgid "Object not found" -msgstr "Objet n'existe pas" +msgid "Programming help" +msgstr "Aide à la programmation" -msgid "Object too close" -msgstr "Objet trop proche" +msgid "Solution" +msgstr "Solution" -msgid "One step" -msgstr "Un pas" +msgid "OK\\Close program editor and return to game" +msgstr "D'accord\\Compiler le programme" -msgid "Open" -msgstr "Ouvrir" +msgid "Cancel\\Cancel all changes" +msgstr "Annuler\\Annuler toutes les modifications" msgid "Open (Ctrl+o)" msgstr "Ouvrir (Ctrl+o)" -msgid "Opening brace missing " -msgstr "Début d'un bloc attendu" +msgid "Save (Ctrl+s)" +msgstr "Enregistrer (Ctrl+s)" -msgid "Opening bracket missing" -msgstr "Il manque une parenthèse ouvrante" +msgid "Undo (Ctrl+z)" +msgstr "Annuler (Ctrl+z)" -msgid "Operation impossible with value \"nan\"" -msgstr "Opération sur un \"nan\"" +msgid "Cut (Ctrl+x)" +msgstr "Couper (Ctrl+x)" -msgid "Options" -msgstr "Options" +msgid "Copy (Ctrl+c)" +msgstr "Copier (Ctrl+c)" -msgid "Options\\Preferences" -msgstr "Options\\Réglages" +msgid "Paste (Ctrl+v)" +msgstr "Coller (Ctrl+v)" -msgid "Organic matter" -msgstr "Matière organique" +msgid "Font size" +msgstr "Taille des caractères" -msgid "Origin of last message\\Shows where the last message was sent from" -msgstr "Montrer le lieu d'un message\\Montrer le lieu du dernier message" +msgid "Instructions (\\key help;)" +msgstr "Instructions (\\key help;)" -msgid "Parameters missing " -msgstr "Pas assez de paramètres" +msgid "Programming help (\\key prog;)" +msgstr "Aide à la programmation (\\key prog;)" -msgid "Particles in the interface\\Steam clouds and sparks in the interface" -msgstr "Particules dans l'interface\\Pluie de particules" +msgid "Compile" +msgstr "Compiler" -msgid "Paste (Ctrl+v)" -msgstr "Coller (Ctrl+v)" +msgid "Execute/stop" +msgstr "Démarrer/stopper" msgid "Pause/continue" msgstr "Pause/continuer" -msgid "Phazer shooter" -msgstr "Robot phazer" - -msgid "Photography" -msgstr "Vue de la mission" - -msgid "Place occupied" -msgstr "Emplacement occupé" - -msgid "Planets and stars\\Astronomical objects in the sky" -msgstr "Planètes et étoiles\\Motifs mobiles dans le ciel" - -msgid "Plans for defense tower available" -msgstr "Construction d'une tour de défense possible" +msgid "One step" +msgstr "Un pas" -msgid "Plans for nuclear power plant available" -msgstr "Construction d'une centrale nucléaire possible" +msgid "Gantry crane" +msgstr "Portique" -msgid "Plans for phazer shooter available" -msgstr "Fabrication d'un robot phazer possible" +msgid "Spaceship" +msgstr "Vaisseau spatial" -msgid "Plans for shielder available" -msgstr "Fabrication d'un robot bouclier possible" +msgid "Derrick" +msgstr "Derrick" -msgid "Plans for shooter available" -msgstr "Fabrication de robots shooter possible" +msgid "Bot factory" +msgstr "Fabrique de robots" -msgid "Plans for thumper available" -msgstr "Fabrication d'un robot secoueur possible" +msgid "Repair center" +msgstr "Centre de réparation" -msgid "Plans for tracked robots available " -msgstr "Fabrication d'un robot à chenilles possible" +msgid "Destroyer" +msgstr "Destructeur" -msgid "Plant a flag" -msgstr "Pose un drapeau de couleur" +msgid "Power station" +msgstr "Station de recharge" -msgid "Play\\Start mission!" -msgstr "Jouer ...\\Démarrer l'action!" +msgid "Converts ore to titanium" +msgstr "Conversion minerai en titanium" -msgid "Player" -msgstr "Joueur" +msgid "Defense tower" +msgstr "Tour de défense" -msgid "Player name" -msgstr "Nom du joueur" +msgid "Nest" +msgstr "Nid" -msgid "Player's name" -msgstr "Nom du joueur" +msgid "Research center" +msgstr "Centre de recherches" -msgid "Power cell" -msgstr "Pile normale" +msgid "Radar station" +msgstr "Radar" -msgid "Power cell available" -msgstr "Pile disponible" +msgid "Information exchange post" +msgstr "Borne d'information" msgid "Power cell factory" msgstr "Fabrique de piles" -msgid "Power station" -msgstr "Station de recharge" - -msgid "Practice bot" -msgstr "Robot d'entraînement" +msgid "Autolab" +msgstr "Laboratoire de matières organiques" -msgid "Press \\key help; to read instructions on your SatCom" -msgstr "Consultez votre SatCom en appuyant sur \\key help;" +msgid "Nuclear power station" +msgstr "Centrale nucléaire" -msgid "Previous" -msgstr "Précédent" +msgid "Lightning conductor" +msgstr "Paratonnerre" -msgid "Previous object\\Selects the previous object" -msgstr "Sélection précédente\\Sélectionne l'objet précédent" +msgid "Vault" +msgstr "Coffre-fort" -msgid "Previous selection (\\key desel;)" -msgstr "Sélection précédente (\\key desel;)" +msgid "Houston Mission Control" +msgstr "Centre de contrôle" -msgid "Private element" -msgstr "Elément protégé" +msgid "Target" +msgstr "Cible" -msgid "Private\\Private folder" -msgstr "Privé\\Dossier privé" +msgid "Start" +msgstr "Départ" -msgid "Program editor" -msgstr "Edition du programme" +msgid "Finish" +msgstr "But" -msgid "Program finished" -msgstr "Programme terminé" +msgid "Titanium ore" +msgstr "Minerai de titanium" -msgid "Program infected by a virus" -msgstr "Un programme est infecté par un virus" +msgid "Uranium ore" +msgstr "Minerai d'uranium" -msgid "Programming exercises" -msgstr "Programmation" +msgid "Organic matter" +msgstr "Matière organique" -msgid "Programming help" -msgstr "Aide à la programmation" +msgid "Titanium" +msgstr "Titanium" -msgid "Programming help (\\key prog;)" -msgstr "Aide à la programmation (\\key prog;)" +msgid "Power cell" +msgstr "Pile normale" -msgid "Programming help\\Gives more detailed help with programming" -msgstr "Instructions programmation\\Explication sur la programmation" +msgid "Nuclear power cell" +msgstr "Pile nucléaire" -msgid "Programs dispatched by Houston" -msgstr "Programmes envoyés par Houston" +msgid "Black box" +msgstr "Boîte noire" -msgid "Public required" -msgstr "Public requis" +msgid "Key A" +msgstr "Clé A" -msgid "Public\\Common folder" -msgstr "Public\\Dossier commun à tous les joueurs" +msgid "Key B" +msgstr "Clé B" -msgid "Quake at explosions\\The screen shakes at explosions" -msgstr "Secousses lors d'explosions\\L'écran vibre lors d'une explosion" +msgid "Key C" +msgstr "Clé C" -msgid "Quit the mission?" -msgstr "Quitter la mission ?" +msgid "Key D" +msgstr "Clé D" -msgid "Quit\\Quit COLOBOT" -msgstr "Quitter\\Quitter COLOBOT" +msgid "Explosive" +msgstr "Explosif" -msgid "Quit\\Quit the current mission or exercise" -msgstr "Quitter la mission en cours\\Terminer un exercice ou une mssion" +msgid "Fixed mine" +msgstr "Mine fixe" -msgid "Radar station" -msgstr "Radar" +msgid "Survival kit" +msgstr "Sac de survie" -msgid "Read error" -msgstr "Erreur à la lecture" +msgid "Checkpoint" +msgstr "Indicateur" -msgid "Recorder" -msgstr "Enregistreur" +msgid "Blue flag" +msgstr "Drapeau bleu" -msgid "Recycle (\\key action;)" -msgstr "Recycle (\\key action;)" +msgid "Red flag" +msgstr "Drapeau rouge" -msgid "Recycler" -msgstr "Robot recycleur" +msgid "Green flag" +msgstr "Drapeau vert" -msgid "Red" -msgstr "Rouge" +msgid "Yellow flag" +msgstr "Drapeau jaune" -msgid "Red flag" -msgstr "Drapeau rouge" +msgid "Violet flag" +msgstr "Drapeau violet" -msgid "Reflections on the buttons \\Shiny buttons" -msgstr "Reflets sur les boutons\\Boutons brillants" +msgid "Energy deposit (site for power station)" +msgstr "Emplacement pour station" -msgid "Remains of Apollo mission" -msgstr "Vestige d'une mission Apollo" +msgid "Uranium deposit (site for derrick)" +msgstr "Emplacement pour derrick (uranium)" -msgid "Remove a flag" -msgstr "Enlève un drapeau" +msgid "Found key A (site for derrick)" +msgstr "Emplacement pour derrick (clé A)" -msgid "Repair center" -msgstr "Centre de réparation" +msgid "Found key B (site for derrick)" +msgstr "Emplacement pour derrick (clé B)" -msgid "Research center" -msgstr "Centre de recherches" +msgid "Found key C (site for derrick)" +msgstr "Emplacement pour derrick (clé C)" -msgid "Research program already performed" -msgstr "Recherche déjà effectuée" +msgid "Found key D (site for derrick)" +msgstr "Emplacement pour derrick (clé D)" -msgid "Research program completed" -msgstr "Recherche terminée" +msgid "Titanium deposit (site for derrick)" +msgstr "Emplacement pour derrick (titanium)" -msgid "Reserved keyword of CBOT language" -msgstr "Ce mot est réservé" +msgid "Practice bot" +msgstr "Robot d'entraînement" -msgid "Resolution" -msgstr "Résolution" +msgid "Winged grabber" +msgstr "Robot déménageur" -msgid "Restart\\Restart the mission from the beginning" -msgstr "Recommencer\\Recommencer la mission au début" +msgid "Tracked grabber" +msgstr "Robot déménageur" -msgid "Return to start" -msgstr "Remet au départ" +msgid "Wheeled grabber" +msgstr "Robot déménageur" -msgid "Robbie" -msgstr "Robbie" +msgid "Legged grabber" +msgstr "Robot déménageur" -msgid "Robbie\\Your assistant" -msgstr "Robbie\\Votre assistant" +msgid "Winged shooter" +msgstr "Robot shooter" -msgid "Ruin" -msgstr "Bâtiment en ruine" +msgid "Tracked shooter" +msgstr "Robot shooter" -msgid "Run research program for defense tower" -msgstr "Recherche la tour de défense" +msgid "Wheeled shooter" +msgstr "Robot shooter" -msgid "Run research program for legged bots" -msgstr "Recherche les pattes" +msgid "Legged shooter" +msgstr "Robot shooter" -msgid "Run research program for nuclear power" -msgstr "Recherche le nucléaire" +msgid "Winged orga shooter" +msgstr "Robot orgaShooter" -msgid "Run research program for orga shooter" -msgstr "Recherche le canon orgaShooter" +msgid "Tracked orga shooter" +msgstr "Robot orgaShooter" -msgid "Run research program for phazer shooter" -msgstr "Recherche le canon phazer" +msgid "Wheeled orga shooter" +msgstr "Robot orgaShooter" -msgid "Run research program for shielder" -msgstr "Recherche le bouclier" +msgid "Legged orga shooter" +msgstr "Robot orgaShooter" -msgid "Run research program for shooter" -msgstr "Recherche le canon shooter" +msgid "Winged sniffer" +msgstr "Robot renifleur" -msgid "Run research program for thumper" -msgstr "Recherche le secoueur" +msgid "Tracked sniffer" +msgstr "Robot renifleur" -msgid "Run research program for tracked bots" -msgstr "Recherche les chenilles" +msgid "Wheeled sniffer" +msgstr "Robot renifleur" -msgid "Run research program for winged bots" -msgstr "Recherche les robots volants" +msgid "Legged sniffer" +msgstr "Robot renifleur" -msgid "SatCom" -msgstr "SatCom" +msgid "Thumper" +msgstr "Robot secoueur" -msgid "Satellite report" -msgstr "Rapport du satellite" +msgid "Phazer shooter" +msgstr "Robot phazer" -msgid "Save" -msgstr "Enregistrer" +msgid "Recycler" +msgstr "Robot recycleur" -msgid "Save (Ctrl+s)" -msgstr "Enregistrer (Ctrl+s)" +msgid "Shielder" +msgstr "Robot bouclier" -msgid "Save the current mission" -msgstr "Enregistrement de la mission en cours" +msgid "Subber" +msgstr "Robot sous-marin" -msgid "Save\\Save the current mission " -msgstr "Enregistrer\\Enregistrer la mission en cours" +msgid "Target bot" +msgstr "Cible d'entraînement" -msgid "Save\\Saves the current mission" -msgstr "Enregistrer\\Enregistrer la mission en cours" +msgid "Drawer bot" +msgstr "Robot dessinateur" -msgid "Scrolling\\Scrolling when the mouse touches right or left border" -msgstr "" -"Défilement dans les bords\\Défilement lorsque la souris touches les bords " -"gauche ou droite" +msgid "Engineer" +msgstr "Technicien" -msgid "Select the astronaut\\Selects the astronaut" -msgstr "Sélectionner le cosmonaute\\Sélectionner le cosmonaute" +msgid "Robbie" +msgstr "Robbie" -msgid "Semicolon terminator missing" -msgstr "Terminateur point-virgule non trouvé" +msgid "Alien Queen" +msgstr "Pondeuse" -msgid "Shadows\\Shadows on the ground" -msgstr "Ombres\\Ombres projetées au sol" +msgid "Ant" +msgstr "Fourmi" -msgid "Shield level" -msgstr "Niveau du bouclier" +msgid "Spider" +msgstr "Araignée" -msgid "Shield radius" -msgstr "Rayon du bouclier" +msgid "Wasp" +msgstr "Guępe" -msgid "Shielder" -msgstr "Robot bouclier" +msgid "Worm" +msgstr "Ver" -msgid "Shift" -msgstr "Shift" +msgid "Egg" +msgstr "Oeuf" -msgid "Shoot (\\key action;)" -msgstr "Tir (\\key action;)" +msgid "Wreckage" +msgstr "Epave de robot" -msgid "Show if the ground is flat" -msgstr "Montre si le sol est plat" +msgid "Ruin" +msgstr "Bâtiment en ruine" -msgid "Show the place" -msgstr "Montre l'endroit" +msgid "Waste" +msgstr "Déchet" -msgid "Show the range" -msgstr "Montre le rayon d'action" +msgid "Spaceship ruin" +msgstr "Epave de vaisseau spatial" -msgid "Show the solution" -msgstr "Donne la solution" +msgid "Remains of Apollo mission" +msgstr "Vestige d'une mission Apollo" -msgid "Sign \" : \" missing" -msgstr "Séparateur \" : \" attendu" +msgid "Lunar Roving Vehicle" +msgstr "Lunar Roving Vehicle" -msgid "Size 1" -msgstr "Taille 1" +msgid "Internal error - tell the developers" +msgstr "" -msgid "Size 2" -msgstr "Taille 2" +msgid "Unknown command" +msgstr "Commande inconnue" -msgid "Size 3" -msgstr "Taille 3" +msgid "Inappropriate bot" +msgstr "Robot inadapté" -msgid "Size 4" -msgstr "Taille 4" +msgid "Impossible when flying" +msgstr "Impossible en vol" -msgid "Size 5" -msgstr "Taille 5" +msgid "Already carrying something" +msgstr "Porte déjà quelque chose" -msgid "Sky\\Clouds and nebulae" -msgstr "Ciel\\Ciel et nuages" +msgid "Nothing to grab" +msgstr "Rien à prendre" -msgid "Sniff (\\key action;)" -msgstr "Cherche (\\key action;)" +msgid "Impossible when moving" +msgstr "Impossible en mouvement" -msgid "Solution" -msgstr "Solution" +msgid "Place occupied" +msgstr "Emplacement occupé" -msgid "Sound effects:\\Volume of engines, voice, shooting, etc." -msgstr "Bruitages :\\Volume des moteurs, voix, etc." +msgid "No other robot" +msgstr "Pas d'autre robot" -msgid "Sound\\Music and game sound volume" -msgstr "Son\\Volumes bruitages & musiques" +msgid "You can not carry a radioactive object" +msgstr "Vous ne pouvez pas transporter un objet radioactif" -msgid "Spaceship" -msgstr "Vaisseau spatial" +msgid "You can not carry an object under water" +msgstr "Vous ne pouvez pas transporter un objet sous l'eau" -msgid "Spaceship ruin" -msgstr "Epave de vaisseau spatial" +msgid "Nothing to drop" +msgstr "Rien à déposer" -msgid "Speed 1.0x\\Normal speed" -msgstr "Vitesse 1.0x\\Vitesse normale" +msgid "Impossible under water" +msgstr "Impossible sous l'eau" -msgid "Speed 1.5x\\1.5 times faster" -msgstr "Vitesse 1.5x\\Une fois et demi plus rapide" +msgid "Not enough energy" +msgstr "Pas assez d'énergie" -msgid "Speed 2.0x\\Double speed" -msgstr "Vitesse 2.0x\\Deux fois plus rapide" +msgid "Titanium too far away" +msgstr "Titanium trop loin" -msgid "Speed 3.0x\\Three times faster" -msgstr "Vitesse 3.0x\\Trois fois plus rapide" +msgid "Titanium too close" +msgstr "Titanium trop proche" -msgid "Spider" -msgstr "Araignée" +msgid "No titanium around" +msgstr "Titanium inexistant" -msgid "Spider fatally wounded" -msgstr "Araignée mortellement touchée" +msgid "Ground not flat enough" +msgstr "Sol pas assez plat" -msgid "Stack overflow" -msgstr "Débordement de la pile" +msgid "Flat ground not large enough" +msgstr "Sol plat pas assez grand" -msgid "" -"Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)" -msgstr "Action standard\\Action du bouton avec le cadre rouge" +msgid "Too close to space ship" +msgstr "Trop proche du vaisseau spatial" -msgid "Standard controls\\Standard key functions" -msgstr "Tout réinitialiser\\Remet toutes les touches standards" +msgid "Too close to a building" +msgstr "Trop proche d'un bâtiment" -msgid "Standard\\Standard appearance settings" -msgstr "Standard\\Remet les couleurs standards" +msgid "Can not produce this object in this mission" +msgstr "" -msgid "Start" -msgstr "Départ" +msgid "Can not produce not researched object" +msgstr "" -msgid "Still working ..." -msgstr "Travail en cours ..." +msgid "Ground inappropriate" +msgstr "Terrain inadapté" -msgid "String missing" -msgstr "Une chaîne de caractère est attendue" +msgid "Building too close" +msgstr "Bâtiment trop proche" -msgid "Strip color:" -msgstr "Couleur des bandes :" +msgid "Object too close" +msgstr "Objet trop proche" -msgid "Subber" -msgstr "Robot sous-marin" +msgid "Nothing to recycle" +msgstr "Rien à recycler" -msgid "Suit color:" -msgstr "Couleur de la combinaison :" +msgid "No more energy" +msgstr "Plus d'énergie" -msgid "Suit\\Astronaut suit" -msgstr "Corps\\Combinaison" +msgid "Error in instruction move" +msgstr "Déplacement impossible" -msgid "Sunbeams\\Sunbeams in the sky" -msgstr "Rayons du soleil\\Rayons selon l'orientation" +msgid "Object not found" +msgstr "Objet n'existe pas" -msgid "Survival kit" -msgstr "Sac de survie" +msgid "Goto: inaccessible destination" +msgstr "Chemin introuvable" -msgid "Switch bots <-> buildings" -msgstr "Permute robots <-> bâtiments" +msgid "Goto: destination occupied" +msgstr "Goto: Destination occupée" -msgid "Take off to finish the mission" -msgstr "Décolle pour terminer la mission" +msgid "No titanium ore to convert" +msgstr "Pas de minerai de titanium à convertir" -msgid "Target" -msgstr "Cible" +msgid "No ore in the subsoil" +msgstr "Pas de minerai en sous-sol" -msgid "Target bot" -msgstr "Cible d'entraînement" +msgid "No energy in the subsoil" +msgstr "Pas d'énergie en sous-sol" -msgid "Textures\\Quality of textures " -msgstr "Qualité des textures\\Qualité des images" +msgid "No power cell" +msgstr "Pas de pile" -msgid "The expression must return a boolean value" -msgstr "L'expression doit ętre un boolean" +msgid "Inappropriate cell type" +msgstr "Pas le bon type de pile" -msgid "The function returned no value " -msgstr "La fonction n'a pas retourné de résultat" +msgid "Research program already performed" +msgstr "Recherche déjà effectuée" -msgid "" -"The list is only available if a \\l;radar station\\u object\\radar; is " -"working.\n" -msgstr "Liste non disponible sans \\l;radar\\u object\\radar;.\n" +msgid "Not enough energy yet" +msgstr "Pas encore assez d'énergie" + +msgid "No titanium to transform" +msgstr "Pas de titanium à transformer" -msgid "" -"The mission is not accomplished yet (press \\key help; for more details)" -msgstr "" -"La misssion n'est pas terminée (appuyez sur \\key help; pour plus de détails)" +msgid "Transforms only titanium" +msgstr "Ne transforme que le titanium" -msgid "The types of the two operands are incompatible " -msgstr "Les deux opérandes ne sont pas de types compatibles" +msgid "Doors blocked by a robot or another object " +msgstr "Portes bloquées par un robot ou un objet" -msgid "This class already exists" -msgstr "Cette classe existe déjà" +msgid "You must get on the spaceship to take off " +msgstr "Vous devez embarquer pour pouvoir décoller" -msgid "This class does not exist" -msgstr "Cette classe n'existe pas" +msgid "Nothing to analyze" +msgstr "Rien à analyser" -msgid "This is not a member of this class" -msgstr "Cet élément n'existe pas dans cette classe" +msgid "Analyzes only organic matter" +msgstr "N'analyse que la matière organique" -msgid "This label does not exist" -msgstr "Cette étiquette n'existe pas" +msgid "Analysis already performed" +msgstr "Analyse déjà effectuée" -msgid "This object is not a member of a class" -msgstr "L'objet n'est pas une instance d'une classe" +msgid "Not yet enough energy" +msgstr "Pas encore assez d'énergie" -msgid "Thump (\\key action;)" -msgstr "Secoue (\\key action;)" +msgid "No uranium to transform" +msgstr "Pas d'uranium à transformer" -msgid "Thumper" -msgstr "Robot secoueur" +msgid "Transforms only uranium" +msgstr "Ne transforme que l'uranium" -msgid "Titanium" -msgstr "Titanium" +msgid "No titanium" +msgstr "Pas de titanium" -msgid "Titanium available" -msgstr "Titanium disponible" +msgid "No information exchange post within range" +msgstr "Pas trouvé de borne d'information" -msgid "Titanium deposit (site for derrick)" -msgstr "Emplacement pour derrick (titanium)" +msgid "Program infected by a virus" +msgstr "Un programme est infecté par un virus" -msgid "Titanium ore" -msgstr "Minerai de titanium" +msgid "Infected by a virus; temporarily out of order" +msgstr "Infecté par un virus; ne fonctionne plus temporairement" -msgid "Titanium too close" -msgstr "Titanium trop proche" +msgid "Impossible when swimming" +msgstr "Impossible en nageant" -msgid "Titanium too far away" -msgstr "Titanium trop loin" +msgid "Impossible when carrying an object" +msgstr "Impossible en portant un objet" -msgid "Too close to a building" -msgstr "Trop proche d'un bâtiment" +msgid "Too many flags of this color (maximum 5)" +msgstr "Trop de drapeaux de cette couleur (maximum 5)" msgid "Too close to an existing flag" msgstr "Trop proche d'un drapeau existant" -msgid "Too close to space ship" -msgstr "Trop proche du vaisseau spatial" +msgid "No flag nearby" +msgstr "Aucun drapeau à proximité" -msgid "Too many flags of this color (maximum 5)" -msgstr "Trop de drapeaux de cette couleur (maximum 5)" +msgid "Not found anything to destroy" +msgstr "" -msgid "Too many parameters" -msgstr "Trop de paramètres" +msgid "Inappropriate object" +msgstr "" -msgid "Tracked grabber" -msgstr "Robot déménageur" +msgid "" +"The mission is not accomplished yet (press \\key help; for more details)" +msgstr "" +"La misssion n'est pas terminée (appuyez sur \\key help; pour plus de détails)" -msgid "Tracked orga shooter" -msgstr "Robot orgaShooter" +msgid "Bot destroyed" +msgstr "Robot détruit" -msgid "Tracked shooter" -msgstr "Robot shooter" +msgid "Building destroyed" +msgstr "Bâtiment détruit" -msgid "Tracked sniffer" -msgstr "Robot renifleur" +msgid "Can not create this; there are too many objects" +msgstr "Création impossible; il y a trop d'objets" -msgid "Transforms only titanium" -msgstr "Ne transforme que le titanium" +#, c-format +msgid "\"%s\" missing in this exercise" +msgstr "Il manque \"%s\" dans le programme" -msgid "Transforms only uranium" -msgstr "Ne transforme que l'uranium" +msgid "Do not use in this exercise" +msgstr "Interdit dans cet exercice" -msgid "Transmitted information" -msgstr "Informations diffusées" +msgid "Building completed" +msgstr "Bâtiment terminé" -msgid "Turn left (\\key left;)" -msgstr "Tourne à gauche (\\key left;)" +msgid "Titanium available" +msgstr "Titanium disponible" -msgid "Turn left\\turns the bot to the left" -msgstr "Tourner à gauche\\Moteur à gauche" +msgid "Research program completed" +msgstr "Recherche terminée" -msgid "Turn right (\\key right;)" -msgstr "Tourne à droite (\\key right;)" +msgid "Plans for tracked robots available " +msgstr "Fabrication d'un robot à chenilles possible" -msgid "Turn right\\turns the bot to the right" -msgstr "Tourner à droite\\Moteur à droite" +msgid "You can fly with the keys (\\key gup;) and (\\key gdown;)" +msgstr "" +"Il est possible de voler avec les touches (\\key gup;) et (\\key gdown;)" -msgid "Type declaration missing" -msgstr "Déclaration de type attendu" +msgid "Plans for thumper available" +msgstr "Fabrication d'un robot secoueur possible" -msgid "Undo (Ctrl+z)" -msgstr "Annuler (Ctrl+z)" +msgid "Plans for shooter available" +msgstr "Fabrication de robots shooter possible" -msgid "Unit" -msgstr "Unité" +msgid "Plans for defense tower available" +msgstr "Construction d'une tour de défense possible" -msgid "Unknown Object" -msgstr "Objet n'existe pas" +msgid "Plans for phazer shooter available" +msgstr "Fabrication d'un robot phazer possible" -msgid "Unknown command" -msgstr "Commande inconnue" +msgid "Plans for shielder available" +msgstr "Fabrication d'un robot bouclier possible" -msgid "Unknown function" -msgstr "Routine inconnue" +msgid "Plans for nuclear power plant available" +msgstr "Construction d'une centrale nucléaire possible" -msgid "Up (\\key gup;)" -msgstr "Monte (\\key gup;)" +msgid "New bot available" +msgstr "Nouveau robot disponible" -msgid "Uranium deposit (site for derrick)" -msgstr "Emplacement pour derrick (uranium)" +msgid "Analysis performed" +msgstr "Analyse terminée" -msgid "Uranium ore" -msgstr "Minerai d'uranium" +msgid "Power cell available" +msgstr "Pile disponible" -msgid "Use a joystick\\Joystick or keyboard" -msgstr "Utilise un joystick\\Joystick ou clavier" +msgid "Nuclear power cell available" +msgstr "Pile nucléaire disponible" -msgid "User levels" -msgstr "Niveaux supplémentaires" +msgid "You found a usable object" +msgstr "Vous avez trouvé un objet utilisable" -msgid "User\\User levels" -msgstr "Suppl.\\Niveaux supplémentaires" +msgid "Found a site for power station" +msgstr "Emplacement pour station trouvé" -msgid "Variable name missing" -msgstr "Nom d'une variable attendu" +msgid "Found a site for a derrick" +msgstr "Emplacement pour derrick trouvé" -msgid "Variable not declared" -msgstr "Variable non déclarée" +msgid "<<< Well done; mission accomplished >>>" +msgstr "<<< Bravo; mission terminée >>>" -msgid "Variable not initialized" -msgstr "Variable non initialisée" +msgid "<<< Sorry; mission failed >>>" +msgstr "<<< Désolé; mission échouée >>>" -msgid "Vault" -msgstr "Coffre-fort" +msgid "Current mission saved" +msgstr "Enregistrement effectué" -msgid "Violet flag" -msgstr "Drapeau violet" +msgid "Checkpoint crossed" +msgstr "Indicateur atteint" -msgid "Void parameter" -msgstr "Paramètre void" +msgid "Alien Queen killed" +msgstr "Pondeuse mortellement touchée" -msgid "Wasp" -msgstr "Guępe" +msgid "Ant fatally wounded" +msgstr "Fourmi mortellement touchée" msgid "Wasp fatally wounded" msgstr "Guępe mortellement touchée" -msgid "Waste" -msgstr "Déchet" +msgid "Worm fatally wounded" +msgstr "Ver mortellement touché" -msgid "Wheeled grabber" -msgstr "Robot déménageur" +msgid "Spider fatally wounded" +msgstr "Araignée mortellement touchée" -msgid "Wheeled orga shooter" -msgstr "Robot orgaShooter" +msgid "Press \\key help; to read instructions on your SatCom" +msgstr "Consultez votre SatCom en appuyant sur \\key help;" -msgid "Wheeled shooter" -msgstr "Robot shooter" +msgid "Opening bracket missing" +msgstr "Il manque une parenthèse ouvrante" -msgid "Wheeled sniffer" -msgstr "Robot renifleur" +msgid "Closing bracket missing " +msgstr "Il manque une parenthèse fermante" -msgid "Win" -msgstr "Gagné" +msgid "The expression must return a boolean value" +msgstr "L'expression doit ętre un boolean" -msgid "Winged grabber" -msgstr "Robot déménageur" +msgid "Variable not declared" +msgstr "Variable non déclarée" -msgid "Winged orga shooter" -msgstr "Robot orgaShooter" +msgid "Assignment impossible" +msgstr "Assignation impossible" -msgid "Winged shooter" -msgstr "Robot shooter" +msgid "Semicolon terminator missing" +msgstr "Terminateur point-virgule non trouvé" -msgid "Winged sniffer" -msgstr "Robot renifleur" +msgid "Instruction \"case\" outside a block \"switch\"" +msgstr "Instruction \"case\" hors d'un bloc \"switch\"" -msgid "Withdraw shield (\\key action;)" -msgstr "Stoppe le bouclier (\\key action;)" +msgid "Instructions after the final closing brace" +msgstr "Instructions après la fin" + +msgid "End of block missing" +msgstr "Il manque la fin du bloc" + +msgid "Instruction \"else\" without corresponding \"if\" " +msgstr "Instruction \"else\" sans \"if\" correspondant" + +msgid "Opening brace missing " +msgstr "Début d'un bloc attendu" + +msgid "Wrong type for the assignment" +msgstr "Mauvais type de résultat pour l'assignation" -msgid "Worm" -msgstr "Ver" +msgid "A variable can not be declared twice" +msgstr "Redéfinition d'une variable" -msgid "Worm fatally wounded" -msgstr "Ver mortellement touché" +msgid "The types of the two operands are incompatible " +msgstr "Les deux opérandes ne sont pas de types compatibles" -msgid "Wreckage" -msgstr "Epave de robot" +msgid "Unknown function" +msgstr "Routine inconnue" -msgid "Write error" -msgstr "Erreur à l'écriture" +msgid "Sign \" : \" missing" +msgstr "Séparateur \" : \" attendu" -msgid "Wrong type for the assignment" -msgstr "Mauvais type de résultat pour l'assignation" +msgid "Keyword \"while\" missing" +msgstr "Manque le mot \"while\"" -msgid "Yellow flag" -msgstr "Drapeau jaune" +msgid "Instruction \"break\" outside a loop" +msgstr "Instruction \"break\" en dehors d'une boucle" -msgid "You can fly with the keys (\\key gup;) and (\\key gdown;)" +msgid "A label must be followed by \"for\"; \"while\"; \"do\" or \"switch\"" msgstr "" -"Il est possible de voler avec les touches (\\key gup;) et (\\key gdown;)" +"Un label ne peut se placer que devant un \"for\"; un \"while\"; un \"do\" ou " +"un \"switch\"" -msgid "You can not carry a radioactive object" -msgstr "Vous ne pouvez pas transporter un objet radioactif" +msgid "This label does not exist" +msgstr "Cette étiquette n'existe pas" -msgid "You can not carry an object under water" -msgstr "Vous ne pouvez pas transporter un objet sous l'eau" +msgid "Instruction \"case\" missing" +msgstr "Manque une instruction \"case\"" -msgid "You found a usable object" -msgstr "Vous avez trouvé un objet utilisable" +msgid "Number missing" +msgstr "Un nombre est attendu" -msgid "You must get on the spaceship to take off " -msgstr "Vous devez embarquer pour pouvoir décoller" +msgid "Void parameter" +msgstr "Paramètre void" -msgid "Zoom mini-map" -msgstr "Zoom mini-carte" +msgid "Type declaration missing" +msgstr "Déclaration de type attendu" -msgid "\\Blue flags" -msgstr "\\Drapeaux bleus" +msgid "Variable name missing" +msgstr "Nom d'une variable attendu" -msgid "\\Eyeglasses 1" -msgstr "\\Lunettes 1" +msgid "Function name missing" +msgstr "Nom de la fonction attendu" -msgid "\\Eyeglasses 2" -msgstr "\\Lunettes 2" +msgid "Too many parameters" +msgstr "Trop de paramètres" -msgid "\\Eyeglasses 3" -msgstr "\\Lunettes 3" +msgid "Function already exists" +msgstr "Cette fonction existe déjà" -msgid "\\Eyeglasses 4" -msgstr "\\Lunettes 4" +msgid "Parameters missing " +msgstr "Pas assez de paramètres" -msgid "\\Eyeglasses 5" -msgstr "\\Lunettes 5" +msgid "No function with this name accepts this kind of parameter" +msgstr "Aucune fonction de ce nom n'accepte ce(s) type(s) de paramètre(s)" -msgid "\\Face 1" -msgstr "\\Visage 1" +msgid "No function with this name accepts this number of parameters" +msgstr "Aucune fonction de ce nom n'accepte ce nombre de paramètres" -msgid "\\Face 2" -msgstr "\\Visage 2" +msgid "This is not a member of this class" +msgstr "Cet élément n'existe pas dans cette classe" -msgid "\\Face 3" -msgstr "\\Visage 3" +msgid "This object is not a member of a class" +msgstr "L'objet n'est pas une instance d'une classe" -msgid "\\Face 4" -msgstr "\\Visage 4" +msgid "Appropriate constructor missing" +msgstr "Il n'y a pas de constructeur approprié" -msgid "\\Green flags" -msgstr "\\Drapeaux verts" +msgid "This class already exists" +msgstr "Cette classe existe déjà" -msgid "\\New player name" -msgstr "\\Nom du joueur à créer" +msgid "\" ] \" missing" +msgstr "\" ] \" attendu" -msgid "\\No eyeglasses" -msgstr "\\Pas de lunettes" +msgid "Reserved keyword of CBOT language" +msgstr "Ce mot est réservé" -msgid "\\Raise the pencil" -msgstr "\\Relève le crayon" +msgid "Bad argument for \"new\"" +msgstr "Mauvais argument pour \"new\"" -msgid "\\Red flags" -msgstr "\\Drapeaux rouges" +msgid "\" [ \" expected" +msgstr "\" [ \" attendu" -msgid "\\Return to COLOBOT" -msgstr "\\Retourner dans COLOBOT" +msgid "String missing" +msgstr "Une chaîne de caractère est attendue" -msgid "\\SatCom on standby" -msgstr "\\Mettre le SatCom en veille" +msgid "Incorrect index type" +msgstr "Mauvais type d'index" -msgid "\\Start recording" -msgstr "\\Démarre l'enregistrement" +msgid "Private element" +msgstr "Elément protégé" -msgid "\\Stop recording" -msgstr "\\Stoppe l'enregistrement" +msgid "Public required" +msgstr "Public requis" -msgid "\\Turn left" -msgstr "\\Rotation à gauche" +msgid "Dividing by zero" +msgstr "Division par zéro" -msgid "\\Turn right" -msgstr "\\Rotation à droite" +msgid "Variable not initialized" +msgstr "Variable non initialisée" -msgid "\\Use the black pencil" -msgstr "\\Abaisse le crayon noir" +msgid "Negative value rejected by \"throw\"" +msgstr "Valeur négative refusée pour \"throw\"" -msgid "\\Use the blue pencil" -msgstr "\\Abaisse le crayon bleu" +msgid "The function returned no value " +msgstr "La fonction n'a pas retourné de résultat" -msgid "\\Use the brown pencil" -msgstr "\\Abaisse le crayon brun" +msgid "No function running" +msgstr "Pas de fonction en exécution" -msgid "\\Use the green pencil" -msgstr "\\Abaisse le crayon vert" +msgid "Calling an unknown function" +msgstr "Appel d'une fonction inexistante" -msgid "\\Use the orange pencil" -msgstr "\\Abaisse le crayon orange" +msgid "This class does not exist" +msgstr "Cette classe n'existe pas" -msgid "\\Use the purple pencil" -msgstr "\\Abaisse le crayon violet" +msgid "Unknown Object" +msgstr "Objet n'existe pas" -msgid "\\Use the red pencil" -msgstr "\\Abaisse le crayon rouge" +msgid "Operation impossible with value \"nan\"" +msgstr "Opération sur un \"nan\"" -msgid "\\Use the yellow pencil" -msgstr "\\Abaisse le crayon jaune" +msgid "Access beyond array limit" +msgstr "Accès hors du tableau" -msgid "\\Violet flags" -msgstr "\\Drapeaux violets" +msgid "Stack overflow" +msgstr "Débordement de la pile" -msgid "\\Yellow flags" -msgstr "\\Drapeaux jaunes" +msgid "Illegal object" +msgstr "Objet inaccessible" -msgid "\\b;Aliens\n" -msgstr "\\b;Listes des ennemis\n" +msgid "Can't open file" +msgstr "Ouverture du fichier impossible" -msgid "\\b;Buildings\n" -msgstr "\\b;Listes des bâtiments\n" +msgid "File not open" +msgstr "Le fichier n'est pas ouvert" -msgid "\\b;Error\n" -msgstr "\\b;Erreur\n" +msgid "Read error" +msgstr "Erreur à la lecture" -msgid "\\b;List of objects\n" -msgstr "\\b;Listes des objets\n" +msgid "Write error" +msgstr "Erreur à l'écriture" -msgid "\\b;Moveable objects\n" -msgstr "\\b;Listes des objets transportables\n" +msgid "left;" +msgstr "" -msgid "\\b;Robots\n" -msgstr "\\b;Listes des robots\n" +msgid "right;" +msgstr "" -msgid "\\c; (none)\\n;\n" -msgstr "\\c; (aucun)\\n;\n" +msgid "up;" +msgstr "" -msgid "action;" +msgid "down;" msgstr "" -msgid "away;" +msgid "gup;" msgstr "" -msgid "camera;" +msgid "gdown;" msgstr "" -msgid "cbot;" +msgid "camera;" msgstr "" msgid "desel;" msgstr "" -msgid "down;" +msgid "action;" msgstr "" -msgid "gdown;" +msgid "near;" msgstr "" -msgid "gup;" +msgid "away;" msgstr "" -msgid "help;" +msgid "next;" msgstr "" msgid "human;" msgstr "" -msgid "left;" -msgstr "" - -msgid "near;" +msgid "quit;" msgstr "" -msgid "next;" +msgid "help;" msgstr "" msgid "prog;" msgstr "" -msgid "quit;" +msgid "cbot;" msgstr "" -msgid "right;" +msgid "visit;" msgstr "" msgid "speed10;" @@ -1829,14 +1819,26 @@ msgstr "" msgid "speed20;" msgstr "" -msgid "up;" -msgstr "" +msgid "Ctrl" +msgstr "Ctrl" -msgid "visit;" -msgstr "" +msgid "Shift" +msgstr "Shift" -msgid "www.epsitec.com" -msgstr "www.epsitec.com" +msgid "Alt" +msgstr "Alt" + +msgid "Win" +msgstr "Gagné" + +msgid "Button %1" +msgstr "Bouton %1" + +msgid "%1" +msgstr "%1" + +#~ msgid "Menu (\\key quit;)" +#~ msgstr "Menu (\\key quit;)" #~ msgid "< none >" #~ msgstr "< aucune >" @@ -1976,9 +1978,6 @@ msgstr "www.epsitec.com" #~ msgid "Left Windows" #~ msgstr "Left Windows" -#~ msgid "Menu (\\key quit;)" -#~ msgstr "Menu (\\key quit;)" - #~ msgid "Mini-map" #~ msgstr "Mini-carte" diff --git a/po/pl.po b/po/pl.po index 06ca367..8561d16 100644 --- a/po/pl.po +++ b/po/pl.po @@ -1,1845 +1,1860 @@ +# 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. msgid "" msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-07-10 16:50+0200\n" +"PO-Revision-Date: 2014-06-30 11:29+0200\n" +"Last-Translator: krzys_h \n" +"Language-Team: LANGUAGE \n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" +"X-Generator: Pootle 2.5.1.1\n" "X-Language: pl_PL\n" "X-Source-Language: en_US\n" +"X-POOTLE-MTIME: 1404124166.000000\n" -msgid " " -msgstr " " - -msgid " Challenges in the chapter:" -msgstr " Wyzwania w tym rozdziale:" - -msgid " Chapters:" -msgstr " Rozdziały:" - -msgid " Drivers:" -msgstr " Sterowniki:" +msgid "Colobot rules!" +msgstr "Colobot rządzi!" -msgid " Exercises in the chapter:" -msgstr " Ćwiczenia w tym rozdziale:" +msgid "SatCom" +msgstr "SatCom" -msgid " Free game on this chapter:" -msgstr " Swobodna gra na tej planecie:" +msgid "Maximize" +msgstr "Powiększ" -msgid " Free game on this planet:" -msgstr " Swobodna gra na tej planecie:" +msgid "Minimize" +msgstr "Pomniejsz" -msgid " Missions on this level:" -msgstr " Misje na tym poziomie:" +msgid "Normal size" +msgstr "Normalna wielkość" -msgid " Missions on this planet:" -msgstr " Misje na tej planecie:" +msgid "Close" +msgstr "Zamknij" -msgid " Planets:" -msgstr " Planety:" +msgid "Program editor" +msgstr "Edytor programu" -msgid " Resolution:" -msgstr " Rozdzielczość:" +msgid "New" +msgstr "Nowy" -msgid " Summary:" -msgstr " Streszczenie:" +msgid "Player" +msgstr "Gracz" -msgid " User levels:" -msgstr " Poziomy użytkownika:" +msgid "New ..." +msgstr "Nowy ..." msgid " or " msgstr " lub " -msgid "\" [ \" expected" -msgstr "Oczekiwane \" [ \"" +msgid "COLOBOT" +msgstr "COLOBOT" -msgid "\" ] \" missing" -msgstr "Brak \" ] \"" +msgid "COLOBOT: Gold Edition" +msgstr "COLOBOT: Gold Edition" -#, c-format -msgid "\"%s\" missing in this exercise" -msgstr "It misses \"%s\" in this exercise" +msgid "Programming exercises" +msgstr "Ćwiczenia programistyczne" -msgid "%1" -msgstr "" +msgid "Challenges" +msgstr "Wyzwania" -msgid "..behind" -msgstr "..za" +msgid "Missions" +msgstr "Misje" -msgid "..in front" -msgstr "..przed" +msgid "Free game" +msgstr "Swobodna gra" -msgid "..power cell" -msgstr "..ogniwo elektryczne" +msgid "User levels" +msgstr "Poziomy użytkownika" -msgid "1) First click on the key you want to redefine." -msgstr "1) Najpierw kliknij klawisz, który chcesz przedefiniować." +msgid "Options" +msgstr "Opcje" -msgid "2) Then press the key you want to use instead." -msgstr "2) Następnie naciśnij klawisz, którego chcesz używać." +msgid "Player's name" +msgstr "Imię gracza" -msgid "3D sound\\3D positioning of the sound" -msgstr "Dźwięk 3D\\Przestrzenne pozycjonowanie dźwięków" +msgid "Customize your appearance" +msgstr "Dostosuj wygląd" -msgid "<< Back \\Back to the previous screen" -msgstr "<< Wstecz \\Wraca do poprzedniego ekranu" +msgid "Save the current mission" +msgstr "Zapisz bieżącą misję" -msgid "<<< Sorry; mission failed >>>" -msgstr "<<< Niestety, misja nie powiodła się >>>" +msgid "Load a saved mission" +msgstr "Wczytaj zapisaną misję" -msgid "<<< Well done; mission accomplished >>>" -msgstr "<<< Dobra robota, misja wypełniona >>>" +msgid " Chapters:" +msgstr " Rozdziały:" -msgid "A label must be followed by \"for\"; \"while\"; \"do\" or \"switch\"" -msgstr "Po etykiecie musi wystąpić \"for\", \"while\", \"do\" lub \"switch\"" +msgid " Planets:" +msgstr " Planety:" -msgid "A variable can not be declared twice" -msgstr "Zmienna nie może być zadeklarowana dwukrotnie" +msgid " User levels:" +msgstr " Poziomy użytkownika:" -msgid "Abort\\Abort the current mission" -msgstr "Przerwij\\Przerywa bieżącą misję" +msgid " Exercises in the chapter:" +msgstr " Ćwiczenia w tym rozdziale:" -msgid "Access beyond array limit" -msgstr "Dostęp poza tablicę" +msgid " Challenges in the chapter:" +msgstr " Wyzwania w tym rozdziale:" -msgid "" -"Access to solution\\Shows the solution (detailed instructions for missions)" -msgstr "" -"Dostęp do rozwiązania\\Pokazuje rozwiązanie (szczegółowe instrukcje " -"dotyczące misji)" +msgid " Missions on this planet:" +msgstr " Misje na tej planecie:" -msgid "Access to solutions\\Show program \"4: Solution\" in the exercises" -msgstr "Accčs aux solutions\\Programme \"4: Solution\" dans les exercices" +msgid " Free game on this planet:" +msgstr " Swobodna gra na tej planecie:" -msgid "Alien Queen" -msgstr "Królowa Obcych" +msgid " Missions on this level:" +msgstr " Misje na tym poziomie:" -msgid "Alien Queen killed" -msgstr "Królowa Obcych została zabita" +msgid " Free game on this chapter:" +msgstr " Swobodna gra na tej planecie:" -msgid "Already carrying something" -msgstr "Nie można nieść więcej przedmiotów" +msgid " Summary:" +msgstr " Streszczenie:" -msgid "Alt" -msgstr "Alt" +msgid " Drivers:" +msgstr " Sterowniki:" -msgid "Analysis already performed" -msgstr "Analiza została już wykonana" +msgid " Resolution:" +msgstr " Rozdzielczość:" -msgid "Analysis performed" -msgstr "Analiza wykonana" +msgid "1) First click on the key you want to redefine." +msgstr "1) Najpierw kliknij klawisz, który chcesz przedefiniować." -msgid "Analyzes only organic matter" -msgstr "Analizuje jedynie materię organiczną" +msgid "2) Then press the key you want to use instead." +msgstr "2) Następnie naciśnij klawisz, którego chcesz używać." -msgid "Ant" -msgstr "Mrówka" +msgid "Face type:" +msgstr "Rodzaj twarzy:" -msgid "Ant fatally wounded" -msgstr "Mrówka śmiertelnie raniona" +msgid "Eyeglasses:" +msgstr "Okulary:" -msgid "Appearance\\Choose your appearance" -msgstr "Wygląd\\Wybierz swoją postać" +msgid "Hair color:" +msgstr "Kolor włosów:" -msgid "Apply changes\\Activates the changed settings" -msgstr "Zastosuj zmiany\\Aktywuje zmienione ustawienia" +msgid "Suit color:" +msgstr "Kolor skafandra:" -msgid "Appropriate constructor missing" -msgstr "Brak odpowiedniego konstruktora" +msgid "Strip color:" +msgstr "Kolor pasków:" -msgid "Assignment impossible" -msgstr "Przypisanie niemożliwe" +msgid "Do you want to quit COLOBOT ?" +msgstr "Czy na pewno chcesz opuścić grę COLOBOT?" -msgid "Autolab" -msgstr "Laboratorium" +msgid "Quit\\Quit COLOBOT" +msgstr "Zakończ\\Kończy grę COLOBOT" -msgid "Automatic indent\\When program editing" -msgstr "Automatyczne wcięcia\\Automatyczne wcięcia podczas edycji programu" +msgid "Quit the mission?" +msgstr "Opuścić misję?" -msgid "Back" -msgstr "Wstecz" +msgid "Abort\\Abort the current mission" +msgstr "Przerwij\\Przerywa bieżącą misję" -msgid "Background sound :\\Volume of audio tracks on the CD" -msgstr "Muzyka w tle :\\Głośność ścieżek dźwiękowych z płyty CD" +msgid "Continue\\Continue the current mission" +msgstr "Kontynuuj\\Kontynuuje bieżącą misję" -msgid "Backward (\\key down;)" -msgstr "Cofnij (\\key down;)" +msgid "Continue\\Continue the game" +msgstr "Kontynuuj\\Kontynuuje grę" -msgid "Backward\\Moves backward" -msgstr "Wstecz\\Porusza do tyłu" +msgid "Do you really want to destroy the selected building?" +msgstr "Czy na pewno chcesz zniszczyć zaznaczony budynek?" -msgid "Bad argument for \"new\"" -msgstr "Zły argument dla funkcji \"new\"" +#, c-format +msgid "Do you want to delete %s's saved games? " +msgstr "Czy na pewno chcesz skasować zapisane gry gracza %s? " -msgid "Big indent\\Indent 2 or 4 spaces per level defined by braces" -msgstr "" -"Duże wcięcie\\2 lub 4 spacje wcięcia na każdy poziom zdefiniowany przez " -"klamry" +msgid "Delete" +msgstr "Usuń" -msgid "Black box" -msgstr "Czarna skrzynka" +msgid "Cancel" +msgstr "Anuluj" -msgid "Blue" -msgstr "Niebieski" +msgid "LOADING" +msgstr "WCZYTYWANIE" -msgid "Blue flag" -msgstr "Niebieska flaga" +msgid "Keyword help(\\key cbot;)" +msgstr "Skróty klawiszowe (\\key cbot;)" -msgid "Bot destroyed" -msgstr "Robot zniszczony" +msgid "Compilation ok (0 errors)" +msgstr "Program skompilowany (0 błędów)" -msgid "Bot factory" -msgstr "Fabryka robotów" +msgid "Program finished" +msgstr "Program zakończony" -msgid "Build a bot factory" -msgstr "Zbuduj fabrykę robotów" +msgid "\\b;List of objects\n" +msgstr "\\b;Lista obiektów\n" -msgid "Build a converter" -msgstr "Zbuduj hutę" +msgid "\\b;Robots\n" +msgstr "\\b;Roboty\n" -msgid "Build a defense tower" -msgstr "Zbuduj wieżę obronną" +msgid "\\b;Buildings\n" +msgstr "\\b;Budynki\n" -msgid "Build a derrick" -msgstr "Zbuduj kopalnię" +msgid "\\b;Moveable objects\n" +msgstr "\\b;Obiekty ruchome\n" -#, fuzzy -msgid "Build a destroyer" -msgstr "Budynek zniszczony" +msgid "\\b;Aliens\n" +msgstr "\\b;Obcy\n" -msgid "Build a exchange post" -msgstr "Zbuduj stację przekaźnikową" +msgid "\\c; (none)\\n;\n" +msgstr "" +"\\c; (brak)\\n" +";\n" -msgid "Build a legged grabber" -msgstr "Zbuduj transporter na nogach" +msgid "\\b;Error\n" +msgstr "\\b;Błąd\n" -msgid "Build a legged orga shooter" -msgstr "Zbuduj działo organiczne na nogach" +msgid "" +"The list is only available if a \\l;radar station\\u object\\radar; is " +"working.\n" +msgstr "" +"Lista jest dostępna jedynie gdy działa \\l;stacja radarowa\\u object\\radar;." +"\n" -msgid "Build a legged shooter" -msgstr "Zbuduj działo na nogach" +msgid "Open" +msgstr "Otwórz" -msgid "Build a legged sniffer" -msgstr "Zbuduj szperacz na nogach" +msgid "Save" +msgstr "Zapisz" -msgid "Build a lightning conductor" -msgstr "Zbuduj odgromnik" +#, c-format +msgid "Folder: %s" +msgstr "Folder: %s" -msgid "Build a nuclear power plant" -msgstr "Zbuduj elektrownię atomową" +msgid "Name:" +msgstr "Nazwa:" -msgid "Build a phazer shooter" -msgstr "Zbuduj działo fazowe" +msgid "Folder:" +msgstr "Folder:" -msgid "Build a power cell factory" -msgstr "Zbuduj fabrykę ogniw elektrycznych" +msgid "Private\\Private folder" +msgstr "Prywatny\\Folder prywatny" -msgid "Build a power station" -msgstr "Zbuduj elektrownię" +msgid "Public\\Common folder" +msgstr "Publiczny\\Folder ogólnodostępny" -msgid "Build a radar station" -msgstr "Zbuduj stację radarową" +msgid "Developed by :" +msgstr "Twórcy:" -msgid "Build a recycler" -msgstr "Zbuduj robota recyklera" +msgid "www.epsitec.com" +msgstr "www.epsitec.com" -msgid "Build a repair center" -msgstr "Zbuduj warsztat" +msgid " " +msgstr " " -msgid "Build a research center" -msgstr "Zbuduj centrum badawcze" +msgid "Recorder" +msgstr "Recorder" -msgid "Build a shielder" -msgstr "Zbuduj robota osłaniajacza" +msgid "OK" +msgstr "OK" -msgid "Build a subber" -msgstr "Zbuduj robota nurka" +msgid "Next" +msgstr "Następny" -msgid "Build a thumper" -msgstr "Zbuduj robota uderzacza" +msgid "Previous" +msgstr "Poprzedni" -msgid "Build a tracked grabber" -msgstr "Zbuduj transporter na gąsienicach" +msgid "Exercises\\Programming exercises" +msgstr "Ćwiczenia\\Ćwiczenia programistyczne" -msgid "Build a tracked orga shooter" -msgstr "Zbuduj działo organiczne na gąsienicach" +msgid "Challenges\\Programming challenges" +msgstr "Wyzwania\\Wyzwania programistyczne" -msgid "Build a tracked shooter" -msgstr "Zbuduj działo na gąsienicach" +msgid "Missions\\Select mission" +msgstr "Misje\\Wybierz misję" -msgid "Build a tracked sniffer" -msgstr "Zbuduj szperacz na gąsienicach" +msgid "Free game\\Free game without a specific goal" +msgstr "Swobodna gra\\Swobodna gra bez konkretnych celów" -msgid "Build a wheeled grabber" -msgstr "Zbuduj transporter na kołach" +msgid "User\\User levels" +msgstr "Poziomy\\Poziomy użytkownika" -msgid "Build a wheeled orga shooter" -msgstr "Zbuduj działo organiczne na kołach" +msgid "Change player\\Change player" +msgstr "Zmień gracza\\Zmień gracza" -msgid "Build a wheeled shooter" -msgstr "Zbuduj działo na kołach" +msgid "Options\\Preferences" +msgstr "Opcje\\Preferencje" -msgid "Build a wheeled sniffer" -msgstr "Zbuduj szperacz na kołach" +msgid "Restart\\Restart the mission from the beginning" +msgstr "Uruchom ponownie\\Uruchamia ponownie misję od początku" -msgid "Build a winged grabber" -msgstr "Zbuduj transporter latający" +msgid "Save\\Save the current mission " +msgstr "Zapisz\\Zapisuje bieżącą misję" -msgid "Build a winged orga shooter" -msgstr "Zbuduj latające działo organiczne" +msgid "Load\\Load a saved mission" +msgstr "Wczytaj\\Wczytuje zapisaną misję" -msgid "Build a winged shooter" -msgstr "Zbuduj działo latające" +msgid "\\Return to COLOBOT" +msgstr "\\Powróć do gry COLOBOT" -msgid "Build a winged sniffer" -msgstr "Zbuduj szperacz latający" +msgid "<< Back \\Back to the previous screen" +msgstr "<< Wstecz \\Wraca do poprzedniego ekranu" -msgid "Build an autolab" -msgstr "Zbuduj laboratorium" +msgid "Play\\Start mission!" +msgstr "Graj\\Rozpoczyna misję!" -msgid "Building completed" -msgstr "Budowa zakończona" +msgid "Device\\Driver and resolution settings" +msgstr "Urządzenie\\Ustawienia sterownika i rozdzielczości" -msgid "Building destroyed" -msgstr "Budynek zniszczony" +msgid "Graphics\\Graphics settings" +msgstr "Grafika\\Ustawienia grafiki" -msgid "Building too close" -msgstr "Budynek za blisko" +msgid "Game\\Game settings" +msgstr "Gra\\Ustawienia gry" -msgid "Button %1" -msgstr "Przycisk %1" +msgid "Controls\\Keyboard, joystick and mouse settings" +msgstr "Sterowanie\\Ustawienia klawiatury, joysticka i myszy" -msgid "COLOBOT" -msgstr "COLOBOT" +msgid "Sound\\Music and game sound volume" +msgstr "Dźwięk\\Głośność muzyki i dźwięków gry" -msgid "COLOBOT: Gold Edition" -msgstr "COLOBOT: Gold Edition" +msgid "Unit" +msgstr "Jednostka" -msgid "Calling an unknown function" -msgstr "Odwołanie do nieznanej funkcji" +msgid "Resolution" +msgstr "Rozdzielczość" -msgid "Camera (\\key camera;)" -msgstr "Kamera (\\key camera;)" +msgid "Full screen\\Full screen or window mode" +msgstr "Pełny ekran\\Pełny ekran lub tryb okna" -msgid "Camera awayest" -msgstr "Camera awayest" +msgid "Apply changes\\Activates the changed settings" +msgstr "Zastosuj zmiany\\Aktywuje zmienione ustawienia" -msgid "Camera back\\Moves the camera backward" -msgstr "Kamera dalej\\Oddala kamerę" +msgid "Robbie\\Your assistant" +msgstr "Robbie\\Twój asystent" -msgid "Camera closer\\Moves the camera forward" -msgstr "Kamera bliżej\\Przybliża kamerę" +msgid "Shadows\\Shadows on the ground" +msgstr "Cienie\\Cienie na ziemi" -msgid "Camera nearest" -msgstr "Camera nearest" +msgid "Marks on the ground\\Marks on the ground" +msgstr "Znaki na ziemi\\Znaki na ziemi" -msgid "Camera to left" -msgstr "Camera to left" +msgid "Dust\\Dust and dirt on bots and buildings" +msgstr "Kurz\\Kurz i bród na robotach i budynkach" -msgid "Camera to right" -msgstr "Camera to right" +msgid "Fog\\Fog" +msgstr "Mgła\\Mgła" -msgid "Can not create this; there are too many objects" -msgstr "Nie można tego utworzyć, za dużo obiektów" +msgid "Sunbeams\\Sunbeams in the sky" +msgstr "Promienie słoneczne\\Promienie słoneczne na niebie" -msgid "Can not produce not researched object" -msgstr "" +msgid "Sky\\Clouds and nebulae" +msgstr "Niebo\\Chmury i mgławice" -msgid "Can not produce this object in this mission" -msgstr "" +msgid "Planets and stars\\Astronomical objects in the sky" +msgstr "Planety i gwiazdy\\Obiekty astronomiczne na niebie" -msgid "Can't open file" -msgstr "Nie można otworzyć pliku" +msgid "Dynamic lighting\\Mobile light sources" +msgstr "Dynamiczne oświetlenie\\Ruchome źródła światła" -msgid "Cancel" -msgstr "Anuluj" +msgid "Number of particles\\Explosions, dust, reflections, etc." +msgstr "Liczba cząstek\\Wybuchy, kurz, odbicia, itp." -msgid "Cancel\\Cancel all changes" -msgstr "Anuluj\\Pomija wszystkie zmiany" +msgid "Depth of field\\Maximum visibility" +msgstr "Głębokość pola\\Maksymalna widoczność" -msgid "Cancel\\Keep current player name" -msgstr "Anuluj\\Zachowuje bieżące imię gracza" +msgid "Details\\Visual quality of 3D objects" +msgstr "Szczegóły\\Jakość wizualna obiektów 3D" -msgid "Challenges" -msgstr "Wyzwania" +msgid "Textures\\Quality of textures " +msgstr "Tekstury\\Jakość tekstur " -msgid "Challenges\\Programming challenges" -msgstr "Wyzwania\\Wyzwania programistyczne" +msgid "Num of decorative objects\\Number of purely ornamental objects" +msgstr "Ilość elementów dekoracyjnych \\Ilość elementów czysto dekoracyjnych" -msgid "Change camera\\Switches between onboard camera and following camera" -msgstr "Zmień kamerę\\Przełącza pomiędzy kamerą pokładową i śledzącą" +msgid "Particles in the interface\\Steam clouds and sparks in the interface" +msgstr "Cząstki w interfejsie\\Para i iskry z silników w interfejsie" -msgid "Change player\\Change player" -msgstr "Zmień gracza\\Zmień gracza" +msgid "Reflections on the buttons \\Shiny buttons" +msgstr "Odbicia na przyciskach \\Świecące przyciski" -msgid "Checkpoint" -msgstr "Punkt kontrolny" +msgid "Help balloons\\Explain the function of the buttons" +msgstr "Dymki pomocy\\Wyjaśnia funkcje przycisków" -msgid "Checkpoint crossed" -msgstr "Przekroczono punkt kontrolny" +msgid "Film sequences\\Films before and after the missions" +msgstr "Sekwencje filmowe\\Filmy przed rozpoczęciem i na zakończenie misji" -msgid "Climb\\Increases the power of the jet" -msgstr "W górę\\Zwiększa moc silnika" +msgid "Exit film\\Film at the exit of exercises" +msgstr "Końcowy film\\Film na zakończenie ćwiczeń" -msgid "Close" -msgstr "Zamknij" +msgid "Friendly fire\\Your shooting can damage your own objects " +msgstr "Przyjacielski ogień\\Własne strzały uszkadzają Twoje obiekty" -msgid "Closing bracket missing " -msgstr "Brak nawiasu zamykającego" +msgid "Scrolling\\Scrolling when the mouse touches right or left border" +msgstr "" +"Przewijanie\\Ekran jest przewijany gdy mysz dotknie prawej lub lewej jego " +"krawędzi" -msgid "Colobot rules!" -msgstr "Colobot rządzi!" +msgid "Mouse inversion X\\Inversion of the scrolling direction on the X axis" +msgstr "Odwrócenie myszy X\\Odwrócenie kierunków przewijania w poziomie" -msgid "Command line" -msgstr "Linia polecenia" +msgid "Mouse inversion Y\\Inversion of the scrolling direction on the Y axis" +msgstr "Odwrócenie myszy Y\\Odwrócenie kierunków przewijania w pionie" -msgid "Compass" -msgstr "Kompas" +msgid "Quake at explosions\\The screen shakes at explosions" +msgstr "Wstrząsy przy wybuchach\\Ekran trzęsie się podczas wybuchów" -msgid "Compilation ok (0 errors)" -msgstr "Program skompilowany (0 błędów)" +msgid "Mouse shadow\\Gives the mouse a shadow" +msgstr "Cień kursora myszy\\Dodaje cień kursorowi myszy" -msgid "Compile" -msgstr "Kompiluj" +msgid "Automatic indent\\When program editing" +msgstr "Automatyczne wcięcia\\Automatyczne wcięcia podczas edycji programu" -msgid "Continue" -msgstr "Kontynuuj" +msgid "Big indent\\Indent 2 or 4 spaces per level defined by braces" +msgstr "" +"Duże wcięcie\\2 lub 4 spacje wcięcia na każdy poziom zdefiniowany przez " +"klamry" -msgid "Continue\\Continue the current mission" -msgstr "Kontynuuj\\Kontynuuje bieżącą misję" +msgid "Access to solutions\\Show program \"4: Solution\" in the exercises" +msgstr "Accčs aux solutions\\Programme \"4: Solution\" dans les exercices" -msgid "Continue\\Continue the game" -msgstr "Kontynuuj\\Kontynuuje grę" +msgid "Standard controls\\Standard key functions" +msgstr "Standardowa kontrola\\Standardowe klawisze funkcyjne" -msgid "Controls\\Keyboard, joystick and mouse settings" -msgstr "Sterowanie\\Ustawienia klawiatury, joysticka i myszy" +msgid "Turn left\\turns the bot to the left" +msgstr "Skręć w lewo\\Obraca robota w lewo" -msgid "Converts ore to titanium" -msgstr "Przetop rudę na tytan" +msgid "Turn right\\turns the bot to the right" +msgstr "Obróć w prawo\\Obraca robota w prawo" -msgid "Copy" -msgstr "Kopiuj" +msgid "Forward\\Moves forward" +msgstr "Naprzód\\Porusza do przodu" -msgid "Copy (Ctrl+c)" -msgstr "Kopiuj (Ctrl+C)" +msgid "Backward\\Moves backward" +msgstr "Wstecz\\Porusza do tyłu" -msgid "Ctrl" -msgstr "Ctrl" +msgid "Climb\\Increases the power of the jet" +msgstr "W górę\\Zwiększa moc silnika" -msgid "Current mission saved" -msgstr "Bieżąca misja zapisana" +msgid "Descend\\Reduces the power of the jet" +msgstr "W dół\\Zmniejsza moc silnika" -msgid "Customize your appearance" -msgstr "Dostosuj wygląd" +msgid "Change camera\\Switches between onboard camera and following camera" +msgstr "Zmień kamerę\\Przełącza pomiędzy kamerą pokładową i śledzącą" -msgid "Cut (Ctrl+x)" -msgstr "Wytnij (Ctrl+X)" +msgid "Previous object\\Selects the previous object" +msgstr "Poprzedni obiekt\\Zaznacz poprzedni obiekt" -msgid "Defense tower" -msgstr "Wieża obronna" +msgid "" +"Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)" +msgstr "" +"Standardowa akcja\\Standardowa akcja robota (podnieś/upuść, strzelaj, " +"szukaj, itp.)" -msgid "Delete" -msgstr "Usuń" +msgid "Camera closer\\Moves the camera forward" +msgstr "Kamera bliżej\\Przybliża kamerę" -msgid "Delete player\\Deletes the player from the list" -msgstr "Usuń gracza\\Usuwa gracza z listy" +msgid "Camera back\\Moves the camera backward" +msgstr "Kamera dalej\\Oddala kamerę" -msgid "Delete\\Deletes the selected file" -msgstr "Usuń\\Usuwa zaznaczony plik" +msgid "Next object\\Selects the next object" +msgstr "Następny obiekt\\Zaznacza następny obiekt" -msgid "Depth of field\\Maximum visibility" -msgstr "Głębokość pola\\Maksymalna widoczność" +msgid "Select the astronaut\\Selects the astronaut" +msgstr "Zaznacz astronautę\\Zaznacza astronautę" -msgid "Derrick" -msgstr "Kopalnia" +msgid "Quit\\Quit the current mission or exercise" +msgstr "Zakończ\\Kończy bieżącą misję lub ćwiczenie" -msgid "Descend\\Reduces the power of the jet" -msgstr "W dół\\Zmniejsza moc silnika" +msgid "Instructions\\Shows the instructions for the current mission" +msgstr "Rozkazy\\Pokazuje rozkazy dotyczące bieżącej misji" -#, fuzzy -msgid "Destroy" -msgstr "Destroyer" +msgid "Programming help\\Gives more detailed help with programming" +msgstr "Podręcznik programowania\\Dostarcza szczegółową pomoc w programowaniu" -msgid "Destroy the building" -msgstr "Zniszcz budynek" +msgid "Key word help\\More detailed help about key words" +msgstr "" +"Pomoc dot. słów kluczowych\\Dokładniejsza pomoc na temat słów kluczowych" -msgid "Destroyer" -msgstr "Destroyer" +msgid "Origin of last message\\Shows where the last message was sent from" +msgstr "" +"Miejsce nadania wiadomości\\Pokazuje skąd została wysłana ostatnia wiadomość" -msgid "Details\\Visual quality of 3D objects" -msgstr "Szczegóły\\Jakość wizualna obiektów 3D" +msgid "Speed 1.0x\\Normal speed" +msgstr "Prędkość 1,0x\\Prędkość normalna" -msgid "Developed by :" -msgstr "Twórcy:" +msgid "Speed 1.5x\\1.5 times faster" +msgstr "Prędkość 1,5x\\1,5 raza szybciej" -msgid "Device\\Driver and resolution settings" -msgstr "Urządzenie\\Ustawienia sterownika i rozdzielczości" +msgid "Speed 2.0x\\Double speed" +msgstr "Prędkość 2,0x\\Dwa razy szybciej" -msgid "Dividing by zero" -msgstr "Dzielenie przez zero" +msgid "Speed 3.0x\\Three times faster" +msgstr "Prędkość 3,0x\\Trzy razy szybciej" -msgid "Do not use in this exercise" -msgstr "Do not use in this exercise" +msgid "Sound effects:\\Volume of engines, voice, shooting, etc." +msgstr "Efekty dźwiękowe:\\Głośność silników, głosów, strzałów, itp." -msgid "Do you really want to destroy the selected building?" -msgstr "Czy na pewno chcesz zniszczyć zaznaczony budynek?" +msgid "Background sound :\\Volume of audio tracks on the CD" +msgstr "Muzyka w tle :\\Głośność ścieżek dźwiękowych z płyty CD" -#, c-format -msgid "Do you want to delete %s's saved games? " -msgstr "Czy na pewno chcesz skasować zapisane gry gracza %s? " +msgid "3D sound\\3D positioning of the sound" +msgstr "Dźwięk 3D\\Przestrzenne pozycjonowanie dźwięków" -msgid "Do you want to quit COLOBOT ?" -msgstr "Czy na pewno chcesz opuścić grę COLOBOT?" +msgid "Lowest\\Minimum graphic quality (highest frame rate)" +msgstr "" +"Najniższa\\Minimalna jakość grafiki (najwyższa częstotliwość odświeżania)" -msgid "Doors blocked by a robot or another object " -msgstr "Drzwi zablokowane przez robota lub inny obiekt " +msgid "Normal\\Normal graphic quality" +msgstr "Normalna\\Normalna jakość grafiki" -msgid "Down (\\key gdown;)" -msgstr "Dół (\\key gdown;)" +msgid "Highest\\Highest graphic quality (lowest frame rate)" +msgstr "" +"Najwyższa\\Maksymalna jakość grafiki (najniższa częstotliwość odświeżania)" -msgid "Drawer bot" -msgstr "Drawer bot" +msgid "Mute\\No sound" +msgstr "Cisza\\Brak dźwięków" -msgid "Dust\\Dust and dirt on bots and buildings" -msgstr "Kurz\\Kurz i bród na robotach i budynkach" +msgid "Normal\\Normal sound volume" +msgstr "Normalne\\Normalna głośność dźwięków" -msgid "Dynamic lighting\\Mobile light sources" -msgstr "Dynamiczne oświetlenie\\Ruchome źródła światła" +msgid "Use a joystick\\Joystick or keyboard" +msgstr "Używaj joysticka\\Joystick lub klawiatura" -msgid "Edit the selected program" -msgstr "Edytuj zaznaczony program" +msgid "" +"Access to solution\\Shows the solution (detailed instructions for missions)" +msgstr "" +"Dostęp do rozwiązania\\Pokazuje rozwiązanie (szczegółowe instrukcje " +"dotyczące misji)" -msgid "Egg" -msgstr "Jajo" +msgid "\\New player name" +msgstr "\\Nowe imię gracza" -msgid "End of block missing" -msgstr "Brak końca bloku" +msgid "OK\\Choose the selected player" +msgstr "OK\\Wybiera zaznaczonego gracza" -msgid "Energy deposit (site for power station)" -msgstr "Źródło energii (miejsce na elektrownię)" +msgid "Cancel\\Keep current player name" +msgstr "Anuluj\\Zachowuje bieżące imię gracza" -msgid "Energy level" -msgstr "Poziom energii" +msgid "Delete player\\Deletes the player from the list" +msgstr "Usuń gracza\\Usuwa gracza z listy" -msgid "Engineer" -msgstr "Inżynier" +msgid "Player name" +msgstr "Imię gracza" -msgid "Error in instruction move" -msgstr "Błąd w poleceniu ruchu" +msgid "Save\\Saves the current mission" +msgstr "Zapisz\\Zapisuje bieżącą misję" -msgid "Execute the selected program" -msgstr "Wykonaj zaznaczony program" +msgid "Load\\Loads the selected mission" +msgstr "Wczytaj\\Wczytuje zaznaczoną misję" -msgid "Execute/stop" -msgstr "Wykonaj/Zatrzymaj" +msgid "List of saved missions" +msgstr "Lista zapisanych misji" -msgid "Exercises\\Programming exercises" -msgstr "Ćwiczenia\\Ćwiczenia programistyczne" +msgid "Filename:" +msgstr "Nazwa pliku:" -msgid "Exit film\\Film at the exit of exercises" -msgstr "Końcowy film\\Film na zakończenie ćwiczeń" +msgid "Mission name" +msgstr "Nazwa misji" -#, fuzzy -msgid "Explode (\\key action;)" -msgstr "Odzyskaj (\\key action;)" +msgid "Photography" +msgstr "Fotografia" -msgid "Explosive" -msgstr "Materiały wybuchowe" +msgid "Delete\\Deletes the selected file" +msgstr "Usuń\\Usuwa zaznaczony plik" -msgid "Extend shield (\\key action;)" -msgstr "Rozszerz osłonę (\\key action;)" +msgid "Appearance\\Choose your appearance" +msgstr "Wygląd\\Wybierz swoją postać" -msgid "Eyeglasses:" -msgstr "Okulary:" +msgid "Standard\\Standard appearance settings" +msgstr "Standardowe\\Standardowe ustawienia wyglądu" -msgid "Face type:" -msgstr "Rodzaj twarzy:" +msgid "Head\\Face and hair" +msgstr "Głowa\\Twarz i włosy" -msgid "File not open" -msgstr "Plik nie jest otwarty" +msgid "Suit\\Astronaut suit" +msgstr "Skafander\\Skafander astronauty" -msgid "Filename:" -msgstr "Nazwa pliku:" +msgid "\\Turn left" +msgstr "\\Obróć w lewo" -msgid "Film sequences\\Films before and after the missions" -msgstr "Sekwencje filmowe\\Filmy przed rozpoczęciem i na zakończenie misji" +msgid "\\Turn right" +msgstr "\\Obróć w prawo" -msgid "Finish" -msgstr "Koniec" +msgid "Red" +msgstr "Czerwony" -msgid "Fixed mine" -msgstr "Mina" +msgid "Green" +msgstr "Zielony" -msgid "Flat ground not large enough" -msgstr "Za mało płaskiego terenu" +msgid "Blue" +msgstr "Niebieski" -msgid "Fog\\Fog" -msgstr "Mgła\\Mgła" +msgid "\\Face 1" +msgstr "\\Twarz 1" -msgid "Folder:" -msgstr "Folder:" +msgid "\\Face 4" +msgstr "\\Twarz 4" -#, c-format -msgid "Folder: %s" -msgstr "Folder: %s" +msgid "\\Face 3" +msgstr "\\Twarz 3" -msgid "Font size" -msgstr "Wielkość czcionki" +msgid "\\Face 2" +msgstr "\\Twarz 2" -msgid "Forward" -msgstr "Naprzód" +msgid "\\No eyeglasses" +msgstr "\\Bez okularów" -msgid "Forward (\\key up;)" -msgstr "Naprzód (\\key up;)" +msgid "\\Eyeglasses 1" +msgstr "\\Okulary 1" -msgid "Forward\\Moves forward" -msgstr "Naprzód\\Porusza do przodu" +msgid "\\Eyeglasses 2" +msgstr "\\Okulary 2" -msgid "Found a site for a derrick" -msgstr "Znaleziono miejsce na kopalnię" +msgid "\\Eyeglasses 3" +msgstr "\\Okulary 3" -msgid "Found a site for power station" -msgstr "Znaleziono miejsce na elektrownię" +msgid "\\Eyeglasses 4" +msgstr "\\Okulary 4" -msgid "Found key A (site for derrick)" -msgstr "Znaleziono klucz A (miejsce na kopalnię)" +msgid "\\Eyeglasses 5" +msgstr "\\Okulary 5" -msgid "Found key B (site for derrick)" -msgstr "Znaleziono klucz B (miejsce na kopalnię)" +msgid "Previous selection (\\key desel;)" +msgstr "Poprzednie zaznaczenie (\\key desel;)" -msgid "Found key C (site for derrick)" -msgstr "Znaleziono klucz C (miejsce na kopalnię)" +msgid "Turn left (\\key left;)" +msgstr "Skręć w lewo (\\key left;)" -msgid "Found key D (site for derrick)" -msgstr "Znaleziono klucz D (miejsce na kopalnię)" +msgid "Turn right (\\key right;)" +msgstr "Skręć w prawo (\\key right;)" -msgid "Free game" -msgstr "Swobodna gra" +msgid "Forward (\\key up;)" +msgstr "Naprzód (\\key up;)" -msgid "Free game\\Free game without a specific goal" -msgstr "Swobodna gra\\Swobodna gra bez konkretnych celów" +msgid "Backward (\\key down;)" +msgstr "Cofnij (\\key down;)" -msgid "Friendly fire\\Your shooting can damage your own objects " -msgstr "Przyjacielski ogień\\Własne strzały uszkadzają Twoje obiekty" +msgid "Up (\\key gup;)" +msgstr "Góra (\\key gup;)" -msgid "Full screen\\Full screen or window mode" -msgstr "Pełny ekran\\Pełny ekran lub tryb okna" +msgid "Down (\\key gdown;)" +msgstr "Dół (\\key gdown;)" -msgid "Function already exists" -msgstr "Funkcja już istnieje" +msgid "Grab or drop (\\key action;)" +msgstr "Podnieś lub upuść (\\key action;)" -msgid "Function name missing" -msgstr "Brakująca nazwa funkcji" +msgid "..in front" +msgstr "..przed" -msgid "Game speed" -msgstr "Prędkość gry" +msgid "..behind" +msgstr "..za" -msgid "Game\\Game settings" -msgstr "Gra\\Ustawienia gry" +msgid "..power cell" +msgstr "..ogniwo elektryczne" -msgid "Gantry crane" -msgstr "Żuraw przesuwalny" +msgid "Instructions for the mission (\\key help;)" +msgstr "Rozkazy dotyczące misji (\\key help;)" -msgid "Goto: destination occupied" -msgstr "Goto: miejsce docelowe zajęte" +msgid "Take off to finish the mission" +msgstr "Odleć, aby zakończyć misję" -msgid "Goto: inaccessible destination" -msgstr "Goto: miejsce docelowe niedostępne" +msgid "Destroy" +msgstr "" -msgid "Grab or drop (\\key action;)" -msgstr "Podnieś lub upuść (\\key action;)" +msgid "Build a derrick" +msgstr "Zbuduj kopalnię" -msgid "Graphics\\Graphics settings" -msgstr "Grafika\\Ustawienia grafiki" +msgid "Build a power station" +msgstr "Zbuduj elektrownię" -msgid "Green" -msgstr "Zielony" +msgid "Build a bot factory" +msgstr "Zbuduj fabrykę robotów" + +msgid "Build a repair center" +msgstr "Zbuduj warsztat" + +msgid "Build a converter" +msgstr "Zbuduj hutę" -msgid "Green flag" -msgstr "Zielona flaga" +msgid "Build a defense tower" +msgstr "Zbuduj wieżę obronną" -msgid "Ground inappropriate" -msgstr "Nieodpowiedni teren" +msgid "Build a research center" +msgstr "Zbuduj centrum badawcze" -msgid "Ground not flat enough" -msgstr "Powierzchnia nie jest wystarczająco płaska" +msgid "Build a radar station" +msgstr "Zbuduj stację radarową" -msgid "Hair color:" -msgstr "Kolor włosów:" +msgid "Build a power cell factory" +msgstr "Zbuduj fabrykę ogniw elektrycznych" -msgid "Head\\Face and hair" -msgstr "Głowa\\Twarz i włosy" +msgid "Build an autolab" +msgstr "Zbuduj laboratorium" -msgid "Help about selected object" -msgstr "Pomoc na temat zaznaczonego obiektu" +msgid "Build a nuclear power plant" +msgstr "Zbuduj elektrownię atomową" -msgid "Help balloons\\Explain the function of the buttons" -msgstr "Dymki pomocy\\Wyjaśnia funkcje przycisków" +msgid "Build a lightning conductor" +msgstr "Zbuduj odgromnik" -msgid "Highest\\Highest graphic quality (lowest frame rate)" +msgid "Build a exchange post" +msgstr "Zbuduj stację przekaźnikową" + +msgid "Build a destroyer" msgstr "" -"Najwyższa\\Maksymalna jakość grafiki (najniższa częstotliwość odświeżania)" -msgid "Home" -msgstr "Początek" +msgid "Show if the ground is flat" +msgstr "Pokaż czy teren jest płaski" -msgid "Houston Mission Control" -msgstr "Centrum Kontroli Misji w Houston" +msgid "Plant a flag" +msgstr "Postaw flagę" -msgid "Illegal object" -msgstr "Nieprawidłowy obiekt" +msgid "Remove a flag" +msgstr "Usuń flagę" -msgid "Impossible under water" -msgstr "Niemożliwe pod wodą" +msgid "\\Blue flags" +msgstr "\\Niebieskie flagi" -msgid "Impossible when carrying an object" -msgstr "Niemożliwe podczas przenoszenia przedmiotu" +msgid "\\Red flags" +msgstr "\\Czerwone flagi" -msgid "Impossible when flying" -msgstr "Niemożliwe podczas lotu" +msgid "\\Green flags" +msgstr "\\Zielone flagi" -msgid "Impossible when moving" -msgstr "Niemożliwe podczas ruchu" +msgid "\\Yellow flags" +msgstr "\\Żółte flagi" -msgid "Impossible when swimming" -msgstr "Niemożliwe podczas pływania" +msgid "\\Violet flags" +msgstr "\\Fioletowe flagi" -msgid "Inappropriate bot" -msgstr "Nieodpowiedni robot" +msgid "Build a winged grabber" +msgstr "Zbuduj transporter latający" -msgid "Inappropriate cell type" -msgstr "Nieodpowiedni rodzaj ogniw" +msgid "Build a tracked grabber" +msgstr "Zbuduj transporter na gąsienicach" -#, fuzzy -msgid "Inappropriate object" -msgstr "Nieodpowiedni robot" +msgid "Build a wheeled grabber" +msgstr "Zbuduj transporter na kołach" -msgid "Incorrect index type" -msgstr "Nieprawidłowy typ indeksu" +msgid "Build a legged grabber" +msgstr "Zbuduj transporter na nogach" -msgid "Infected by a virus; temporarily out of order" -msgstr "Zainfekowane wirusem, chwilowo niesprawne" +msgid "Build a winged shooter" +msgstr "Zbuduj działo latające" -msgid "Information exchange post" -msgstr "Stacja przekaźnikowa informacji" +msgid "Build a tracked shooter" +msgstr "Zbuduj działo na gąsienicach" -msgid "Instruction \"break\" outside a loop" -msgstr "Polecenie \"break\" na zewnątrz pętli" +msgid "Build a wheeled shooter" +msgstr "Zbuduj działo na kołach" -msgid "Instruction \"case\" missing" -msgstr "Brak polecenia \"case" +msgid "Build a legged shooter" +msgstr "Zbuduj działo na nogach" -msgid "Instruction \"case\" outside a block \"switch\"" -msgstr "Polecenie \"case\" na zewnątrz bloku \"switch\"" +msgid "Build a winged orga shooter" +msgstr "Zbuduj latające działo organiczne" -msgid "Instruction \"else\" without corresponding \"if\" " -msgstr "Polecenie \"else\" bez wystąpienia \"if\" " +msgid "Build a tracked orga shooter" +msgstr "Zbuduj działo organiczne na gąsienicach" -msgid "Instructions (\\key help;)" -msgstr "Rozkazy (\\key help;)" +msgid "Build a wheeled orga shooter" +msgstr "Zbuduj działo organiczne na kołach" -msgid "Instructions after the final closing brace" -msgstr "Polecenie po końcowej klamrze zamykającej" +msgid "Build a legged orga shooter" +msgstr "Zbuduj działo organiczne na nogach" -msgid "Instructions for the mission (\\key help;)" -msgstr "Rozkazy dotyczące misji (\\key help;)" +msgid "Build a winged sniffer" +msgstr "Zbuduj szperacz latający" -msgid "Instructions from Houston" -msgstr "Rozkazy z Houston" +msgid "Build a tracked sniffer" +msgstr "Zbuduj szperacz na gąsienicach" -msgid "Instructions\\Shows the instructions for the current mission" -msgstr "Rozkazy\\Pokazuje rozkazy dotyczące bieżącej misji" +msgid "Build a wheeled sniffer" +msgstr "Zbuduj szperacz na kołach" -msgid "Internal error - tell the developers" -msgstr "" +msgid "Build a legged sniffer" +msgstr "Zbuduj szperacz na nogach" -msgid "Jet temperature" -msgstr "Temperatura silnika" +msgid "Build a thumper" +msgstr "Zbuduj robota uderzacza" -msgid "Key A" -msgstr "Klucz A" +msgid "Build a phazer shooter" +msgstr "Zbuduj działo fazowe" -msgid "Key B" -msgstr "Klucz B" +msgid "Build a recycler" +msgstr "Zbuduj robota recyklera" -msgid "Key C" -msgstr "Klucz C" +msgid "Build a shielder" +msgstr "Zbuduj robota osłaniajacza" -msgid "Key D" -msgstr "Klucz D" +msgid "Build a subber" +msgstr "Zbuduj robota nurka" -msgid "Key word help\\More detailed help about key words" -msgstr "" -"Pomoc dot. słów kluczowych\\Dokładniejsza pomoc na temat słów kluczowych" +msgid "Run research program for tracked bots" +msgstr "Rozpocznij prace badawcze nad transporterem na gąsienicach" -msgid "Keyword \"while\" missing" -msgstr "Brak kluczowego słowa \"while" +msgid "Run research program for winged bots" +msgstr "Rozpocznij prace badawcze nad transporterem latającym" -msgid "Keyword help(\\key cbot;)" -msgstr "Skróty klawiszowe (\\key cbot;)" +msgid "Run research program for thumper" +msgstr "Rozpocznij prace badawcze nad robotem uderzaczem" -msgid "LOADING" -msgstr "WCZYTYWANIE" +msgid "Run research program for shooter" +msgstr "Rozpocznij prace badawcze nad działem" -msgid "Legged grabber" -msgstr "Transporter na nogach" +msgid "Run research program for defense tower" +msgstr "Rozpocznij prace badawcze nad wieżą obronną" -msgid "Legged orga shooter" -msgstr "Działo organiczne na nogach" +msgid "Run research program for phazer shooter" +msgstr "Rozpocznij prace badawcze nad działem fazowym" -msgid "Legged shooter" -msgstr "Działo na nogach" +msgid "Run research program for shielder" +msgstr "Rozpocznij prace badawcze nad robotem osłaniaczem" -msgid "Legged sniffer" -msgstr "Szperacz na nogach" +msgid "Run research program for nuclear power" +msgstr "Rozpocznij prace badawcze nad energią atomową" -msgid "Lightning conductor" -msgstr "Odgromnik" +msgid "Run research program for legged bots" +msgstr "Rozpocznij prace badawcze nad transporterem na nogach" -msgid "List of objects" -msgstr "Lista obiektów" +msgid "Run research program for orga shooter" +msgstr "Rozpocznij prace badawcze nad działem organicznym" -msgid "List of saved missions" -msgstr "Lista zapisanych misji" +msgid "Return to start" +msgstr "Powrót do początku" -msgid "Load a saved mission" -msgstr "Wczytaj zapisaną misję" +msgid "Sniff (\\key action;)" +msgstr "Szukaj (\\key action;)" -msgid "Load\\Load a saved mission" -msgstr "Wczytaj\\Wczytuje zapisaną misję" +msgid "Thump (\\key action;)" +msgstr "Uderz (\\key action;)" -msgid "Load\\Loads the selected mission" -msgstr "Wczytaj\\Wczytuje zaznaczoną misję" +msgid "Shoot (\\key action;)" +msgstr "Strzelaj (\\key action;)" -msgid "Lowest\\Minimum graphic quality (highest frame rate)" +msgid "Explode (\\key action;)" msgstr "" -"Najniższa\\Minimalna jakość grafiki (najwyższa częstotliwość odświeżania)" - -msgid "Lunar Roving Vehicle" -msgstr "Pojazd Księżycowy" - -msgid "Marks on the ground\\Marks on the ground" -msgstr "Znaki na ziemi\\Znaki na ziemi" -msgid "Maximize" -msgstr "Powiększ" +msgid "Recycle (\\key action;)" +msgstr "Odzyskaj (\\key action;)" -msgid "Minimize" -msgstr "Pomniejsz" +msgid "Extend shield (\\key action;)" +msgstr "Rozszerz osłonę (\\key action;)" -msgid "Mission name" -msgstr "Nazwa misji" +msgid "Withdraw shield (\\key action;)" +msgstr "Wyłącz osłonę (\\key action;)" -msgid "Missions" -msgstr "Misje" +msgid "Shield radius" +msgstr "Zasięg osłony" -msgid "Missions\\Select mission" -msgstr "Misje\\Wybierz misję" +msgid "Execute the selected program" +msgstr "Wykonaj zaznaczony program" -msgid "Mouse inversion X\\Inversion of the scrolling direction on the X axis" -msgstr "Odwrócenie myszy X\\Odwrócenie kierunków przewijania w poziomie" +msgid "Edit the selected program" +msgstr "Edytuj zaznaczony program" -msgid "Mouse inversion Y\\Inversion of the scrolling direction on the Y axis" -msgstr "Odwrócenie myszy Y\\Odwrócenie kierunków przewijania w pionie" +msgid "\\SatCom on standby" +msgstr "\\Przełącz przekaźnik SatCom w stan gotowości" -msgid "Mouse shadow\\Gives the mouse a shadow" -msgstr "Cień kursora myszy\\Dodaje cień kursorowi myszy" +msgid "Destroy the building" +msgstr "Zniszcz budynek" -msgid "Mute\\No sound" -msgstr "Cisza\\Brak dźwięków" +msgid "Energy level" +msgstr "Poziom energii" -msgid "Name:" -msgstr "Nazwa:" +msgid "Shield level" +msgstr "Poziom osłony" -msgid "Negative value rejected by \"throw\"" -msgstr "Wartość ujemna odrzucona przez \"throw\"" +msgid "Jet temperature" +msgstr "Temperatura silnika" -msgid "Nest" -msgstr "Gniazdo" +msgid "Still working ..." +msgstr "Wciąż pracuje..." -msgid "New" -msgstr "Nowy" +msgid "Number of insects detected" +msgstr "Liczba wykrytych insektów" -msgid "New ..." -msgstr "Nowy ..." +msgid "Transmitted information" +msgstr "Przesłane informacje" -msgid "New bot available" -msgstr "Dostępny nowy robot" +msgid "Compass" +msgstr "Kompas" -msgid "Next" -msgstr "Następny" +msgid "Zoom mini-map" +msgstr "Powiększenie mapki" -msgid "Next object\\Selects the next object" -msgstr "Następny obiekt\\Zaznacza następny obiekt" +msgid "Camera (\\key camera;)" +msgstr "Kamera (\\key camera;)" -msgid "No energy in the subsoil" -msgstr "Brak energii w ziemi" +msgid "Camera to left" +msgstr "Camera to left" -msgid "No flag nearby" -msgstr "Nie ma flagi w pobliżu" +msgid "Camera to right" +msgstr "Camera to right" -msgid "No function running" -msgstr "Żadna funkcja nie działa" +msgid "Camera nearest" +msgstr "Camera nearest" -msgid "No function with this name accepts this kind of parameter" -msgstr "Funkcja o tej nazwie nie akceptuje parametrów tego typu" +msgid "Camera awayest" +msgstr "Camera awayest" -msgid "No function with this name accepts this number of parameters" -msgstr "Funkcja o tej nazwie nie akceptuje takiej liczby parametrów" +msgid "Help about selected object" +msgstr "Pomoc na temat zaznaczonego obiektu" -msgid "No information exchange post within range" -msgstr "Nie ma żadnej stacji przekaźnikowej w zasięgu" +msgid "Show the solution" +msgstr "Pokaż rozwiązanie" -msgid "No more energy" -msgstr "Nie ma więcej energii" +msgid "Switch bots <-> buildings" +msgstr "Przełącz roboty <-> budynki" -msgid "No ore in the subsoil" -msgstr "W ziemi nie ma żadnej rudy" +msgid "Show the range" +msgstr "Pokaż zasięg" -msgid "No other robot" -msgstr "Brak innego robota" +msgid "\\Raise the pencil" +msgstr "\\Relčve le crayon" -msgid "No power cell" -msgstr "Brak ogniwa elektrycznego" +msgid "\\Use the black pencil" +msgstr "\\Abaisse le crayon noir" -msgid "No titanium" -msgstr "Brak tytanu" +msgid "\\Use the yellow pencil" +msgstr "\\Abaisse le crayon jaune" -msgid "No titanium around" -msgstr "Brak tytanu w pobliżu" +msgid "\\Use the orange pencil" +msgstr "\\Abaisse le crayon orange" -msgid "No titanium ore to convert" -msgstr "Brak rudy tytanu do przetopienia" +msgid "\\Use the red pencil" +msgstr "\\Abaisse le crayon rouge" -msgid "No titanium to transform" -msgstr "Brak tytanu do przetworzenia" +msgid "\\Use the purple pencil" +msgstr "\\Abaisse le crayon violet" -msgid "No uranium to transform" -msgstr "Brak uranu do przetworzenia" +msgid "\\Use the blue pencil" +msgstr "\\Abaisse le crayon bleu" -msgid "Normal size" -msgstr "Normalna wielkość" +msgid "\\Use the green pencil" +msgstr "\\Abaisse le crayon vert" -msgid "Normal\\Normal graphic quality" -msgstr "Normalna\\Normalna jakość grafiki" +msgid "\\Use the brown pencil" +msgstr "\\Abaisse le crayon brun" -msgid "Normal\\Normal sound volume" -msgstr "Normalne\\Normalna głośność dźwięków" +msgid "\\Start recording" +msgstr "\\Démarre l'enregistrement" -msgid "Not enough energy" -msgstr "Za mało energii" +msgid "\\Stop recording" +msgstr "\\Stoppe l'enregistrement" -msgid "Not enough energy yet" -msgstr "Wciąż za mało energii" +msgid "Show the place" +msgstr "Pokaż miejsce" -#, fuzzy -msgid "Not found anything to destroy" -msgstr "Nie ma nic do upuszczenia" +msgid "Continue" +msgstr "Kontynuuj" -msgid "Not yet enough energy" -msgstr "Wciąż za mało energii" +msgid "Command line" +msgstr "Linia polecenia" -msgid "Nothing to analyze" -msgstr "Nie ma niczego do zanalizowania" +msgid "Game speed" +msgstr "Prędkość gry" -msgid "Nothing to drop" -msgstr "Nie ma nic do upuszczenia" +msgid "Back" +msgstr "Wstecz" -msgid "Nothing to grab" -msgstr "Nie ma nic do podniesienia" +msgid "Forward" +msgstr "Naprzód" -msgid "Nothing to recycle" -msgstr "Nie ma niczego do odzysku" +msgid "Home" +msgstr "Początek" -msgid "Nuclear power cell" -msgstr "Atomowe ogniwa elektryczne" +msgid "Copy" +msgstr "Kopiuj" -msgid "Nuclear power cell available" -msgstr "Wytworzono atomowe ogniwo elektryczne" +msgid "Size 1" +msgstr "Wielkość 1" -msgid "Nuclear power station" -msgstr "Elektrownia atomowa" +msgid "Size 2" +msgstr "Wielkość 2" -msgid "Num of decorative objects\\Number of purely ornamental objects" -msgstr "Ilość elementów dekoracyjnych \\Ilość elementów czysto dekoracyjnych" +msgid "Size 3" +msgstr "Wielkość 3" -msgid "Number missing" -msgstr "Brak liczby" +msgid "Size 4" +msgstr "Wielkość 4" -msgid "Number of insects detected" -msgstr "Liczba wykrytych insektów" +msgid "Size 5" +msgstr "Wielkość 5" -msgid "Number of particles\\Explosions, dust, reflections, etc." -msgstr "Liczba cząstek\\Wybuchy, kurz, odbicia, itp." +msgid "Instructions from Houston" +msgstr "Rozkazy z Houston" -msgid "OK" -msgstr "OK" +msgid "Satellite report" +msgstr "Raport z satelity" -msgid "OK\\Choose the selected player" -msgstr "OK\\Wybiera zaznaczonego gracza" +msgid "Programs dispatched by Houston" +msgstr "Program dostarczony z Houston" -msgid "OK\\Close program editor and return to game" -msgstr "OK\\Zamyka edytor programu i powraca do gry" +msgid "List of objects" +msgstr "Lista obiektów" -msgid "Object not found" -msgstr "Obiekt nieznany" +msgid "Programming help" +msgstr "Podręcznik programowania" -msgid "Object too close" -msgstr "Obiekt za blisko" +msgid "Solution" +msgstr "Rozwiązanie" -msgid "One step" -msgstr "Jeden krok" +msgid "OK\\Close program editor and return to game" +msgstr "OK\\Zamyka edytor programu i powraca do gry" -msgid "Open" -msgstr "Otwórz" +msgid "Cancel\\Cancel all changes" +msgstr "Anuluj\\Pomija wszystkie zmiany" msgid "Open (Ctrl+o)" msgstr "Otwórz (Ctrl+O)" -msgid "Opening brace missing " -msgstr "Brak klamry otwierającej" +msgid "Save (Ctrl+s)" +msgstr "Zapisz (Ctrl+S)" -msgid "Opening bracket missing" -msgstr "Brak nawiasu otwierającego" +msgid "Undo (Ctrl+z)" +msgstr "Cofnij (Ctrl+Z)" -msgid "Operation impossible with value \"nan\"" -msgstr "Działanie niemożliwe z wartością \"nan\"" +msgid "Cut (Ctrl+x)" +msgstr "Wytnij (Ctrl+X)" -msgid "Options" -msgstr "Opcje" +msgid "Copy (Ctrl+c)" +msgstr "Kopiuj (Ctrl+C)" -msgid "Options\\Preferences" -msgstr "Opcje\\Preferencje" +msgid "Paste (Ctrl+v)" +msgstr "Wklej (Ctrl+V)" -msgid "Organic matter" -msgstr "Materia organiczna" +msgid "Font size" +msgstr "Wielkość czcionki" -msgid "Origin of last message\\Shows where the last message was sent from" -msgstr "" -"Miejsce nadania wiadomości\\Pokazuje skąd została wysłana ostatnia wiadomość" +msgid "Instructions (\\key help;)" +msgstr "Rozkazy (\\key help;)" -msgid "Parameters missing " -msgstr "Brak wymaganego parametru" +msgid "Programming help (\\key prog;)" +msgstr "Podręcznik programowania (\\key prog;)" -msgid "Particles in the interface\\Steam clouds and sparks in the interface" -msgstr "Cząstki w interfejsie\\Para i iskry z silników w interfejsie" +msgid "Compile" +msgstr "Kompiluj" -msgid "Paste (Ctrl+v)" -msgstr "Wklej (Ctrl+V)" +msgid "Execute/stop" +msgstr "Wykonaj/Zatrzymaj" msgid "Pause/continue" msgstr "Pauza/Kontynuuj" -msgid "Phazer shooter" -msgstr "Działo fazowe" - -msgid "Photography" -msgstr "Fotografia" - -msgid "Place occupied" -msgstr "Miejsce zajęte" - -msgid "Planets and stars\\Astronomical objects in the sky" -msgstr "Planety i gwiazdy\\Obiekty astronomiczne na niebie" - -msgid "Plans for defense tower available" -msgstr "Dostępne plany wieży obronnej" +msgid "One step" +msgstr "Jeden krok" -msgid "Plans for nuclear power plant available" -msgstr "Dostępne plany elektrowni atomowej" +msgid "Gantry crane" +msgstr "Żuraw przesuwalny" -msgid "Plans for phazer shooter available" -msgstr "Dostępne plany działa fazowego" +msgid "Spaceship" +msgstr "Statek kosmiczny" -msgid "Plans for shielder available" -msgstr "Dostępne plany robota osłaniacza" +msgid "Derrick" +msgstr "Kopalnia" -msgid "Plans for shooter available" -msgstr "Dostępne plany działa" +msgid "Bot factory" +msgstr "Fabryka robotów" -msgid "Plans for thumper available" -msgstr "Dostępne plany robota uderzacza" +msgid "Repair center" +msgstr "Warsztat" -msgid "Plans for tracked robots available " -msgstr "Dostępne plany tranporterów na gąsienicach" +msgid "Destroyer" +msgstr "Destroyer" -msgid "Plant a flag" -msgstr "Postaw flagę" +msgid "Power station" +msgstr "Stacja energetyczna" -msgid "Play\\Start mission!" -msgstr "Graj\\Rozpoczyna misję!" +msgid "Converts ore to titanium" +msgstr "Przetop rudę na tytan" -msgid "Player" -msgstr "Gracz" +msgid "Defense tower" +msgstr "Wieża obronna" -msgid "Player name" -msgstr "Imię gracza" +msgid "Nest" +msgstr "Gniazdo" -msgid "Player's name" -msgstr "Imię gracza" +msgid "Research center" +msgstr "Centrum badawcze" -msgid "Power cell" -msgstr "Ogniwo elektryczne" +msgid "Radar station" +msgstr "Stacja radarowa" -msgid "Power cell available" -msgstr "Wytworzono ogniwo elektryczne" +msgid "Information exchange post" +msgstr "Stacja przekaźnikowa informacji" msgid "Power cell factory" msgstr "Fabryka ogniw elektrycznych" -msgid "Power station" -msgstr "Stacja energetyczna" +msgid "Autolab" +msgstr "Laboratorium" -msgid "Practice bot" -msgstr "Robot treningowy" +msgid "Nuclear power station" +msgstr "Elektrownia atomowa" -msgid "Press \\key help; to read instructions on your SatCom" -msgstr "" -"Naciśnij klawisz \\key help; aby wyświetlić rozkazy na przekaźniku SatCom" +msgid "Lightning conductor" +msgstr "Odgromnik" -msgid "Previous" -msgstr "Poprzedni" +msgid "Vault" +msgstr "Skrytka" -msgid "Previous object\\Selects the previous object" -msgstr "Poprzedni obiekt\\Zaznacz poprzedni obiekt" +msgid "Houston Mission Control" +msgstr "Centrum Kontroli Misji w Houston" -msgid "Previous selection (\\key desel;)" -msgstr "Poprzednie zaznaczenie (\\key desel;)" +msgid "Target" +msgstr "Cel" -msgid "Private element" -msgstr "Element prywatny" +msgid "Start" +msgstr "Początek" -msgid "Private\\Private folder" -msgstr "Prywatny\\Folder prywatny" +msgid "Finish" +msgstr "Koniec" -msgid "Program editor" -msgstr "Edytor programu" +msgid "Titanium ore" +msgstr "Ruda tytanu" -msgid "Program finished" -msgstr "Program zakończony" +msgid "Uranium ore" +msgstr "Ruda uranu" -msgid "Program infected by a virus" -msgstr "Program zawirusowany" +msgid "Organic matter" +msgstr "Materia organiczna" -msgid "Programming exercises" -msgstr "Ćwiczenia programistyczne" +msgid "Titanium" +msgstr "Tytan" -msgid "Programming help" -msgstr "Podręcznik programowania" +msgid "Power cell" +msgstr "Ogniwo elektryczne" -msgid "Programming help (\\key prog;)" -msgstr "Podręcznik programowania (\\key prog;)" +msgid "Nuclear power cell" +msgstr "Atomowe ogniwa elektryczne" -msgid "Programming help\\Gives more detailed help with programming" -msgstr "Podręcznik programowania\\Dostarcza szczegółową pomoc w programowaniu" +msgid "Black box" +msgstr "Czarna skrzynka" -msgid "Programs dispatched by Houston" -msgstr "Program dostarczony z Houston" +msgid "Key A" +msgstr "Klucz A" -msgid "Public required" -msgstr "Wymagany publiczny" +msgid "Key B" +msgstr "Klucz B" -msgid "Public\\Common folder" -msgstr "Publiczny\\Folder ogólnodostępny" +msgid "Key C" +msgstr "Klucz C" -msgid "Quake at explosions\\The screen shakes at explosions" -msgstr "Wstrząsy przy wybuchach\\Ekran trzęsie się podczas wybuchów" +msgid "Key D" +msgstr "Klucz D" -msgid "Quit the mission?" -msgstr "Opuścić misję?" +msgid "Explosive" +msgstr "Materiały wybuchowe" -msgid "Quit\\Quit COLOBOT" -msgstr "Zakończ\\Kończy grę COLOBOT" +msgid "Fixed mine" +msgstr "Mina" -msgid "Quit\\Quit the current mission or exercise" -msgstr "Zakończ\\Kończy bieżącą misję lub ćwiczenie" +msgid "Survival kit" +msgstr "Zestaw przetrwania" -msgid "Radar station" -msgstr "Stacja radarowa" +msgid "Checkpoint" +msgstr "Punkt kontrolny" -msgid "Read error" -msgstr "Błąd odczytu" +msgid "Blue flag" +msgstr "Niebieska flaga" -msgid "Recorder" -msgstr "Recorder" +msgid "Red flag" +msgstr "Czerwona flaga" -msgid "Recycle (\\key action;)" -msgstr "Odzyskaj (\\key action;)" +msgid "Green flag" +msgstr "Zielona flaga" -msgid "Recycler" -msgstr "Recykler" +msgid "Yellow flag" +msgstr "Żółta flaga" -msgid "Red" -msgstr "Czerwony" +msgid "Violet flag" +msgstr "Fioletowa flaga" -msgid "Red flag" -msgstr "Czerwona flaga" +msgid "Energy deposit (site for power station)" +msgstr "Źródło energii (miejsce na elektrownię)" -msgid "Reflections on the buttons \\Shiny buttons" -msgstr "Odbicia na przyciskach \\Świecące przyciski" +msgid "Uranium deposit (site for derrick)" +msgstr "Złoże uranu (miejsce na kopalnię)" -msgid "Remains of Apollo mission" -msgstr "Pozostałości z misji Apollo" +msgid "Found key A (site for derrick)" +msgstr "Znaleziono klucz A (miejsce na kopalnię)" -msgid "Remove a flag" -msgstr "Usuń flagę" +msgid "Found key B (site for derrick)" +msgstr "Znaleziono klucz B (miejsce na kopalnię)" -msgid "Repair center" -msgstr "Warsztat" +msgid "Found key C (site for derrick)" +msgstr "Znaleziono klucz C (miejsce na kopalnię)" -msgid "Research center" -msgstr "Centrum badawcze" +msgid "Found key D (site for derrick)" +msgstr "Znaleziono klucz D (miejsce na kopalnię)" -msgid "Research program already performed" -msgstr "Program badawczy został już wykonany" +msgid "Titanium deposit (site for derrick)" +msgstr "Złoże tytanu (miejsce na kopalnię)" -msgid "Research program completed" -msgstr "Program badawczy zakończony" +msgid "Practice bot" +msgstr "Robot treningowy" -msgid "Reserved keyword of CBOT language" -msgstr "Słowo zarezerwowane języka CBOT" +msgid "Winged grabber" +msgstr "Transporter latający" -msgid "Resolution" -msgstr "Rozdzielczość" +msgid "Tracked grabber" +msgstr "Transporter na gąsienicach" -msgid "Restart\\Restart the mission from the beginning" -msgstr "Uruchom ponownie\\Uruchamia ponownie misję od początku" +msgid "Wheeled grabber" +msgstr "Transporter na kołach" -msgid "Return to start" -msgstr "Powrót do początku" +msgid "Legged grabber" +msgstr "Transporter na nogach" -msgid "Robbie" -msgstr "Robbie" +msgid "Winged shooter" +msgstr "Działo latające" -msgid "Robbie\\Your assistant" -msgstr "Robbie\\Twój asystent" +msgid "Tracked shooter" +msgstr "Działo na gąsienicach" -msgid "Ruin" -msgstr "Ruiny" +msgid "Wheeled shooter" +msgstr "Działo na kołach" -msgid "Run research program for defense tower" -msgstr "Rozpocznij prace badawcze nad wieżą obronną" +msgid "Legged shooter" +msgstr "Działo na nogach" -msgid "Run research program for legged bots" -msgstr "Rozpocznij prace badawcze nad transporterem na nogach" +msgid "Winged orga shooter" +msgstr "Latające działo organiczne" -msgid "Run research program for nuclear power" -msgstr "Rozpocznij prace badawcze nad energią atomową" +msgid "Tracked orga shooter" +msgstr "Działo organiczne na gąsienicach" -msgid "Run research program for orga shooter" -msgstr "Rozpocznij prace badawcze nad działem organicznym" +msgid "Wheeled orga shooter" +msgstr "Działo organiczne na kołach" -msgid "Run research program for phazer shooter" -msgstr "Rozpocznij prace badawcze nad działem fazowym" +msgid "Legged orga shooter" +msgstr "Działo organiczne na nogach" -msgid "Run research program for shielder" -msgstr "Rozpocznij prace badawcze nad robotem osłaniaczem" +msgid "Winged sniffer" +msgstr "Szperacz latający" -msgid "Run research program for shooter" -msgstr "Rozpocznij prace badawcze nad działem" +msgid "Tracked sniffer" +msgstr "Szperacz na gąsienicach" -msgid "Run research program for thumper" -msgstr "Rozpocznij prace badawcze nad robotem uderzaczem" +msgid "Wheeled sniffer" +msgstr "Szperacz na kołach" -msgid "Run research program for tracked bots" -msgstr "Rozpocznij prace badawcze nad transporterem na gąsienicach" +msgid "Legged sniffer" +msgstr "Szperacz na nogach" -msgid "Run research program for winged bots" -msgstr "Rozpocznij prace badawcze nad transporterem latającym" +msgid "Thumper" +msgstr "Uderzacz" + +msgid "Phazer shooter" +msgstr "Działo fazowe" -msgid "SatCom" -msgstr "SatCom" +msgid "Recycler" +msgstr "Recykler" -msgid "Satellite report" -msgstr "Raport z satelity" +msgid "Shielder" +msgstr "Osłaniacz" -msgid "Save" -msgstr "Zapisz" +msgid "Subber" +msgstr "Robot nurek" -msgid "Save (Ctrl+s)" -msgstr "Zapisz (Ctrl+S)" +msgid "Target bot" +msgstr "Robot cel" -msgid "Save the current mission" -msgstr "Zapisz bieżącą misję" +msgid "Drawer bot" +msgstr "Drawer bot" -msgid "Save\\Save the current mission " -msgstr "Zapisz\\Zapisuje bieżącą misję" +msgid "Engineer" +msgstr "Inżynier" -msgid "Save\\Saves the current mission" -msgstr "Zapisz\\Zapisuje bieżącą misję" +msgid "Robbie" +msgstr "Robbie" -msgid "Scrolling\\Scrolling when the mouse touches right or left border" -msgstr "" -"Przewijanie\\Ekran jest przewijany gdy mysz dotknie prawej lub lewej jego " -"krawędzi" +msgid "Alien Queen" +msgstr "Królowa Obcych" -msgid "Select the astronaut\\Selects the astronaut" -msgstr "Zaznacz astronautę\\Zaznacza astronautę" +msgid "Ant" +msgstr "Mrówka" -msgid "Semicolon terminator missing" -msgstr "Brak średnika na końcu wiersza" +msgid "Spider" +msgstr "Pająk" -msgid "Shadows\\Shadows on the ground" -msgstr "Cienie\\Cienie na ziemi" +msgid "Wasp" +msgstr "Osa" -msgid "Shield level" -msgstr "Poziom osłony" +msgid "Worm" +msgstr "Robal" -msgid "Shield radius" -msgstr "Zasięg osłony" +msgid "Egg" +msgstr "Jajo" -msgid "Shielder" -msgstr "Osłaniacz" +msgid "Wreckage" +msgstr "Wrak" -msgid "Shift" -msgstr "Shift" +msgid "Ruin" +msgstr "Ruiny" -msgid "Shoot (\\key action;)" -msgstr "Strzelaj (\\key action;)" +msgid "Waste" +msgstr "Odpady" -msgid "Show if the ground is flat" -msgstr "Pokaż czy teren jest płaski" +msgid "Spaceship ruin" +msgstr "Ruiny statku kosmicznego" -msgid "Show the place" -msgstr "Pokaż miejsce" +msgid "Remains of Apollo mission" +msgstr "Pozostałości z misji Apollo" -msgid "Show the range" -msgstr "Pokaż zasięg" +msgid "Lunar Roving Vehicle" +msgstr "Pojazd Księżycowy" -msgid "Show the solution" -msgstr "Pokaż rozwiązanie" +msgid "Internal error - tell the developers" +msgstr "" -msgid "Sign \" : \" missing" -msgstr "Brak znaku \" :\"" +msgid "Unknown command" +msgstr "Nieznane polecenie" -msgid "Size 1" -msgstr "Wielkość 1" +msgid "Inappropriate bot" +msgstr "Nieodpowiedni robot" -msgid "Size 2" -msgstr "Wielkość 2" +msgid "Impossible when flying" +msgstr "Niemożliwe podczas lotu" -msgid "Size 3" -msgstr "Wielkość 3" +msgid "Already carrying something" +msgstr "Nie można nieść więcej przedmiotów" -msgid "Size 4" -msgstr "Wielkość 4" +msgid "Nothing to grab" +msgstr "Nie ma nic do podniesienia" -msgid "Size 5" -msgstr "Wielkość 5" +msgid "Impossible when moving" +msgstr "Niemożliwe podczas ruchu" -msgid "Sky\\Clouds and nebulae" -msgstr "Niebo\\Chmury i mgławice" +msgid "Place occupied" +msgstr "Miejsce zajęte" -msgid "Sniff (\\key action;)" -msgstr "Szukaj (\\key action;)" +msgid "No other robot" +msgstr "Brak innego robota" -msgid "Solution" -msgstr "Rozwiązanie" +msgid "You can not carry a radioactive object" +msgstr "Nie możesz przenosić przedmiotów radioaktywnych" -msgid "Sound effects:\\Volume of engines, voice, shooting, etc." -msgstr "Efekty dźwiękowe:\\Głośność silników, głosów, strzałów, itp." +msgid "You can not carry an object under water" +msgstr "Nie możesz przenosić przedmiotów pod wodą" -msgid "Sound\\Music and game sound volume" -msgstr "Dźwięk\\Głośność muzyki i dźwięków gry" +msgid "Nothing to drop" +msgstr "Nie ma nic do upuszczenia" -msgid "Spaceship" -msgstr "Statek kosmiczny" +msgid "Impossible under water" +msgstr "Niemożliwe pod wodą" -msgid "Spaceship ruin" -msgstr "Ruiny statku kosmicznego" +msgid "Not enough energy" +msgstr "Za mało energii" -msgid "Speed 1.0x\\Normal speed" -msgstr "Prędkość 1,0x\\Prędkość normalna" +msgid "Titanium too far away" +msgstr "Tytan za daleko" -msgid "Speed 1.5x\\1.5 times faster" -msgstr "Prędkość 1,5x\\1,5 raza szybciej" +msgid "Titanium too close" +msgstr "Tytan za blisko" -msgid "Speed 2.0x\\Double speed" -msgstr "Prędkość 2,0x\\Dwa razy szybciej" +msgid "No titanium around" +msgstr "Brak tytanu w pobliżu" -msgid "Speed 3.0x\\Three times faster" -msgstr "Prędkość 3,0x\\Trzy razy szybciej" +msgid "Ground not flat enough" +msgstr "Powierzchnia nie jest wystarczająco płaska" -msgid "Spider" -msgstr "Pająk" +msgid "Flat ground not large enough" +msgstr "Za mało płaskiego terenu" -msgid "Spider fatally wounded" -msgstr "Pająk śmiertelnie raniony" +msgid "Too close to space ship" +msgstr "Za blisko statku kosmicznego" -msgid "Stack overflow" -msgstr "Przepełnienie stosu" +msgid "Too close to a building" +msgstr "Za blisko budynku" -msgid "" -"Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)" +msgid "Can not produce this object in this mission" msgstr "" -"Standardowa akcja\\Standardowa akcja robota (podnieś/upuść, strzelaj, " -"szukaj, itp.)" -msgid "Standard controls\\Standard key functions" -msgstr "Standardowa kontrola\\Standardowe klawisze funkcyjne" - -msgid "Standard\\Standard appearance settings" -msgstr "Standardowe\\Standardowe ustawienia wyglądu" +msgid "Can not produce not researched object" +msgstr "" -msgid "Start" -msgstr "Początek" +msgid "Ground inappropriate" +msgstr "Nieodpowiedni teren" -msgid "Still working ..." -msgstr "Wciąż pracuje..." +msgid "Building too close" +msgstr "Budynek za blisko" -msgid "String missing" -msgstr "Brak łańcucha" +msgid "Object too close" +msgstr "Obiekt za blisko" -msgid "Strip color:" -msgstr "Kolor pasków:" +msgid "Nothing to recycle" +msgstr "Nie ma niczego do odzysku" -msgid "Subber" -msgstr "Robot nurek" +msgid "No more energy" +msgstr "Nie ma więcej energii" -msgid "Suit color:" -msgstr "Kolor skafandra:" +msgid "Error in instruction move" +msgstr "Błąd w poleceniu ruchu" -msgid "Suit\\Astronaut suit" -msgstr "Skafander\\Skafander astronauty" +msgid "Object not found" +msgstr "Obiekt nieznany" -msgid "Sunbeams\\Sunbeams in the sky" -msgstr "Promienie słoneczne\\Promienie słoneczne na niebie" +msgid "Goto: inaccessible destination" +msgstr "Goto: miejsce docelowe niedostępne" -msgid "Survival kit" -msgstr "Zestaw przetrwania" +msgid "Goto: destination occupied" +msgstr "Goto: miejsce docelowe zajęte" -msgid "Switch bots <-> buildings" -msgstr "Przełącz roboty <-> budynki" +msgid "No titanium ore to convert" +msgstr "Brak rudy tytanu do przetopienia" -msgid "Take off to finish the mission" -msgstr "Odleć, aby zakończyć misję" +msgid "No ore in the subsoil" +msgstr "W ziemi nie ma żadnej rudy" -msgid "Target" -msgstr "Cel" +msgid "No energy in the subsoil" +msgstr "Brak energii w ziemi" -msgid "Target bot" -msgstr "Robot cel" +msgid "No power cell" +msgstr "Brak ogniwa elektrycznego" -msgid "Textures\\Quality of textures " -msgstr "Tekstury\\Jakość tekstur " +msgid "Inappropriate cell type" +msgstr "Nieodpowiedni rodzaj ogniw" -msgid "The expression must return a boolean value" -msgstr "Wyrażenie musi zwrócić wartość logiczną" +msgid "Research program already performed" +msgstr "Program badawczy został już wykonany" -msgid "The function returned no value " -msgstr "Funkcja nie zwróciła żadnej wartości " +msgid "Not enough energy yet" +msgstr "Wciąż za mało energii" -msgid "" -"The list is only available if a \\l;radar station\\u object\\radar; is " -"working.\n" -msgstr "" -"Lista jest dostępna jedynie gdy działa \\l;stacja radarowa\\u object" -"\\radar;.\n" +msgid "No titanium to transform" +msgstr "Brak tytanu do przetworzenia" -msgid "" -"The mission is not accomplished yet (press \\key help; for more details)" -msgstr "Misja nie jest wypełniona (naciśnij \\key help; aby uzyskać szczegóły)" +msgid "Transforms only titanium" +msgstr "Przetwarza jedynie tytan" -msgid "The types of the two operands are incompatible " -msgstr "Niezgodne typy operatorów" +msgid "Doors blocked by a robot or another object " +msgstr "Drzwi zablokowane przez robota lub inny obiekt " -msgid "This class already exists" -msgstr "Taka klasa już istnieje" +msgid "You must get on the spaceship to take off " +msgstr "Musisz być na statku kosmicznym aby nim odlecieć" -msgid "This class does not exist" -msgstr "Taka klasa nie istnieje" +msgid "Nothing to analyze" +msgstr "Nie ma niczego do zanalizowania" -msgid "This is not a member of this class" -msgstr "To nie jest obiekt tej klasy" +msgid "Analyzes only organic matter" +msgstr "Analizuje jedynie materię organiczną" -msgid "This label does not exist" -msgstr "Taka etykieta nie istnieje" +msgid "Analysis already performed" +msgstr "Analiza została już wykonana" -msgid "This object is not a member of a class" -msgstr "Ten obiekt nie jest członkiem klasy" +msgid "Not yet enough energy" +msgstr "Wciąż za mało energii" -msgid "Thump (\\key action;)" -msgstr "Uderz (\\key action;)" +msgid "No uranium to transform" +msgstr "Brak uranu do przetworzenia" -msgid "Thumper" -msgstr "Uderzacz" +msgid "Transforms only uranium" +msgstr "Przetwarza jedynie uran" -msgid "Titanium" -msgstr "Tytan" +msgid "No titanium" +msgstr "Brak tytanu" -msgid "Titanium available" -msgstr "Tytan dostępny" +msgid "No information exchange post within range" +msgstr "Nie ma żadnej stacji przekaźnikowej w zasięgu" -msgid "Titanium deposit (site for derrick)" -msgstr "Złoże tytanu (miejsce na kopalnię)" +msgid "Program infected by a virus" +msgstr "Program zawirusowany" -msgid "Titanium ore" -msgstr "Ruda tytanu" +msgid "Infected by a virus; temporarily out of order" +msgstr "Zainfekowane wirusem, chwilowo niesprawne" -msgid "Titanium too close" -msgstr "Tytan za blisko" +msgid "Impossible when swimming" +msgstr "Niemożliwe podczas pływania" -msgid "Titanium too far away" -msgstr "Tytan za daleko" +msgid "Impossible when carrying an object" +msgstr "Niemożliwe podczas przenoszenia przedmiotu" -msgid "Too close to a building" -msgstr "Za blisko budynku" +msgid "Too many flags of this color (maximum 5)" +msgstr "Za dużo flag w tym kolorze (maksymalnie 5)" msgid "Too close to an existing flag" msgstr "Za blisko istniejącej flagi" -msgid "Too close to space ship" -msgstr "Za blisko statku kosmicznego" +msgid "No flag nearby" +msgstr "Nie ma flagi w pobliżu" -msgid "Too many flags of this color (maximum 5)" -msgstr "Za dużo flag w tym kolorze (maksymalnie 5)" +msgid "Not found anything to destroy" +msgstr "" -msgid "Too many parameters" -msgstr "Za dużo parametrów" +msgid "Inappropriate object" +msgstr "" -msgid "Tracked grabber" -msgstr "Transporter na gąsienicach" +msgid "" +"The mission is not accomplished yet (press \\key help; for more details)" +msgstr "Misja nie jest wypełniona (naciśnij \\key help; aby uzyskać szczegóły)" -msgid "Tracked orga shooter" -msgstr "Działo organiczne na gąsienicach" +msgid "Bot destroyed" +msgstr "Robot zniszczony" -msgid "Tracked shooter" -msgstr "Działo na gąsienicach" +msgid "Building destroyed" +msgstr "Budynek zniszczony" -msgid "Tracked sniffer" -msgstr "Szperacz na gąsienicach" +msgid "Can not create this; there are too many objects" +msgstr "Nie można tego utworzyć, za dużo obiektów" -msgid "Transforms only titanium" -msgstr "Przetwarza jedynie tytan" +#, c-format +msgid "\"%s\" missing in this exercise" +msgstr "Brakuje \"%s\" w tym ćwiczeniu" -msgid "Transforms only uranium" -msgstr "Przetwarza jedynie uran" +msgid "Do not use in this exercise" +msgstr "Do not use in this exercise" -msgid "Transmitted information" -msgstr "Przesłane informacje" +msgid "Building completed" +msgstr "Budowa zakończona" -msgid "Turn left (\\key left;)" -msgstr "Skręć w lewo (\\key left;)" +msgid "Titanium available" +msgstr "Tytan dostępny" -msgid "Turn left\\turns the bot to the left" -msgstr "Skręć w lewo\\Obraca robota w lewo" +msgid "Research program completed" +msgstr "Program badawczy zakończony" -msgid "Turn right (\\key right;)" -msgstr "Skręć w prawo (\\key right;)" +msgid "Plans for tracked robots available " +msgstr "Dostępne plany tranporterów na gąsienicach" -msgid "Turn right\\turns the bot to the right" -msgstr "Obróć w prawo\\Obraca robota w prawo" +msgid "You can fly with the keys (\\key gup;) and (\\key gdown;)" +msgstr "Możesz latać używając klawiszy (\\key gup;) oraz (\\key gdown;)" -msgid "Type declaration missing" -msgstr "Brak deklaracji typu" +msgid "Plans for thumper available" +msgstr "Dostępne plany robota uderzacza" -msgid "Undo (Ctrl+z)" -msgstr "Cofnij (Ctrl+Z)" +msgid "Plans for shooter available" +msgstr "Dostępne plany działa" -msgid "Unit" -msgstr "Jednostka" +msgid "Plans for defense tower available" +msgstr "Dostępne plany wieży obronnej" -msgid "Unknown Object" -msgstr "Obiekt nieznany" +msgid "Plans for phazer shooter available" +msgstr "Dostępne plany działa fazowego" -msgid "Unknown command" -msgstr "Nieznane polecenie" +msgid "Plans for shielder available" +msgstr "Dostępne plany robota osłaniacza" -msgid "Unknown function" -msgstr "Funkcja nieznana" +msgid "Plans for nuclear power plant available" +msgstr "Dostępne plany elektrowni atomowej" -msgid "Up (\\key gup;)" -msgstr "Góra (\\key gup;)" +msgid "New bot available" +msgstr "Dostępny nowy robot" -msgid "Uranium deposit (site for derrick)" -msgstr "Złoże uranu (miejsce na kopalnię)" +msgid "Analysis performed" +msgstr "Analiza wykonana" -msgid "Uranium ore" -msgstr "Ruda uranu" +msgid "Power cell available" +msgstr "Wytworzono ogniwo elektryczne" -msgid "Use a joystick\\Joystick or keyboard" -msgstr "Używaj joysticka\\Joystick lub klawiatura" +msgid "Nuclear power cell available" +msgstr "Wytworzono atomowe ogniwo elektryczne" -msgid "User levels" -msgstr "Poziomy użytkownika" +msgid "You found a usable object" +msgstr "Znaleziono użyteczny przedmiot" -msgid "User\\User levels" -msgstr "Poziomy\\Poziomy użytkownika" +msgid "Found a site for power station" +msgstr "Znaleziono miejsce na elektrownię" -msgid "Variable name missing" -msgstr "Brak nazwy zmiennej" +msgid "Found a site for a derrick" +msgstr "Znaleziono miejsce na kopalnię" -msgid "Variable not declared" -msgstr "Zmienna nie została zadeklarowana" +msgid "<<< Well done; mission accomplished >>>" +msgstr "<<< Dobra robota, misja wypełniona >>>" -msgid "Variable not initialized" -msgstr "Zmienna nie została zainicjalizowana" +msgid "<<< Sorry; mission failed >>>" +msgstr "<<< Niestety, misja nie powiodła się >>>" -msgid "Vault" -msgstr "Skrytka" +msgid "Current mission saved" +msgstr "Bieżąca misja zapisana" -msgid "Violet flag" -msgstr "Fioletowa flaga" +msgid "Checkpoint crossed" +msgstr "Przekroczono punkt kontrolny" -msgid "Void parameter" -msgstr "Pusty parametr" +msgid "Alien Queen killed" +msgstr "Królowa Obcych została zabita" -msgid "Wasp" -msgstr "Osa" +msgid "Ant fatally wounded" +msgstr "Mrówka śmiertelnie raniona" msgid "Wasp fatally wounded" msgstr "Osa śmiertelnie raniona" -msgid "Waste" -msgstr "Odpady" +msgid "Worm fatally wounded" +msgstr "Robal śmiertelnie raniony" -msgid "Wheeled grabber" -msgstr "Transporter na kołach" +msgid "Spider fatally wounded" +msgstr "Pająk śmiertelnie raniony" -msgid "Wheeled orga shooter" -msgstr "Działo organiczne na kołach" +msgid "Press \\key help; to read instructions on your SatCom" +msgstr "" +"Naciśnij klawisz \\key help; aby wyświetlić rozkazy na przekaźniku SatCom" -msgid "Wheeled shooter" -msgstr "Działo na kołach" +msgid "Opening bracket missing" +msgstr "Brak nawiasu otwierającego" -msgid "Wheeled sniffer" -msgstr "Szperacz na kołach" +msgid "Closing bracket missing " +msgstr "Brak nawiasu zamykającego" -msgid "Win" -msgstr "" +msgid "The expression must return a boolean value" +msgstr "Wyrażenie musi zwrócić wartość logiczną" -msgid "Winged grabber" -msgstr "Transporter latający" +msgid "Variable not declared" +msgstr "Zmienna nie została zadeklarowana" -msgid "Winged orga shooter" -msgstr "Latające działo organiczne" +msgid "Assignment impossible" +msgstr "Przypisanie niemożliwe" -msgid "Winged shooter" -msgstr "Działo latające" +msgid "Semicolon terminator missing" +msgstr "Brak średnika na końcu wiersza" -msgid "Winged sniffer" -msgstr "Szperacz latający" +msgid "Instruction \"case\" outside a block \"switch\"" +msgstr "Polecenie \"case\" na zewnątrz bloku \"switch\"" -msgid "Withdraw shield (\\key action;)" -msgstr "Wyłącz osłonę (\\key action;)" +msgid "Instructions after the final closing brace" +msgstr "Polecenie po końcowej klamrze zamykającej" -msgid "Worm" -msgstr "Robal" +msgid "End of block missing" +msgstr "Brak końca bloku" -msgid "Worm fatally wounded" -msgstr "Robal śmiertelnie raniony" +msgid "Instruction \"else\" without corresponding \"if\" " +msgstr "Polecenie \"else\" bez wystąpienia \"if\" " -msgid "Wreckage" -msgstr "Wrak" +msgid "Opening brace missing " +msgstr "Brak klamry otwierającej" + +msgid "Wrong type for the assignment" +msgstr "Zły typ dla przypisania" + +msgid "A variable can not be declared twice" +msgstr "Zmienna nie może być zadeklarowana dwukrotnie" + +msgid "The types of the two operands are incompatible " +msgstr "Niezgodne typy operatorów" + +msgid "Unknown function" +msgstr "Funkcja nieznana" -msgid "Write error" -msgstr "Błąd zapisu" +msgid "Sign \" : \" missing" +msgstr "Brak znaku \" :\"" -msgid "Wrong type for the assignment" -msgstr "Zły typ dla przypisania" +msgid "Keyword \"while\" missing" +msgstr "Brak kluczowego słowa \"while" -msgid "Yellow flag" -msgstr "Żółta flaga" +msgid "Instruction \"break\" outside a loop" +msgstr "Polecenie \"break\" na zewnątrz pętli" -msgid "You can fly with the keys (\\key gup;) and (\\key gdown;)" -msgstr "Możesz latać używając klawiszy (\\key gup;) oraz (\\key gdown;)" +msgid "A label must be followed by \"for\"; \"while\"; \"do\" or \"switch\"" +msgstr "Po etykiecie musi wystąpić \"for\", \"while\", \"do\" lub \"switch\"" -msgid "You can not carry a radioactive object" -msgstr "Nie możesz przenosić przedmiotów radioaktywnych" +msgid "This label does not exist" +msgstr "Taka etykieta nie istnieje" -msgid "You can not carry an object under water" -msgstr "Nie możesz przenosić przedmiotów pod wodą" +msgid "Instruction \"case\" missing" +msgstr "Brak polecenia \"case" -msgid "You found a usable object" -msgstr "Znaleziono użyteczny przedmiot" +msgid "Number missing" +msgstr "Brak liczby" -msgid "You must get on the spaceship to take off " -msgstr "Musisz być na statku kosmicznym aby nim odlecieć" +msgid "Void parameter" +msgstr "Pusty parametr" -msgid "Zoom mini-map" -msgstr "Powiększenie mapki" +msgid "Type declaration missing" +msgstr "Brak deklaracji typu" -msgid "\\Blue flags" -msgstr "\\Niebieskie flagi" +msgid "Variable name missing" +msgstr "Brak nazwy zmiennej" -msgid "\\Eyeglasses 1" -msgstr "\\Okulary 1" +msgid "Function name missing" +msgstr "Brakująca nazwa funkcji" -msgid "\\Eyeglasses 2" -msgstr "\\Okulary 2" +msgid "Too many parameters" +msgstr "Za dużo parametrów" -msgid "\\Eyeglasses 3" -msgstr "\\Okulary 3" +msgid "Function already exists" +msgstr "Funkcja już istnieje" -msgid "\\Eyeglasses 4" -msgstr "\\Okulary 4" +msgid "Parameters missing " +msgstr "Brak wymaganego parametru" -msgid "\\Eyeglasses 5" -msgstr "\\Okulary 5" +msgid "No function with this name accepts this kind of parameter" +msgstr "Funkcja o tej nazwie nie akceptuje parametrów tego typu" -msgid "\\Face 1" -msgstr "\\Twarz 1" +msgid "No function with this name accepts this number of parameters" +msgstr "Funkcja o tej nazwie nie akceptuje takiej liczby parametrów" -msgid "\\Face 2" -msgstr "\\Twarz 2" +msgid "This is not a member of this class" +msgstr "To nie jest obiekt tej klasy" -msgid "\\Face 3" -msgstr "\\Twarz 3" +msgid "This object is not a member of a class" +msgstr "Ten obiekt nie jest członkiem klasy" -msgid "\\Face 4" -msgstr "\\Twarz 4" +msgid "Appropriate constructor missing" +msgstr "Brak odpowiedniego konstruktora" -msgid "\\Green flags" -msgstr "\\Zielone flagi" +msgid "This class already exists" +msgstr "Taka klasa już istnieje" -msgid "\\New player name" -msgstr "\\Nowe imię gracza" +msgid "\" ] \" missing" +msgstr "Brak \" ] \"" -msgid "\\No eyeglasses" -msgstr "\\Bez okularów" +msgid "Reserved keyword of CBOT language" +msgstr "Słowo zarezerwowane języka CBOT" -msgid "\\Raise the pencil" -msgstr "\\Relčve le crayon" +msgid "Bad argument for \"new\"" +msgstr "Zły argument dla funkcji \"new\"" -msgid "\\Red flags" -msgstr "\\Czerwone flagi" +msgid "\" [ \" expected" +msgstr "Oczekiwane \" [ \"" -msgid "\\Return to COLOBOT" -msgstr "\\Powróć do gry COLOBOT" +msgid "String missing" +msgstr "Brak łańcucha" -msgid "\\SatCom on standby" -msgstr "\\Przełącz przekaźnik SatCom w stan gotowości" +msgid "Incorrect index type" +msgstr "Nieprawidłowy typ indeksu" -msgid "\\Start recording" -msgstr "\\Démarre l'enregistrement" +msgid "Private element" +msgstr "Element prywatny" -msgid "\\Stop recording" -msgstr "\\Stoppe l'enregistrement" +msgid "Public required" +msgstr "Wymagany publiczny" -msgid "\\Turn left" -msgstr "\\Obróć w lewo" +msgid "Dividing by zero" +msgstr "Dzielenie przez zero" -msgid "\\Turn right" -msgstr "\\Obróć w prawo" +msgid "Variable not initialized" +msgstr "Zmienna nie została zainicjalizowana" -msgid "\\Use the black pencil" -msgstr "\\Abaisse le crayon noir" +msgid "Negative value rejected by \"throw\"" +msgstr "Wartość ujemna odrzucona przez \"throw\"" -msgid "\\Use the blue pencil" -msgstr "\\Abaisse le crayon bleu" +msgid "The function returned no value " +msgstr "Funkcja nie zwróciła żadnej wartości " -msgid "\\Use the brown pencil" -msgstr "\\Abaisse le crayon brun" +msgid "No function running" +msgstr "Żadna funkcja nie działa" -msgid "\\Use the green pencil" -msgstr "\\Abaisse le crayon vert" +msgid "Calling an unknown function" +msgstr "Odwołanie do nieznanej funkcji" -msgid "\\Use the orange pencil" -msgstr "\\Abaisse le crayon orange" +msgid "This class does not exist" +msgstr "Taka klasa nie istnieje" -msgid "\\Use the purple pencil" -msgstr "\\Abaisse le crayon violet" +msgid "Unknown Object" +msgstr "Obiekt nieznany" -msgid "\\Use the red pencil" -msgstr "\\Abaisse le crayon rouge" +msgid "Operation impossible with value \"nan\"" +msgstr "Działanie niemożliwe z wartością \"nan\"" -msgid "\\Use the yellow pencil" -msgstr "\\Abaisse le crayon jaune" +msgid "Access beyond array limit" +msgstr "Dostęp poza tablicę" -msgid "\\Violet flags" -msgstr "\\Fioletowe flagi" +msgid "Stack overflow" +msgstr "Przepełnienie stosu" -msgid "\\Yellow flags" -msgstr "\\Żółte flagi" +msgid "Illegal object" +msgstr "Nieprawidłowy obiekt" -msgid "\\b;Aliens\n" -msgstr "\\b;Obcy\n" +msgid "Can't open file" +msgstr "Nie można otworzyć pliku" -msgid "\\b;Buildings\n" -msgstr "\\b;Budynki\n" +msgid "File not open" +msgstr "Plik nie jest otwarty" -msgid "\\b;Error\n" -msgstr "\\b;Błąd\n" +msgid "Read error" +msgstr "Błąd odczytu" -msgid "\\b;List of objects\n" -msgstr "\\b;Lista obiektów\n" +msgid "Write error" +msgstr "Błąd zapisu" -msgid "\\b;Moveable objects\n" -msgstr "\\b;Obiekty ruchome\n" +msgid "left;" +msgstr "left;" -msgid "\\b;Robots\n" -msgstr "\\b;Roboty\n" +msgid "right;" +msgstr "right;" -msgid "\\c; (none)\\n;\n" -msgstr "\\c; (brak)\\n;\n" +msgid "up;" +msgstr "up;" -msgid "action;" -msgstr "" +msgid "down;" +msgstr "down;" -msgid "away;" -msgstr "" +msgid "gup;" +msgstr "gup;" -msgid "camera;" -msgstr "" +msgid "gdown;" +msgstr "gdown;" -msgid "cbot;" -msgstr "" +msgid "camera;" +msgstr "camera;" msgid "desel;" -msgstr "" +msgstr "desel;" -msgid "down;" -msgstr "" +msgid "action;" +msgstr "action;" -msgid "gdown;" -msgstr "" +msgid "near;" +msgstr "near;" -msgid "gup;" -msgstr "" +msgid "away;" +msgstr "away;" -msgid "help;" -msgstr "" +msgid "next;" +msgstr "next;" msgid "human;" -msgstr "" - -msgid "left;" -msgstr "" +msgstr "human;" -msgid "near;" -msgstr "" +msgid "quit;" +msgstr "quit;" -msgid "next;" -msgstr "" +msgid "help;" +msgstr "help;" msgid "prog;" -msgstr "" +msgstr "prog;" -msgid "quit;" -msgstr "" +msgid "cbot;" +msgstr "cbot;" -msgid "right;" -msgstr "" +msgid "visit;" +msgstr "visit;" msgid "speed10;" -msgstr "" +msgstr "speed10;" msgid "speed15;" -msgstr "" +msgstr "speed15;" msgid "speed20;" -msgstr "" +msgstr "speed20;" -msgid "up;" -msgstr "" +msgid "Ctrl" +msgstr "Ctrl" -msgid "visit;" -msgstr "" +msgid "Shift" +msgstr "Shift" -msgid "www.epsitec.com" -msgstr "www.epsitec.com" +msgid "Alt" +msgstr "Alt" + +msgid "Win" +msgstr "Win" + +msgid "Button %1" +msgstr "Przycisk %1" + +msgid "%1" +msgstr "%1" + +#~ msgid "Menu (\\key quit;)" +#~ msgstr "Menu (\\key quit;)" + +#, c-format +#~ msgid "GetResource event num out of range: %d\n" +#~ msgstr "GetResource numer zdarzenia poza zakresem: %d\n" #~ msgid "< none >" #~ msgstr "< brak >" @@ -1979,9 +1994,6 @@ msgstr "www.epsitec.com" #~ msgid "Left Windows" #~ msgstr "Lewy klawisz Windows" -#~ msgid "Menu (\\key quit;)" -#~ msgstr "Menu (\\key quit;)" - #~ msgid "Mini-map" #~ msgstr "Mapka" diff --git a/po/ru.po b/po/ru.po index 8d2a257..288adca 100644 --- a/po/ru.po +++ b/po/ru.po @@ -2,8 +2,6 @@ # 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: PACKAGE VERSION\n" @@ -12,1817 +10,1806 @@ msgstr "" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" -"Language: \n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Translate Toolkit 1.11.0\n" "X-Language: ru_RU\n" "X-Source-Language: en_US\n" -msgid " " -msgstr " " - -msgid " Challenges in the chapter:" -msgstr " Задачи к главе:" - -msgid " Chapters:" -msgstr " Разделы:" - -msgid " Drivers:" -msgstr " Драйверы:" +msgid "Colobot rules!" +msgstr "Правила игры!" -msgid " Exercises in the chapter:" -msgstr " Упражнения в разделе:" +msgid "SatCom" +msgstr "SatCom" -msgid " Free game on this chapter:" -msgstr " Свободная игра на этой главе:" +msgid "Maximize" +msgstr "Развернуть" -msgid " Free game on this planet:" -msgstr " Свободная игра на этой планете:" +msgid "Minimize" +msgstr "Свернуть" -msgid " Missions on this level:" -msgstr " Миссии на этом уровне:" +msgid "Normal size" +msgstr "Нормальный размер" -msgid " Missions on this planet:" -msgstr "Миссии на этой планете:" +msgid "Close" +msgstr "Закрыть" -msgid " Planets:" -msgstr " Планеты:" +msgid "Program editor" +msgstr "Редактор программ" -msgid " Resolution:" -msgstr " Разрешение:" +msgid "New" +msgstr "Новый" -msgid " Summary:" -msgstr " Итог:" +msgid "Player" +msgstr "Игрок" -msgid " User levels:" -msgstr " Пользовательские уровни:" +msgid "New ..." +msgstr "Новый ..." msgid " or " msgstr " или " -msgid "\" [ \" expected" -msgstr "Ожидалось \" [ \"" +msgid "COLOBOT" +msgstr "КОЛОБОТ" -msgid "\" ] \" missing" -msgstr "Отсутствует \"]\" " +msgid "COLOBOT: Gold Edition" +msgstr "" -#, c-format -msgid "\"%s\" missing in this exercise" -msgstr "\"%s\" отсутствует в этом упражнении" +msgid "Programming exercises" +msgstr "Упражнения" -msgid "%1" -msgstr "%1" +msgid "Challenges" +msgstr "Задания" -msgid "..behind" -msgstr "Сзади" +msgid "Missions" +msgstr "Миссии" -msgid "..in front" -msgstr "Спереди" +msgid "Free game" +msgstr "Свободная игра" -msgid "..power cell" -msgstr "Батарею" +msgid "User levels" +msgstr "Пользовательские уровни" -msgid "1) First click on the key you want to redefine." -msgstr "1) Сначала нажми на клавишу, которую вы хотите переопределить." +msgid "Options" +msgstr "Опции" -msgid "2) Then press the key you want to use instead." -msgstr "2) После этого нажмите на клавишу, которую вы хотите использовать." +msgid "Player's name" +msgstr "Имя игрока" -msgid "3D sound\\3D positioning of the sound" -msgstr "3D-звук\\Стерео звук" +msgid "Customize your appearance" +msgstr "Настроить свой внешний вид" -msgid "<< Back \\Back to the previous screen" -msgstr "<< Назад \\Вернуться на предыдущую страницу" +msgid "Save the current mission" +msgstr "Сохранить" -msgid "<<< Sorry; mission failed >>>" -msgstr "<<< Миссия провалена >>>" +msgid "Load a saved mission" +msgstr "Загрузить" -msgid "<<< Well done; mission accomplished >>>" -msgstr "<<< Отлично, миссия выполнена >>>" +msgid " Chapters:" +msgstr " Разделы:" -msgid "A label must be followed by \"for\"; \"while\"; \"do\" or \"switch\"" -msgstr "За меткой должен быть \"for\", \"while\", \"do\" или \"switch\"" +msgid " Planets:" +msgstr " Планеты:" -msgid "A variable can not be declared twice" -msgstr "Переменная не может быть объявлена дважды" +msgid " User levels:" +msgstr " Пользовательские уровни:" -msgid "Abort\\Abort the current mission" -msgstr "Выход\\Прервать текущую миссию" +msgid " Exercises in the chapter:" +msgstr " Упражнения в разделе:" -msgid "Access beyond array limit" -msgstr "Доступ к массиву за предел" +msgid " Challenges in the chapter:" +msgstr " Задачи к главе:" -msgid "" -"Access to solution\\Shows the solution (detailed instructions for missions)" -msgstr "Доступ к решению\\Показывает решение (подробные инструкции для миссий)" +msgid " Missions on this planet:" +msgstr "Миссии на этой планете:" -msgid "Access to solutions\\Show program \"4: Solution\" in the exercises" -msgstr "Доступ к решению\\Показывает решение \"4: Решение\" в упражнениях" +msgid " Free game on this planet:" +msgstr " Свободная игра на этой планете:" -msgid "Alien Queen" -msgstr "Королева чужих" +msgid " Missions on this level:" +msgstr " Миссии на этом уровне:" -msgid "Alien Queen killed" -msgstr "Королева чужих убита" +msgid " Free game on this chapter:" +msgstr " Свободная игра на этой главе:" -msgid "Already carrying something" -msgstr "Уже что-то несу" +msgid " Summary:" +msgstr " Итог:" -msgid "Alt" -msgstr "Alt" +msgid " Drivers:" +msgstr " Драйверы:" -msgid "Analysis already performed" -msgstr "Анализ уже выполнен" +msgid " Resolution:" +msgstr " Разрешение:" -msgid "Analysis performed" -msgstr "Анализ выполнен" +msgid "1) First click on the key you want to redefine." +msgstr "1) Сначала нажми на клавишу, которую вы хотите переопределить." -msgid "Analyzes only organic matter" -msgstr "Анализирую только органические вещества" +msgid "2) Then press the key you want to use instead." +msgstr "2) После этого нажмите на клавишу, которую вы хотите использовать." -msgid "Ant" -msgstr "Муравей" +msgid "Face type:" +msgstr "Лицо:" -msgid "Ant fatally wounded" -msgstr "Муравей смертельно ранен" +msgid "Eyeglasses:" +msgstr "Очки:" -msgid "Appearance\\Choose your appearance" -msgstr "Внешность\\Настройка внешности" +msgid "Hair color:" +msgstr "Волосы:" -msgid "Apply changes\\Activates the changed settings" -msgstr "Принять\\Принять изменения настроек" +msgid "Suit color:" +msgstr "Костюм:" -msgid "Appropriate constructor missing" -msgstr "Соответствующий конструктор отсутствует" +msgid "Strip color:" +msgstr "Цвет полос" -msgid "Assignment impossible" -msgstr "Назначение невозможно" +msgid "Do you want to quit COLOBOT ?" +msgstr "Вы хотите закрыть COLOBOT?" -msgid "Autolab" -msgstr "Лаборатория" +msgid "Quit\\Quit COLOBOT" +msgstr "Выход\\Выход из COLOBOT" -msgid "Automatic indent\\When program editing" -msgstr "Автоматический отступ\\При редактировании программы" +msgid "Quit the mission?" +msgstr "Завершить миссию?" -msgid "Back" -msgstr "Назад" +msgid "Abort\\Abort the current mission" +msgstr "Выход\\Прервать текущую миссию" -msgid "Background sound :\\Volume of audio tracks on the CD" -msgstr "Фоновый звук:\\Громкость звуковых дорожек на CD" +msgid "Continue\\Continue the current mission" +msgstr "Продолжить\\Продолжить текущую миссию" -msgid "Backward (\\key down;)" -msgstr "Назад (\\key down;)" +msgid "Continue\\Continue the game" +msgstr "Продолжить\\Продолжить игру" -msgid "Backward\\Moves backward" -msgstr "Назад\\Двигаться назад" +msgid "Do you really want to destroy the selected building?" +msgstr "Вы действительно хотите уничтожить выбранное здание?" -msgid "Bad argument for \"new\"" -msgstr "Неверный аргумент для \"new\"" +#, c-format +msgid "Do you want to delete %s's saved games? " +msgstr "Вы действительно хотите удалить сохраненные игры игрока %s?" -msgid "Big indent\\Indent 2 or 4 spaces per level defined by braces" -msgstr "Большой отступ\\Отступать на 2 или 4 пробела, в зависимости от скобок" +msgid "Delete" +msgstr "Удалить" -msgid "Black box" -msgstr "Черный ящик" +msgid "Cancel" +msgstr "Отмена" -msgid "Blue" -msgstr "Синий" +msgid "LOADING" +msgstr "ЗАГРУЗКА" -msgid "Blue flag" -msgstr "Синий флаг" +msgid "Keyword help(\\key cbot;)" +msgstr "Помощь(\\key cbot;)" -msgid "Bot destroyed" -msgstr "Бот уничтожен" +msgid "Compilation ok (0 errors)" +msgstr "Компиляция завершена (0 ошибок)" -msgid "Bot factory" -msgstr "Завод ботов" +msgid "Program finished" +msgstr "Программа выполнена" -msgid "Build a bot factory" -msgstr "Построить завод ботов" +msgid "\\b;List of objects\n" +msgstr "\\b;Список объектов\n" -msgid "Build a converter" -msgstr "Построить преобразователь" +msgid "\\b;Robots\n" +msgstr "\\b;Роботы\n" -msgid "Build a defense tower" -msgstr "Построить защитную башню" +msgid "\\b;Buildings\n" +msgstr "\\b;Здания\n" -msgid "Build a derrick" -msgstr "Построить буровую вышку" +msgid "\\b;Moveable objects\n" +msgstr "\\b;Подвижные объекты\n" -#, fuzzy -msgid "Build a destroyer" -msgstr "Здание разрушено" +msgid "\\b;Aliens\n" +msgstr "\\b;Чужаки\n" -msgid "Build a exchange post" -msgstr "Построить пост по обмену сообщениями" +msgid "\\c; (none)\\n;\n" +msgstr "" +"\\c; (нет)\\n" +";\n" -msgid "Build a legged grabber" -msgstr "Собрать шагающего сборщика" +msgid "\\b;Error\n" +msgstr "\\b;Ошибка\n" -msgid "Build a legged orga shooter" -msgstr "Собрать шагающего орга-стрелка" +msgid "" +"The list is only available if a \\l;radar station\\u object\\radar; is " +"working.\n" +msgstr "" +"Список доступен только если \\l;radar station\\u object\\radar; работают\n" -msgid "Build a legged shooter" -msgstr "Собрать шагающего стрелка" +msgid "Open" +msgstr "Открыть" -msgid "Build a legged sniffer" -msgstr "Собрать шагающего искателя" +msgid "Save" +msgstr "Сохранить" -msgid "Build a lightning conductor" -msgstr "Построить громоотвод" +#, c-format +msgid "Folder: %s" +msgstr "Папка: %s" -msgid "Build a nuclear power plant" -msgstr "Построить завод атомных батарей (неперезаряж.)" +msgid "Name:" +msgstr "Имя:" -msgid "Build a phazer shooter" -msgstr "Собрать фазового стрелка" +msgid "Folder:" +msgstr "Папка" -msgid "Build a power cell factory" -msgstr "Построить завод перезаряжаемых батарей" +msgid "Private\\Private folder" +msgstr "Личное\\Личная папка" -msgid "Build a power station" -msgstr "Построить электростанцию" +msgid "Public\\Common folder" +msgstr "Общее\\Общая папка" -msgid "Build a radar station" -msgstr "Построить радарную станцию" +msgid "Developed by :" +msgstr "Разработка :" -msgid "Build a recycler" -msgstr "Собрать утилизатор" +msgid "www.epsitec.com" +msgstr "www.epsitec.com" -msgid "Build a repair center" -msgstr "Построить ремонтный пункт" +msgid " " +msgstr " " -msgid "Build a research center" -msgstr "Построить научно-исследовательский центр" +msgid "Recorder" +msgstr "Запись" -msgid "Build a shielder" -msgstr "Собрать передвижной щит" +msgid "OK" +msgstr "ОК" -msgid "Build a subber" -msgstr "Собрать саббера" +msgid "Next" +msgstr "Следующий" -msgid "Build a thumper" -msgstr "Собрать ударника" +msgid "Previous" +msgstr "Предыдущий" -msgid "Build a tracked grabber" -msgstr "Собрать гусеничного сборщика" +msgid "Exercises\\Programming exercises" +msgstr "Упражнения\\Упражнения по программированию" -msgid "Build a tracked orga shooter" -msgstr "Собрать гусеничного орга-стрелка" +msgid "Challenges\\Programming challenges" +msgstr "Задания\\Практика программирования" -msgid "Build a tracked shooter" -msgstr "Собрать гусеничного стрелка" +msgid "Missions\\Select mission" +msgstr "Миссии\\Выбор миссии" -msgid "Build a tracked sniffer" -msgstr "Собрать гусеничного искателя" +msgid "Free game\\Free game without a specific goal" +msgstr "Свобод. игра\\Игра без четкой цели" -msgid "Build a wheeled grabber" -msgstr "Собрать колесного сборщика" +msgid "User\\User levels" +msgstr "Польз.\\Пользовательские уровни" -msgid "Build a wheeled orga shooter" -msgstr "Собрать колесного орга-стрелка" +msgid "Change player\\Change player" +msgstr "Новый игрок\\Выберите имя для игрока" -msgid "Build a wheeled shooter" -msgstr "Собрать колесного стрелка" +msgid "Options\\Preferences" +msgstr "Опции\\Настройки" -msgid "Build a wheeled sniffer" -msgstr "Собрать колесного искателя" +msgid "Restart\\Restart the mission from the beginning" +msgstr "Заново\\Начать данную миссию с начала" -msgid "Build a winged grabber" -msgstr "Собрать летающего сборщика" +msgid "Save\\Save the current mission " +msgstr "Сохранить\\Сохранить текущую миссию" -msgid "Build a winged orga shooter" -msgstr "Собрать летающего орга-стрелка" +msgid "Load\\Load a saved mission" +msgstr "Загрузить\\Загрузить сохраненную миссию" -msgid "Build a winged shooter" -msgstr "Собрать летающего стрелка" +msgid "\\Return to COLOBOT" +msgstr "\\Вернуться в COLOBOT" -msgid "Build a winged sniffer" -msgstr "Собрать летающего искателя" +msgid "<< Back \\Back to the previous screen" +msgstr "<< Назад \\Вернуться на предыдущую страницу" -msgid "Build an autolab" -msgstr "Построить лабораторию" +msgid "Play\\Start mission!" +msgstr "Начать\\Перейти к выполнению миссии!" -msgid "Building completed" -msgstr "Здание построено" +msgid "Device\\Driver and resolution settings" +msgstr "Устройство\\Драйвер и настройки разрешения" -msgid "Building destroyed" -msgstr "Здание разрушено" +msgid "Graphics\\Graphics settings" +msgstr "Графика\\Настройки графики" -msgid "Building too close" -msgstr "Здание слишком близко" +msgid "Game\\Game settings" +msgstr "Игра\\Настройки игры" -msgid "Button %1" -msgstr "Кнопка %1" +msgid "Controls\\Keyboard, joystick and mouse settings" +msgstr "Управление\\Настройки клавиатуры, джойстика и мыши" -msgid "COLOBOT" -msgstr "КОЛОБОТ" +msgid "Sound\\Music and game sound volume" +msgstr "Звук\\Громкость музыки и звуков" -msgid "COLOBOT: Gold Edition" -msgstr "" +msgid "Unit" +msgstr "Юнит" -msgid "Calling an unknown function" -msgstr "Вызов неизвестной функции" +msgid "Resolution" +msgstr "Разрешение" -msgid "Camera (\\key camera;)" -msgstr "Камера (\\key camera;)" +msgid "Full screen\\Full screen or window mode" +msgstr "Во весь экран\\Выбор полноэкранного или оконного режима" -msgid "Camera awayest" -msgstr "Отдалить камеру" +msgid "Apply changes\\Activates the changed settings" +msgstr "Принять\\Принять изменения настроек" -msgid "Camera back\\Moves the camera backward" -msgstr "Отдалить камеру\\Перемещение камеры назад" +msgid "Robbie\\Your assistant" +msgstr "Робби\\Ваш помощник" -msgid "Camera closer\\Moves the camera forward" -msgstr "Приблизать камеру\\Перемещение камеры вперед" +msgid "Shadows\\Shadows on the ground" +msgstr "Тени\\Тени на земле" -msgid "Camera nearest" -msgstr "Приблизить камеру" +msgid "Marks on the ground\\Marks on the ground" +msgstr "Метки на земле\\Метки на земле" -msgid "Camera to left" -msgstr "Камеру влево" +msgid "Dust\\Dust and dirt on bots and buildings" +msgstr "Пыль\\Пыль и грязь на ботах и зданиях" -msgid "Camera to right" -msgstr "Камеру вправо" +msgid "Fog\\Fog" +msgstr "Туман\\Туман" -msgid "Can not create this; there are too many objects" -msgstr "Не удается это создать, слишком много объектов" +msgid "Sunbeams\\Sunbeams in the sky" +msgstr "Солнечные лучи\\Солнечные лучи в небе" -msgid "Can not produce not researched object" -msgstr "" +msgid "Sky\\Clouds and nebulae" +msgstr "Небо\\Облака и туманности" -msgid "Can not produce this object in this mission" -msgstr "" +msgid "Planets and stars\\Astronomical objects in the sky" +msgstr "Планеты и звезды\\Астрономические объекты в небе" -msgid "Can't open file" -msgstr "Невозможно открыть файл" +msgid "Dynamic lighting\\Mobile light sources" +msgstr "Динамическое освещение\\Подвижные источники света" -msgid "Cancel" -msgstr "Отмена" +msgid "Number of particles\\Explosions, dust, reflections, etc." +msgstr "Количество частиц\\Взрывы, пыль, отражения и т.д." -msgid "Cancel\\Cancel all changes" -msgstr "Отмена\\Отменить все изменения" +msgid "Depth of field\\Maximum visibility" +msgstr "Дальность прорисовки\\Максимальная видимость" -msgid "Cancel\\Keep current player name" -msgstr "Отмена\\Отмена" +msgid "Details\\Visual quality of 3D objects" +msgstr "Детали\\Визуальное качество 3D-объектов" -msgid "Challenges" -msgstr "Задания" +msgid "Textures\\Quality of textures " +msgstr "Текстуры\\Качество текстур " -msgid "Challenges\\Programming challenges" -msgstr "Задания\\Практика программирования" +msgid "Num of decorative objects\\Number of purely ornamental objects" +msgstr "Количество декораций\\Количество декоративных объектов" -msgid "Change camera\\Switches between onboard camera and following camera" -msgstr "Изменить вид\\Переключение между бортовой камерой и следящей камерой" +msgid "Particles in the interface\\Steam clouds and sparks in the interface" +msgstr "Частицы в интерфейсе меню\\Пар из труб и искры в интерфейсе меню" -msgid "Change player\\Change player" -msgstr "Новый игрок\\Выберите имя для игрока" +msgid "Reflections on the buttons \\Shiny buttons" +msgstr "Отражения кнопок \\Блестящие кнопки" -msgid "Checkpoint" -msgstr "Контрольная точка" +msgid "Help balloons\\Explain the function of the buttons" +msgstr "Подсказки\\Объяснение функций кнопок" -msgid "Checkpoint crossed" -msgstr "Вы прошли контрольную точку" +msgid "Film sequences\\Films before and after the missions" +msgstr "Показывать видео\\Фильмы до и после миссий" -msgid "Climb\\Increases the power of the jet" -msgstr "Взлет и подъем\\Увеличивает мощность реактивного двигателя" +msgid "Exit film\\Film at the exit of exercises" +msgstr "Ролик при выходе\\Ролик во время выхода из упражнения" -msgid "Close" -msgstr "Закрыть" +msgid "Friendly fire\\Your shooting can damage your own objects " +msgstr "Огонь по своим\\Вы можете повредить собственные объекты" -msgid "Closing bracket missing " -msgstr "Закрывающая скобка отсутствует" +msgid "Scrolling\\Scrolling when the mouse touches right or left border" +msgstr "Прокрутка\\Прокрутка, когда указатель мыши касается граней экрана" -msgid "Colobot rules!" -msgstr "Правила игры!" +msgid "Mouse inversion X\\Inversion of the scrolling direction on the X axis" +msgstr "Инверсия мыши по оси X\\Инверсия прокрутки по оси Х" -msgid "Command line" -msgstr "Командная строка" +msgid "Mouse inversion Y\\Inversion of the scrolling direction on the Y axis" +msgstr "Инверсия мыши по оси Y\\Инверсия прокрутки по оси Y" -msgid "Compass" -msgstr "Компас" +msgid "Quake at explosions\\The screen shakes at explosions" +msgstr "Землетряс. при взрывах\\Тряска экрана при взрывах" -msgid "Compilation ok (0 errors)" -msgstr "Компиляция завершена (0 ошибок)" +msgid "Mouse shadow\\Gives the mouse a shadow" +msgstr "Тень мыши\\Мышь отбрасывает тень" -msgid "Compile" -msgstr "Компилировать" +msgid "Automatic indent\\When program editing" +msgstr "Автоматический отступ\\При редактировании программы" -msgid "Continue" -msgstr "Продолжить" +msgid "Big indent\\Indent 2 or 4 spaces per level defined by braces" +msgstr "Большой отступ\\Отступать на 2 или 4 пробела, в зависимости от скобок" -msgid "Continue\\Continue the current mission" -msgstr "Продолжить\\Продолжить текущую миссию" +msgid "Access to solutions\\Show program \"4: Solution\" in the exercises" +msgstr "Доступ к решению\\Показывает решение \"4: Решение\" в упражнениях" -msgid "Continue\\Continue the game" -msgstr "Продолжить\\Продолжить игру" +msgid "Standard controls\\Standard key functions" +msgstr "Стандартное управление\\Сделать управление по умолчанию" -msgid "Controls\\Keyboard, joystick and mouse settings" -msgstr "Управление\\Настройки клавиатуры, джойстика и мыши" +msgid "Turn left\\turns the bot to the left" +msgstr "Повернуть налево\\Поворот налево" -msgid "Converts ore to titanium" -msgstr "Преобразует руду в титан" +msgid "Turn right\\turns the bot to the right" +msgstr "Повернуть налево\\Поворот налево" -msgid "Copy" -msgstr "Копировать" +msgid "Forward\\Moves forward" +msgstr "Вперед\\Двигаться вперед" -msgid "Copy (Ctrl+c)" -msgstr "Копировать (Ctrl+C)" +msgid "Backward\\Moves backward" +msgstr "Назад\\Двигаться назад" -msgid "Ctrl" -msgstr "Ctrl" +msgid "Climb\\Increases the power of the jet" +msgstr "Взлет и подъем\\Увеличивает мощность реактивного двигателя" -msgid "Current mission saved" -msgstr "Текущая миссия сохранена" +msgid "Descend\\Reduces the power of the jet" +msgstr "Снижение и посадка\\Понижение мощности реактивного двигателя" -msgid "Customize your appearance" -msgstr "Настроить свой внешний вид" +msgid "Change camera\\Switches between onboard camera and following camera" +msgstr "Изменить вид\\Переключение между бортовой камерой и следящей камерой" -msgid "Cut (Ctrl+x)" -msgstr "Вырезать (Ctrl+X)" +msgid "Previous object\\Selects the previous object" +msgstr "Предыдущий объект\\Выбор предыдущего объекта" -msgid "Defense tower" -msgstr "Защитная башня" +msgid "" +"Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)" +msgstr "" +"Стандартное действие\\Стандартное действие бота (брать/взять, стрелять, " +"искать и т.д.)" -msgid "Delete" -msgstr "Удалить" +msgid "Camera closer\\Moves the camera forward" +msgstr "Приблизать камеру\\Перемещение камеры вперед" -msgid "Delete player\\Deletes the player from the list" -msgstr "Удалить игрока\\Удаление игрока из списка" +msgid "Camera back\\Moves the camera backward" +msgstr "Отдалить камеру\\Перемещение камеры назад" -msgid "Delete\\Deletes the selected file" -msgstr "Удалить\\Удаление выбранного файла" +msgid "Next object\\Selects the next object" +msgstr "Следующий объект\\Выбор следующего объекта" -msgid "Depth of field\\Maximum visibility" -msgstr "Дальность прорисовки\\Максимальная видимость" +msgid "Select the astronaut\\Selects the astronaut" +msgstr "Выбор астронавта\\Выбор астронавта" -msgid "Derrick" -msgstr "Космический корабль" +msgid "Quit\\Quit the current mission or exercise" +msgstr "Выход\\Выход из текущей миссии" -msgid "Descend\\Reduces the power of the jet" -msgstr "Снижение и посадка\\Понижение мощности реактивного двигателя" +msgid "Instructions\\Shows the instructions for the current mission" +msgstr "Инструкции\\Показывает инструкции по текущей миссии" -#, fuzzy -msgid "Destroy" -msgstr "Уничтожитель" +msgid "Programming help\\Gives more detailed help with programming" +msgstr "" +"Помощь в программировании\\Дает более детальную помощь в программировании" + +msgid "Key word help\\More detailed help about key words" +msgstr "Помощь по командам\\Более подробная справку по командам" -msgid "Destroy the building" -msgstr "Уничтожить здание" +msgid "Origin of last message\\Shows where the last message was sent from" +msgstr "" +"Источник сообщения\\Показывает место, откуда было отправлено последнеее " +"сообщение" -msgid "Destroyer" -msgstr "Уничтожитель" +msgid "Speed 1.0x\\Normal speed" +msgstr "Скорость 1.0х\\Нормальная скорость" -msgid "Details\\Visual quality of 3D objects" -msgstr "Детали\\Визуальное качество 3D-объектов" +msgid "Speed 1.5x\\1.5 times faster" +msgstr "Скорость 1.5х\\В полтора раза быстрее" -msgid "Developed by :" -msgstr "Разработка :" +msgid "Speed 2.0x\\Double speed" +msgstr "Скорость 2.0х\\В два раза скорость" -msgid "Device\\Driver and resolution settings" -msgstr "Устройство\\Драйвер и настройки разрешения" +msgid "Speed 3.0x\\Three times faster" +msgstr "Скорость 3.0х\\В три раза быстрее" -msgid "Dividing by zero" -msgstr "Деление на ноль (запрещено!)" +msgid "Sound effects:\\Volume of engines, voice, shooting, etc." +msgstr "Общий звук:\\Гормкость двигателя, голоса, стрельбы и т.д." -msgid "Do not use in this exercise" -msgstr "Не используй в этом упражнении" +msgid "Background sound :\\Volume of audio tracks on the CD" +msgstr "Фоновый звук:\\Громкость звуковых дорожек на CD" -msgid "Do you really want to destroy the selected building?" -msgstr "Вы действительно хотите уничтожить выбранное здание?" +msgid "3D sound\\3D positioning of the sound" +msgstr "3D-звук\\Стерео звук" -#, c-format -msgid "Do you want to delete %s's saved games? " -msgstr "Вы действительно хотите удалить сохраненные игры игрока %s?" +msgid "Lowest\\Minimum graphic quality (highest frame rate)" +msgstr "Низкое\\Минимальное качество графики (быстро)" -msgid "Do you want to quit COLOBOT ?" -msgstr "Вы хотите закрыть COLOBOT?" +msgid "Normal\\Normal graphic quality" +msgstr "Средн.\\Нормальное качество графики" -msgid "Doors blocked by a robot or another object " -msgstr "Двери заблокированы роботом или другим объектом" +msgid "Highest\\Highest graphic quality (lowest frame rate)" +msgstr "Высок.\\Самые высокие настройки графики (лучшее качество)" -msgid "Down (\\key gdown;)" -msgstr "Вниз (\\key gdown;)" +msgid "Mute\\No sound" +msgstr "Без звука\\Без звука" -msgid "Drawer bot" -msgstr "Рисовальщик" +msgid "Normal\\Normal sound volume" +msgstr "Нормально\\Нормальная громкость" -msgid "Dust\\Dust and dirt on bots and buildings" -msgstr "Пыль\\Пыль и грязь на ботах и зданиях" +msgid "Use a joystick\\Joystick or keyboard" +msgstr "Использовать джойстик\\Джойстик или клавиатура" -msgid "Dynamic lighting\\Mobile light sources" -msgstr "Динамическое освещение\\Подвижные источники света" +msgid "" +"Access to solution\\Shows the solution (detailed instructions for missions)" +msgstr "Доступ к решению\\Показывает решение (подробные инструкции для миссий)" -msgid "Edit the selected program" -msgstr "Изменить выбранную программу" +msgid "\\New player name" +msgstr "\\Новое имя" -msgid "Egg" -msgstr "Яйцо" +msgid "OK\\Choose the selected player" +msgstr "ОК\\Выбрать игрока" -msgid "End of block missing" -msgstr "Отсутствует конец блока" +msgid "Cancel\\Keep current player name" +msgstr "Отмена\\Отмена" -msgid "Energy deposit (site for power station)" -msgstr "Запасы энергии (место для электростанций)" +msgid "Delete player\\Deletes the player from the list" +msgstr "Удалить игрока\\Удаление игрока из списка" -msgid "Energy level" -msgstr "Уровень энергии" +msgid "Player name" +msgstr "Имя игрока" -msgid "Engineer" -msgstr "Инженер" +msgid "Save\\Saves the current mission" +msgstr "Сохранить\\Сохранить текущую миссию" -msgid "Error in instruction move" -msgstr "Ошибка движения" +msgid "Load\\Loads the selected mission" +msgstr "Загрузить\\Загрузить выбранную миссию" -msgid "Execute the selected program" -msgstr "Выполнить выбранную программу" +msgid "List of saved missions" +msgstr "Список сохраненных миссий" -msgid "Execute/stop" -msgstr "Выполнить/стоп" +msgid "Filename:" +msgstr "Имя файла:" -msgid "Exercises\\Programming exercises" -msgstr "Упражнения\\Упражнения по программированию" +msgid "Mission name" +msgstr "Название миссии" -msgid "Exit film\\Film at the exit of exercises" -msgstr "Ролик при выходе\\Ролик во время выхода из упражнения" +msgid "Photography" +msgstr "Фотография" -#, fuzzy -msgid "Explode (\\key action;)" -msgstr "Утилизация (\\key action;)" +msgid "Delete\\Deletes the selected file" +msgstr "Удалить\\Удаление выбранного файла" -msgid "Explosive" -msgstr "Взрывчатка" +msgid "Appearance\\Choose your appearance" +msgstr "Внешность\\Настройка внешности" -msgid "Extend shield (\\key action;)" -msgstr "Поднять щит (\\key action;)" +msgid "Standard\\Standard appearance settings" +msgstr "По умолчанию\\Настройки внешнего вида по умолчанию" -msgid "Eyeglasses:" -msgstr "Очки:" +msgid "Head\\Face and hair" +msgstr "Голова\\Лицо и волосы" -msgid "Face type:" -msgstr "Лицо:" +msgid "Suit\\Astronaut suit" +msgstr "Костюм\\Костюм астронавта" -msgid "File not open" -msgstr "Файл не открыт" +msgid "\\Turn left" +msgstr "\\Повернуть налево" -msgid "Filename:" -msgstr "Имя файла:" +msgid "\\Turn right" +msgstr "\\Повернуть направо" -msgid "Film sequences\\Films before and after the missions" -msgstr "Показывать видео\\Фильмы до и после миссий" +msgid "Red" +msgstr "Красный" -msgid "Finish" -msgstr "Финиш" +msgid "Green" +msgstr "Зеленый" -msgid "Fixed mine" -msgstr "Мина" +msgid "Blue" +msgstr "Синий" -msgid "Flat ground not large enough" -msgstr "Недостаточно плоской земли" +msgid "\\Face 1" +msgstr "Лицо 1" -msgid "Fog\\Fog" -msgstr "Туман\\Туман" +msgid "\\Face 4" +msgstr "\\Лицо 4" -msgid "Folder:" -msgstr "Папка" +msgid "\\Face 3" +msgstr "\\Лицо 3" -#, c-format -msgid "Folder: %s" -msgstr "Папка: %s" +msgid "\\Face 2" +msgstr "\\Лицо 4" -msgid "Font size" -msgstr "Размер шрифта" +msgid "\\No eyeglasses" +msgstr "\\Без очков" -msgid "Forward" -msgstr "Вперед" +msgid "\\Eyeglasses 1" +msgstr "\\Очки 1" -msgid "Forward (\\key up;)" -msgstr "Вперед (\\key up;)" +msgid "\\Eyeglasses 2" +msgstr "\\Очки 2" -msgid "Forward\\Moves forward" -msgstr "Вперед\\Двигаться вперед" +msgid "\\Eyeglasses 3" +msgstr "\\Очки 3" -msgid "Found a site for a derrick" -msgstr "Найдено место для буровой вышки" +msgid "\\Eyeglasses 4" +msgstr "\\Очки 4" -msgid "Found a site for power station" -msgstr "Найдено место для электростанции" +msgid "\\Eyeglasses 5" +msgstr "\\Очки 5" -msgid "Found key A (site for derrick)" -msgstr "Найден ключ A (место для буровой вышки)" +msgid "Previous selection (\\key desel;)" +msgstr "Предыдущий выбор (\\key desel;)" -msgid "Found key B (site for derrick)" -msgstr "Найден ключ B (место для буровой вышки)" +msgid "Turn left (\\key left;)" +msgstr "Налево (\\key left;)" -msgid "Found key C (site for derrick)" -msgstr "Найден ключ C (место для буровой вышки)" +msgid "Turn right (\\key right;)" +msgstr "Направо (\\key right;)" -msgid "Found key D (site for derrick)" -msgstr "Найден ключ D (место для буровой вышки)" +msgid "Forward (\\key up;)" +msgstr "Вперед (\\key up;)" -msgid "Free game" -msgstr "Свободная игра" +msgid "Backward (\\key down;)" +msgstr "Назад (\\key down;)" -msgid "Free game\\Free game without a specific goal" -msgstr "Свобод. игра\\Игра без четкой цели" +msgid "Up (\\key gup;)" +msgstr "Вверх (\\key gup;)" -msgid "Friendly fire\\Your shooting can damage your own objects " -msgstr "Огонь по своим\\Вы можете повредить собственные объекты" +msgid "Down (\\key gdown;)" +msgstr "Вниз (\\key gdown;)" -msgid "Full screen\\Full screen or window mode" -msgstr "Во весь экран\\Выбор полноэкранного или оконного режима" +msgid "Grab or drop (\\key action;)" +msgstr "Взять или бросить (\\key action;)" -msgid "Function already exists" -msgstr "Функция уже существует" +msgid "..in front" +msgstr "Спереди" -msgid "Function name missing" -msgstr "Имя функции отсутствует" +msgid "..behind" +msgstr "Сзади" -msgid "Game speed" -msgstr "Скорость игры" +msgid "..power cell" +msgstr "Батарею" -msgid "Game\\Game settings" -msgstr "Игра\\Настройки игры" +msgid "Instructions for the mission (\\key help;)" +msgstr "Инструкции для миссии (\\key help;)" -msgid "Gantry crane" -msgstr "Козловой кран" +msgid "Take off to finish the mission" +msgstr "Взлететь, чтобы закончить миссию" -msgid "Goto: destination occupied" -msgstr "Перейти: место занято" +msgid "Destroy" +msgstr "" -msgid "Goto: inaccessible destination" -msgstr "Перейти: место недоступно" +msgid "Build a derrick" +msgstr "Построить буровую вышку" -msgid "Grab or drop (\\key action;)" -msgstr "Взять или бросить (\\key action;)" +msgid "Build a power station" +msgstr "Построить электростанцию" -msgid "Graphics\\Graphics settings" -msgstr "Графика\\Настройки графики" +msgid "Build a bot factory" +msgstr "Построить завод ботов" -msgid "Green" -msgstr "Зеленый" +msgid "Build a repair center" +msgstr "Построить ремонтный пункт" -msgid "Green flag" -msgstr "Зеленый флаг" +msgid "Build a converter" +msgstr "Построить преобразователь" -msgid "Ground inappropriate" -msgstr "Земля не подходит" +msgid "Build a defense tower" +msgstr "Построить защитную башню" -msgid "Ground not flat enough" -msgstr "Земля недостаточно плоская" +msgid "Build a research center" +msgstr "Построить научно-исследовательский центр" -msgid "Hair color:" -msgstr "Волосы:" +msgid "Build a radar station" +msgstr "Построить радарную станцию" -msgid "Head\\Face and hair" -msgstr "Голова\\Лицо и волосы" +msgid "Build a power cell factory" +msgstr "Построить завод перезаряжаемых батарей" -msgid "Help about selected object" -msgstr "Справка о выбранном объекте" +msgid "Build an autolab" +msgstr "Построить лабораторию" -msgid "Help balloons\\Explain the function of the buttons" -msgstr "Подсказки\\Объяснение функций кнопок" +msgid "Build a nuclear power plant" +msgstr "Построить завод атомных батарей (неперезаряж.)" -msgid "Highest\\Highest graphic quality (lowest frame rate)" -msgstr "Высок.\\Самые высокие настройки графики (лучшее качество)" +msgid "Build a lightning conductor" +msgstr "Построить громоотвод" -msgid "Home" -msgstr "Домой" +msgid "Build a exchange post" +msgstr "Построить пост по обмену сообщениями" -msgid "Houston Mission Control" -msgstr "Центр управления Хьюстон" +msgid "Build a destroyer" +msgstr "" -msgid "Illegal object" -msgstr "Запрещенный объект" +msgid "Show if the ground is flat" +msgstr "Показывать плоскую землю" -msgid "Impossible under water" -msgstr "Невозможно под водой" +msgid "Plant a flag" +msgstr "Установить флаг" -msgid "Impossible when carrying an object" -msgstr "Невозможно при движении с объектом" +msgid "Remove a flag" +msgstr "Удалить флаг" -msgid "Impossible when flying" -msgstr "Невозможно в полете" +msgid "\\Blue flags" +msgstr "\\Синий флаг" -msgid "Impossible when moving" -msgstr "Невозможно в движении" +msgid "\\Red flags" +msgstr "\\Красный флаг" -msgid "Impossible when swimming" -msgstr "Невозможно в воде" +msgid "\\Green flags" +msgstr "\\Зеленый флаг" -msgid "Inappropriate bot" -msgstr "Неверный бот" +msgid "\\Yellow flags" +msgstr "\\Желтый флаг" -msgid "Inappropriate cell type" -msgstr "Батарея не подходит" +msgid "\\Violet flags" +msgstr "\\Фиолетовый флаг" -#, fuzzy -msgid "Inappropriate object" -msgstr "Неверный бот" +msgid "Build a winged grabber" +msgstr "Собрать летающего сборщика" -msgid "Incorrect index type" -msgstr "Неверный тип индекса" +msgid "Build a tracked grabber" +msgstr "Собрать гусеничного сборщика" -msgid "Infected by a virus; temporarily out of order" -msgstr "Заражено вирусом. Временно вышел из строя" +msgid "Build a wheeled grabber" +msgstr "Собрать колесного сборщика" -msgid "Information exchange post" -msgstr "Пост обмена информацией" +msgid "Build a legged grabber" +msgstr "Собрать шагающего сборщика" -msgid "Instruction \"break\" outside a loop" -msgstr "Инструкция \"break\" вне цикла" +msgid "Build a winged shooter" +msgstr "Собрать летающего стрелка" -msgid "Instruction \"case\" missing" -msgstr "Отсутствует инструкция \"case\"" +msgid "Build a tracked shooter" +msgstr "Собрать гусеничного стрелка" -msgid "Instruction \"case\" outside a block \"switch\"" -msgstr "Инструкция \"case\" вне блока \"switch\" " +msgid "Build a wheeled shooter" +msgstr "Собрать колесного стрелка" -msgid "Instruction \"else\" without corresponding \"if\" " -msgstr "Инструкция \"else\" без \"if\" " +msgid "Build a legged shooter" +msgstr "Собрать шагающего стрелка" -msgid "Instructions (\\key help;)" -msgstr "Инструкции (\\key help;)" +msgid "Build a winged orga shooter" +msgstr "Собрать летающего орга-стрелка" -msgid "Instructions after the final closing brace" -msgstr "Инструкция после последней закрывающей фигурной скобки" +msgid "Build a tracked orga shooter" +msgstr "Собрать гусеничного орга-стрелка" -msgid "Instructions for the mission (\\key help;)" -msgstr "Инструкции для миссии (\\key help;)" +msgid "Build a wheeled orga shooter" +msgstr "Собрать колесного орга-стрелка" -msgid "Instructions from Houston" -msgstr "Инструкции из Хьюстона" +msgid "Build a legged orga shooter" +msgstr "Собрать шагающего орга-стрелка" -msgid "Instructions\\Shows the instructions for the current mission" -msgstr "Инструкции\\Показывает инструкции по текущей миссии" +msgid "Build a winged sniffer" +msgstr "Собрать летающего искателя" -msgid "Internal error - tell the developers" -msgstr "" +msgid "Build a tracked sniffer" +msgstr "Собрать гусеничного искателя" -msgid "Jet temperature" -msgstr "Температура реактивного двигателя" +msgid "Build a wheeled sniffer" +msgstr "Собрать колесного искателя" -msgid "Key A" -msgstr "Ключ А" +msgid "Build a legged sniffer" +msgstr "Собрать шагающего искателя" -msgid "Key B" -msgstr "Ключ B" +msgid "Build a thumper" +msgstr "Собрать ударника" -msgid "Key C" -msgstr "Ключ C" +msgid "Build a phazer shooter" +msgstr "Собрать фазового стрелка" -msgid "Key D" -msgstr "Ключ D" +msgid "Build a recycler" +msgstr "Собрать утилизатор" -msgid "Key word help\\More detailed help about key words" -msgstr "Помощь по командам\\Более подробная справку по командам" +msgid "Build a shielder" +msgstr "Собрать передвижной щит" -msgid "Keyword \"while\" missing" -msgstr "Нет ключевого слова \"while\" " +msgid "Build a subber" +msgstr "Собрать саббера" -msgid "Keyword help(\\key cbot;)" -msgstr "Помощь(\\key cbot;)" +msgid "Run research program for tracked bots" +msgstr "Начать исследование программы для гусеничного бота " -msgid "LOADING" -msgstr "ЗАГРУЗКА" +msgid "Run research program for winged bots" +msgstr "Начать исследование программы для летающего бота" -msgid "Legged grabber" -msgstr "Шагающий сборщик" +msgid "Run research program for thumper" +msgstr "Начать исследование программы для ударника" -msgid "Legged orga shooter" -msgstr "Шагающий орга-стрелка" +msgid "Run research program for shooter" +msgstr "Начать исследование программы для стрелка" -msgid "Legged shooter" -msgstr "Шагающий стрелок" +msgid "Run research program for defense tower" +msgstr "Начать исследование программы для защитной башни" -msgid "Legged sniffer" -msgstr "Шагающий искатель" +msgid "Run research program for phazer shooter" +msgstr "Начать исследование программы для фазового стрелка" -msgid "Lightning conductor" -msgstr "Громоотвод" +msgid "Run research program for shielder" +msgstr "Начать исследование программы для передвижного щита" -msgid "List of objects" -msgstr "Список объектов" +msgid "Run research program for nuclear power" +msgstr "Начать исследование программы для атомной энергетики" -msgid "List of saved missions" -msgstr "Список сохраненных миссий" +msgid "Run research program for legged bots" +msgstr "Начать исследование программы для шагающих ботов" -msgid "Load a saved mission" -msgstr "Загрузить" +msgid "Run research program for orga shooter" +msgstr "Начать исследование программы для орга-стерлка" -msgid "Load\\Load a saved mission" -msgstr "Загрузить\\Загрузить сохраненную миссию" +msgid "Return to start" +msgstr "Вернуться в начало" -msgid "Load\\Loads the selected mission" -msgstr "Загрузить\\Загрузить выбранную миссию" +msgid "Sniff (\\key action;)" +msgstr "Искать (\\key action;)" -msgid "Lowest\\Minimum graphic quality (highest frame rate)" -msgstr "Низкое\\Минимальное качество графики (быстро)" +msgid "Thump (\\key action;)" +msgstr "Удар (\\key action;)" -msgid "Lunar Roving Vehicle" -msgstr "Луноход" +msgid "Shoot (\\key action;)" +msgstr "Огонь (\\key action;)" -msgid "Marks on the ground\\Marks on the ground" -msgstr "Метки на земле\\Метки на земле" +msgid "Explode (\\key action;)" +msgstr "" -msgid "Maximize" -msgstr "Развернуть" +msgid "Recycle (\\key action;)" +msgstr "Утилизация (\\key action;)" -msgid "Minimize" -msgstr "Свернуть" +msgid "Extend shield (\\key action;)" +msgstr "Поднять щит (\\key action;)" -msgid "Mission name" -msgstr "Название миссии" +msgid "Withdraw shield (\\key action;)" +msgstr "Снять щит (\\key action;)" -msgid "Missions" -msgstr "Миссии" +msgid "Shield radius" +msgstr "Радиус щита" -msgid "Missions\\Select mission" -msgstr "Миссии\\Выбор миссии" +msgid "Execute the selected program" +msgstr "Выполнить выбранную программу" -msgid "Mouse inversion X\\Inversion of the scrolling direction on the X axis" -msgstr "Инверсия мыши по оси X\\Инверсия прокрутки по оси Х" +msgid "Edit the selected program" +msgstr "Изменить выбранную программу" -msgid "Mouse inversion Y\\Inversion of the scrolling direction on the Y axis" -msgstr "Инверсия мыши по оси Y\\Инверсия прокрутки по оси Y" +msgid "\\SatCom on standby" +msgstr "\\SatCom ждет" -msgid "Mouse shadow\\Gives the mouse a shadow" -msgstr "Тень мыши\\Мышь отбрасывает тень" +msgid "Destroy the building" +msgstr "Уничтожить здание" -msgid "Mute\\No sound" -msgstr "Без звука\\Без звука" +msgid "Energy level" +msgstr "Уровень энергии" -msgid "Name:" -msgstr "Имя:" +msgid "Shield level" +msgstr "Уровень брони" -msgid "Negative value rejected by \"throw\"" -msgstr "Отрицательное значение не принято" +msgid "Jet temperature" +msgstr "Температура реактивного двигателя" -msgid "Nest" -msgstr "Гнездо" +msgid "Still working ..." +msgstr "Работает ..." -msgid "New" -msgstr "Новый" +msgid "Number of insects detected" +msgstr "Количество обнаруженных насекомых" -msgid "New ..." -msgstr "Новый ..." +msgid "Transmitted information" +msgstr "Переданная информация" -msgid "New bot available" -msgstr "Доступен новый бот" +msgid "Compass" +msgstr "Компас" -msgid "Next" -msgstr "Следующий" +msgid "Zoom mini-map" +msgstr "Масштаб мини-карты" -msgid "Next object\\Selects the next object" -msgstr "Следующий объект\\Выбор следующего объекта" +msgid "Camera (\\key camera;)" +msgstr "Камера (\\key camera;)" -msgid "No energy in the subsoil" -msgstr "Под землей нет запасов энергии" +msgid "Camera to left" +msgstr "Камеру влево" -msgid "No flag nearby" -msgstr "Слишком много флагов этого цвета (максимум 5)" +msgid "Camera to right" +msgstr "Камеру вправо" -msgid "No function running" -msgstr "Нет запущенной функции" +msgid "Camera nearest" +msgstr "Приблизить камеру" -msgid "No function with this name accepts this kind of parameter" -msgstr "Нет функции с этим именем для этого вида параметра" +msgid "Camera awayest" +msgstr "Отдалить камеру" -msgid "No function with this name accepts this number of parameters" -msgstr "Нет функции с этим именем для этого числа параметра" +msgid "Help about selected object" +msgstr "Справка о выбранном объекте" -msgid "No information exchange post within range" -msgstr "Поста по обмену информацией нет рядом или он далеко" +msgid "Show the solution" +msgstr "Показать решение" -msgid "No more energy" -msgstr "Нет энергии" +msgid "Switch bots <-> buildings" +msgstr "Переключение между ботами и зданиями" -msgid "No ore in the subsoil" -msgstr "" +msgid "Show the range" +msgstr "Дальность" -msgid "No other robot" -msgstr "Нет робота" +msgid "\\Raise the pencil" +msgstr "\\Поднять перо" -msgid "No power cell" -msgstr "Нет батареи" +msgid "\\Use the black pencil" +msgstr "\\Использовать черное перо" -msgid "No titanium" -msgstr "Нет титана" +msgid "\\Use the yellow pencil" +msgstr "\\Использовать желтое перо" -msgid "No titanium around" -msgstr "Вокруг нет титана" +msgid "\\Use the orange pencil" +msgstr "\\Использовать оранжевое перо" -msgid "No titanium ore to convert" -msgstr "Нет титановых руд для преобразования" +msgid "\\Use the red pencil" +msgstr "\\Использовать красное перо" -msgid "No titanium to transform" +msgid "\\Use the purple pencil" msgstr "" -msgid "No uranium to transform" -msgstr "Нет урана для преобразования" +msgid "\\Use the blue pencil" +msgstr "\\Использовать синее перо" -msgid "Normal size" -msgstr "Нормальный размер" +msgid "\\Use the green pencil" +msgstr "\\Использовать зеленое перо" -msgid "Normal\\Normal graphic quality" -msgstr "Средн.\\Нормальное качество графики" +msgid "\\Use the brown pencil" +msgstr "Использовать коричневое перо" -msgid "Normal\\Normal sound volume" -msgstr "Нормально\\Нормальная громкость" +msgid "\\Start recording" +msgstr "\\Начать запись" -msgid "Not enough energy" -msgstr "Не хватает энергии" +msgid "\\Stop recording" +msgstr "\\Остановить запись" -msgid "Not enough energy yet" -msgstr "Не хватает энергии" +msgid "Show the place" +msgstr "Место" -#, fuzzy -msgid "Not found anything to destroy" -msgstr "Нечего бросить" +msgid "Continue" +msgstr "Продолжить" -msgid "Not yet enough energy" -msgstr "Не хватает энергии" +msgid "Command line" +msgstr "Командная строка" -msgid "Nothing to analyze" -msgstr "Нечего анализировать" +msgid "Game speed" +msgstr "Скорость игры" -msgid "Nothing to drop" -msgstr "Нечего бросить" +msgid "Back" +msgstr "Назад" -msgid "Nothing to grab" -msgstr "Нечего взять" +msgid "Forward" +msgstr "Вперед" -msgid "Nothing to recycle" -msgstr "Нечего утилизировать" +msgid "Home" +msgstr "Домой" -msgid "Nuclear power cell" -msgstr "Атомная батарея" +msgid "Copy" +msgstr "Копировать" -msgid "Nuclear power cell available" -msgstr "Доступна атомная батарея" +msgid "Size 1" +msgstr "Размер 1" -msgid "Nuclear power station" -msgstr "Завод атомных батарей (неперезаряж.)" +msgid "Size 2" +msgstr "Размер 2" -msgid "Num of decorative objects\\Number of purely ornamental objects" -msgstr "Количество декораций\\Количество декоративных объектов" +msgid "Size 3" +msgstr "Размер 3" -msgid "Number missing" -msgstr "Нет числа" +msgid "Size 4" +msgstr "Размер 4" -msgid "Number of insects detected" -msgstr "Количество обнаруженных насекомых" +msgid "Size 5" +msgstr "Размер 5" -msgid "Number of particles\\Explosions, dust, reflections, etc." -msgstr "Количество частиц\\Взрывы, пыль, отражения и т.д." +msgid "Instructions from Houston" +msgstr "Инструкции из Хьюстона" -msgid "OK" -msgstr "ОК" +msgid "Satellite report" +msgstr "Спутниковый отчет" -msgid "OK\\Choose the selected player" -msgstr "ОК\\Выбрать игрока" +msgid "Programs dispatched by Houston" +msgstr "Программы переданные с Хьюстона" -msgid "OK\\Close program editor and return to game" -msgstr "ОК\\Закрыть редактор программ и вернуться к игре" +msgid "List of objects" +msgstr "Список объектов" -msgid "Object not found" -msgstr "Объект не найден" +msgid "Programming help" +msgstr "Помощь в программировании" -msgid "Object too close" -msgstr "Объект слишком близок" +msgid "Solution" +msgstr "Решение" -msgid "One step" -msgstr "Один шаг" +msgid "OK\\Close program editor and return to game" +msgstr "ОК\\Закрыть редактор программ и вернуться к игре" -msgid "Open" -msgstr "Открыть" +msgid "Cancel\\Cancel all changes" +msgstr "Отмена\\Отменить все изменения" msgid "Open (Ctrl+o)" msgstr "Открыть (Ctrl+o)" -msgid "Opening brace missing " -msgstr "Открывающая скобка отсутствует " +msgid "Save (Ctrl+s)" +msgstr "Сохранить (Ctrl+s)" -msgid "Opening bracket missing" -msgstr "Открывающая скобка отсутствует" +msgid "Undo (Ctrl+z)" +msgstr "Отмена (Ctrl+Z)" -msgid "Operation impossible with value \"nan\"" -msgstr "Операция невозможна значение \"nan\"" +msgid "Cut (Ctrl+x)" +msgstr "Вырезать (Ctrl+X)" -msgid "Options" -msgstr "Опции" +msgid "Copy (Ctrl+c)" +msgstr "Копировать (Ctrl+C)" -msgid "Options\\Preferences" -msgstr "Опции\\Настройки" +msgid "Paste (Ctrl+v)" +msgstr "Вставить (Ctrl+V)" -msgid "Organic matter" -msgstr "Органическое вещество" +msgid "Font size" +msgstr "Размер шрифта" -msgid "Origin of last message\\Shows where the last message was sent from" -msgstr "" -"Источник сообщения\\Показывает место, откуда было отправлено последнеее " -"сообщение" +msgid "Instructions (\\key help;)" +msgstr "Инструкции (\\key help;)" -msgid "Parameters missing " -msgstr "Отсутствуют параметры " +msgid "Programming help (\\key prog;)" +msgstr "Помощь в программировании (\\key prog;)" -msgid "Particles in the interface\\Steam clouds and sparks in the interface" -msgstr "Частицы в интерфейсе меню\\Пар из труб и искры в интерфейсе меню" +msgid "Compile" +msgstr "Компилировать" -msgid "Paste (Ctrl+v)" -msgstr "Вставить (Ctrl+V)" +msgid "Execute/stop" +msgstr "Выполнить/стоп" msgid "Pause/continue" msgstr "Пауза/продолжить" -msgid "Phazer shooter" -msgstr "Фазовый стрелок" - -msgid "Photography" -msgstr "Фотография" - -msgid "Place occupied" -msgstr "Место занято" - -msgid "Planets and stars\\Astronomical objects in the sky" -msgstr "Планеты и звезды\\Астрономические объекты в небе" - -msgid "Plans for defense tower available" -msgstr "Доступны схемы защитной башни" +msgid "One step" +msgstr "Один шаг" -msgid "Plans for nuclear power plant available" -msgstr "Доступны схемы АЭС" +msgid "Gantry crane" +msgstr "Козловой кран" -msgid "Plans for phazer shooter available" -msgstr "Доступны схемы фазового стрелка" +msgid "Spaceship" +msgstr "Космический корабль" -msgid "Plans for shielder available" -msgstr "Доступны схемы передвижного щита" +msgid "Derrick" +msgstr "Космический корабль" -msgid "Plans for shooter available" -msgstr "Доступны схемы стрелка" +msgid "Bot factory" +msgstr "Завод ботов" -msgid "Plans for thumper available" -msgstr "Доступны схемы ударника" +msgid "Repair center" +msgstr "Ремонтный пункт" -msgid "Plans for tracked robots available " -msgstr "Доступны схемы гусеничных роботов " +msgid "Destroyer" +msgstr "Уничтожитель" -msgid "Plant a flag" -msgstr "Установить флаг" +msgid "Power station" +msgstr "Электростанция" -msgid "Play\\Start mission!" -msgstr "Начать\\Перейти к выполнению миссии!" +msgid "Converts ore to titanium" +msgstr "Преобразует руду в титан" -msgid "Player" -msgstr "Игрок" +msgid "Defense tower" +msgstr "Защитная башня" -msgid "Player name" -msgstr "Имя игрока" +msgid "Nest" +msgstr "Гнездо" -msgid "Player's name" -msgstr "Имя игрока" +msgid "Research center" +msgstr "Научно-исследовательский центр" -msgid "Power cell" -msgstr "Батарея" +msgid "Radar station" +msgstr "Радар" -msgid "Power cell available" -msgstr "Доступна батарея" +msgid "Information exchange post" +msgstr "Пост обмена информацией" msgid "Power cell factory" msgstr "Завод перезаряжаемых батарей" -msgid "Power station" -msgstr "Электростанция" +msgid "Autolab" +msgstr "Лаборатория" -msgid "Practice bot" -msgstr "Тренировочный бот" +msgid "Nuclear power station" +msgstr "Завод атомных батарей (неперезаряж.)" -msgid "Press \\key help; to read instructions on your SatCom" -msgstr "Нажмите \\key help; чтобы получить инструкции от SatCom" +msgid "Lightning conductor" +msgstr "Громоотвод" -msgid "Previous" -msgstr "Предыдущий" +msgid "Vault" +msgstr "Хранилище" -msgid "Previous object\\Selects the previous object" -msgstr "Предыдущий объект\\Выбор предыдущего объекта" +msgid "Houston Mission Control" +msgstr "Центр управления Хьюстон" -msgid "Previous selection (\\key desel;)" -msgstr "Предыдущий выбор (\\key desel;)" +msgid "Target" +msgstr "Цель" -msgid "Private element" -msgstr "Частный элемент" +msgid "Start" +msgstr "Начало" -msgid "Private\\Private folder" -msgstr "Личное\\Личная папка" +msgid "Finish" +msgstr "Финиш" -msgid "Program editor" -msgstr "Редактор программ" +msgid "Titanium ore" +msgstr "Титановая руда" -msgid "Program finished" -msgstr "Программа выполнена" +msgid "Uranium ore" +msgstr "Урановая руда" -msgid "Program infected by a virus" -msgstr "Программа заражена вирусом" +msgid "Organic matter" +msgstr "Органическое вещество" -msgid "Programming exercises" -msgstr "Упражнения" +msgid "Titanium" +msgstr "Титан" -msgid "Programming help" -msgstr "Помощь в программировании" +msgid "Power cell" +msgstr "Батарея" -msgid "Programming help (\\key prog;)" -msgstr "Помощь в программировании (\\key prog;)" +msgid "Nuclear power cell" +msgstr "Атомная батарея" -msgid "Programming help\\Gives more detailed help with programming" -msgstr "" -"Помощь в программировании\\Дает более детальную помощь в программировании" +msgid "Black box" +msgstr "Черный ящик" -msgid "Programs dispatched by Houston" -msgstr "Программы переданные с Хьюстона" +msgid "Key A" +msgstr "Ключ А" -msgid "Public required" -msgstr "Требуется общественное" +msgid "Key B" +msgstr "Ключ B" -msgid "Public\\Common folder" -msgstr "Общее\\Общая папка" +msgid "Key C" +msgstr "Ключ C" -msgid "Quake at explosions\\The screen shakes at explosions" -msgstr "Землетряс. при взрывах\\Тряска экрана при взрывах" +msgid "Key D" +msgstr "Ключ D" -msgid "Quit the mission?" -msgstr "Завершить миссию?" +msgid "Explosive" +msgstr "Взрывчатка" -msgid "Quit\\Quit COLOBOT" -msgstr "Выход\\Выход из COLOBOT" +msgid "Fixed mine" +msgstr "Мина" -msgid "Quit\\Quit the current mission or exercise" -msgstr "Выход\\Выход из текущей миссии" +msgid "Survival kit" +msgstr "Аптечка" -msgid "Radar station" -msgstr "Радар" +msgid "Checkpoint" +msgstr "Контрольная точка" -msgid "Read error" -msgstr "Ошибка чтения" +msgid "Blue flag" +msgstr "Синий флаг" -msgid "Recorder" -msgstr "Запись" +msgid "Red flag" +msgstr "Красный флаг" -msgid "Recycle (\\key action;)" -msgstr "Утилизация (\\key action;)" +msgid "Green flag" +msgstr "Зеленый флаг" -msgid "Recycler" -msgstr "Утилизатор" +msgid "Yellow flag" +msgstr "Желтый флаг" -msgid "Red" -msgstr "Красный" +msgid "Violet flag" +msgstr "Фиолетовый флаг" -msgid "Red flag" -msgstr "Красный флаг" +msgid "Energy deposit (site for power station)" +msgstr "Запасы энергии (место для электростанций)" -msgid "Reflections on the buttons \\Shiny buttons" -msgstr "Отражения кнопок \\Блестящие кнопки" +msgid "Uranium deposit (site for derrick)" +msgstr "Запасы урана (место для буровой вышки)" -msgid "Remains of Apollo mission" -msgstr "Остатки миссии Аполлон" +msgid "Found key A (site for derrick)" +msgstr "Найден ключ A (место для буровой вышки)" -msgid "Remove a flag" -msgstr "Удалить флаг" +msgid "Found key B (site for derrick)" +msgstr "Найден ключ B (место для буровой вышки)" -msgid "Repair center" -msgstr "Ремонтный пункт" +msgid "Found key C (site for derrick)" +msgstr "Найден ключ C (место для буровой вышки)" -msgid "Research center" -msgstr "Научно-исследовательский центр" +msgid "Found key D (site for derrick)" +msgstr "Найден ключ D (место для буровой вышки)" -msgid "Research program already performed" -msgstr "Научно-исследовательская программа уже выполняется" +msgid "Titanium deposit (site for derrick)" +msgstr "Запасы титана (место для буровой вышки)" -msgid "Research program completed" -msgstr "Научно-исследовательская программа завершена" +msgid "Practice bot" +msgstr "Тренировочный бот" -msgid "Reserved keyword of CBOT language" -msgstr "Резервное ключевое слово языка CBOT" +msgid "Winged grabber" +msgstr "Летающий сборщик" -msgid "Resolution" -msgstr "Разрешение" +msgid "Tracked grabber" +msgstr "Гусеничный сборщик" -msgid "Restart\\Restart the mission from the beginning" -msgstr "Заново\\Начать данную миссию с начала" +msgid "Wheeled grabber" +msgstr "Колесный сборщик" -msgid "Return to start" -msgstr "Вернуться в начало" +msgid "Legged grabber" +msgstr "Шагающий сборщик" -msgid "Robbie" -msgstr "Робби" +msgid "Winged shooter" +msgstr "Летающий стрелок" -msgid "Robbie\\Your assistant" -msgstr "Робби\\Ваш помощник" +msgid "Tracked shooter" +msgstr "Гусеничный стрелок" -msgid "Ruin" -msgstr "Руины" +msgid "Wheeled shooter" +msgstr "Колесный стрелок" -msgid "Run research program for defense tower" -msgstr "Начать исследование программы для защитной башни" +msgid "Legged shooter" +msgstr "Шагающий стрелок" -msgid "Run research program for legged bots" -msgstr "Начать исследование программы для шагающих ботов" +msgid "Winged orga shooter" +msgstr "Летающий орга-стрелок" -msgid "Run research program for nuclear power" -msgstr "Начать исследование программы для атомной энергетики" +msgid "Tracked orga shooter" +msgstr "Гусеничный орга-стрелок" -msgid "Run research program for orga shooter" -msgstr "Начать исследование программы для орга-стерлка" +msgid "Wheeled orga shooter" +msgstr "Колесный орга-стрелок" -msgid "Run research program for phazer shooter" -msgstr "Начать исследование программы для фазового стрелка" +msgid "Legged orga shooter" +msgstr "Шагающий орга-стрелка" -msgid "Run research program for shielder" -msgstr "Начать исследование программы для передвижного щита" +msgid "Winged sniffer" +msgstr "Летающий искатель" -msgid "Run research program for shooter" -msgstr "Начать исследование программы для стрелка" +msgid "Tracked sniffer" +msgstr "Гусеничный искатель" -msgid "Run research program for thumper" -msgstr "Начать исследование программы для ударника" +msgid "Wheeled sniffer" +msgstr "Колесный искатель" -msgid "Run research program for tracked bots" -msgstr "Начать исследование программы для гусеничного бота " +msgid "Legged sniffer" +msgstr "Шагающий искатель" + +msgid "Thumper" +msgstr "Ударник" -msgid "Run research program for winged bots" -msgstr "Начать исследование программы для летающего бота" +msgid "Phazer shooter" +msgstr "Фазовый стрелок" -msgid "SatCom" -msgstr "SatCom" +msgid "Recycler" +msgstr "Утилизатор" -msgid "Satellite report" -msgstr "Спутниковый отчет" +msgid "Shielder" +msgstr "Передвижной щит" -msgid "Save" -msgstr "Сохранить" +msgid "Subber" +msgstr "Саббер" -msgid "Save (Ctrl+s)" -msgstr "Сохранить (Ctrl+s)" +msgid "Target bot" +msgstr "Целевой бот" -msgid "Save the current mission" -msgstr "Сохранить" +msgid "Drawer bot" +msgstr "Рисовальщик" -msgid "Save\\Save the current mission " -msgstr "Сохранить\\Сохранить текущую миссию" +msgid "Engineer" +msgstr "Инженер" -msgid "Save\\Saves the current mission" -msgstr "Сохранить\\Сохранить текущую миссию" +msgid "Robbie" +msgstr "Робби" -msgid "Scrolling\\Scrolling when the mouse touches right or left border" -msgstr "Прокрутка\\Прокрутка, когда указатель мыши касается граней экрана" +msgid "Alien Queen" +msgstr "Королева чужих" -msgid "Select the astronaut\\Selects the astronaut" -msgstr "Выбор астронавта\\Выбор астронавта" +msgid "Ant" +msgstr "Муравей" -msgid "Semicolon terminator missing" -msgstr "Отсутствует точка с запятой" +msgid "Spider" +msgstr "Маук" -msgid "Shadows\\Shadows on the ground" -msgstr "Тени\\Тени на земле" +msgid "Wasp" +msgstr "Оса" -msgid "Shield level" -msgstr "Уровень брони" +msgid "Worm" +msgstr "Червь" -msgid "Shield radius" -msgstr "Радиус щита" +msgid "Egg" +msgstr "Яйцо" -msgid "Shielder" -msgstr "Передвижной щит" +msgid "Wreckage" +msgstr "Обломки" -msgid "Shift" -msgstr "Shift" +msgid "Ruin" +msgstr "Руины" -msgid "Shoot (\\key action;)" -msgstr "Огонь (\\key action;)" +msgid "Waste" +msgstr "Мусор" -msgid "Show if the ground is flat" -msgstr "Показывать плоскую землю" +msgid "Spaceship ruin" +msgstr "Обломки корабля" -msgid "Show the place" -msgstr "Место" +msgid "Remains of Apollo mission" +msgstr "Остатки миссии Аполлон" -msgid "Show the range" -msgstr "Дальность" +msgid "Lunar Roving Vehicle" +msgstr "Луноход" -msgid "Show the solution" -msgstr "Показать решение" +msgid "Internal error - tell the developers" +msgstr "" -msgid "Sign \" : \" missing" -msgstr "Знак \" : \" отсутствует" +msgid "Unknown command" +msgstr "Неизвестная команда" -msgid "Size 1" -msgstr "Размер 1" +msgid "Inappropriate bot" +msgstr "Неверный бот" -msgid "Size 2" -msgstr "Размер 2" +msgid "Impossible when flying" +msgstr "Невозможно в полете" -msgid "Size 3" -msgstr "Размер 3" +msgid "Already carrying something" +msgstr "Уже что-то несу" -msgid "Size 4" -msgstr "Размер 4" +msgid "Nothing to grab" +msgstr "Нечего взять" -msgid "Size 5" -msgstr "Размер 5" +msgid "Impossible when moving" +msgstr "Невозможно в движении" -msgid "Sky\\Clouds and nebulae" -msgstr "Небо\\Облака и туманности" +msgid "Place occupied" +msgstr "Место занято" -msgid "Sniff (\\key action;)" -msgstr "Искать (\\key action;)" +msgid "No other robot" +msgstr "Нет робота" -msgid "Solution" -msgstr "Решение" +msgid "You can not carry a radioactive object" +msgstr "Вы не можете нести радиоактивные объекты" -msgid "Sound effects:\\Volume of engines, voice, shooting, etc." -msgstr "Общий звук:\\Гормкость двигателя, голоса, стрельбы и т.д." +msgid "You can not carry an object under water" +msgstr "Вы не можете нести объекты под водой" -msgid "Sound\\Music and game sound volume" -msgstr "Звук\\Громкость музыки и звуков" +msgid "Nothing to drop" +msgstr "Нечего бросить" -msgid "Spaceship" -msgstr "Космический корабль" +msgid "Impossible under water" +msgstr "Невозможно под водой" -msgid "Spaceship ruin" -msgstr "Обломки корабля" +msgid "Not enough energy" +msgstr "Не хватает энергии" -msgid "Speed 1.0x\\Normal speed" -msgstr "Скорость 1.0х\\Нормальная скорость" +msgid "Titanium too far away" +msgstr "Титан слишком далеко" -msgid "Speed 1.5x\\1.5 times faster" -msgstr "Скорость 1.5х\\В полтора раза быстрее" +msgid "Titanium too close" +msgstr "Титан слишком близко" -msgid "Speed 2.0x\\Double speed" -msgstr "Скорость 2.0х\\В два раза скорость" +msgid "No titanium around" +msgstr "Вокруг нет титана" -msgid "Speed 3.0x\\Three times faster" -msgstr "Скорость 3.0х\\В три раза быстрее" +msgid "Ground not flat enough" +msgstr "Земля недостаточно плоская" -msgid "Spider" -msgstr "Маук" +msgid "Flat ground not large enough" +msgstr "Недостаточно плоской земли" -msgid "Spider fatally wounded" -msgstr "Паук смертельно ранен" +msgid "Too close to space ship" +msgstr "Слишком близко к кораблю" -msgid "Stack overflow" -msgstr "Переполнение стека" +msgid "Too close to a building" +msgstr "Слишком близко к зданию" -msgid "" -"Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)" +msgid "Can not produce this object in this mission" msgstr "" -"Стандартное действие\\Стандартное действие бота (брать/взять, стрелять, " -"искать и т.д.)" - -msgid "Standard controls\\Standard key functions" -msgstr "Стандартное управление\\Сделать управление по умолчанию" -msgid "Standard\\Standard appearance settings" -msgstr "По умолчанию\\Настройки внешнего вида по умолчанию" +msgid "Can not produce not researched object" +msgstr "" -msgid "Start" -msgstr "Начало" +msgid "Ground inappropriate" +msgstr "Земля не подходит" -msgid "Still working ..." -msgstr "Работает ..." +msgid "Building too close" +msgstr "Здание слишком близко" -msgid "String missing" -msgstr "Отсутствует строка" +msgid "Object too close" +msgstr "Объект слишком близок" -msgid "Strip color:" -msgstr "Цвет полос" +msgid "Nothing to recycle" +msgstr "Нечего утилизировать" -msgid "Subber" -msgstr "Саббер" +msgid "No more energy" +msgstr "Нет энергии" -msgid "Suit color:" -msgstr "Костюм:" +msgid "Error in instruction move" +msgstr "Ошибка движения" -msgid "Suit\\Astronaut suit" -msgstr "Костюм\\Костюм астронавта" +msgid "Object not found" +msgstr "Объект не найден" -msgid "Sunbeams\\Sunbeams in the sky" -msgstr "Солнечные лучи\\Солнечные лучи в небе" +msgid "Goto: inaccessible destination" +msgstr "Перейти: место недоступно" -msgid "Survival kit" -msgstr "Аптечка" +msgid "Goto: destination occupied" +msgstr "Перейти: место занято" -msgid "Switch bots <-> buildings" -msgstr "Переключение между ботами и зданиями" +msgid "No titanium ore to convert" +msgstr "Нет титановых руд для преобразования" -msgid "Take off to finish the mission" -msgstr "Взлететь, чтобы закончить миссию" +msgid "No ore in the subsoil" +msgstr "" -msgid "Target" -msgstr "Цель" +msgid "No energy in the subsoil" +msgstr "Под землей нет запасов энергии" -msgid "Target bot" -msgstr "Целевой бот" +msgid "No power cell" +msgstr "Нет батареи" -msgid "Textures\\Quality of textures " -msgstr "Текстуры\\Качество текстур " +msgid "Inappropriate cell type" +msgstr "Батарея не подходит" -msgid "The expression must return a boolean value" -msgstr "Выражение должно возвращать логическое значение" +msgid "Research program already performed" +msgstr "Научно-исследовательская программа уже выполняется" -msgid "The function returned no value " -msgstr "Функция не возвратила значения" +msgid "Not enough energy yet" +msgstr "Не хватает энергии" -msgid "" -"The list is only available if a \\l;radar station\\u object\\radar; is " -"working.\n" +msgid "No titanium to transform" msgstr "" -"Список доступен только если \\l;radar station\\u object\\radar; работают\n" -msgid "" -"The mission is not accomplished yet (press \\key help; for more details)" -msgstr "" -"Миссия еще не выполнена (нажмите \\key help; для более подробной информации)" +msgid "Transforms only titanium" +msgstr "Нет титана для преобразования" -msgid "The types of the two operands are incompatible " -msgstr "Типы операндов несовместимы" +msgid "Doors blocked by a robot or another object " +msgstr "Двери заблокированы роботом или другим объектом" -msgid "This class already exists" -msgstr "Этот класс уже существует" +msgid "You must get on the spaceship to take off " +msgstr "Вы должны быть на борту корабля, чтобы взлететь" -msgid "This class does not exist" -msgstr "Этот класс не существует" +msgid "Nothing to analyze" +msgstr "Нечего анализировать" -msgid "This is not a member of this class" -msgstr "Это не член этого класса" +msgid "Analyzes only organic matter" +msgstr "Анализирую только органические вещества" -msgid "This label does not exist" -msgstr "Эта метка не существует" +msgid "Analysis already performed" +msgstr "Анализ уже выполнен" -msgid "This object is not a member of a class" -msgstr "Этот объект не член класса" +msgid "Not yet enough energy" +msgstr "Не хватает энергии" -msgid "Thump (\\key action;)" -msgstr "Удар (\\key action;)" +msgid "No uranium to transform" +msgstr "Нет урана для преобразования" -msgid "Thumper" -msgstr "Ударник" +msgid "Transforms only uranium" +msgstr "Преобразовывается только уран" -msgid "Titanium" -msgstr "Титан" +msgid "No titanium" +msgstr "Нет титана" -msgid "Titanium available" -msgstr "Титан доступен" +msgid "No information exchange post within range" +msgstr "Поста по обмену информацией нет рядом или он далеко" -msgid "Titanium deposit (site for derrick)" -msgstr "Запасы титана (место для буровой вышки)" +msgid "Program infected by a virus" +msgstr "Программа заражена вирусом" -msgid "Titanium ore" -msgstr "Титановая руда" +msgid "Infected by a virus; temporarily out of order" +msgstr "Заражено вирусом. Временно вышел из строя" -msgid "Titanium too close" -msgstr "Титан слишком близко" +msgid "Impossible when swimming" +msgstr "Невозможно в воде" -msgid "Titanium too far away" -msgstr "Титан слишком далеко" +msgid "Impossible when carrying an object" +msgstr "Невозможно при движении с объектом" -msgid "Too close to a building" -msgstr "Слишком близко к зданию" +msgid "Too many flags of this color (maximum 5)" +msgstr "" msgid "Too close to an existing flag" msgstr "" -msgid "Too close to space ship" -msgstr "Слишком близко к кораблю" +msgid "No flag nearby" +msgstr "Слишком много флагов этого цвета (максимум 5)" -msgid "Too many flags of this color (maximum 5)" +msgid "Not found anything to destroy" msgstr "" -msgid "Too many parameters" -msgstr "Слишком много параметров" +msgid "Inappropriate object" +msgstr "" -msgid "Tracked grabber" -msgstr "Гусеничный сборщик" +msgid "" +"The mission is not accomplished yet (press \\key help; for more details)" +msgstr "" +"Миссия еще не выполнена (нажмите \\key help; для более подробной информации)" -msgid "Tracked orga shooter" -msgstr "Гусеничный орга-стрелок" +msgid "Bot destroyed" +msgstr "Бот уничтожен" -msgid "Tracked shooter" -msgstr "Гусеничный стрелок" +msgid "Building destroyed" +msgstr "Здание разрушено" -msgid "Tracked sniffer" -msgstr "Гусеничный искатель" +msgid "Can not create this; there are too many objects" +msgstr "Не удается это создать, слишком много объектов" -msgid "Transforms only titanium" -msgstr "Нет титана для преобразования" +#, c-format +msgid "\"%s\" missing in this exercise" +msgstr "\"%s\" отсутствует в этом упражнении" -msgid "Transforms only uranium" -msgstr "Преобразовывается только уран" +msgid "Do not use in this exercise" +msgstr "Не используй в этом упражнении" -msgid "Transmitted information" -msgstr "Переданная информация" +msgid "Building completed" +msgstr "Здание построено" -msgid "Turn left (\\key left;)" -msgstr "Налево (\\key left;)" +msgid "Titanium available" +msgstr "Титан доступен" -msgid "Turn left\\turns the bot to the left" -msgstr "Повернуть налево\\Поворот налево" +msgid "Research program completed" +msgstr "Научно-исследовательская программа завершена" -msgid "Turn right (\\key right;)" -msgstr "Направо (\\key right;)" +msgid "Plans for tracked robots available " +msgstr "Доступны схемы гусеничных роботов " -msgid "Turn right\\turns the bot to the right" -msgstr "Повернуть налево\\Поворот налево" +msgid "You can fly with the keys (\\key gup;) and (\\key gdown;)" +msgstr "Вы можете лететь с помощью клавиш (\\key gup;) и (\\key gdown;)" -msgid "Type declaration missing" -msgstr "Не задан тип" +msgid "Plans for thumper available" +msgstr "Доступны схемы ударника" -msgid "Undo (Ctrl+z)" -msgstr "Отмена (Ctrl+Z)" +msgid "Plans for shooter available" +msgstr "Доступны схемы стрелка" -msgid "Unit" -msgstr "Юнит" +msgid "Plans for defense tower available" +msgstr "Доступны схемы защитной башни" -msgid "Unknown Object" -msgstr "Неизвестный объект" +msgid "Plans for phazer shooter available" +msgstr "Доступны схемы фазового стрелка" -msgid "Unknown command" -msgstr "Неизвестная команда" +msgid "Plans for shielder available" +msgstr "Доступны схемы передвижного щита" -msgid "Unknown function" -msgstr "Неизвестная функция" +msgid "Plans for nuclear power plant available" +msgstr "Доступны схемы АЭС" -msgid "Up (\\key gup;)" -msgstr "Вверх (\\key gup;)" +msgid "New bot available" +msgstr "Доступен новый бот" -msgid "Uranium deposit (site for derrick)" -msgstr "Запасы урана (место для буровой вышки)" +msgid "Analysis performed" +msgstr "Анализ выполнен" -msgid "Uranium ore" -msgstr "Урановая руда" +msgid "Power cell available" +msgstr "Доступна батарея" -msgid "Use a joystick\\Joystick or keyboard" -msgstr "Использовать джойстик\\Джойстик или клавиатура" +msgid "Nuclear power cell available" +msgstr "Доступна атомная батарея" -msgid "User levels" -msgstr "Пользовательские уровни" +msgid "You found a usable object" +msgstr "Вы нашли рабочий объект" -msgid "User\\User levels" -msgstr "Польз.\\Пользовательские уровни" +msgid "Found a site for power station" +msgstr "Найдено место для электростанции" -msgid "Variable name missing" -msgstr "Нет имени переменной" +msgid "Found a site for a derrick" +msgstr "Найдено место для буровой вышки" -msgid "Variable not declared" -msgstr "Переменная не объявлена" +msgid "<<< Well done; mission accomplished >>>" +msgstr "<<< Отлично, миссия выполнена >>>" -msgid "Variable not initialized" -msgstr "Переменная не инициализирована" +msgid "<<< Sorry; mission failed >>>" +msgstr "<<< Миссия провалена >>>" -msgid "Vault" -msgstr "Хранилище" +msgid "Current mission saved" +msgstr "Текущая миссия сохранена" -msgid "Violet flag" -msgstr "Фиолетовый флаг" +msgid "Checkpoint crossed" +msgstr "Вы прошли контрольную точку" -msgid "Void parameter" -msgstr "Пустой параметр" +msgid "Alien Queen killed" +msgstr "Королева чужих убита" -msgid "Wasp" -msgstr "Оса" +msgid "Ant fatally wounded" +msgstr "Муравей смертельно ранен" msgid "Wasp fatally wounded" msgstr "Оса смертельно ранена" -msgid "Waste" -msgstr "Мусор" - -msgid "Wheeled grabber" -msgstr "Колесный сборщик" +msgid "Worm fatally wounded" +msgstr "Червь смертельно ранен" -msgid "Wheeled orga shooter" -msgstr "Колесный орга-стрелок" +msgid "Spider fatally wounded" +msgstr "Паук смертельно ранен" -msgid "Wheeled shooter" -msgstr "Колесный стрелок" +msgid "Press \\key help; to read instructions on your SatCom" +msgstr "Нажмите \\key help; чтобы получить инструкции от SatCom" -msgid "Wheeled sniffer" -msgstr "Колесный искатель" +msgid "Opening bracket missing" +msgstr "Открывающая скобка отсутствует" -msgid "Win" -msgstr "Win" +msgid "Closing bracket missing " +msgstr "Закрывающая скобка отсутствует" -msgid "Winged grabber" -msgstr "Летающий сборщик" +msgid "The expression must return a boolean value" +msgstr "Выражение должно возвращать логическое значение" -msgid "Winged orga shooter" -msgstr "Летающий орга-стрелок" +msgid "Variable not declared" +msgstr "Переменная не объявлена" -msgid "Winged shooter" -msgstr "Летающий стрелок" +msgid "Assignment impossible" +msgstr "Назначение невозможно" -msgid "Winged sniffer" -msgstr "Летающий искатель" +msgid "Semicolon terminator missing" +msgstr "Отсутствует точка с запятой" -msgid "Withdraw shield (\\key action;)" -msgstr "Снять щит (\\key action;)" +msgid "Instruction \"case\" outside a block \"switch\"" +msgstr "Инструкция \"case\" вне блока \"switch\" " -msgid "Worm" -msgstr "Червь" +msgid "Instructions after the final closing brace" +msgstr "Инструкция после последней закрывающей фигурной скобки" -msgid "Worm fatally wounded" -msgstr "Червь смертельно ранен" +msgid "End of block missing" +msgstr "Отсутствует конец блока" -msgid "Wreckage" -msgstr "Обломки" +msgid "Instruction \"else\" without corresponding \"if\" " +msgstr "Инструкция \"else\" без \"if\" " -msgid "Write error" -msgstr "Ошибка записи" +msgid "Opening brace missing " +msgstr "Открывающая скобка отсутствует " msgid "Wrong type for the assignment" msgstr "Неверный тип для назначения" -msgid "Yellow flag" -msgstr "Желтый флаг" +msgid "A variable can not be declared twice" +msgstr "Переменная не может быть объявлена дважды" -msgid "You can fly with the keys (\\key gup;) and (\\key gdown;)" -msgstr "Вы можете лететь с помощью клавиш (\\key gup;) и (\\key gdown;)" +msgid "The types of the two operands are incompatible " +msgstr "Типы операндов несовместимы" -msgid "You can not carry a radioactive object" -msgstr "Вы не можете нести радиоактивные объекты" +msgid "Unknown function" +msgstr "Неизвестная функция" -msgid "You can not carry an object under water" -msgstr "Вы не можете нести объекты под водой" +msgid "Sign \" : \" missing" +msgstr "Знак \" : \" отсутствует" -msgid "You found a usable object" -msgstr "Вы нашли рабочий объект" +msgid "Keyword \"while\" missing" +msgstr "Нет ключевого слова \"while\" " -msgid "You must get on the spaceship to take off " -msgstr "Вы должны быть на борту корабля, чтобы взлететь" +msgid "Instruction \"break\" outside a loop" +msgstr "Инструкция \"break\" вне цикла" -msgid "Zoom mini-map" -msgstr "Масштаб мини-карты" +msgid "A label must be followed by \"for\"; \"while\"; \"do\" or \"switch\"" +msgstr "За меткой должен быть \"for\", \"while\", \"do\" или \"switch\"" -msgid "\\Blue flags" -msgstr "\\Синий флаг" +msgid "This label does not exist" +msgstr "Эта метка не существует" -msgid "\\Eyeglasses 1" -msgstr "\\Очки 1" +msgid "Instruction \"case\" missing" +msgstr "Отсутствует инструкция \"case\"" -msgid "\\Eyeglasses 2" -msgstr "\\Очки 2" +msgid "Number missing" +msgstr "Нет числа" -msgid "\\Eyeglasses 3" -msgstr "\\Очки 3" +msgid "Void parameter" +msgstr "Пустой параметр" -msgid "\\Eyeglasses 4" -msgstr "\\Очки 4" +msgid "Type declaration missing" +msgstr "Не задан тип" -msgid "\\Eyeglasses 5" -msgstr "\\Очки 5" +msgid "Variable name missing" +msgstr "Нет имени переменной" -msgid "\\Face 1" -msgstr "Лицо 1" +msgid "Function name missing" +msgstr "Имя функции отсутствует" -msgid "\\Face 2" -msgstr "\\Лицо 4" +msgid "Too many parameters" +msgstr "Слишком много параметров" -msgid "\\Face 3" -msgstr "\\Лицо 3" +msgid "Function already exists" +msgstr "Функция уже существует" -msgid "\\Face 4" -msgstr "\\Лицо 4" +msgid "Parameters missing " +msgstr "Отсутствуют параметры " -msgid "\\Green flags" -msgstr "\\Зеленый флаг" +msgid "No function with this name accepts this kind of parameter" +msgstr "Нет функции с этим именем для этого вида параметра" -msgid "\\New player name" -msgstr "\\Новое имя" +msgid "No function with this name accepts this number of parameters" +msgstr "Нет функции с этим именем для этого числа параметра" -msgid "\\No eyeglasses" -msgstr "\\Без очков" +msgid "This is not a member of this class" +msgstr "Это не член этого класса" -msgid "\\Raise the pencil" -msgstr "\\Поднять перо" +msgid "This object is not a member of a class" +msgstr "Этот объект не член класса" -msgid "\\Red flags" -msgstr "\\Красный флаг" +msgid "Appropriate constructor missing" +msgstr "Соответствующий конструктор отсутствует" -msgid "\\Return to COLOBOT" -msgstr "\\Вернуться в COLOBOT" +msgid "This class already exists" +msgstr "Этот класс уже существует" -msgid "\\SatCom on standby" -msgstr "\\SatCom ждет" +msgid "\" ] \" missing" +msgstr "Отсутствует \"]\" " -msgid "\\Start recording" -msgstr "\\Начать запись" +msgid "Reserved keyword of CBOT language" +msgstr "Резервное ключевое слово языка CBOT" -msgid "\\Stop recording" -msgstr "\\Остановить запись" +msgid "Bad argument for \"new\"" +msgstr "Неверный аргумент для \"new\"" -msgid "\\Turn left" -msgstr "\\Повернуть налево" +msgid "\" [ \" expected" +msgstr "Ожидалось \" [ \"" -msgid "\\Turn right" -msgstr "\\Повернуть направо" +msgid "String missing" +msgstr "Отсутствует строка" -msgid "\\Use the black pencil" -msgstr "\\Использовать черное перо" +msgid "Incorrect index type" +msgstr "Неверный тип индекса" -msgid "\\Use the blue pencil" -msgstr "\\Использовать синее перо" +msgid "Private element" +msgstr "Частный элемент" -msgid "\\Use the brown pencil" -msgstr "Использовать коричневое перо" +msgid "Public required" +msgstr "Требуется общественное" -msgid "\\Use the green pencil" -msgstr "\\Использовать зеленое перо" +msgid "Dividing by zero" +msgstr "Деление на ноль (запрещено!)" -msgid "\\Use the orange pencil" -msgstr "\\Использовать оранжевое перо" +msgid "Variable not initialized" +msgstr "Переменная не инициализирована" -msgid "\\Use the purple pencil" -msgstr "" +msgid "Negative value rejected by \"throw\"" +msgstr "Отрицательное значение не принято" -msgid "\\Use the red pencil" -msgstr "\\Использовать красное перо" +msgid "The function returned no value " +msgstr "Функция не возвратила значения" -msgid "\\Use the yellow pencil" -msgstr "\\Использовать желтое перо" +msgid "No function running" +msgstr "Нет запущенной функции" -msgid "\\Violet flags" -msgstr "\\Фиолетовый флаг" +msgid "Calling an unknown function" +msgstr "Вызов неизвестной функции" -msgid "\\Yellow flags" -msgstr "\\Желтый флаг" +msgid "This class does not exist" +msgstr "Этот класс не существует" -msgid "\\b;Aliens\n" -msgstr "\\b;Чужаки\n" +msgid "Unknown Object" +msgstr "Неизвестный объект" -msgid "\\b;Buildings\n" -msgstr "\\b;Здания\n" +msgid "Operation impossible with value \"nan\"" +msgstr "Операция невозможна значение \"nan\"" -msgid "\\b;Error\n" -msgstr "\\b;Ошибка\n" +msgid "Access beyond array limit" +msgstr "Доступ к массиву за предел" -msgid "\\b;List of objects\n" -msgstr "\\b;Список объектов\n" +msgid "Stack overflow" +msgstr "Переполнение стека" -msgid "\\b;Moveable objects\n" -msgstr "\\b;Подвижные объекты\n" +msgid "Illegal object" +msgstr "Запрещенный объект" -msgid "\\b;Robots\n" -msgstr "\\b;Роботы\n" +msgid "Can't open file" +msgstr "Невозможно открыть файл" -msgid "\\c; (none)\\n;\n" -msgstr "\\c; (нет)\\n;\n" +msgid "File not open" +msgstr "Файл не открыт" -msgid "action;" -msgstr "действие" +msgid "Read error" +msgstr "Ошибка чтения" -msgid "away;" -msgstr "дальше" +msgid "Write error" +msgstr "Ошибка записи" -msgid "camera;" -msgstr "камера" +msgid "left;" +msgstr "влево" -msgid "cbot;" -msgstr "cobt" +msgid "right;" +msgstr "вправо" -msgid "desel;" -msgstr "отмена" +msgid "up;" +msgstr "вверх" msgid "down;" msgstr "вниз" -msgid "gdown;" -msgstr "вниз" - msgid "gup;" msgstr "вверх" -msgid "help;" -msgstr "помощь" +msgid "gdown;" +msgstr "вниз" -msgid "human;" -msgstr "человек" +msgid "camera;" +msgstr "камера" -msgid "left;" -msgstr "влево" +msgid "desel;" +msgstr "отмена" + +msgid "action;" +msgstr "действие" msgid "near;" msgstr "ближе" +msgid "away;" +msgstr "дальше" + msgid "next;" msgstr "следующий" -msgid "prog;" -msgstr "прог." +msgid "human;" +msgstr "человек" msgid "quit;" msgstr "выйти" -msgid "right;" -msgstr "вправо" +msgid "help;" +msgstr "помощь" + +msgid "prog;" +msgstr "прог." + +msgid "cbot;" +msgstr "cobt" + +msgid "visit;" +msgstr "посетить" msgid "speed10;" msgstr "скорость10" @@ -1833,17 +1820,27 @@ msgstr "скорость15" msgid "speed20;" msgstr "скорость20" -msgid "up;" -msgstr "вверх" +msgid "Ctrl" +msgstr "Ctrl" -msgid "visit;" -msgstr "посетить" +msgid "Shift" +msgstr "Shift" -msgid "www.epsitec.com" -msgstr "www.epsitec.com" +msgid "Alt" +msgstr "Alt" -#~ msgid "GetResource event num out of range: %d\n" -#~ msgstr "событие GetResource, число вне диапазона: %d\n" +msgid "Win" +msgstr "Win" + +msgid "Button %1" +msgstr "Кнопка %1" + +msgid "%1" +msgstr "%1" #~ msgid "Menu (\\key quit;)" #~ msgstr "Меню (\\key выйти;)" + +#, c-format +#~ msgid "GetResource event num out of range: %d\n" +#~ msgstr "событие GetResource, число вне диапазона: %d\n" -- cgit v1.2.3-1-g7c22 From d9b3c4b6a34cd6829430e2204108e740184386d9 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Thu, 10 Jul 2014 17:25:46 +0200 Subject: Auto-update from Pootle 2014-07-10 This commit was automatically generated from http://translations.colobot.info/ (actually, this is just a manual test commit with some Polish translations :p) --- po/pl.po | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/po/pl.po b/po/pl.po index 8561d16..cdc5bb4 100644 --- a/po/pl.po +++ b/po/pl.po @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-07-10 16:50+0200\n" -"PO-Revision-Date: 2014-06-30 11:29+0200\n" +"PO-Revision-Date: 2014-07-10 15:23+0200\n" "Last-Translator: krzys_h \n" "Language-Team: LANGUAGE \n" "Language: pl\n" @@ -19,7 +19,7 @@ msgstr "" "X-Generator: Pootle 2.5.1.1\n" "X-Language: pl_PL\n" "X-Source-Language: en_US\n" -"X-POOTLE-MTIME: 1404124166.000000\n" +"X-POOTLE-MTIME: 1405002225.000000\n" msgid "Colobot rules!" msgstr "Colobot rządzi!" @@ -659,7 +659,7 @@ msgid "Take off to finish the mission" msgstr "Odleć, aby zakończyć misję" msgid "Destroy" -msgstr "" +msgstr "Zniszcz" msgid "Build a derrick" msgstr "Zbuduj kopalnię" @@ -701,7 +701,7 @@ msgid "Build a exchange post" msgstr "Zbuduj stację przekaźnikową" msgid "Build a destroyer" -msgstr "" +msgstr "Zbuduj niszczarkę" msgid "Show if the ground is flat" msgstr "Pokaż czy teren jest płaski" @@ -833,7 +833,7 @@ msgid "Shoot (\\key action;)" msgstr "Strzelaj (\\key action;)" msgid "Explode (\\key action;)" -msgstr "" +msgstr "Wysadź (\\key action;)" msgid "Recycle (\\key action;)" msgstr "Odzyskaj (\\key action;)" @@ -1307,7 +1307,7 @@ msgid "Lunar Roving Vehicle" msgstr "Pojazd Księżycowy" msgid "Internal error - tell the developers" -msgstr "" +msgstr "Błąd wewnętrzny - powiadom twórców gry" msgid "Unknown command" msgstr "Nieznane polecenie" @@ -1370,10 +1370,10 @@ msgid "Too close to a building" msgstr "Za blisko budynku" msgid "Can not produce this object in this mission" -msgstr "" +msgstr "Nie można utworzyć tego obiektu w tej misji" msgid "Can not produce not researched object" -msgstr "" +msgstr "Nie można wyprodukować nie odkrytego obiektu" msgid "Ground inappropriate" msgstr "Nieodpowiedni teren" @@ -1481,10 +1481,10 @@ msgid "No flag nearby" msgstr "Nie ma flagi w pobliżu" msgid "Not found anything to destroy" -msgstr "" +msgstr "Nie znaleziono nic do zniszczenia" msgid "Inappropriate object" -msgstr "" +msgstr "Nieodpowiedni objekt" msgid "" "The mission is not accomplished yet (press \\key help; for more details)" -- cgit v1.2.3-1-g7c22 From 9a6c06665cc35f22b2e0400897b91fd65d0bdee5 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Thu, 10 Jul 2014 17:39:45 +0200 Subject: Removed some old stuff related to Ceebot-Teen --- po/colobot.pot | 5 +---- po/de.po | 8 ++++---- po/fr.po | 8 ++++---- po/pl.po | 8 ++++---- po/ru.po | 8 ++++---- src/common/event.cpp | 1 - src/common/event.h | 1 - src/common/restext.cpp | 3 --- src/common/restext.h | 2 -- src/object/robotmain.h | 1 - src/ui/maindialog.cpp | 20 +------------------- 11 files changed, 18 insertions(+), 47 deletions(-) diff --git a/po/colobot.pot b/po/colobot.pot index 4695600..dcab349 100644 --- a/po/colobot.pot +++ b/po/colobot.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-10 16:50+0200\n" +"POT-Creation-Date: 2014-07-10 17:39+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -110,9 +110,6 @@ msgstr "" msgid " Missions on this level:" msgstr "" -msgid " Free game on this chapter:" -msgstr "" - msgid " Summary:" msgstr "" diff --git a/po/de.po b/po/de.po index 9f4c3bd..e5f8507 100644 --- a/po/de.po +++ b/po/de.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-10 16:50+0200\n" +"POT-Creation-Date: 2014-07-10 17:39+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -24,9 +24,6 @@ msgstr " Driver:" msgid " Exercises in the chapter:" msgstr " Liste der Übungen des Kapitels:" -msgid " Free game on this chapter:" -msgstr " Liste der freien Levels des Kapitel:" - msgid " Free game on this planet:" msgstr " Liste der freien Levels des Planeten:" @@ -1831,6 +1828,9 @@ msgstr "" msgid "www.epsitec.com" msgstr "www.epsitec.com" +#~ msgid " Free game on this chapter:" +#~ msgstr " Liste der freien Levels des Kapitel:" + #~ msgid "< none >" #~ msgstr "< keine >" diff --git a/po/fr.po b/po/fr.po index 291193c..ccd618c 100644 --- a/po/fr.po +++ b/po/fr.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-10 16:50+0200\n" +"POT-Creation-Date: 2014-07-10 17:39+0200\n" "PO-Revision-Date: 2012-12-27 14:07+0100\n" "Last-Translator: Didier Raboud \n" "Language: fr\n" @@ -29,9 +29,6 @@ msgstr " Pilotes :" msgid " Exercises in the chapter:" msgstr " Liste des exercices du chapitre :" -msgid " Free game on this chapter:" -msgstr " Liste des jeux libres du chapitre :" - msgid " Free game on this planet:" msgstr " Liste des jeux libres du chapitre :" @@ -1838,6 +1835,9 @@ msgstr "" msgid "www.epsitec.com" msgstr "www.epsitec.com" +#~ msgid " Free game on this chapter:" +#~ msgstr " Liste des jeux libres du chapitre :" + #~ msgid "< none >" #~ msgstr "< aucune >" diff --git a/po/pl.po b/po/pl.po index 06ca367..3713163 100644 --- a/po/pl.po +++ b/po/pl.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-10 16:50+0200\n" +"POT-Creation-Date: 2014-07-10 17:39+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -25,9 +25,6 @@ msgstr " Sterowniki:" msgid " Exercises in the chapter:" msgstr " Ćwiczenia w tym rozdziale:" -msgid " Free game on this chapter:" -msgstr " Swobodna gra na tej planecie:" - msgid " Free game on this planet:" msgstr " Swobodna gra na tej planecie:" @@ -1841,6 +1838,9 @@ msgstr "" msgid "www.epsitec.com" msgstr "www.epsitec.com" +#~ msgid " Free game on this chapter:" +#~ msgstr " Swobodna gra na tej planecie:" + #~ msgid "< none >" #~ msgstr "< brak >" diff --git a/po/ru.po b/po/ru.po index 8d2a257..09bb3c8 100644 --- a/po/ru.po +++ b/po/ru.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-10 16:50+0200\n" +"POT-Creation-Date: 2014-07-10 17:39+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -34,9 +34,6 @@ msgstr " Драйверы:" msgid " Exercises in the chapter:" msgstr " Упражнения в разделе:" -msgid " Free game on this chapter:" -msgstr " Свободная игра на этой главе:" - msgid " Free game on this planet:" msgstr " Свободная игра на этой планете:" @@ -1842,6 +1839,9 @@ msgstr "посетить" msgid "www.epsitec.com" msgstr "www.epsitec.com" +#~ msgid " Free game on this chapter:" +#~ msgstr " Свободная игра на этой главе:" + #~ msgid "GetResource event num out of range: %d\n" #~ msgstr "событие GetResource, число вне диапазона: %d\n" diff --git a/src/common/event.cpp b/src/common/event.cpp index 9e23b18..fc5bc98 100644 --- a/src/common/event.cpp +++ b/src/common/event.cpp @@ -169,7 +169,6 @@ void InitializeEventTypeTexts() EVENT_TYPE_TEXT[EVENT_INTERFACE_READ] = "EVENT_INTERFACE_READ"; EVENT_TYPE_TEXT[EVENT_INTERFACE_ABORT] = "EVENT_INTERFACE_ABORT"; EVENT_TYPE_TEXT[EVENT_INTERFACE_USER] = "EVENT_INTERFACE_USER"; - EVENT_TYPE_TEXT[EVENT_INTERFACE_TEEN] = "EVENT_INTERFACE_TEEN"; EVENT_TYPE_TEXT[EVENT_INTERFACE_CHAP] = "EVENT_INTERFACE_CHAP"; EVENT_TYPE_TEXT[EVENT_INTERFACE_LIST] = "EVENT_INTERFACE_LIST"; diff --git a/src/common/event.h b/src/common/event.h index 1d2dbc9..220b807 100644 --- a/src/common/event.h +++ b/src/common/event.h @@ -192,7 +192,6 @@ enum EventType EVENT_INTERFACE_READ = 411, EVENT_INTERFACE_ABORT = 412, EVENT_INTERFACE_USER = 413, - EVENT_INTERFACE_TEEN = 414, EVENT_INTERFACE_CHAP = 420, EVENT_INTERFACE_LIST = 421, diff --git a/src/common/restext.cpp b/src/common/restext.cpp index 37b1e9c..2248f2b 100644 --- a/src/common/restext.cpp +++ b/src/common/restext.cpp @@ -61,7 +61,6 @@ void InitializeRestext() stringsText[RT_TITLE_DEFI] = "Challenges"; stringsText[RT_TITLE_MISSION] = "Missions"; stringsText[RT_TITLE_FREE] = "Free game"; - stringsText[RT_TITLE_TEEN] = "Free game"; stringsText[RT_TITLE_USER] = "User levels"; stringsText[RT_TITLE_SETUP] = "Options"; stringsText[RT_TITLE_NAME] = "Player's name"; @@ -80,7 +79,6 @@ void InitializeRestext() stringsText[RT_PLAY_LISTm] = " Missions on this planet:"; stringsText[RT_PLAY_LISTf] = " Free game on this planet:"; stringsText[RT_PLAY_LISTu] = " Missions on this level:"; - stringsText[RT_PLAY_LISTk] = " Free game on this chapter:"; stringsText[RT_PLAY_RESUME] = " Summary:"; stringsText[RT_SETUP_DEVICE] = " Drivers:"; @@ -149,7 +147,6 @@ void InitializeRestext() stringsEvent[EVENT_INTERFACE_DEFI] = "Challenges\\Programming challenges"; stringsEvent[EVENT_INTERFACE_MISSION] = "Missions\\Select mission"; stringsEvent[EVENT_INTERFACE_FREE] = "Free game\\Free game without a specific goal"; - stringsEvent[EVENT_INTERFACE_TEEN] = "Free game\\Free game without a specific goal"; stringsEvent[EVENT_INTERFACE_USER] = "User\\User levels"; stringsEvent[EVENT_INTERFACE_NAME] = "Change player\\Change player"; stringsEvent[EVENT_INTERFACE_SETUP] = "Options\\Preferences"; diff --git a/src/common/restext.h b/src/common/restext.h index cde7203..d145f24 100644 --- a/src/common/restext.h +++ b/src/common/restext.h @@ -72,7 +72,6 @@ enum ResTextType RT_TITLE_WRITE = 50, RT_TITLE_READ = 51, RT_TITLE_USER = 52, - RT_TITLE_TEEN = 53, RT_PLAY_CHAPt = 60, RT_PLAY_CHAPd = 61, @@ -86,7 +85,6 @@ enum ResTextType RT_PLAY_CHAPu = 71, RT_PLAY_LISTu = 72, RT_PLAY_CHAPte = 73, - RT_PLAY_LISTk = 74, RT_SETUP_DEVICE = 80, RT_SETUP_MODE = 81, diff --git a/src/object/robotmain.h b/src/object/robotmain.h index 71ad455..19e9e7d 100644 --- a/src/object/robotmain.h +++ b/src/object/robotmain.h @@ -44,7 +44,6 @@ enum Phase PHASE_DEFI, PHASE_MISSION, PHASE_FREE, - PHASE_TEEN, PHASE_USER, PHASE_LOADING, PHASE_SIMUL, diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index e09e5a0..39e7aa9 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -703,7 +703,6 @@ void CMainDialog::ChangePhase(Phase phase) m_phase == PHASE_DEFI || m_phase == PHASE_MISSION || m_phase == PHASE_FREE || - m_phase == PHASE_TEEN || m_phase == PHASE_USER ) { if ( m_phase == PHASE_TRAINER ) m_index = 0; @@ -711,7 +710,6 @@ void CMainDialog::ChangePhase(Phase phase) if ( m_phase == PHASE_MISSION ) m_index = 2; if ( m_phase == PHASE_FREE ) m_index = 3; if ( m_phase == PHASE_USER ) m_index = 4; - if ( m_phase == PHASE_TEEN ) m_index = 6; if ( m_phase == PHASE_FREE ) { @@ -724,7 +722,6 @@ void CMainDialog::ChangePhase(Phase phase) if ( m_phase == PHASE_DEFI ) strcpy(m_sceneName, "defi" ); if ( m_phase == PHASE_MISSION ) strcpy(m_sceneName, "scene"); if ( m_phase == PHASE_FREE ) strcpy(m_sceneName, "free"); - if ( m_phase == PHASE_TEEN ) strcpy(m_sceneName, "teen"); if ( m_phase == PHASE_USER ) strcpy(m_sceneName, "user"); ReadGamerInfo(); @@ -739,7 +736,6 @@ void CMainDialog::ChangePhase(Phase phase) if ( m_phase == PHASE_DEFI ) res = RT_TITLE_DEFI; if ( m_phase == PHASE_MISSION ) res = RT_TITLE_MISSION; if ( m_phase == PHASE_FREE ) res = RT_TITLE_FREE; - if ( m_phase == PHASE_TEEN ) res = RT_TITLE_TEEN; if ( m_phase == PHASE_USER ) res = RT_TITLE_USER; GetResource(RES_TEXT, res, name); pw->SetName(name); @@ -764,7 +760,6 @@ void CMainDialog::ChangePhase(Phase phase) if ( m_phase == PHASE_DEFI ) res = RT_PLAY_CHAPd; if ( m_phase == PHASE_MISSION ) res = RT_PLAY_CHAPm; if ( m_phase == PHASE_FREE ) res = RT_PLAY_CHAPf; - if ( m_phase == PHASE_TEEN ) res = RT_PLAY_CHAPte; if ( m_phase == PHASE_USER ) res = RT_PLAY_CHAPu; GetResource(RES_TEXT, res, name); pl = pw->CreateLabel(pos, ddim, 0, EVENT_LABEL11, name); @@ -787,7 +782,6 @@ void CMainDialog::ChangePhase(Phase phase) if ( m_phase == PHASE_DEFI ) res = RT_PLAY_LISTd; if ( m_phase == PHASE_MISSION ) res = RT_PLAY_LISTm; if ( m_phase == PHASE_FREE ) res = RT_PLAY_LISTf; - if ( m_phase == PHASE_TEEN ) res = RT_PLAY_LISTk; if ( m_phase == PHASE_USER ) res = RT_PLAY_LISTu; GetResource(RES_TEXT, res, name); pl = pw->CreateLabel(pos, ddim, 0, EVENT_LABEL12, name); @@ -824,8 +818,7 @@ void CMainDialog::ChangePhase(Phase phase) // Button displays the "soluce": if ( m_phase != PHASE_TRAINER && - m_phase != PHASE_FREE && - m_phase != PHASE_TEEN ) + m_phase != PHASE_FREE ) { pos.x = ox+sx*9.5f; pos.y = oy+sy*5.8f; @@ -1684,7 +1677,6 @@ void CMainDialog::ChangePhase(Phase phase) m_phase == PHASE_DEFI || m_phase == PHASE_MISSION || m_phase == PHASE_FREE || - m_phase == PHASE_TEEN || m_phase == PHASE_USER || m_phase == PHASE_SETUPd || m_phase == PHASE_SETUPg || @@ -1948,10 +1940,6 @@ bool CMainDialog::EventProcess(const Event &event) m_main->ChangePhase(PHASE_FREE); break; - case EVENT_INTERFACE_TEEN: - m_main->ChangePhase(PHASE_TEEN); - break; - case EVENT_INTERFACE_USER: m_main->ChangePhase(PHASE_USER); break; @@ -2158,7 +2146,6 @@ bool CMainDialog::EventProcess(const Event &event) m_phase == PHASE_DEFI || m_phase == PHASE_MISSION || m_phase == PHASE_FREE || - m_phase == PHASE_TEEN || m_phase == PHASE_USER ) { pw = static_cast(m_interface->SearchControl(EVENT_WINDOW5)); @@ -2177,7 +2164,6 @@ bool CMainDialog::EventProcess(const Event &event) m_phase == PHASE_DEFI || m_phase == PHASE_MISSION || m_phase == PHASE_FREE || - m_phase == PHASE_TEEN || m_phase == PHASE_USER ) { switch( event.type ) @@ -2820,7 +2806,6 @@ void CMainDialog::GlintMove() m_phase == PHASE_TRAINER || m_phase == PHASE_MISSION || m_phase == PHASE_FREE || - m_phase == PHASE_TEEN || m_phase == PHASE_USER ) { pg = static_cast(pw->SearchControl(EVENT_INTERFACE_GLINTl)); @@ -3045,7 +3030,6 @@ void CMainDialog::FrameParticle(float rTime) m_phase == PHASE_DEFI || m_phase == PHASE_MISSION || m_phase == PHASE_FREE || - m_phase == PHASE_TEEN || m_phase == PHASE_USER || m_phase == PHASE_SETUPd || m_phase == PHASE_SETUPg || @@ -4394,7 +4378,6 @@ void CMainDialog::AllMissionUpdate() m_phase == PHASE_DEFI || m_phase == PHASE_MISSION || m_phase == PHASE_FREE || - m_phase == PHASE_TEEN || m_phase == PHASE_USER ) { UpdateSceneChap(m_chap[m_index]); @@ -4655,7 +4638,6 @@ void CMainDialog::ShowSoluceUpdate() m_phase == PHASE_DEFI || m_phase == PHASE_MISSION || m_phase == PHASE_FREE || - m_phase == PHASE_TEEN || m_phase == PHASE_USER ) { m_bSceneSoluce = false; -- cgit v1.2.3-1-g7c22 From 852223262055440569ecca70f1b9da46089424c4 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Fri, 11 Jul 2014 11:25:57 +0200 Subject: Auto-update from Pootle 2014-07-11 This commit was automatically generated from http://translations.colobot.info/ --- data | 2 +- po/de.po | 2382 ++++++++++++++++++++++++++++++------------------------------ po/fr.po | 2394 ++++++++++++++++++++++++++++++------------------------------- po/pl.po | 2429 +++++++++++++++++++++++++++++++------------------------------- po/ru.po | 2393 ++++++++++++++++++++++++++++++------------------------------- 5 files changed, 4805 insertions(+), 4795 deletions(-) diff --git a/data b/data index edd849b..d9ad327 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit edd849b1c8f41217f1715683a7e6dc5122935763 +Subproject commit d9ad3270af60905f53929cdf44aa47b4f910f603 diff --git a/po/de.po b/po/de.po index 3a99655..b6ce0cf 100644 --- a/po/de.po +++ b/po/de.po @@ -19,1803 +19,1796 @@ msgstr "" "X-Language: de_DE\n" "X-Source-Language: en_US\n" -msgid " " -msgstr " " - -msgid " Challenges in the chapter:" -msgstr " Liste der Challenges des Kapitels:" - -msgid " Chapters:" -msgstr " Liste der Kapitel:" - -msgid " Drivers:" -msgstr " Driver:" +msgid "Colobot rules!" +msgstr "Colobot ist wunderbar!" -msgid " Exercises in the chapter:" -msgstr " Liste der Übungen des Kapitels:" +msgid "SatCom" +msgstr "SatCom" -msgid " Free game on this chapter:" -msgstr " Liste der freien Levels des Kapitel:" +msgid "Maximize" +msgstr "Großes Fenster" -msgid " Free game on this planet:" -msgstr " Liste der freien Levels des Planeten:" +msgid "Minimize" +msgstr "Reduzieren" -msgid " Missions on this level:" -msgstr " Missionen des Userlevels:" +msgid "Normal size" +msgstr "Normale Größe" -msgid " Missions on this planet:" -msgstr " Liste der Missionen des Planeten:" +msgid "Close" +msgstr "Schließen" -msgid " Planets:" -msgstr " Liste der Planeten:" +msgid "Program editor" +msgstr "Programmeditor" -msgid " Resolution:" -msgstr " Auflösung:" +msgid "New" +msgstr "Neu" -msgid " Summary:" -msgstr " Zusammenfassung:" +msgid "Player" +msgstr "Spieler" -msgid " User levels:" -msgstr " Userlevels:" +msgid "New ..." +msgstr "Neu ..." msgid " or " msgstr " oder " -msgid "\" [ \" expected" -msgstr "Es fehlt eine offene eckige Klammer \" [ \"" +msgid "COLOBOT" +msgstr "COLOBOT" -msgid "\" ] \" missing" -msgstr "Es fehlt eine geschlossene eckige Klammer \" ] \"" +msgid "COLOBOT: Gold Edition" +msgstr "COLOBOT: Gold Edition" -#, c-format -msgid "\"%s\" missing in this exercise" -msgstr "Es fehlt \"%s\" in Ihrem Programm" +msgid "Programming exercises" +msgstr "Programmieren" -msgid "%1" -msgstr "" +msgid "Challenges" +msgstr "Challenges" -msgid "..behind" -msgstr "..hinten" +msgid "Missions" +msgstr "Missionen" -msgid "..in front" -msgstr "..vorne" +msgid "Free game" +msgstr "Freestyle" -msgid "..power cell" -msgstr "..Batterie" +msgid "User levels" +msgstr "Userlevels" -msgid "1) First click on the key you want to redefine." -msgstr "1) Klicken Sie auf die neu zu definierende Taste." +msgid "Options" +msgstr "Einstellungen" -msgid "2) Then press the key you want to use instead." -msgstr "2) Drücken Sie auf die neue Taste." +msgid "Player's name" +msgstr "Name " -msgid "3D sound\\3D positioning of the sound" -msgstr "3D-Geräusche\\Orten der Geräusche im Raum" +msgid "Customize your appearance" +msgstr "Aussehen einstellen" -msgid "<< Back \\Back to the previous screen" -msgstr "<< Zurück \\Zurück zum Hauptmenü" +msgid "Save the current mission" +msgstr "Aktuelle Mission speichern" -msgid "<<< Sorry; mission failed >>>" -msgstr "<<< Mission gescheitert >>>" +msgid "Load a saved mission" +msgstr "Gespeicherte Mission laden" -msgid "<<< Well done; mission accomplished >>>" -msgstr "<<< Bravo, Mission vollendet >>>" +msgid " Chapters:" +msgstr " Liste der Kapitel:" -msgid "A label must be followed by \"for\"; \"while\"; \"do\" or \"switch\"" -msgstr "" -"Ein Label kann nur vor den Anweisungen \"for\", \"while\", \"do\" oder " -"\"switch\" vorkommen" +msgid " Planets:" +msgstr " Liste der Planeten:" -msgid "A variable can not be declared twice" -msgstr "Eine Variable wird zum zweiten Mal deklariert" +msgid " User levels:" +msgstr " Userlevels:" -msgid "Abort\\Abort the current mission" -msgstr "Abbrechen\\Mission abbrechen" +msgid " Exercises in the chapter:" +msgstr " Liste der Übungen des Kapitels:" -msgid "Access beyond array limit" -msgstr "Zugriff im Array außerhalb der Grenzen" +msgid " Challenges in the chapter:" +msgstr " Liste der Challenges des Kapitels:" -msgid "" -"Access to solution\\Shows the solution (detailed instructions for missions)" -msgstr "Zeigt die Lösung\\Zeigt nach 3mal Scheitern die Lösung" +msgid " Missions on this planet:" +msgstr " Liste der Missionen des Planeten:" -msgid "Access to solutions\\Show program \"4: Solution\" in the exercises" -msgstr "" -"Lösung zugänglich\\Die Lösung ist im Programmslot \"4: Lösung\" zugänglich" +msgid " Free game on this planet:" +msgstr " Liste der freien Levels des Planeten:" -msgid "Alien Queen" -msgstr "Insektenkönigin" +msgid " Missions on this level:" +msgstr " Missionen des Userlevels:" -msgid "Alien Queen killed" -msgstr "Insektenkönigin tödlich verwundet" +msgid " Free game on this chapter:" +msgstr " Liste der freien Levels des Kapitel:" -msgid "Already carrying something" -msgstr "Trägt schon etwas" +msgid " Summary:" +msgstr " Zusammenfassung:" -msgid "Alt" -msgstr "Alt" +msgid " Drivers:" +msgstr " Driver:" -msgid "Analysis already performed" -msgstr "Analyse schon durchgeführt" +msgid " Resolution:" +msgstr " Auflösung:" -msgid "Analysis performed" -msgstr "Analyse vollendet" +msgid "1) First click on the key you want to redefine." +msgstr "1) Klicken Sie auf die neu zu definierende Taste." -msgid "Analyzes only organic matter" -msgstr "Analysiert nur Orgastoff" +msgid "2) Then press the key you want to use instead." +msgstr "2) Drücken Sie auf die neue Taste." -msgid "Ant" -msgstr "Ameise" +msgid "Face type:" +msgstr "Kopf:" -msgid "Ant fatally wounded" -msgstr "Ameise tödlich verwundet" +msgid "Eyeglasses:" +msgstr "Brille:" -msgid "Appearance\\Choose your appearance" -msgstr "Aussehen\\Erscheinungsbild des Astronauten einstellen" +msgid "Hair color:" +msgstr "Haarfarbe:" -msgid "Apply changes\\Activates the changed settings" -msgstr "Änderungen ausführen\\Getätigte Einstellungen ausführen" +msgid "Suit color:" +msgstr "Farbe des Anzugs:" -msgid "Appropriate constructor missing" -msgstr "Es gibt keinen geeigneten Konstruktor" +msgid "Strip color:" +msgstr "Farbe der Streifen:" -msgid "Assignment impossible" -msgstr "Zuweisung unmöglich" +msgid "Do you want to quit COLOBOT ?" +msgstr "Wollen Sie COLOBOT schließen ?" -msgid "Autolab" -msgstr "Automatisches Labor" +msgid "Quit\\Quit COLOBOT" +msgstr "Schließen\\COLOBOT schließen" -msgid "Automatic indent\\When program editing" -msgstr "Automatisches Einrücken\\Beim Bearbeiten der Programme" +msgid "Quit the mission?" +msgstr "Mission abbrechen ?" -msgid "Back" -msgstr "Vorherg. Seite" +msgid "Abort\\Abort the current mission" +msgstr "Abbrechen\\Mission abbrechen" -msgid "Background sound :\\Volume of audio tracks on the CD" -msgstr "Geräuschkulisse:\\Lautstärke der Soundtracks der CD" +msgid "Continue\\Continue the current mission" +msgstr "Weitermachen\\Mission weitermachen" -msgid "Backward (\\key down;)" -msgstr "Rückwärts (\\key down;)" +msgid "Continue\\Continue the game" +msgstr "Weitermachen\\Weitermachen" -msgid "Backward\\Moves backward" -msgstr "Rückwärts\\Bewegung nach hinten" +msgid "Do you really want to destroy the selected building?" +msgstr "Wollen Sie das angewählte Gebäude wirklich zerstören ?" -msgid "Bad argument for \"new\"" -msgstr "Falsche Argumente für \"new\"" +#, c-format +msgid "Do you want to delete %s's saved games? " +msgstr "Wollen Sie die gespeicherten Missionen von %s löschen ?" -msgid "Big indent\\Indent 2 or 4 spaces per level defined by braces" -msgstr "Einrücken mit 4 Leerstellen\\Einrücken mit 2 oder 4 Leerstellen" +msgid "Delete" +msgstr "Zerstören" -msgid "Black box" -msgstr "Flugschreiber" +msgid "Cancel" +msgstr "Abbrechen" -msgid "Blue" -msgstr "Blau" +msgid "LOADING" +msgstr "Laden" -msgid "Blue flag" -msgstr "Blaue Fahne" +msgid "Keyword help(\\key cbot;)" +msgstr "Hilfe über den Begriff (\\key cbot;)" -msgid "Bot destroyed" -msgstr "Roboter zerstört" +msgid "Compilation ok (0 errors)" +msgstr "Kompilieren OK (0 Fehler)" -msgid "Bot factory" -msgstr "Roboterfabrik" +msgid "Program finished" +msgstr "Programm beendet" -msgid "Build a bot factory" -msgstr "Baut eine Roboterfabrik" +msgid "\\b;List of objects\n" +msgstr "\\b;Liste der Objekte\n" -msgid "Build a converter" -msgstr "Baut einen Konverter" +msgid "\\b;Robots\n" +msgstr "\\b;Liste der Roboter\n" -msgid "Build a defense tower" -msgstr "Baut einen Geschützturm" +msgid "\\b;Buildings\n" +msgstr "\\b;Listes der Gebäude\n" -msgid "Build a derrick" -msgstr "Baut einen Bohrturm" +msgid "\\b;Moveable objects\n" +msgstr "\\b;Listes der tragbaren Gegenstände\n" -msgid "Build a destroyer" +msgid "\\b;Aliens\n" +msgstr "\\b;Listes der Feinde\n" + +msgid "\\c; (none)\\n;\n" msgstr "" +"\\c; (keine)\\n" +";\n" -msgid "Build a exchange post" -msgstr "Baut einen Infoserver" - -msgid "Build a legged grabber" -msgstr "Baut einen Krabbeltransporter" - -msgid "Build a legged orga shooter" -msgstr "Baut einen Krabbelorgashooter" - -msgid "Build a legged shooter" -msgstr "Baut einen Krabbelshooter" - -msgid "Build a legged sniffer" -msgstr "Baut einen Krabbelschnüffler" - -msgid "Build a lightning conductor" -msgstr "Baut einen Blitzableiter" - -msgid "Build a nuclear power plant" -msgstr "Baut eine Brennstoffzellenfabrik" - -msgid "Build a phazer shooter" -msgstr "Baut einen Phazershooter" - -msgid "Build a power cell factory" -msgstr "Baut eine Batteriefabrik" - -msgid "Build a power station" -msgstr "Baut ein Kraftwerk" - -msgid "Build a radar station" -msgstr "Baut ein Radar" +msgid "\\b;Error\n" +msgstr "\\b;Fehler\n" -msgid "Build a recycler" -msgstr "Baut einen Recycler" +msgid "" +"The list is only available if a \\l;radar station\\u object\\radar; is " +"working.\n" +msgstr "Die Liste ist ohne \\l;Radar\\u object\\radar; nicht verfügbar.\n" -msgid "Build a repair center" -msgstr "Baut ein Reparaturzentrum" +msgid "Open" +msgstr "Öffnen" -msgid "Build a research center" -msgstr "Baut ein Forschungszentrum" +msgid "Save" +msgstr "Speichern" -msgid "Build a shielder" -msgstr "Baut einen Schutzschild" +#, c-format +msgid "Folder: %s" +msgstr "Ordner: %s" -msgid "Build a subber" -msgstr "Baut einen Kettentaucher" +msgid "Name:" +msgstr "Name:" -msgid "Build a thumper" -msgstr "Baut einen Stampfer" +msgid "Folder:" +msgstr "In:" -msgid "Build a tracked grabber" -msgstr "Baut einen Kettentransporter" +msgid "Private\\Private folder" +msgstr "Privat\\Privater Ordner" -msgid "Build a tracked orga shooter" -msgstr "Baut einen Kettenorgashooter" +msgid "Public\\Common folder" +msgstr "Öffentlich\\Gemeinsamer Ordner für alle Spieler" -msgid "Build a tracked shooter" -msgstr "Baut einen Kettenshooter" +msgid "Developed by :" +msgstr "Entwickelt von:" -msgid "Build a tracked sniffer" -msgstr "Baut einen Kettenschnüffler" +msgid "www.epsitec.com" +msgstr "www.epsitec.com" -msgid "Build a wheeled grabber" -msgstr "Baut einen Radtransporter" +msgid " " +msgstr " " -msgid "Build a wheeled orga shooter" -msgstr "Baut einen Radorgashooter" +msgid "Recorder" +msgstr "Recorder" -msgid "Build a wheeled shooter" -msgstr "Baut einen Radshooter" +msgid "OK" +msgstr "OK" -msgid "Build a wheeled sniffer" -msgstr "Baut einen Radschnüffler" +msgid "Next" +msgstr "Nächster" -msgid "Build a winged grabber" -msgstr "Baut einen Jettransporter" +msgid "Previous" +msgstr "Vorherg" -msgid "Build a winged orga shooter" -msgstr "Baut einen Jetorgashooter" +msgid "Exercises\\Programming exercises" +msgstr "Programmieren\\Programmierübungen" -msgid "Build a winged shooter" -msgstr "Baut einen Jetshooter" +msgid "Challenges\\Programming challenges" +msgstr "Challenges\\Herausforderungen" -msgid "Build a winged sniffer" -msgstr "Baut einen Jetschnüffler" +msgid "Missions\\Select mission" +msgstr "Missionen\\Aufbruch ins Weltall" -msgid "Build an autolab" -msgstr "Baut ein automatisches Labor" +msgid "Free game\\Free game without a specific goal" +msgstr "Freestyle\\Freies Spielen ohne vorgegebenes Ziel" -msgid "Building completed" -msgstr "Gebäude fertiggestellt" +msgid "User\\User levels" +msgstr "User\\Userlevels" -msgid "Building destroyed" -msgstr "Gebäude zerstört" +msgid "Change player\\Change player" +msgstr "Anderer Spieler\\Spielername ändern" -msgid "Building too close" -msgstr "Gebäude zu nahe" +msgid "Options\\Preferences" +msgstr "Einstellungen\\Einstellungen" -msgid "Button %1" -msgstr "Knopf %1" +msgid "Restart\\Restart the mission from the beginning" +msgstr "Neu anfangen\\Die Mission von vorne anfangen" -msgid "COLOBOT" -msgstr "COLOBOT" +msgid "Save\\Save the current mission " +msgstr "Speichern\\Aktuelle Mission speichern" -msgid "COLOBOT: Gold Edition" -msgstr "COLOBOT: Gold Edition" +msgid "Load\\Load a saved mission" +msgstr "Laden\\Eine gespeicherte Mission öffnen" -msgid "Calling an unknown function" -msgstr "Die aufgerufene Funktion existiert nicht" +msgid "\\Return to COLOBOT" +msgstr "\\Zurück zu COLOBOT" -msgid "Camera (\\key camera;)" -msgstr "Kamera (\\key camera;)" +msgid "<< Back \\Back to the previous screen" +msgstr "<< Zurück \\Zurück zum Hauptmenü" -msgid "Camera awayest" -msgstr "Kamera weiter weg" +msgid "Play\\Start mission!" +msgstr "Spielen ...\\Los geht's!" -msgid "Camera back\\Moves the camera backward" -msgstr "Kamera weiter\\Bewegung der Kamera rückwärts" +msgid "Device\\Driver and resolution settings" +msgstr "Bildschirm\\Driver und Bildschirmauflösung" -msgid "Camera closer\\Moves the camera forward" -msgstr "Kamera näher\\Bewegung der Kamera vorwärts" +msgid "Graphics\\Graphics settings" +msgstr "Grafik\\Grafische Einstellungen" -msgid "Camera nearest" -msgstr "Kamera näher" +msgid "Game\\Game settings" +msgstr "Spiel\\Gameplay Einstellungen" -msgid "Camera to left" -msgstr "Kamera links" +msgid "Controls\\Keyboard, joystick and mouse settings" +msgstr "Steuerung\\Auswahl der Tasten" -msgid "Camera to right" -msgstr "Kamera rechts" +msgid "Sound\\Music and game sound volume" +msgstr "Geräusche\\Lautstärke Geräusche und Musik" -msgid "Can not create this; there are too many objects" -msgstr "Kein neues Objekt kann erstellt werden (zu viele vorhanden)" +msgid "Unit" +msgstr "Einheit" -msgid "Can not produce not researched object" -msgstr "" +msgid "Resolution" +msgstr "Auflösung" -msgid "Can not produce this object in this mission" -msgstr "" +msgid "Full screen\\Full screen or window mode" +msgstr "Vollbildschirm\\Vollbildschirm oder Fenster" -msgid "Can't open file" -msgstr "Die Datei kann nicht geöffnet werden" +msgid "Apply changes\\Activates the changed settings" +msgstr "Änderungen ausführen\\Getätigte Einstellungen ausführen" -msgid "Cancel" -msgstr "Abbrechen" +msgid "Robbie\\Your assistant" +msgstr "Robby\\Ihr Assistent" -msgid "Cancel\\Cancel all changes" -msgstr "Abbrechen\\Editor schließen" +msgid "Shadows\\Shadows on the ground" +msgstr "Schatten\\Schlagschatten auf dem Boden" -msgid "Cancel\\Keep current player name" -msgstr "Abbrechen\\Behält den bisherigen Spieler bei" +msgid "Marks on the ground\\Marks on the ground" +msgstr "Markierungen\\Markierungen auf dem Boden" -msgid "Challenges" -msgstr "Challenges" +msgid "Dust\\Dust and dirt on bots and buildings" +msgstr "Schmutz\\Schmutz auf Robotern und Bauten" -msgid "Challenges\\Programming challenges" -msgstr "Challenges\\Herausforderungen" +msgid "Fog\\Fog" +msgstr "Nebel\\Nebelschwaden" -msgid "Change camera\\Switches between onboard camera and following camera" -msgstr "Andere Kamera\\Sichtpunkt einstellen" +msgid "Sunbeams\\Sunbeams in the sky" +msgstr "Sonnenstrahlen\\Sonnenstrahlen" -msgid "Change player\\Change player" -msgstr "Anderer Spieler\\Spielername ändern" +msgid "Sky\\Clouds and nebulae" +msgstr "Himmel\\Himmel und Wolken" -msgid "Checkpoint" -msgstr "Checkpoint" +msgid "Planets and stars\\Astronomical objects in the sky" +msgstr "Planeten und Sterne\\Kreisende Planeten und Sterne" -msgid "Checkpoint crossed" -msgstr "Checkpoint erreicht" +msgid "Dynamic lighting\\Mobile light sources" +msgstr "Dynamische Beleuchtung\\Dynamische Beleuchtung" -msgid "Climb\\Increases the power of the jet" -msgstr "Steigen\\Leistung des Triebwerks steigern" +msgid "Number of particles\\Explosions, dust, reflections, etc." +msgstr "Anzahl Partikel\\Explosionen, Staub, usw." -msgid "Close" -msgstr "Schließen" +msgid "Depth of field\\Maximum visibility" +msgstr "Sichtweite\\Maximale Sichtweite" -msgid "Closing bracket missing " -msgstr "Es fehlt eine geschlossene Klammer \")\"" +msgid "Details\\Visual quality of 3D objects" +msgstr "Details\\Detailliertheit der Objekte in 3D" -msgid "Colobot rules!" -msgstr "Colobot ist wunderbar!" +msgid "Textures\\Quality of textures " +msgstr "Qualität der Texturen\\Qualität der Anzeige" -msgid "Command line" -msgstr "Befehleingabe" +msgid "Num of decorative objects\\Number of purely ornamental objects" +msgstr "Anzahl Ziergegenstände\\Anzahl Gegenstände ohne Funktion" -msgid "Compass" -msgstr "Kompass" +msgid "Particles in the interface\\Steam clouds and sparks in the interface" +msgstr "Partikel in den Menüs\\Funken und Sterne in den Menüs" -msgid "Compilation ok (0 errors)" -msgstr "Kompilieren OK (0 Fehler)" +msgid "Reflections on the buttons \\Shiny buttons" +msgstr "Glänzende Tasten\\Glänzende Tasten in den Menüs" -msgid "Compile" -msgstr "Kompilieren" +msgid "Help balloons\\Explain the function of the buttons" +msgstr "Hilfsblasen\\Hilfsblasen" -msgid "Continue" -msgstr "Weitermachen" +msgid "Film sequences\\Films before and after the missions" +msgstr "Filme\\Filme vor und nach den Missionen" -msgid "Continue\\Continue the current mission" -msgstr "Weitermachen\\Mission weitermachen" +msgid "Exit film\\Film at the exit of exercises" +msgstr "Zurücksetzen \\Kleine Show beim Zurücksetzen in den Übungen" -msgid "Continue\\Continue the game" -msgstr "Weitermachen\\Weitermachen" +msgid "Friendly fire\\Your shooting can damage your own objects " +msgstr "Eigenbeschuss\\Ihre Einheiten werden von Ihren Waffen beschädigt" -msgid "Controls\\Keyboard, joystick and mouse settings" -msgstr "Steuerung\\Auswahl der Tasten" +msgid "Scrolling\\Scrolling when the mouse touches right or left border" +msgstr "" +"Kameradrehung mit der Maus\\Die Kamera dreht wenn die Maus den Rand erreicht" -msgid "Converts ore to titanium" -msgstr "Konverter Erz-Titan" +msgid "Mouse inversion X\\Inversion of the scrolling direction on the X axis" +msgstr "Umkehr X\\Umkehr der Kameradrehung X-Achse" -msgid "Copy" -msgstr "Kopieren" +msgid "Mouse inversion Y\\Inversion of the scrolling direction on the Y axis" +msgstr "Umkehr Y\\Umkehr der Kameradrehung Y-Achse" -msgid "Copy (Ctrl+c)" -msgstr "Kopieren (Ctrl+c)" +msgid "Quake at explosions\\The screen shakes at explosions" +msgstr "Beben bei Explosionen\\Die Kamera bebt bei Explosionen" -msgid "Ctrl" -msgstr "Ctrl" +msgid "Mouse shadow\\Gives the mouse a shadow" +msgstr "Schatten unter der Maus\\Ein Schatten erscheint unter der Maus" -msgid "Current mission saved" -msgstr "Mission gespeichert" +msgid "Automatic indent\\When program editing" +msgstr "Automatisches Einrücken\\Beim Bearbeiten der Programme" -msgid "Customize your appearance" -msgstr "Aussehen einstellen" +msgid "Big indent\\Indent 2 or 4 spaces per level defined by braces" +msgstr "Einrücken mit 4 Leerstellen\\Einrücken mit 2 oder 4 Leerstellen" -msgid "Cut (Ctrl+x)" -msgstr "Ausschneiden (Ctrl+x)" +msgid "Access to solutions\\Show program \"4: Solution\" in the exercises" +msgstr "" +"Lösung zugänglich\\Die Lösung ist im Programmslot \"4: Lösung\" zugänglich" -msgid "Defense tower" -msgstr "Geschützturm" +msgid "Standard controls\\Standard key functions" +msgstr "Alles zurücksetzen\\Standarddefinition aller Tasten" -msgid "Delete" -msgstr "Zerstören" +msgid "Turn left\\turns the bot to the left" +msgstr "Drehung nach links\\Steuer links" -msgid "Delete player\\Deletes the player from the list" -msgstr "Spieler löschen\\Löscht den Spieler aus der Liste" +msgid "Turn right\\turns the bot to the right" +msgstr "Drehung nach rechts\\Steuer rechts" -msgid "Delete\\Deletes the selected file" -msgstr "Löschen\\Löscht die gespeicherte Mission" +msgid "Forward\\Moves forward" +msgstr "Vorwärts\\Bewegung nach vorne" -msgid "Depth of field\\Maximum visibility" -msgstr "Sichtweite\\Maximale Sichtweite" +msgid "Backward\\Moves backward" +msgstr "Rückwärts\\Bewegung nach hinten" -msgid "Derrick" -msgstr "Bohrturm" +msgid "Climb\\Increases the power of the jet" +msgstr "Steigen\\Leistung des Triebwerks steigern" msgid "Descend\\Reduces the power of the jet" msgstr "Sinken\\Leistung des Triebwerks drosseln" -msgid "Destroy" -msgstr "" +msgid "Change camera\\Switches between onboard camera and following camera" +msgstr "Andere Kamera\\Sichtpunkt einstellen" + +msgid "Previous object\\Selects the previous object" +msgstr "Vorherg. Auswahl\\Das vorhergehende Objekt auswählen" -msgid "Destroy the building" -msgstr "Gebäude sprengen" +msgid "" +"Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)" +msgstr "Standardhandlung\\Führt die Standardhandlung des Roboters aus" -msgid "Destroyer" -msgstr "Einstampfer" +msgid "Camera closer\\Moves the camera forward" +msgstr "Kamera näher\\Bewegung der Kamera vorwärts" -msgid "Details\\Visual quality of 3D objects" -msgstr "Details\\Detailliertheit der Objekte in 3D" +msgid "Camera back\\Moves the camera backward" +msgstr "Kamera weiter\\Bewegung der Kamera rückwärts" -msgid "Developed by :" -msgstr "Entwickelt von:" +msgid "Next object\\Selects the next object" +msgstr "Nächstes auswählen\\Nächstes Objekt auswählen" -msgid "Device\\Driver and resolution settings" -msgstr "Bildschirm\\Driver und Bildschirmauflösung" +msgid "Select the astronaut\\Selects the astronaut" +msgstr "Astronauten auswählen\\Astronauten auswählen" -msgid "Dividing by zero" -msgstr "Teilung durch Null" +msgid "Quit\\Quit the current mission or exercise" +msgstr "Mission verlassen\\Eine Mission oder Übung verlassen" -msgid "Do not use in this exercise" -msgstr "In dieser Übung verboten" +msgid "Instructions\\Shows the instructions for the current mission" +msgstr "Anweisungen\\Anweisungen für die Mission oder Übung" -msgid "Do you really want to destroy the selected building?" -msgstr "Wollen Sie das angewählte Gebäude wirklich zerstören ?" +msgid "Programming help\\Gives more detailed help with programming" +msgstr "Hilfe CBOT-Sprache\\Hilfe über die Programmiersprache CBOT" -#, c-format -msgid "Do you want to delete %s's saved games? " -msgstr "Wollen Sie die gespeicherten Missionen von %s löschen ?" +msgid "Key word help\\More detailed help about key words" +msgstr "Hilfe über Begriff\\Hilfe über einen Begriff" -msgid "Do you want to quit COLOBOT ?" -msgstr "Wollen Sie COLOBOT schließen ?" +msgid "Origin of last message\\Shows where the last message was sent from" +msgstr "Ort der Meldung\\Zeigt den Ort, von dem die letzte Meldung stammt" -msgid "Doors blocked by a robot or another object " -msgstr "Die Türen werden von einem Gegenstand blockiert" +msgid "Speed 1.0x\\Normal speed" +msgstr "Geschwindigkeit 1.0x\\Normale Spielgeschwindigkeit" -msgid "Down (\\key gdown;)" -msgstr "Sinkt (\\key gdown;)" +msgid "Speed 1.5x\\1.5 times faster" +msgstr "Geschwindigkeit 1.5x\\Spielgeschwindigkeit anderthalb Mal schneller" -msgid "Drawer bot" -msgstr "Zeichner" +msgid "Speed 2.0x\\Double speed" +msgstr "Geschwindigkeit 2.0x\\Spielgeschwindigkeit doppelt so schnell" -msgid "Dust\\Dust and dirt on bots and buildings" -msgstr "Schmutz\\Schmutz auf Robotern und Bauten" +msgid "Speed 3.0x\\Three times faster" +msgstr "Geschwindigkeit 3.0x\\Spielgeschwindigkeit drei Mal schneller" -msgid "Dynamic lighting\\Mobile light sources" -msgstr "Dynamische Beleuchtung\\Dynamische Beleuchtung" +msgid "Sound effects:\\Volume of engines, voice, shooting, etc." +msgstr "Geräusche:\\Lautstärke Motoren, Stimmen, usw." -msgid "Edit the selected program" -msgstr "Gewähltes Programm bearbeiten" +msgid "Background sound :\\Volume of audio tracks on the CD" +msgstr "Geräuschkulisse:\\Lautstärke der Soundtracks der CD" -msgid "Egg" -msgstr "Ei" +msgid "3D sound\\3D positioning of the sound" +msgstr "3D-Geräusche\\Orten der Geräusche im Raum" -msgid "End of block missing" -msgstr "Es fehlt eine geschlossene geschweifte Klammer \"}\" (Ende des Blocks)" +msgid "Lowest\\Minimum graphic quality (highest frame rate)" +msgstr "Min.\\Minimale Qualität (großes Framerate)" -msgid "Energy deposit (site for power station)" -msgstr "Markierung für unterirdische Energiequelle" +msgid "Normal\\Normal graphic quality" +msgstr "Normal\\Standardqualität" -msgid "Energy level" -msgstr "Energievorrat" +msgid "Highest\\Highest graphic quality (lowest frame rate)" +msgstr "Max.\\Beste Qualität (niedriges Framerate)" -msgid "Engineer" -msgstr "Techniker" +msgid "Mute\\No sound" +msgstr "Kein Ton\\Keine Geräusche und Geräuschkulisse" -msgid "Error in instruction move" -msgstr "Ziel kann nicht erreicht werden" +msgid "Normal\\Normal sound volume" +msgstr "Normal\\Normale Lautstärke" -msgid "Execute the selected program" -msgstr "Gewähltes Programm ausführen" +msgid "Use a joystick\\Joystick or keyboard" +msgstr "Joystick\\Joystick oder Tastatur" -msgid "Execute/stop" -msgstr "Start/Stop" +msgid "" +"Access to solution\\Shows the solution (detailed instructions for missions)" +msgstr "Zeigt die Lösung\\Zeigt nach 3mal Scheitern die Lösung" -msgid "Exercises\\Programming exercises" -msgstr "Programmieren\\Programmierübungen" +msgid "\\New player name" +msgstr "\\Name des Spielers" -msgid "Exit film\\Film at the exit of exercises" -msgstr "Zurücksetzen \\Kleine Show beim Zurücksetzen in den Übungen" +msgid "OK\\Choose the selected player" +msgstr "OK\\Spieler auswählen" -msgid "Explode (\\key action;)" -msgstr "" +msgid "Cancel\\Keep current player name" +msgstr "Abbrechen\\Behält den bisherigen Spieler bei" -msgid "Explosive" -msgstr "Sprengstoff" +msgid "Delete player\\Deletes the player from the list" +msgstr "Spieler löschen\\Löscht den Spieler aus der Liste" -msgid "Extend shield (\\key action;)" -msgstr "Schutzschild ausfahren (\\key action;)" +msgid "Player name" +msgstr "Name " -msgid "Eyeglasses:" -msgstr "Brille:" +msgid "Save\\Saves the current mission" +msgstr "Speichern\\Speichert die Mission" -msgid "Face type:" -msgstr "Kopf:" +msgid "Load\\Loads the selected mission" +msgstr "Laden\\Öffnet eine gespeicherte Mission" -msgid "File not open" -msgstr "Die Datei wurde nicht geöffnet" +msgid "List of saved missions" +msgstr "Liste der gespeicherten Missionen" msgid "Filename:" msgstr "Dateiname:" -msgid "Film sequences\\Films before and after the missions" -msgstr "Filme\\Filme vor und nach den Missionen" +msgid "Mission name" +msgstr "Name der Mission" -msgid "Finish" -msgstr "Zielfläche" +msgid "Photography" +msgstr "Ansicht der Mission" -msgid "Fixed mine" -msgstr "Landmine" +msgid "Delete\\Deletes the selected file" +msgstr "Löschen\\Löscht die gespeicherte Mission" -msgid "Flat ground not large enough" -msgstr "Ebener Boden nicht groß genug" +msgid "Appearance\\Choose your appearance" +msgstr "Aussehen\\Erscheinungsbild des Astronauten einstellen" -msgid "Fog\\Fog" -msgstr "Nebel\\Nebelschwaden" +msgid "Standard\\Standard appearance settings" +msgstr "Standard\\Standardfarben einsetzen" -msgid "Folder:" -msgstr "In:" +msgid "Head\\Face and hair" +msgstr "Kopf\\Gesicht und Haare" -#, c-format -msgid "Folder: %s" -msgstr "Ordner: %s" +msgid "Suit\\Astronaut suit" +msgstr "Anzug\\Raumfahrtanzug" -msgid "Font size" -msgstr "Zeichengröße" +msgid "\\Turn left" +msgstr "\\Drehung links" -msgid "Forward" -msgstr "Nächste Seite" +msgid "\\Turn right" +msgstr "\\Drehung rechts" -msgid "Forward (\\key up;)" -msgstr "Vorwärts (\\key up;)" +msgid "Red" +msgstr "Rot" -msgid "Forward\\Moves forward" -msgstr "Vorwärts\\Bewegung nach vorne" +msgid "Green" +msgstr "Grün" -msgid "Found a site for a derrick" -msgstr "Geeignete Stelle für Bohrturm gefunden" +msgid "Blue" +msgstr "Blau" -msgid "Found a site for power station" -msgstr "Geeignete Stelle für Kraftwerk gefunden" +msgid "\\Face 1" +msgstr "\\Kopf 1" -msgid "Found key A (site for derrick)" -msgstr "Markierung für vergrabenen Schlüssel A" +msgid "\\Face 4" +msgstr "\\Kopf 4" -msgid "Found key B (site for derrick)" -msgstr "Markierung für vergrabenen Schlüssel B" +msgid "\\Face 3" +msgstr "\\Kopf 3" -msgid "Found key C (site for derrick)" -msgstr "Markierung für vergrabenen Schlüssel C" +msgid "\\Face 2" +msgstr "\\Kopf 2" -msgid "Found key D (site for derrick)" -msgstr "Markierung für vergrabenen Schlüssel D" +msgid "\\No eyeglasses" +msgstr "\\Keine Brille" -msgid "Free game" -msgstr "Freestyle" +msgid "\\Eyeglasses 1" +msgstr "\\Brille 1" -msgid "Free game\\Free game without a specific goal" -msgstr "Freestyle\\Freies Spielen ohne vorgegebenes Ziel" +msgid "\\Eyeglasses 2" +msgstr "\\Brille 2" -msgid "Friendly fire\\Your shooting can damage your own objects " -msgstr "Eigenbeschuss\\Ihre Einheiten werden von Ihren Waffen beschädigt" +msgid "\\Eyeglasses 3" +msgstr "\\Brille 3" -msgid "Full screen\\Full screen or window mode" -msgstr "Vollbildschirm\\Vollbildschirm oder Fenster" +msgid "\\Eyeglasses 4" +msgstr "\\Brille 4" -msgid "Function already exists" -msgstr "Diese Funktion gibt es schon" +msgid "\\Eyeglasses 5" +msgstr "\\Brille 5" -msgid "Function name missing" -msgstr "Hier muss der Name der Funktion stehen" +msgid "Previous selection (\\key desel;)" +msgstr "Vorherg. Auwahl (\\key desel;)" -msgid "Game speed" -msgstr "Spielgeschwindigkeit" +msgid "Turn left (\\key left;)" +msgstr "Drehung links (\\key left;)" -msgid "Game\\Game settings" -msgstr "Spiel\\Gameplay Einstellungen" +msgid "Turn right (\\key right;)" +msgstr "Drehung rechts (\\key right;)" -msgid "Gantry crane" -msgstr "Träger" +msgid "Forward (\\key up;)" +msgstr "Vorwärts (\\key up;)" -msgid "Goto: destination occupied" -msgstr "Ziel ist schon besetzt" +msgid "Backward (\\key down;)" +msgstr "Rückwärts (\\key down;)" -msgid "Goto: inaccessible destination" -msgstr "Ziel kann nicht erreicht werden" +msgid "Up (\\key gup;)" +msgstr "Steigt (\\key gup;)" + +msgid "Down (\\key gdown;)" +msgstr "Sinkt (\\key gdown;)" + +msgid "Grab or drop (\\key action;)" +msgstr "Nehmen oder hinlegen (\\key action;)" + +msgid "..in front" +msgstr "..vorne" + +msgid "..behind" +msgstr "..hinten" -msgid "Grab or drop (\\key action;)" -msgstr "Nehmen oder hinlegen (\\key action;)" +msgid "..power cell" +msgstr "..Batterie" -msgid "Graphics\\Graphics settings" -msgstr "Grafik\\Grafische Einstellungen" +msgid "Instructions for the mission (\\key help;)" +msgstr "Anweisungen über die Mission(\\key help;)" -msgid "Green" -msgstr "Grün" +msgid "Take off to finish the mission" +msgstr "Abheben nach vollbrachter Mission" -msgid "Green flag" -msgstr "Grüne Fahne" +msgid "Destroy" +msgstr "" -msgid "Ground inappropriate" -msgstr "Boden ungeeignet" +msgid "Build a derrick" +msgstr "Baut einen Bohrturm" -msgid "Ground not flat enough" -msgstr "Boden nicht eben genug" +msgid "Build a power station" +msgstr "Baut ein Kraftwerk" -msgid "Hair color:" -msgstr "Haarfarbe:" +msgid "Build a bot factory" +msgstr "Baut eine Roboterfabrik" -msgid "Head\\Face and hair" -msgstr "Kopf\\Gesicht und Haare" +msgid "Build a repair center" +msgstr "Baut ein Reparaturzentrum" -msgid "Help about selected object" -msgstr "Anweisungen über das ausgewählte Objekt" +msgid "Build a converter" +msgstr "Baut einen Konverter" -msgid "Help balloons\\Explain the function of the buttons" -msgstr "Hilfsblasen\\Hilfsblasen" +msgid "Build a defense tower" +msgstr "Baut einen Geschützturm" -msgid "Highest\\Highest graphic quality (lowest frame rate)" -msgstr "Max.\\Beste Qualität (niedriges Framerate)" +msgid "Build a research center" +msgstr "Baut ein Forschungszentrum" -msgid "Home" -msgstr "Home" +msgid "Build a radar station" +msgstr "Baut ein Radar" -msgid "Houston Mission Control" -msgstr "Kontrollzentrum" +msgid "Build a power cell factory" +msgstr "Baut eine Batteriefabrik" -msgid "Illegal object" -msgstr "Objekt nicht verfügbar" +msgid "Build an autolab" +msgstr "Baut ein automatisches Labor" -msgid "Impossible under water" -msgstr "Unter Wasser unmöglich" +msgid "Build a nuclear power plant" +msgstr "Baut eine Brennstoffzellenfabrik" -msgid "Impossible when carrying an object" -msgstr "Unmöglich wenn Sie etwas tragen" +msgid "Build a lightning conductor" +msgstr "Baut einen Blitzableiter" -msgid "Impossible when flying" -msgstr "Im Flug unmöglich" +msgid "Build a exchange post" +msgstr "Baut einen Infoserver" -msgid "Impossible when moving" -msgstr "In Fahrt unmöglich" +msgid "Build a destroyer" +msgstr "" -msgid "Impossible when swimming" -msgstr "Im Wasser unmöglich" +msgid "Show if the ground is flat" +msgstr "Zeigt ob der Boden eben ist" -msgid "Inappropriate bot" -msgstr "Roboter ungeeignet" +msgid "Plant a flag" +msgstr "Setzt eine Fahne" -msgid "Inappropriate cell type" -msgstr "Falscher Batterietyp" +msgid "Remove a flag" +msgstr "Sammelt die Fahne ein" -msgid "Inappropriate object" -msgstr "" +msgid "\\Blue flags" +msgstr "\\Blaue Fahne" -msgid "Incorrect index type" -msgstr "Falscher Typ für einen Index" +msgid "\\Red flags" +msgstr "\\Rote Fahne" -msgid "Infected by a virus; temporarily out of order" -msgstr "Von Virus infiziert, zeitweise außer Betrieb" +msgid "\\Green flags" +msgstr "\\Grüne Fahne" -msgid "Information exchange post" -msgstr "Infoserver" +msgid "\\Yellow flags" +msgstr "\\Gelbe Fahne" -msgid "Instruction \"break\" outside a loop" -msgstr "Anweisung \"break\" außerhalb einer Schleife" +msgid "\\Violet flags" +msgstr "\\Violette Fahne" -msgid "Instruction \"case\" missing" -msgstr "Es fehlt eine Anweisung \"case\"" +msgid "Build a winged grabber" +msgstr "Baut einen Jettransporter" -msgid "Instruction \"case\" outside a block \"switch\"" -msgstr "Anweisung \"case\" ohne vorhergehende Anweisung \"switch\"" +msgid "Build a tracked grabber" +msgstr "Baut einen Kettentransporter" -msgid "Instruction \"else\" without corresponding \"if\" " -msgstr "Anweisung \"else\" ohne vorhergehende Anweisung \"if\"" +msgid "Build a wheeled grabber" +msgstr "Baut einen Radtransporter" -msgid "Instructions (\\key help;)" -msgstr "Anweisungen (\\key help;)" +msgid "Build a legged grabber" +msgstr "Baut einen Krabbeltransporter" -msgid "Instructions after the final closing brace" -msgstr "Hier ist eine Anweisung nach dem Ende des Programms" +msgid "Build a winged shooter" +msgstr "Baut einen Jetshooter" -msgid "Instructions for the mission (\\key help;)" -msgstr "Anweisungen über die Mission(\\key help;)" +msgid "Build a tracked shooter" +msgstr "Baut einen Kettenshooter" -msgid "Instructions from Houston" -msgstr "Anweisungen von Houston" +msgid "Build a wheeled shooter" +msgstr "Baut einen Radshooter" -msgid "Instructions\\Shows the instructions for the current mission" -msgstr "Anweisungen\\Anweisungen für die Mission oder Übung" +msgid "Build a legged shooter" +msgstr "Baut einen Krabbelshooter" -msgid "Internal error - tell the developers" -msgstr "" +msgid "Build a winged orga shooter" +msgstr "Baut einen Jetorgashooter" -msgid "Jet temperature" -msgstr "Triebwerktemperatur" +msgid "Build a tracked orga shooter" +msgstr "Baut einen Kettenorgashooter" -msgid "Key A" -msgstr "Schlüssel A" +msgid "Build a wheeled orga shooter" +msgstr "Baut einen Radorgashooter" -msgid "Key B" -msgstr "Schlüssel B" +msgid "Build a legged orga shooter" +msgstr "Baut einen Krabbelorgashooter" -msgid "Key C" -msgstr "Schlüssel C" +msgid "Build a winged sniffer" +msgstr "Baut einen Jetschnüffler" -msgid "Key D" -msgstr "Schlüssel D" +msgid "Build a tracked sniffer" +msgstr "Baut einen Kettenschnüffler" -msgid "Key word help\\More detailed help about key words" -msgstr "Hilfe über Begriff\\Hilfe über einen Begriff" +msgid "Build a wheeled sniffer" +msgstr "Baut einen Radschnüffler" -msgid "Keyword \"while\" missing" -msgstr "Es fehlt das Wort \"while\"" +msgid "Build a legged sniffer" +msgstr "Baut einen Krabbelschnüffler" -msgid "Keyword help(\\key cbot;)" -msgstr "Hilfe über den Begriff (\\key cbot;)" +msgid "Build a thumper" +msgstr "Baut einen Stampfer" -msgid "LOADING" -msgstr "Laden" +msgid "Build a phazer shooter" +msgstr "Baut einen Phazershooter" -msgid "Legged grabber" -msgstr "Transporter" +msgid "Build a recycler" +msgstr "Baut einen Recycler" -msgid "Legged orga shooter" -msgstr "OrgaShooter" +msgid "Build a shielder" +msgstr "Baut einen Schutzschild" -msgid "Legged shooter" -msgstr "Shooter" +msgid "Build a subber" +msgstr "Baut einen Kettentaucher" -msgid "Legged sniffer" -msgstr "Schnüffler" +msgid "Run research program for tracked bots" +msgstr "Forschungsprogramm Kettenantrieb" -msgid "Lightning conductor" -msgstr "Blitzableiter" +msgid "Run research program for winged bots" +msgstr "Forschungsprogramm Jetantrieb" -msgid "List of objects" -msgstr "Liste der Objekte" +msgid "Run research program for thumper" +msgstr "Forschungsprogramm Stampfer" -msgid "List of saved missions" -msgstr "Liste der gespeicherten Missionen" +msgid "Run research program for shooter" +msgstr "Forschungsprogramm Shooterkanone" -msgid "Load a saved mission" -msgstr "Gespeicherte Mission laden" +msgid "Run research program for defense tower" +msgstr "Forschungsprogramm Geschützturm" -msgid "Load\\Load a saved mission" -msgstr "Laden\\Eine gespeicherte Mission öffnen" +msgid "Run research program for phazer shooter" +msgstr "Forschungsprogramm Phazerkanone" -msgid "Load\\Loads the selected mission" -msgstr "Laden\\Öffnet eine gespeicherte Mission" +msgid "Run research program for shielder" +msgstr "Forschungsprogramm Schutzschild" -msgid "Lowest\\Minimum graphic quality (highest frame rate)" -msgstr "Min.\\Minimale Qualität (großes Framerate)" +msgid "Run research program for nuclear power" +msgstr "Forschungsprogramm Brennstoffzelle" -msgid "Lunar Roving Vehicle" -msgstr "Lunar Roving Vehicle" +msgid "Run research program for legged bots" +msgstr "Forschungsprogramm Krabbelantrieb" -msgid "Marks on the ground\\Marks on the ground" -msgstr "Markierungen\\Markierungen auf dem Boden" +msgid "Run research program for orga shooter" +msgstr "Forschungsprogramm Orgashooterkanone" -msgid "Maximize" -msgstr "Großes Fenster" +msgid "Return to start" +msgstr "Alles zurücksetzen" -msgid "Minimize" -msgstr "Reduzieren" +msgid "Sniff (\\key action;)" +msgstr "Schnüffeln (\\key action;)" -msgid "Mission name" -msgstr "Name der Mission" +msgid "Thump (\\key action;)" +msgstr "Stampfen (\\key action;)" -msgid "Missions" -msgstr "Missionen" +msgid "Shoot (\\key action;)" +msgstr "Feuer (\\key action;)" -msgid "Missions\\Select mission" -msgstr "Missionen\\Aufbruch ins Weltall" +msgid "Explode (\\key action;)" +msgstr "" -msgid "Mouse inversion X\\Inversion of the scrolling direction on the X axis" -msgstr "Umkehr X\\Umkehr der Kameradrehung X-Achse" +msgid "Recycle (\\key action;)" +msgstr "Recyceln (\\key action;)" -msgid "Mouse inversion Y\\Inversion of the scrolling direction on the Y axis" -msgstr "Umkehr Y\\Umkehr der Kameradrehung Y-Achse" +msgid "Extend shield (\\key action;)" +msgstr "Schutzschild ausfahren (\\key action;)" -msgid "Mouse shadow\\Gives the mouse a shadow" -msgstr "Schatten unter der Maus\\Ein Schatten erscheint unter der Maus" +msgid "Withdraw shield (\\key action;)" +msgstr "Schutzschild einholen (\\key action;)" -msgid "Mute\\No sound" -msgstr "Kein Ton\\Keine Geräusche und Geräuschkulisse" +msgid "Shield radius" +msgstr "Reichweite Schutzschild" -msgid "Name:" -msgstr "Name:" +msgid "Execute the selected program" +msgstr "Gewähltes Programm ausführen" -msgid "Negative value rejected by \"throw\"" -msgstr "Negativer Wert ungeeignet für Anweisung \"throw\"" +msgid "Edit the selected program" +msgstr "Gewähltes Programm bearbeiten" -msgid "Nest" -msgstr "Orgastoffquelle" +msgid "\\SatCom on standby" +msgstr "\\SatCom in Standby" -msgid "New" -msgstr "Neu" +msgid "Destroy the building" +msgstr "Gebäude sprengen" -msgid "New ..." -msgstr "Neu ..." +msgid "Energy level" +msgstr "Energievorrat" -msgid "New bot available" -msgstr "Neuer Roboter verfügbar" +msgid "Shield level" +msgstr "Schäden" -msgid "Next" -msgstr "Nächster" +msgid "Jet temperature" +msgstr "Triebwerktemperatur" -msgid "Next object\\Selects the next object" -msgstr "Nächstes auswählen\\Nächstes Objekt auswählen" +msgid "Still working ..." +msgstr "Prozess im Gang ..." -msgid "No energy in the subsoil" -msgstr "Kein unterirdisches Energievorkommen" +msgid "Number of insects detected" +msgstr "Anzahl erfasster Insekten" -msgid "No flag nearby" -msgstr "Keine Fahne in Reichweite" +msgid "Transmitted information" +msgstr "Gesendete Informationen" -msgid "No function running" -msgstr "Keine Funktion wird ausgeführt" +msgid "Compass" +msgstr "Kompass" -msgid "No function with this name accepts this kind of parameter" -msgstr "Keine Funktion mit diesem Namen verträgt Parameter diesen Typs" +msgid "Zoom mini-map" +msgstr "Zoom Minikarte" -msgid "No function with this name accepts this number of parameters" -msgstr "Keine Funktion mit diesem Namen verträgt diese Anzahl Parameter" +msgid "Camera (\\key camera;)" +msgstr "Kamera (\\key camera;)" -msgid "No information exchange post within range" -msgstr "Kein Infoserver in Reichweite" +msgid "Camera to left" +msgstr "Kamera links" -msgid "No more energy" -msgstr "Keine Energie mehr" +msgid "Camera to right" +msgstr "Kamera rechts" -msgid "No ore in the subsoil" -msgstr "Keine unterirdische Erzlagerstätte" +msgid "Camera nearest" +msgstr "Kamera näher" -msgid "No other robot" -msgstr "Kein anderer Roboter" +msgid "Camera awayest" +msgstr "Kamera weiter weg" -msgid "No power cell" -msgstr "Keine Batterie" +msgid "Help about selected object" +msgstr "Anweisungen über das ausgewählte Objekt" -msgid "No titanium" -msgstr "Kein Titan vorhanden" +msgid "Show the solution" +msgstr "Zeigt die Lösung" -msgid "No titanium around" -msgstr "Kein Titan vorhanden" +msgid "Switch bots <-> buildings" +msgstr "Anzeige Roboter <-> Bauten" -msgid "No titanium ore to convert" -msgstr "Kein konvertierbares Titanerz vorhanden" +msgid "Show the range" +msgstr "Zeigt die Reichweite" -msgid "No titanium to transform" -msgstr "Kein konvertierbares Titanerz vorhanden" +msgid "\\Raise the pencil" +msgstr "\\Bleistift abheben" -msgid "No uranium to transform" -msgstr "Kein konvertierbares Platin" +msgid "\\Use the black pencil" +msgstr "\\Schwarzen Bleistift hinunterlassen" -msgid "Normal size" -msgstr "Normale Größe" +msgid "\\Use the yellow pencil" +msgstr "\\Gelben Bleistift hinunterlassen" -msgid "Normal\\Normal graphic quality" -msgstr "Normal\\Standardqualität" +msgid "\\Use the orange pencil" +msgstr "\\Orangefarbenen Bleistift hinunterlassen" -msgid "Normal\\Normal sound volume" -msgstr "Normal\\Normale Lautstärke" +msgid "\\Use the red pencil" +msgstr "\\Roten Bleistift hinunterlassen" -msgid "Not enough energy" -msgstr "Nicht genug Energie" +msgid "\\Use the purple pencil" +msgstr "\\Violetten Bleistift hinunterlassen" -msgid "Not enough energy yet" -msgstr "Noch nicht genug Energie" +msgid "\\Use the blue pencil" +msgstr "\\Blauen Bleistift hinunterlassen" -msgid "Not found anything to destroy" -msgstr "" +msgid "\\Use the green pencil" +msgstr "\\Grünen Bleistift hinunterlassen" -msgid "Not yet enough energy" -msgstr "Noch nicht genug Energie" +msgid "\\Use the brown pencil" +msgstr "\\Braunen Bleistift hinunterlassen" -msgid "Nothing to analyze" -msgstr "Nichts zu analysieren" +msgid "\\Start recording" +msgstr "\\Aufnahme starten" -msgid "Nothing to drop" -msgstr "Nichts abzulegen" +msgid "\\Stop recording" +msgstr "\\Aufnahme stoppen" -msgid "Nothing to grab" -msgstr "Nichts zu ergreifen" +msgid "Show the place" +msgstr "Zeigt den Ort" -msgid "Nothing to recycle" -msgstr "Nichts zu recyceln" +msgid "Continue" +msgstr "Weitermachen" -msgid "Nuclear power cell" -msgstr "Brennstoffzelle" +msgid "Command line" +msgstr "Befehleingabe" -msgid "Nuclear power cell available" -msgstr "Brennstoffzelle verfügbar" +msgid "Game speed" +msgstr "Spielgeschwindigkeit" -msgid "Nuclear power station" -msgstr "Brennstoffzellenfabrik" +msgid "Back" +msgstr "Vorherg. Seite" -msgid "Num of decorative objects\\Number of purely ornamental objects" -msgstr "Anzahl Ziergegenstände\\Anzahl Gegenstände ohne Funktion" +msgid "Forward" +msgstr "Nächste Seite" -msgid "Number missing" -msgstr "Es fehlt eine Zahl" +msgid "Home" +msgstr "Home" -msgid "Number of insects detected" -msgstr "Anzahl erfasster Insekten" +msgid "Copy" +msgstr "Kopieren" -msgid "Number of particles\\Explosions, dust, reflections, etc." -msgstr "Anzahl Partikel\\Explosionen, Staub, usw." +msgid "Size 1" +msgstr "Größe 1" -msgid "OK" -msgstr "OK" +msgid "Size 2" +msgstr "Größe 2" -msgid "OK\\Choose the selected player" -msgstr "OK\\Spieler auswählen" +msgid "Size 3" +msgstr "Größe 3" -msgid "OK\\Close program editor and return to game" -msgstr "OK\\Programm kompilieren" +msgid "Size 4" +msgstr "Größe 4" -msgid "Object not found" -msgstr "Das Objekt existiert nicht" +msgid "Size 5" +msgstr "Größe 5" -msgid "Object too close" -msgstr "Gegenstand zu nahe" +msgid "Instructions from Houston" +msgstr "Anweisungen von Houston" -msgid "One step" -msgstr "Ein Schritt" +msgid "Satellite report" +msgstr "Satellitenbericht" -msgid "Open" -msgstr "Öffnen" +msgid "Programs dispatched by Houston" +msgstr "Von Houston übermittelte Programme" -msgid "Open (Ctrl+o)" -msgstr "Öffnen (Ctrl+o)" +msgid "List of objects" +msgstr "Liste der Objekte" -msgid "Opening brace missing " -msgstr "Es fehlt eine offene geschweifte Klammer\"{\"" +msgid "Programming help" +msgstr "Hilfe über Programmieren" -msgid "Opening bracket missing" -msgstr "Es fehlt eine offene Klammer \"(\"" +msgid "Solution" +msgstr "Lösung" -msgid "Operation impossible with value \"nan\"" -msgstr "Operation mit dem Wert \"nan\"" +msgid "OK\\Close program editor and return to game" +msgstr "OK\\Programm kompilieren" -msgid "Options" -msgstr "Einstellungen" +msgid "Cancel\\Cancel all changes" +msgstr "Abbrechen\\Editor schließen" -msgid "Options\\Preferences" -msgstr "Einstellungen\\Einstellungen" +msgid "Open (Ctrl+o)" +msgstr "Öffnen (Ctrl+o)" -msgid "Organic matter" -msgstr "Orgastoff" +msgid "Save (Ctrl+s)" +msgstr "Speichern (Ctrl+s)" -msgid "Origin of last message\\Shows where the last message was sent from" -msgstr "Ort der Meldung\\Zeigt den Ort, von dem die letzte Meldung stammt" +msgid "Undo (Ctrl+z)" +msgstr "Widerrufen (Ctrl+z)" -msgid "Parameters missing " -msgstr "Nicht genug Parameter" +msgid "Cut (Ctrl+x)" +msgstr "Ausschneiden (Ctrl+x)" -msgid "Particles in the interface\\Steam clouds and sparks in the interface" -msgstr "Partikel in den Menüs\\Funken und Sterne in den Menüs" +msgid "Copy (Ctrl+c)" +msgstr "Kopieren (Ctrl+c)" msgid "Paste (Ctrl+v)" msgstr "Einfügen (Ctrl+v)" -msgid "Pause/continue" -msgstr "Pause/Weitermachen" +msgid "Font size" +msgstr "Zeichengröße" -msgid "Phazer shooter" -msgstr "Phazershooter" +msgid "Instructions (\\key help;)" +msgstr "Anweisungen (\\key help;)" -msgid "Photography" -msgstr "Ansicht der Mission" +msgid "Programming help (\\key prog;)" +msgstr "Hilfe über Programmieren (\\key prog;)" + +msgid "Compile" +msgstr "Kompilieren" -msgid "Place occupied" -msgstr "Stelle schon besetzt" +msgid "Execute/stop" +msgstr "Start/Stop" -msgid "Planets and stars\\Astronomical objects in the sky" -msgstr "Planeten und Sterne\\Kreisende Planeten und Sterne" +msgid "Pause/continue" +msgstr "Pause/Weitermachen" -msgid "Plans for defense tower available" -msgstr "Errichtung eines Geschützturms möglich" +msgid "One step" +msgstr "Ein Schritt" -msgid "Plans for nuclear power plant available" -msgstr "Errichtung einer Brennstoffzellenfabrik möglich" +msgid "Gantry crane" +msgstr "Träger" -msgid "Plans for phazer shooter available" -msgstr "Herstellung eines Phazershooters möglich" +msgid "Spaceship" +msgstr "Raumschiff" -msgid "Plans for shielder available" -msgstr "Herstellung eines Schutzschildes möglich" +msgid "Derrick" +msgstr "Bohrturm" -msgid "Plans for shooter available" -msgstr "Herstellung eines Shooters möglich" +msgid "Bot factory" +msgstr "Roboterfabrik" -msgid "Plans for thumper available" -msgstr "Herstellung eines Stampfers möglich" +msgid "Repair center" +msgstr "Reparaturzentrum" -msgid "Plans for tracked robots available " -msgstr "Herstellung eines Roboters mit Kettenantrieb möglich" +msgid "Destroyer" +msgstr "Einstampfer" -msgid "Plant a flag" -msgstr "Setzt eine Fahne" +msgid "Power station" +msgstr "Kraftwerk" -msgid "Play\\Start mission!" -msgstr "Spielen ...\\Los geht's!" +msgid "Converts ore to titanium" +msgstr "Konverter Erz-Titan" -msgid "Player" -msgstr "Spieler" +msgid "Defense tower" +msgstr "Geschützturm" -msgid "Player name" -msgstr "Name " +msgid "Nest" +msgstr "Orgastoffquelle" -msgid "Player's name" -msgstr "Name " +msgid "Research center" +msgstr "Forschungszentrum" -msgid "Power cell" -msgstr "Elektrolytische Batterie" +msgid "Radar station" +msgstr "Radar" -msgid "Power cell available" -msgstr "Batterie verfügbar" +msgid "Information exchange post" +msgstr "Infoserver" msgid "Power cell factory" msgstr "Batteriefabrik" -msgid "Power station" -msgstr "Kraftwerk" +msgid "Autolab" +msgstr "Automatisches Labor" -msgid "Practice bot" -msgstr "Übungsroboter" +msgid "Nuclear power station" +msgstr "Brennstoffzellenfabrik" -msgid "Press \\key help; to read instructions on your SatCom" -msgstr "Beziehen Sie sich auf Ihren SatCom, indem Sie auf \\key help; drücken" +msgid "Lightning conductor" +msgstr "Blitzableiter" -msgid "Previous" -msgstr "Vorherg" +msgid "Vault" +msgstr "Bunker" -msgid "Previous object\\Selects the previous object" -msgstr "Vorherg. Auswahl\\Das vorhergehende Objekt auswählen" +msgid "Houston Mission Control" +msgstr "Kontrollzentrum" -msgid "Previous selection (\\key desel;)" -msgstr "Vorherg. Auwahl (\\key desel;)" +msgid "Target" +msgstr "Zielscheibe" -msgid "Private element" -msgstr "Geschütztes Element (private)" +msgid "Start" +msgstr "Startfläche" -msgid "Private\\Private folder" -msgstr "Privat\\Privater Ordner" +msgid "Finish" +msgstr "Zielfläche" -msgid "Program editor" -msgstr "Programmeditor" +msgid "Titanium ore" +msgstr "Titanerz" -msgid "Program finished" -msgstr "Programm beendet" +msgid "Uranium ore" +msgstr "Platinerz" -msgid "Program infected by a virus" -msgstr "Ein Programm wurde von einem Virus infiziert" +msgid "Organic matter" +msgstr "Orgastoff" -msgid "Programming exercises" -msgstr "Programmieren" +msgid "Titanium" +msgstr "Titan" -msgid "Programming help" -msgstr "Hilfe über Programmieren" +msgid "Power cell" +msgstr "Elektrolytische Batterie" -msgid "Programming help (\\key prog;)" -msgstr "Hilfe über Programmieren (\\key prog;)" +msgid "Nuclear power cell" +msgstr "Brennstoffzelle" -msgid "Programming help\\Gives more detailed help with programming" -msgstr "Hilfe CBOT-Sprache\\Hilfe über die Programmiersprache CBOT" +msgid "Black box" +msgstr "Flugschreiber" -msgid "Programs dispatched by Houston" -msgstr "Von Houston übermittelte Programme" +msgid "Key A" +msgstr "Schlüssel A" -msgid "Public required" -msgstr "Hier muss das Wort \"public\" stehen" +msgid "Key B" +msgstr "Schlüssel B" -msgid "Public\\Common folder" -msgstr "Öffentlich\\Gemeinsamer Ordner für alle Spieler" +msgid "Key C" +msgstr "Schlüssel C" -msgid "Quake at explosions\\The screen shakes at explosions" -msgstr "Beben bei Explosionen\\Die Kamera bebt bei Explosionen" +msgid "Key D" +msgstr "Schlüssel D" -msgid "Quit the mission?" -msgstr "Mission abbrechen ?" +msgid "Explosive" +msgstr "Sprengstoff" -msgid "Quit\\Quit COLOBOT" -msgstr "Schließen\\COLOBOT schließen" +msgid "Fixed mine" +msgstr "Landmine" -msgid "Quit\\Quit the current mission or exercise" -msgstr "Mission verlassen\\Eine Mission oder Übung verlassen" +msgid "Survival kit" +msgstr "Überlebenskit" -msgid "Radar station" -msgstr "Radar" +msgid "Checkpoint" +msgstr "Checkpoint" -msgid "Read error" -msgstr "Fehler beim Lesezugriff" +msgid "Blue flag" +msgstr "Blaue Fahne" -msgid "Recorder" -msgstr "Recorder" +msgid "Red flag" +msgstr "Rote Fahne" -msgid "Recycle (\\key action;)" -msgstr "Recyceln (\\key action;)" +msgid "Green flag" +msgstr "Grüne Fahne" -msgid "Recycler" -msgstr "Recycler" +msgid "Yellow flag" +msgstr "Gelbe Fahne" -msgid "Red" -msgstr "Rot" +msgid "Violet flag" +msgstr "Violette Fahne" -msgid "Red flag" -msgstr "Rote Fahne" +msgid "Energy deposit (site for power station)" +msgstr "Markierung für unterirdische Energiequelle" -msgid "Reflections on the buttons \\Shiny buttons" -msgstr "Glänzende Tasten\\Glänzende Tasten in den Menüs" +msgid "Uranium deposit (site for derrick)" +msgstr "Markierung für unterirdisches Platinvorkommen" -msgid "Remains of Apollo mission" -msgstr "Überreste einer Apollo-Mission" +msgid "Found key A (site for derrick)" +msgstr "Markierung für vergrabenen Schlüssel A" -msgid "Remove a flag" -msgstr "Sammelt die Fahne ein" +msgid "Found key B (site for derrick)" +msgstr "Markierung für vergrabenen Schlüssel B" -msgid "Repair center" -msgstr "Reparaturzentrum" +msgid "Found key C (site for derrick)" +msgstr "Markierung für vergrabenen Schlüssel C" -msgid "Research center" -msgstr "Forschungszentrum" +msgid "Found key D (site for derrick)" +msgstr "Markierung für vergrabenen Schlüssel D" -msgid "Research program already performed" -msgstr "Forschungsprogramm schon ausgeführt" +msgid "Titanium deposit (site for derrick)" +msgstr "Markierung für unterirdisches Titanvorkommen" -msgid "Research program completed" -msgstr "Forschungsprogramm abgeschlossen" +msgid "Practice bot" +msgstr "Übungsroboter" -msgid "Reserved keyword of CBOT language" -msgstr "Dieses Wort ist reserviert" +msgid "Winged grabber" +msgstr "Transporter" -msgid "Resolution" -msgstr "Auflösung" +msgid "Tracked grabber" +msgstr "Transporter" -msgid "Restart\\Restart the mission from the beginning" -msgstr "Neu anfangen\\Die Mission von vorne anfangen" +msgid "Wheeled grabber" +msgstr "Transporter" -msgid "Return to start" -msgstr "Alles zurücksetzen" +msgid "Legged grabber" +msgstr "Transporter" -msgid "Robbie" -msgstr "Robby" +msgid "Winged shooter" +msgstr "Shooter" -msgid "Robbie\\Your assistant" -msgstr "Robby\\Ihr Assistent" +msgid "Tracked shooter" +msgstr "Shooter" -msgid "Ruin" -msgstr "Gebäuderuine" +msgid "Wheeled shooter" +msgstr "Shooter" -msgid "Run research program for defense tower" -msgstr "Forschungsprogramm Geschützturm" +msgid "Legged shooter" +msgstr "Shooter" -msgid "Run research program for legged bots" -msgstr "Forschungsprogramm Krabbelantrieb" +msgid "Winged orga shooter" +msgstr "OrgaShooter" -msgid "Run research program for nuclear power" -msgstr "Forschungsprogramm Brennstoffzelle" +msgid "Tracked orga shooter" +msgstr "OrgaShooter" -msgid "Run research program for orga shooter" -msgstr "Forschungsprogramm Orgashooterkanone" +msgid "Wheeled orga shooter" +msgstr "OrgaShooter" -msgid "Run research program for phazer shooter" -msgstr "Forschungsprogramm Phazerkanone" +msgid "Legged orga shooter" +msgstr "OrgaShooter" -msgid "Run research program for shielder" -msgstr "Forschungsprogramm Schutzschild" +msgid "Winged sniffer" +msgstr "Schnüffler" -msgid "Run research program for shooter" -msgstr "Forschungsprogramm Shooterkanone" +msgid "Tracked sniffer" +msgstr "Schnüffler" -msgid "Run research program for thumper" -msgstr "Forschungsprogramm Stampfer" +msgid "Wheeled sniffer" +msgstr "Schnüffler" -msgid "Run research program for tracked bots" -msgstr "Forschungsprogramm Kettenantrieb" +msgid "Legged sniffer" +msgstr "Schnüffler" -msgid "Run research program for winged bots" -msgstr "Forschungsprogramm Jetantrieb" +msgid "Thumper" +msgstr "Stampfer" -msgid "SatCom" -msgstr "SatCom" +msgid "Phazer shooter" +msgstr "Phazershooter" -msgid "Satellite report" -msgstr "Satellitenbericht" +msgid "Recycler" +msgstr "Recycler" -msgid "Save" -msgstr "Speichern" +msgid "Shielder" +msgstr "Schutzschild" -msgid "Save (Ctrl+s)" -msgstr "Speichern (Ctrl+s)" +msgid "Subber" +msgstr "Kettentaucher" -msgid "Save the current mission" -msgstr "Aktuelle Mission speichern" +msgid "Target bot" +msgstr "Mobile Zielscheibe" -msgid "Save\\Save the current mission " -msgstr "Speichern\\Aktuelle Mission speichern" +msgid "Drawer bot" +msgstr "Zeichner" -msgid "Save\\Saves the current mission" -msgstr "Speichern\\Speichert die Mission" +msgid "Engineer" +msgstr "Techniker" -msgid "Scrolling\\Scrolling when the mouse touches right or left border" -msgstr "" -"Kameradrehung mit der Maus\\Die Kamera dreht wenn die Maus den Rand erreicht" +msgid "Robbie" +msgstr "Robby" -msgid "Select the astronaut\\Selects the astronaut" -msgstr "Astronauten auswählen\\Astronauten auswählen" +msgid "Alien Queen" +msgstr "Insektenkönigin" -msgid "Semicolon terminator missing" -msgstr "Es fehlt ein Strichpunkt \";\" am Ende der Anweisung" +msgid "Ant" +msgstr "Ameise" -msgid "Shadows\\Shadows on the ground" -msgstr "Schatten\\Schlagschatten auf dem Boden" +msgid "Spider" +msgstr "Spinne" -msgid "Shield level" -msgstr "Schäden" +msgid "Wasp" +msgstr "Wespe" -msgid "Shield radius" -msgstr "Reichweite Schutzschild" +msgid "Worm" +msgstr "Wurm" -msgid "Shielder" -msgstr "Schutzschild" +msgid "Egg" +msgstr "Ei" -msgid "Shift" -msgstr "Shift" +msgid "Wreckage" +msgstr "Roboterwrack" -msgid "Shoot (\\key action;)" -msgstr "Feuer (\\key action;)" +msgid "Ruin" +msgstr "Gebäuderuine" -msgid "Show if the ground is flat" -msgstr "Zeigt ob der Boden eben ist" +msgid "Waste" +msgstr "Abfall" -msgid "Show the place" -msgstr "Zeigt den Ort" +msgid "Spaceship ruin" +msgstr "Raumschiffruine" -msgid "Show the range" -msgstr "Zeigt die Reichweite" +msgid "Remains of Apollo mission" +msgstr "Überreste einer Apollo-Mission" -msgid "Show the solution" -msgstr "Zeigt die Lösung" +msgid "Lunar Roving Vehicle" +msgstr "Lunar Roving Vehicle" -msgid "Sign \" : \" missing" -msgstr "Es fehlt ein Doppelpunkt \" : \"" +msgid "Internal error - tell the developers" +msgstr "" -msgid "Size 1" -msgstr "Größe 1" +msgid "Unknown command" +msgstr "Befehl unbekannt" -msgid "Size 2" -msgstr "Größe 2" +msgid "Inappropriate bot" +msgstr "Roboter ungeeignet" -msgid "Size 3" -msgstr "Größe 3" +msgid "Impossible when flying" +msgstr "Im Flug unmöglich" -msgid "Size 4" -msgstr "Größe 4" +msgid "Already carrying something" +msgstr "Trägt schon etwas" -msgid "Size 5" -msgstr "Größe 5" +msgid "Nothing to grab" +msgstr "Nichts zu ergreifen" -msgid "Sky\\Clouds and nebulae" -msgstr "Himmel\\Himmel und Wolken" +msgid "Impossible when moving" +msgstr "In Fahrt unmöglich" -msgid "Sniff (\\key action;)" -msgstr "Schnüffeln (\\key action;)" +msgid "Place occupied" +msgstr "Stelle schon besetzt" -msgid "Solution" -msgstr "Lösung" +msgid "No other robot" +msgstr "Kein anderer Roboter" -msgid "Sound effects:\\Volume of engines, voice, shooting, etc." -msgstr "Geräusche:\\Lautstärke Motoren, Stimmen, usw." +msgid "You can not carry a radioactive object" +msgstr "Sie können keinen radioaktiven Gegenstand tragen" -msgid "Sound\\Music and game sound volume" -msgstr "Geräusche\\Lautstärke Geräusche und Musik" +msgid "You can not carry an object under water" +msgstr "Sie können unter Wasser nichts tragen" -msgid "Spaceship" -msgstr "Raumschiff" +msgid "Nothing to drop" +msgstr "Nichts abzulegen" -msgid "Spaceship ruin" -msgstr "Raumschiffruine" +msgid "Impossible under water" +msgstr "Unter Wasser unmöglich" -msgid "Speed 1.0x\\Normal speed" -msgstr "Geschwindigkeit 1.0x\\Normale Spielgeschwindigkeit" +msgid "Not enough energy" +msgstr "Nicht genug Energie" -msgid "Speed 1.5x\\1.5 times faster" -msgstr "Geschwindigkeit 1.5x\\Spielgeschwindigkeit anderthalb Mal schneller" +msgid "Titanium too far away" +msgstr "Titan zu weit weg" -msgid "Speed 2.0x\\Double speed" -msgstr "Geschwindigkeit 2.0x\\Spielgeschwindigkeit doppelt so schnell" +msgid "Titanium too close" +msgstr "Titan zu nahe" -msgid "Speed 3.0x\\Three times faster" -msgstr "Geschwindigkeit 3.0x\\Spielgeschwindigkeit drei Mal schneller" +msgid "No titanium around" +msgstr "Kein Titan vorhanden" -msgid "Spider" -msgstr "Spinne" +msgid "Ground not flat enough" +msgstr "Boden nicht eben genug" -msgid "Spider fatally wounded" -msgstr "Spinne tödlich verwundet" +msgid "Flat ground not large enough" +msgstr "Ebener Boden nicht groß genug" -msgid "Stack overflow" -msgstr "Stack overflow" +msgid "Too close to space ship" +msgstr "Zu nahe am Raumschiff" -msgid "" -"Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)" -msgstr "Standardhandlung\\Führt die Standardhandlung des Roboters aus" +msgid "Too close to a building" +msgstr "Zu nahe an einem Gebäude" -msgid "Standard controls\\Standard key functions" -msgstr "Alles zurücksetzen\\Standarddefinition aller Tasten" +msgid "Can not produce this object in this mission" +msgstr "" -msgid "Standard\\Standard appearance settings" -msgstr "Standard\\Standardfarben einsetzen" +msgid "Can not produce not researched object" +msgstr "" -msgid "Start" -msgstr "Startfläche" +msgid "Ground inappropriate" +msgstr "Boden ungeeignet" -msgid "Still working ..." -msgstr "Prozess im Gang ..." +msgid "Building too close" +msgstr "Gebäude zu nahe" -msgid "String missing" -msgstr "Hier wird eine Zeichenkette erwartet" +msgid "Object too close" +msgstr "Gegenstand zu nahe" -msgid "Strip color:" -msgstr "Farbe der Streifen:" +msgid "Nothing to recycle" +msgstr "Nichts zu recyceln" -msgid "Subber" -msgstr "Kettentaucher" +msgid "No more energy" +msgstr "Keine Energie mehr" -msgid "Suit color:" -msgstr "Farbe des Anzugs:" +msgid "Error in instruction move" +msgstr "Ziel kann nicht erreicht werden" -msgid "Suit\\Astronaut suit" -msgstr "Anzug\\Raumfahrtanzug" +msgid "Object not found" +msgstr "Das Objekt existiert nicht" -msgid "Sunbeams\\Sunbeams in the sky" -msgstr "Sonnenstrahlen\\Sonnenstrahlen" +msgid "Goto: inaccessible destination" +msgstr "Ziel kann nicht erreicht werden" -msgid "Survival kit" -msgstr "Überlebenskit" +msgid "Goto: destination occupied" +msgstr "Ziel ist schon besetzt" -msgid "Switch bots <-> buildings" -msgstr "Anzeige Roboter <-> Bauten" +msgid "No titanium ore to convert" +msgstr "Kein konvertierbares Titanerz vorhanden" -msgid "Take off to finish the mission" -msgstr "Abheben nach vollbrachter Mission" +msgid "No ore in the subsoil" +msgstr "Keine unterirdische Erzlagerstätte" -msgid "Target" -msgstr "Zielscheibe" +msgid "No energy in the subsoil" +msgstr "Kein unterirdisches Energievorkommen" -msgid "Target bot" -msgstr "Mobile Zielscheibe" +msgid "No power cell" +msgstr "Keine Batterie" -msgid "Textures\\Quality of textures " -msgstr "Qualität der Texturen\\Qualität der Anzeige" +msgid "Inappropriate cell type" +msgstr "Falscher Batterietyp" -msgid "The expression must return a boolean value" -msgstr "Der Ausdruck muss einen boolschen Wert ergeben" +msgid "Research program already performed" +msgstr "Forschungsprogramm schon ausgeführt" -msgid "The function returned no value " -msgstr "Die Funktion hat kein Ergebnis zurückgegeben" +msgid "Not enough energy yet" +msgstr "Noch nicht genug Energie" -msgid "" -"The list is only available if a \\l;radar station\\u object\\radar; is " -"working.\n" -msgstr "Die Liste ist ohne \\l;Radar\\u object\\radar; nicht verfügbar.\n" +msgid "No titanium to transform" +msgstr "Kein konvertierbares Titanerz vorhanden" -msgid "" -"The mission is not accomplished yet (press \\key help; for more details)" -msgstr "" -"Mission noch nicht beendet (Drücken Sie auf \\key help; für weitere " -"Informationen)" +msgid "Transforms only titanium" +msgstr "Wandelt nur Titanerz um" -msgid "The types of the two operands are incompatible " -msgstr "Die zwei Operanden sind nicht kompatibel" +msgid "Doors blocked by a robot or another object " +msgstr "Die Türen werden von einem Gegenstand blockiert" -msgid "This class already exists" -msgstr "Diese Klasse gibt es schon" +msgid "You must get on the spaceship to take off " +msgstr "Gehen Sie an Bord, bevor Sie abheben" -msgid "This class does not exist" -msgstr "Diese Klasse existiert nicht" +msgid "Nothing to analyze" +msgstr "Nichts zu analysieren" -msgid "This is not a member of this class" -msgstr "Dieses Element gibt es nicht in dieser Klasse" +msgid "Analyzes only organic matter" +msgstr "Analysiert nur Orgastoff" -msgid "This label does not exist" -msgstr "Dieses Label existiert nicht" +msgid "Analysis already performed" +msgstr "Analyse schon durchgeführt" -msgid "This object is not a member of a class" -msgstr "Das Objekt ist nicht eine Instanz einer Klasse" +msgid "Not yet enough energy" +msgstr "Noch nicht genug Energie" -msgid "Thump (\\key action;)" -msgstr "Stampfen (\\key action;)" +msgid "No uranium to transform" +msgstr "Kein konvertierbares Platin" -msgid "Thumper" -msgstr "Stampfer" +msgid "Transforms only uranium" +msgstr "Wandelt nur Platin um" -msgid "Titanium" -msgstr "Titan" +msgid "No titanium" +msgstr "Kein Titan vorhanden" -msgid "Titanium available" -msgstr "Titan verfügbar" +msgid "No information exchange post within range" +msgstr "Kein Infoserver in Reichweite" -msgid "Titanium deposit (site for derrick)" -msgstr "Markierung für unterirdisches Titanvorkommen" +msgid "Program infected by a virus" +msgstr "Ein Programm wurde von einem Virus infiziert" -msgid "Titanium ore" -msgstr "Titanerz" +msgid "Infected by a virus; temporarily out of order" +msgstr "Von Virus infiziert, zeitweise außer Betrieb" -msgid "Titanium too close" -msgstr "Titan zu nahe" +msgid "Impossible when swimming" +msgstr "Im Wasser unmöglich" -msgid "Titanium too far away" -msgstr "Titan zu weit weg" +msgid "Impossible when carrying an object" +msgstr "Unmöglich wenn Sie etwas tragen" -msgid "Too close to a building" -msgstr "Zu nahe an einem Gebäude" +msgid "Too many flags of this color (maximum 5)" +msgstr "Zu viele Fahnen dieser Farbe (Maximum 5)" msgid "Too close to an existing flag" msgstr "Zu nahe an einer anderen Fahne" -msgid "Too close to space ship" -msgstr "Zu nahe am Raumschiff" +msgid "No flag nearby" +msgstr "Keine Fahne in Reichweite" -msgid "Too many flags of this color (maximum 5)" -msgstr "Zu viele Fahnen dieser Farbe (Maximum 5)" +msgid "Not found anything to destroy" +msgstr "" -msgid "Too many parameters" -msgstr "Zu viele Parameter" +msgid "Inappropriate object" +msgstr "" -msgid "Tracked grabber" -msgstr "Transporter" +msgid "" +"The mission is not accomplished yet (press \\key help; for more details)" +msgstr "" +"Mission noch nicht beendet (Drücken Sie auf \\key help; für weitere " +"Informationen)" -msgid "Tracked orga shooter" -msgstr "OrgaShooter" +msgid "Bot destroyed" +msgstr "Roboter zerstört" -msgid "Tracked shooter" -msgstr "Shooter" +msgid "Building destroyed" +msgstr "Gebäude zerstört" -msgid "Tracked sniffer" -msgstr "Schnüffler" +msgid "Can not create this; there are too many objects" +msgstr "Kein neues Objekt kann erstellt werden (zu viele vorhanden)" -msgid "Transforms only titanium" -msgstr "Wandelt nur Titanerz um" +#, c-format +msgid "\"%s\" missing in this exercise" +msgstr "Es fehlt \"%s\" in Ihrem Programm" -msgid "Transforms only uranium" -msgstr "Wandelt nur Platin um" +msgid "Do not use in this exercise" +msgstr "In dieser Übung verboten" -msgid "Transmitted information" -msgstr "Gesendete Informationen" +msgid "Building completed" +msgstr "Gebäude fertiggestellt" -msgid "Turn left (\\key left;)" -msgstr "Drehung links (\\key left;)" +msgid "Titanium available" +msgstr "Titan verfügbar" -msgid "Turn left\\turns the bot to the left" -msgstr "Drehung nach links\\Steuer links" +msgid "Research program completed" +msgstr "Forschungsprogramm abgeschlossen" -msgid "Turn right (\\key right;)" -msgstr "Drehung rechts (\\key right;)" +msgid "Plans for tracked robots available " +msgstr "Herstellung eines Roboters mit Kettenantrieb möglich" -msgid "Turn right\\turns the bot to the right" -msgstr "Drehung nach rechts\\Steuer rechts" +msgid "You can fly with the keys (\\key gup;) and (\\key gdown;)" +msgstr "Sie können jetzt mit den Tasten \\key gup; und \\key gdown; fliegen" -msgid "Type declaration missing" -msgstr "Hier muss ein Variablentyp stehen" +msgid "Plans for thumper available" +msgstr "Herstellung eines Stampfers möglich" -msgid "Undo (Ctrl+z)" -msgstr "Widerrufen (Ctrl+z)" +msgid "Plans for shooter available" +msgstr "Herstellung eines Shooters möglich" -msgid "Unit" -msgstr "Einheit" +msgid "Plans for defense tower available" +msgstr "Errichtung eines Geschützturms möglich" -msgid "Unknown Object" -msgstr "Das Objekt existiert nicht" +msgid "Plans for phazer shooter available" +msgstr "Herstellung eines Phazershooters möglich" -msgid "Unknown command" -msgstr "Befehl unbekannt" +msgid "Plans for shielder available" +msgstr "Herstellung eines Schutzschildes möglich" -msgid "Unknown function" -msgstr "Unbekannte Funktion" +msgid "Plans for nuclear power plant available" +msgstr "Errichtung einer Brennstoffzellenfabrik möglich" -msgid "Up (\\key gup;)" -msgstr "Steigt (\\key gup;)" +msgid "New bot available" +msgstr "Neuer Roboter verfügbar" -msgid "Uranium deposit (site for derrick)" -msgstr "Markierung für unterirdisches Platinvorkommen" +msgid "Analysis performed" +msgstr "Analyse vollendet" -msgid "Uranium ore" -msgstr "Platinerz" +msgid "Power cell available" +msgstr "Batterie verfügbar" -msgid "Use a joystick\\Joystick or keyboard" -msgstr "Joystick\\Joystick oder Tastatur" +msgid "Nuclear power cell available" +msgstr "Brennstoffzelle verfügbar" -msgid "User levels" -msgstr "Userlevels" +msgid "You found a usable object" +msgstr "Sie haben ein brauchbares Objekt gefunden" -msgid "User\\User levels" -msgstr "User\\Userlevels" +msgid "Found a site for power station" +msgstr "Geeignete Stelle für Kraftwerk gefunden" -msgid "Variable name missing" -msgstr "Es fehlt der Name einer Variable" +msgid "Found a site for a derrick" +msgstr "Geeignete Stelle für Bohrturm gefunden" -msgid "Variable not declared" -msgstr "Variable nicht deklariert" +msgid "<<< Well done; mission accomplished >>>" +msgstr "<<< Bravo, Mission vollendet >>>" -msgid "Variable not initialized" -msgstr "Der Wert dieser Variable wurde nicht definiert" +msgid "<<< Sorry; mission failed >>>" +msgstr "<<< Mission gescheitert >>>" -msgid "Vault" -msgstr "Bunker" +msgid "Current mission saved" +msgstr "Mission gespeichert" -msgid "Violet flag" -msgstr "Violette Fahne" +msgid "Checkpoint crossed" +msgstr "Checkpoint erreicht" -msgid "Void parameter" -msgstr "Parameter void" +msgid "Alien Queen killed" +msgstr "Insektenkönigin tödlich verwundet" -msgid "Wasp" -msgstr "Wespe" +msgid "Ant fatally wounded" +msgstr "Ameise tödlich verwundet" msgid "Wasp fatally wounded" msgstr "Wespe tödlich verwundet" -msgid "Waste" -msgstr "Abfall" - -msgid "Wheeled grabber" -msgstr "Transporter" +msgid "Worm fatally wounded" +msgstr "Wurm tödlich verwundet" -msgid "Wheeled orga shooter" -msgstr "OrgaShooter" +msgid "Spider fatally wounded" +msgstr "Spinne tödlich verwundet" -msgid "Wheeled shooter" -msgstr "Shooter" +msgid "Press \\key help; to read instructions on your SatCom" +msgstr "Beziehen Sie sich auf Ihren SatCom, indem Sie auf \\key help; drücken" -msgid "Wheeled sniffer" -msgstr "Schnüffler" +msgid "Opening bracket missing" +msgstr "Es fehlt eine offene Klammer \"(\"" -msgid "Win" -msgstr "" +msgid "Closing bracket missing " +msgstr "Es fehlt eine geschlossene Klammer \")\"" -msgid "Winged grabber" -msgstr "Transporter" +msgid "The expression must return a boolean value" +msgstr "Der Ausdruck muss einen boolschen Wert ergeben" -msgid "Winged orga shooter" -msgstr "OrgaShooter" +msgid "Variable not declared" +msgstr "Variable nicht deklariert" -msgid "Winged shooter" -msgstr "Shooter" +msgid "Assignment impossible" +msgstr "Zuweisung unmöglich" -msgid "Winged sniffer" -msgstr "Schnüffler" +msgid "Semicolon terminator missing" +msgstr "Es fehlt ein Strichpunkt \";\" am Ende der Anweisung" -msgid "Withdraw shield (\\key action;)" -msgstr "Schutzschild einholen (\\key action;)" +msgid "Instruction \"case\" outside a block \"switch\"" +msgstr "Anweisung \"case\" ohne vorhergehende Anweisung \"switch\"" -msgid "Worm" -msgstr "Wurm" +msgid "Instructions after the final closing brace" +msgstr "Hier ist eine Anweisung nach dem Ende des Programms" -msgid "Worm fatally wounded" -msgstr "Wurm tödlich verwundet" +msgid "End of block missing" +msgstr "Es fehlt eine geschlossene geschweifte Klammer \"}\" (Ende des Blocks)" -msgid "Wreckage" -msgstr "Roboterwrack" +msgid "Instruction \"else\" without corresponding \"if\" " +msgstr "Anweisung \"else\" ohne vorhergehende Anweisung \"if\"" -msgid "Write error" -msgstr "Fehler beim Schreibzugriff" +msgid "Opening brace missing " +msgstr "Es fehlt eine offene geschweifte Klammer\"{\"" msgid "Wrong type for the assignment" msgstr "Der Ausdruck ergibt einen falschen Typ für die Zuweisung" -msgid "Yellow flag" -msgstr "Gelbe Fahne" +msgid "A variable can not be declared twice" +msgstr "Eine Variable wird zum zweiten Mal deklariert" -msgid "You can fly with the keys (\\key gup;) and (\\key gdown;)" -msgstr "Sie können jetzt mit den Tasten \\key gup; und \\key gdown; fliegen" +msgid "The types of the two operands are incompatible " +msgstr "Die zwei Operanden sind nicht kompatibel" -msgid "You can not carry a radioactive object" -msgstr "Sie können keinen radioaktiven Gegenstand tragen" +msgid "Unknown function" +msgstr "Unbekannte Funktion" -msgid "You can not carry an object under water" -msgstr "Sie können unter Wasser nichts tragen" +msgid "Sign \" : \" missing" +msgstr "Es fehlt ein Doppelpunkt \" : \"" -msgid "You found a usable object" -msgstr "Sie haben ein brauchbares Objekt gefunden" +msgid "Keyword \"while\" missing" +msgstr "Es fehlt das Wort \"while\"" -msgid "You must get on the spaceship to take off " -msgstr "Gehen Sie an Bord, bevor Sie abheben" +msgid "Instruction \"break\" outside a loop" +msgstr "Anweisung \"break\" außerhalb einer Schleife" -msgid "Zoom mini-map" -msgstr "Zoom Minikarte" +msgid "A label must be followed by \"for\"; \"while\"; \"do\" or \"switch\"" +msgstr "" +"Ein Label kann nur vor den Anweisungen \"for\", \"while\", \"do\" oder \"" +"switch\" vorkommen" -msgid "\\Blue flags" -msgstr "\\Blaue Fahne" +msgid "This label does not exist" +msgstr "Dieses Label existiert nicht" -msgid "\\Eyeglasses 1" -msgstr "\\Brille 1" +msgid "Instruction \"case\" missing" +msgstr "Es fehlt eine Anweisung \"case\"" -msgid "\\Eyeglasses 2" -msgstr "\\Brille 2" +msgid "Number missing" +msgstr "Es fehlt eine Zahl" -msgid "\\Eyeglasses 3" -msgstr "\\Brille 3" +msgid "Void parameter" +msgstr "Parameter void" -msgid "\\Eyeglasses 4" -msgstr "\\Brille 4" +msgid "Type declaration missing" +msgstr "Hier muss ein Variablentyp stehen" -msgid "\\Eyeglasses 5" -msgstr "\\Brille 5" +msgid "Variable name missing" +msgstr "Es fehlt der Name einer Variable" -msgid "\\Face 1" -msgstr "\\Kopf 1" +msgid "Function name missing" +msgstr "Hier muss der Name der Funktion stehen" -msgid "\\Face 2" -msgstr "\\Kopf 2" +msgid "Too many parameters" +msgstr "Zu viele Parameter" -msgid "\\Face 3" -msgstr "\\Kopf 3" +msgid "Function already exists" +msgstr "Diese Funktion gibt es schon" -msgid "\\Face 4" -msgstr "\\Kopf 4" +msgid "Parameters missing " +msgstr "Nicht genug Parameter" -msgid "\\Green flags" -msgstr "\\Grüne Fahne" +msgid "No function with this name accepts this kind of parameter" +msgstr "Keine Funktion mit diesem Namen verträgt Parameter diesen Typs" -msgid "\\New player name" -msgstr "\\Name des Spielers" +msgid "No function with this name accepts this number of parameters" +msgstr "Keine Funktion mit diesem Namen verträgt diese Anzahl Parameter" -msgid "\\No eyeglasses" -msgstr "\\Keine Brille" +msgid "This is not a member of this class" +msgstr "Dieses Element gibt es nicht in dieser Klasse" -msgid "\\Raise the pencil" -msgstr "\\Bleistift abheben" +msgid "This object is not a member of a class" +msgstr "Das Objekt ist nicht eine Instanz einer Klasse" -msgid "\\Red flags" -msgstr "\\Rote Fahne" +msgid "Appropriate constructor missing" +msgstr "Es gibt keinen geeigneten Konstruktor" -msgid "\\Return to COLOBOT" -msgstr "\\Zurück zu COLOBOT" +msgid "This class already exists" +msgstr "Diese Klasse gibt es schon" -msgid "\\SatCom on standby" -msgstr "\\SatCom in Standby" +msgid "\" ] \" missing" +msgstr "Es fehlt eine geschlossene eckige Klammer \" ] \"" -msgid "\\Start recording" -msgstr "\\Aufnahme starten" +msgid "Reserved keyword of CBOT language" +msgstr "Dieses Wort ist reserviert" -msgid "\\Stop recording" -msgstr "\\Aufnahme stoppen" +msgid "Bad argument for \"new\"" +msgstr "Falsche Argumente für \"new\"" -msgid "\\Turn left" -msgstr "\\Drehung links" +msgid "\" [ \" expected" +msgstr "Es fehlt eine offene eckige Klammer \" [ \"" -msgid "\\Turn right" -msgstr "\\Drehung rechts" +msgid "String missing" +msgstr "Hier wird eine Zeichenkette erwartet" -msgid "\\Use the black pencil" -msgstr "\\Schwarzen Bleistift hinunterlassen" +msgid "Incorrect index type" +msgstr "Falscher Typ für einen Index" -msgid "\\Use the blue pencil" -msgstr "\\Blauen Bleistift hinunterlassen" +msgid "Private element" +msgstr "Geschütztes Element (private)" -msgid "\\Use the brown pencil" -msgstr "\\Braunen Bleistift hinunterlassen" +msgid "Public required" +msgstr "Hier muss das Wort \"public\" stehen" -msgid "\\Use the green pencil" -msgstr "\\Grünen Bleistift hinunterlassen" +msgid "Dividing by zero" +msgstr "Teilung durch Null" -msgid "\\Use the orange pencil" -msgstr "\\Orangefarbenen Bleistift hinunterlassen" +msgid "Variable not initialized" +msgstr "Der Wert dieser Variable wurde nicht definiert" -msgid "\\Use the purple pencil" -msgstr "\\Violetten Bleistift hinunterlassen" +msgid "Negative value rejected by \"throw\"" +msgstr "Negativer Wert ungeeignet für Anweisung \"throw\"" -msgid "\\Use the red pencil" -msgstr "\\Roten Bleistift hinunterlassen" +msgid "The function returned no value " +msgstr "Die Funktion hat kein Ergebnis zurückgegeben" -msgid "\\Use the yellow pencil" -msgstr "\\Gelben Bleistift hinunterlassen" +msgid "No function running" +msgstr "Keine Funktion wird ausgeführt" -msgid "\\Violet flags" -msgstr "\\Violette Fahne" +msgid "Calling an unknown function" +msgstr "Die aufgerufene Funktion existiert nicht" -msgid "\\Yellow flags" -msgstr "\\Gelbe Fahne" +msgid "This class does not exist" +msgstr "Diese Klasse existiert nicht" -msgid "\\b;Aliens\n" -msgstr "\\b;Listes der Feinde\n" +msgid "Unknown Object" +msgstr "Das Objekt existiert nicht" -msgid "\\b;Buildings\n" -msgstr "\\b;Listes der Gebäude\n" +msgid "Operation impossible with value \"nan\"" +msgstr "Operation mit dem Wert \"nan\"" -msgid "\\b;Error\n" -msgstr "\\b;Fehler\n" +msgid "Access beyond array limit" +msgstr "Zugriff im Array außerhalb der Grenzen" -msgid "\\b;List of objects\n" -msgstr "\\b;Liste der Objekte\n" +msgid "Stack overflow" +msgstr "Stack overflow" -msgid "\\b;Moveable objects\n" -msgstr "\\b;Listes der tragbaren Gegenstände\n" +msgid "Illegal object" +msgstr "Objekt nicht verfügbar" -msgid "\\b;Robots\n" -msgstr "\\b;Liste der Roboter\n" +msgid "Can't open file" +msgstr "Die Datei kann nicht geöffnet werden" -msgid "\\c; (none)\\n;\n" -msgstr "\\c; (keine)\\n;\n" +msgid "File not open" +msgstr "Die Datei wurde nicht geöffnet" -msgid "action;" -msgstr "" +msgid "Read error" +msgstr "Fehler beim Lesezugriff" -msgid "away;" -msgstr "" +msgid "Write error" +msgstr "Fehler beim Schreibzugriff" -msgid "camera;" +msgid "left;" msgstr "" -msgid "cbot;" +msgid "right;" msgstr "" -msgid "desel;" +msgid "up;" msgstr "" msgid "down;" msgstr "" -msgid "gdown;" +msgid "gup;" msgstr "" -msgid "gup;" +msgid "gdown;" msgstr "" -msgid "help;" +msgid "camera;" msgstr "" -msgid "human;" +msgid "desel;" msgstr "" -msgid "left;" +msgid "action;" msgstr "" msgid "near;" msgstr "" +msgid "away;" +msgstr "" + msgid "next;" msgstr "" -msgid "prog;" +msgid "human;" msgstr "" msgid "quit;" msgstr "" -msgid "right;" +msgid "help;" +msgstr "" + +msgid "prog;" +msgstr "" + +msgid "cbot;" +msgstr "" + +msgid "visit;" msgstr "" msgid "speed10;" @@ -1827,14 +1820,26 @@ msgstr "" msgid "speed20;" msgstr "" -msgid "up;" +msgid "Ctrl" +msgstr "Ctrl" + +msgid "Shift" +msgstr "Shift" + +msgid "Alt" +msgstr "Alt" + +msgid "Win" msgstr "" -msgid "visit;" +msgid "Button %1" +msgstr "Knopf %1" + +msgid "%1" msgstr "" -msgid "www.epsitec.com" -msgstr "www.epsitec.com" +#~ msgid "Menu (\\key quit;)" +#~ msgstr "Menü (\\key quit;)" #~ msgid "< none >" #~ msgstr "< keine >" @@ -1974,9 +1979,6 @@ msgstr "www.epsitec.com" #~ msgid "Left Windows" #~ msgstr "Left Windows" -#~ msgid "Menu (\\key quit;)" -#~ msgstr "Menü (\\key quit;)" - #~ msgid "Mini-map" #~ msgstr "Minikarte" diff --git a/po/fr.po b/po/fr.po index d71e748..edf5466 100644 --- a/po/fr.po +++ b/po/fr.po @@ -16,1805 +16,1798 @@ msgstr "" "X-Language: fr_FR\n" "X-Source-Language: en_US\n" -msgid " " -msgstr " " - -msgid " Challenges in the chapter:" -msgstr " Liste des défis du chapitre :" - -msgid " Chapters:" -msgstr " Liste des chapitres :" - -msgid " Drivers:" -msgstr " Pilotes :" +msgid "Colobot rules!" +msgstr "Colobot est super!" -msgid " Exercises in the chapter:" -msgstr " Liste des exercices du chapitre :" +msgid "SatCom" +msgstr "SatCom" -msgid " Free game on this chapter:" -msgstr " Liste des jeux libres du chapitre :" +msgid "Maximize" +msgstr "Taille maximale" -msgid " Free game on this planet:" -msgstr " Liste des jeux libres du chapitre :" +msgid "Minimize" +msgstr "Taille réduite" -msgid " Missions on this level:" -msgstr " Missions du niveau :" +msgid "Normal size" +msgstr "Taille normale" -msgid " Missions on this planet:" -msgstr " Liste des missions du chapitre :" +msgid "Close" +msgstr "Fermer" -msgid " Planets:" -msgstr " Liste des planètes :" +msgid "Program editor" +msgstr "Edition du programme" -msgid " Resolution:" -msgstr " Résolutions :" +msgid "New" +msgstr "Nouveau" -msgid " Summary:" -msgstr " Résumé :" +msgid "Player" +msgstr "Joueur" -msgid " User levels:" -msgstr " Niveaux supplémentaires :" +msgid "New ..." +msgstr "Nouveau ..." msgid " or " msgstr " ou " -msgid "\" [ \" expected" -msgstr "\" [ \" attendu" +msgid "COLOBOT" +msgstr "COLOBOT" -msgid "\" ] \" missing" -msgstr "\" ] \" attendu" +msgid "COLOBOT: Gold Edition" +msgstr "COLOBOT: Gold Edition" -#, c-format -msgid "\"%s\" missing in this exercise" -msgstr "Il manque \"%s\" dans le programme" +msgid "Programming exercises" +msgstr "Programmation" -msgid "%1" -msgstr "%1" +msgid "Challenges" +msgstr "Défis" -msgid "..behind" -msgstr "..derrière" +msgid "Missions" +msgstr "Missions" -msgid "..in front" -msgstr "..devant" +msgid "Free game" +msgstr "Jeu libre" -msgid "..power cell" -msgstr "..pile" +msgid "User levels" +msgstr "Niveaux supplémentaires" -msgid "1) First click on the key you want to redefine." -msgstr "1) Cliquez d'abord sur la touche à redéfinir." +msgid "Options" +msgstr "Options" -msgid "2) Then press the key you want to use instead." -msgstr "2) Appuyez ensuite sur la nouvelle touche souhaitée." +msgid "Player's name" +msgstr "Nom du joueur" -msgid "3D sound\\3D positioning of the sound" -msgstr "Bruitages 3D\\Positionnement sonore dans l'espace" +msgid "Customize your appearance" +msgstr "Personnalisation de votre apparence" -msgid "<< Back \\Back to the previous screen" -msgstr "<< Retour \\Retour au niveau précédent" +msgid "Save the current mission" +msgstr "Enregistrement de la mission en cours" -msgid "<<< Sorry; mission failed >>>" -msgstr "<<< Désolé; mission échouée >>>" +msgid "Load a saved mission" +msgstr "Chargement d'une mission enregistrée" -msgid "<<< Well done; mission accomplished >>>" -msgstr "<<< Bravo; mission terminée >>>" +msgid " Chapters:" +msgstr " Liste des chapitres :" -msgid "A label must be followed by \"for\"; \"while\"; \"do\" or \"switch\"" -msgstr "" -"Un label ne peut se placer que devant un \"for\"; un \"while\"; un \"do\" ou " -"un \"switch\"" +msgid " Planets:" +msgstr " Liste des planètes :" -msgid "A variable can not be declared twice" -msgstr "Redéfinition d'une variable" +msgid " User levels:" +msgstr " Niveaux supplémentaires :" -msgid "Abort\\Abort the current mission" -msgstr "Abandonner\\Abandonner la mission en cours" +msgid " Exercises in the chapter:" +msgstr " Liste des exercices du chapitre :" -msgid "Access beyond array limit" -msgstr "Accès hors du tableau" +msgid " Challenges in the chapter:" +msgstr " Liste des défis du chapitre :" -msgid "" -"Access to solution\\Shows the solution (detailed instructions for missions)" -msgstr "Accès à la solution\\Donne la solution" +msgid " Missions on this planet:" +msgstr " Liste des missions du chapitre :" -msgid "Access to solutions\\Show program \"4: Solution\" in the exercises" -msgstr "Accès aux solutions\\Programme \"4: Solution\" dans les exercices" +msgid " Free game on this planet:" +msgstr " Liste des jeux libres du chapitre :" -msgid "Alien Queen" -msgstr "Pondeuse" +msgid " Missions on this level:" +msgstr " Missions du niveau :" -msgid "Alien Queen killed" -msgstr "Pondeuse mortellement touchée" +msgid " Free game on this chapter:" +msgstr " Liste des jeux libres du chapitre :" -msgid "Already carrying something" -msgstr "Porte déjà quelque chose" +msgid " Summary:" +msgstr " Résumé :" -msgid "Alt" -msgstr "Alt" +msgid " Drivers:" +msgstr " Pilotes :" -msgid "Analysis already performed" -msgstr "Analyse déjà effectuée" +msgid " Resolution:" +msgstr " Résolutions :" -msgid "Analysis performed" -msgstr "Analyse terminée" +msgid "1) First click on the key you want to redefine." +msgstr "1) Cliquez d'abord sur la touche à redéfinir." -msgid "Analyzes only organic matter" -msgstr "N'analyse que la matière organique" +msgid "2) Then press the key you want to use instead." +msgstr "2) Appuyez ensuite sur la nouvelle touche souhaitée." -msgid "Ant" -msgstr "Fourmi" +msgid "Face type:" +msgstr "Type de visage :" -msgid "Ant fatally wounded" -msgstr "Fourmi mortellement touchée" +msgid "Eyeglasses:" +msgstr "Lunettes :" -msgid "Appearance\\Choose your appearance" -msgstr "Aspect\\Choisir votre aspect" +msgid "Hair color:" +msgstr "Couleur des cheveux :" -msgid "Apply changes\\Activates the changed settings" -msgstr "Appliquer les changements\\Active les changements effectués" +msgid "Suit color:" +msgstr "Couleur de la combinaison :" -msgid "Appropriate constructor missing" -msgstr "Il n'y a pas de constructeur approprié" +msgid "Strip color:" +msgstr "Couleur des bandes :" -msgid "Assignment impossible" -msgstr "Assignation impossible" +msgid "Do you want to quit COLOBOT ?" +msgstr "Voulez-vous quitter COLOBOT ?" -msgid "Autolab" -msgstr "Laboratoire de matières organiques" +msgid "Quit\\Quit COLOBOT" +msgstr "Quitter\\Quitter COLOBOT" -msgid "Automatic indent\\When program editing" -msgstr "Indentation automatique\\Pendant l'édition d'un programme" +msgid "Quit the mission?" +msgstr "Quitter la mission ?" -msgid "Back" -msgstr "Page précédente" +msgid "Abort\\Abort the current mission" +msgstr "Abandonner\\Abandonner la mission en cours" -msgid "Background sound :\\Volume of audio tracks on the CD" -msgstr "Fond sonore :\\Volume des pistes audio du CD" +msgid "Continue\\Continue the current mission" +msgstr "Continuer\\Continuer la mission en cours" -msgid "Backward (\\key down;)" -msgstr "Recule (\\key down;)" +msgid "Continue\\Continue the game" +msgstr "Continuer\\Continuer de jouer" -msgid "Backward\\Moves backward" -msgstr "Reculer\\Moteur en arrière" +msgid "Do you really want to destroy the selected building?" +msgstr "Voulez-vous vraiment détruire le bâtiment sélectionné ?" -msgid "Bad argument for \"new\"" -msgstr "Mauvais argument pour \"new\"" +#, c-format +msgid "Do you want to delete %s's saved games? " +msgstr "Voulez-vous détruire les sauvegardes de %s ?" -msgid "Big indent\\Indent 2 or 4 spaces per level defined by braces" -msgstr "Grande indentation\\Indente avec 2 ou 4 espaces" +msgid "Delete" +msgstr "Détruire" -msgid "Black box" -msgstr "Boîte noire" +msgid "Cancel" +msgstr "Annuler" -msgid "Blue" -msgstr "Bleu" +msgid "LOADING" +msgstr "CHARGEMENT" -msgid "Blue flag" -msgstr "Drapeau bleu" +msgid "Keyword help(\\key cbot;)" +msgstr "Aide sur le mot-clé (\\key cbot;)" -msgid "Bot destroyed" -msgstr "Robot détruit" +msgid "Compilation ok (0 errors)" +msgstr "Compilation ok (0 erreur)" -msgid "Bot factory" -msgstr "Fabrique de robots" +msgid "Program finished" +msgstr "Programme terminé" -msgid "Build a bot factory" -msgstr "Construit une fabrique de robots" +msgid "\\b;List of objects\n" +msgstr "\\b;Listes des objets\n" -msgid "Build a converter" -msgstr "Construit un convertisseur" +msgid "\\b;Robots\n" +msgstr "\\b;Listes des robots\n" -msgid "Build a defense tower" -msgstr "Construit une tour" +msgid "\\b;Buildings\n" +msgstr "\\b;Listes des bâtiments\n" -msgid "Build a derrick" -msgstr "Construit un derrick" +msgid "\\b;Moveable objects\n" +msgstr "\\b;Listes des objets transportables\n" -msgid "Build a destroyer" +msgid "\\b;Aliens\n" +msgstr "\\b;Listes des ennemis\n" + +msgid "\\c; (none)\\n;\n" msgstr "" +"\\c; (aucun)\\n" +";\n" -msgid "Build a exchange post" -msgstr "Construit une borne d'information" - -msgid "Build a legged grabber" -msgstr "Fabrique un déménageur à pattes" - -msgid "Build a legged orga shooter" -msgstr "Fabrique un orgaShooter à pattes" - -msgid "Build a legged shooter" -msgstr "Fabrique un shooter à pattes" - -msgid "Build a legged sniffer" -msgstr "Fabrique un renifleur à pattes" - -msgid "Build a lightning conductor" -msgstr "Construit un paratonnerre" - -msgid "Build a nuclear power plant" -msgstr "Construit une centrale nucléaire" - -msgid "Build a phazer shooter" -msgstr "Fabrique un robot phazer" - -msgid "Build a power cell factory" -msgstr "Construit une fabrique de piles" - -msgid "Build a power station" -msgstr "Construit une station" - -msgid "Build a radar station" -msgstr "Construit un radar" +msgid "\\b;Error\n" +msgstr "\\b;Erreur\n" -msgid "Build a recycler" -msgstr "Fabrique un robot recycleur" +msgid "" +"The list is only available if a \\l;radar station\\u object\\radar; is " +"working.\n" +msgstr "Liste non disponible sans \\l;radar\\u object\\radar;.\n" -msgid "Build a repair center" -msgstr "Construit un centre de réparation" +msgid "Open" +msgstr "Ouvrir" -msgid "Build a research center" -msgstr "Construit un centre de recherches" +msgid "Save" +msgstr "Enregistrer" -msgid "Build a shielder" -msgstr "Fabrique un robot bouclier" +#, c-format +msgid "Folder: %s" +msgstr "Dossier: %s" -msgid "Build a subber" -msgstr "Fabrique un robot sous-marin" +msgid "Name:" +msgstr "Nom:" -msgid "Build a thumper" -msgstr "Fabrique un robot secoueur" +msgid "Folder:" +msgstr "Dans:" -msgid "Build a tracked grabber" -msgstr "Fabrique un déménageur à chenilles" +msgid "Private\\Private folder" +msgstr "Privé\\Dossier privé" -msgid "Build a tracked orga shooter" -msgstr "Fabrique un orgaShooter à chenilles" +msgid "Public\\Common folder" +msgstr "Public\\Dossier commun à tous les joueurs" -msgid "Build a tracked shooter" -msgstr "Fabrique un shooter à chenilles" +msgid "Developed by :" +msgstr "Développé par :" -msgid "Build a tracked sniffer" -msgstr "Fabrique un renifleur à chenilles" +msgid "www.epsitec.com" +msgstr "www.epsitec.com" -msgid "Build a wheeled grabber" -msgstr "Fabrique un déménageur à roues" +msgid " " +msgstr " " -msgid "Build a wheeled orga shooter" -msgstr "Fabrique un orgaShooter à roues" +msgid "Recorder" +msgstr "Enregistreur" -msgid "Build a wheeled shooter" -msgstr "Fabrique un shooter à roues" +msgid "OK" +msgstr "D'accord" -msgid "Build a wheeled sniffer" -msgstr "Fabrique un renifleur à roues" +msgid "Next" +msgstr "Suivant" -msgid "Build a winged grabber" -msgstr "Fabrique un déménageur volant" +msgid "Previous" +msgstr "Précédent" -msgid "Build a winged orga shooter" -msgstr "Fabrique un orgaShooter volant" +msgid "Exercises\\Programming exercises" +msgstr "Programmation\\Exercices de programmation" -msgid "Build a winged shooter" -msgstr "Fabrique un shooter volant" +msgid "Challenges\\Programming challenges" +msgstr "Défis\\Défis de programmation" -msgid "Build a winged sniffer" -msgstr "Fabrique un renifleur volant" +msgid "Missions\\Select mission" +msgstr "Missions\\La grande aventure" -msgid "Build an autolab" -msgstr "Construit un laboratoire" +msgid "Free game\\Free game without a specific goal" +msgstr "Jeu libre\\Jeu libre sans but précis" -msgid "Building completed" -msgstr "Bâtiment terminé" +msgid "User\\User levels" +msgstr "Suppl.\\Niveaux supplémentaires" -msgid "Building destroyed" -msgstr "Bâtiment détruit" +msgid "Change player\\Change player" +msgstr "Autre joueur\\Choix du nom du joueur" -msgid "Building too close" -msgstr "Bâtiment trop proche" +msgid "Options\\Preferences" +msgstr "Options\\Réglages" -msgid "Button %1" -msgstr "Bouton %1" +msgid "Restart\\Restart the mission from the beginning" +msgstr "Recommencer\\Recommencer la mission au début" -msgid "COLOBOT" -msgstr "COLOBOT" +msgid "Save\\Save the current mission " +msgstr "Enregistrer\\Enregistrer la mission en cours" -msgid "COLOBOT: Gold Edition" -msgstr "COLOBOT: Gold Edition" +msgid "Load\\Load a saved mission" +msgstr "Charger\\Charger une mission enregistrée" -msgid "Calling an unknown function" -msgstr "Appel d'une fonction inexistante" +msgid "\\Return to COLOBOT" +msgstr "\\Retourner dans COLOBOT" -msgid "Camera (\\key camera;)" -msgstr "Caméra (\\key camera;)" +msgid "<< Back \\Back to the previous screen" +msgstr "<< Retour \\Retour au niveau précédent" -msgid "Camera awayest" -msgstr "Caméra plus loin" +msgid "Play\\Start mission!" +msgstr "Jouer ...\\Démarrer l'action!" -msgid "Camera back\\Moves the camera backward" -msgstr "Caméra plus loin\\Recule la caméra" +msgid "Device\\Driver and resolution settings" +msgstr "Affichage\\Pilote et résolution d'affichage" -msgid "Camera closer\\Moves the camera forward" -msgstr "Caméra plus proche\\Avance la caméra" +msgid "Graphics\\Graphics settings" +msgstr "Graphique\\Options graphiques" -msgid "Camera nearest" -msgstr "Caméra plus proche" +msgid "Game\\Game settings" +msgstr "Jeu\\Options de jouabilité" -msgid "Camera to left" -msgstr "Caméra à gauche" +msgid "Controls\\Keyboard, joystick and mouse settings" +msgstr "Commandes\\Touches du clavier" -msgid "Camera to right" -msgstr "Caméra à droite" +msgid "Sound\\Music and game sound volume" +msgstr "Son\\Volumes bruitages & musiques" -msgid "Can not create this; there are too many objects" -msgstr "Création impossible; il y a trop d'objets" +msgid "Unit" +msgstr "Unité" -msgid "Can not produce not researched object" -msgstr "" +msgid "Resolution" +msgstr "Résolution" -msgid "Can not produce this object in this mission" -msgstr "" +msgid "Full screen\\Full screen or window mode" +msgstr "Plein écran\\Plein écran ou fenêtré" -msgid "Can't open file" -msgstr "Ouverture du fichier impossible" +msgid "Apply changes\\Activates the changed settings" +msgstr "Appliquer les changements\\Active les changements effectués" -msgid "Cancel" -msgstr "Annuler" +msgid "Robbie\\Your assistant" +msgstr "Robbie\\Votre assistant" -msgid "Cancel\\Cancel all changes" -msgstr "Annuler\\Annuler toutes les modifications" +msgid "Shadows\\Shadows on the ground" +msgstr "Ombres\\Ombres projetées au sol" -msgid "Cancel\\Keep current player name" -msgstr "Annuler\\Conserver le joueur actuel" +msgid "Marks on the ground\\Marks on the ground" +msgstr "Marques sur le sol\\Marques dessinées sur le sol" -msgid "Challenges" -msgstr "Défis" +msgid "Dust\\Dust and dirt on bots and buildings" +msgstr "Salissures\\Salissures des robots et bâtiments" -msgid "Challenges\\Programming challenges" -msgstr "Défis\\Défis de programmation" +msgid "Fog\\Fog" +msgstr "Brouillard\\Nappes de brouillard" -msgid "Change camera\\Switches between onboard camera and following camera" -msgstr "Changement de caméra\\Autre de point de vue" +msgid "Sunbeams\\Sunbeams in the sky" +msgstr "Rayons du soleil\\Rayons selon l'orientation" -msgid "Change player\\Change player" -msgstr "Autre joueur\\Choix du nom du joueur" +msgid "Sky\\Clouds and nebulae" +msgstr "Ciel\\Ciel et nuages" -msgid "Checkpoint" -msgstr "Indicateur" +msgid "Planets and stars\\Astronomical objects in the sky" +msgstr "Planètes et étoiles\\Motifs mobiles dans le ciel" -msgid "Checkpoint crossed" -msgstr "Indicateur atteint" +msgid "Dynamic lighting\\Mobile light sources" +msgstr "Lumières dynamiques\\Éclairages mobiles" -msgid "Climb\\Increases the power of the jet" -msgstr "Monter\\Augmenter la puissance du réacteur" +msgid "Number of particles\\Explosions, dust, reflections, etc." +msgstr "Quantité de particules\\Explosions, poussières, reflets, etc." -msgid "Close" -msgstr "Fermer" +msgid "Depth of field\\Maximum visibility" +msgstr "Profondeur de champ\\Distance de vue maximale" -msgid "Closing bracket missing " -msgstr "Il manque une parenthèse fermante" +msgid "Details\\Visual quality of 3D objects" +msgstr "Détails des objets\\Qualité des objets en 3D" -msgid "Colobot rules!" -msgstr "Colobot est super!" +msgid "Textures\\Quality of textures " +msgstr "Qualité des textures\\Qualité des images" -msgid "Command line" -msgstr "Console de commande" +msgid "Num of decorative objects\\Number of purely ornamental objects" +msgstr "Nb d'objets décoratifs\\Qualité d'objets non indispensables" -msgid "Compass" -msgstr "Boussole" +msgid "Particles in the interface\\Steam clouds and sparks in the interface" +msgstr "Particules dans l'interface\\Pluie de particules" -msgid "Compilation ok (0 errors)" -msgstr "Compilation ok (0 erreur)" +msgid "Reflections on the buttons \\Shiny buttons" +msgstr "Reflets sur les boutons\\Boutons brillants" -msgid "Compile" -msgstr "Compiler" +msgid "Help balloons\\Explain the function of the buttons" +msgstr "Bulles d'aide\\Bulles explicatives" -msgid "Continue" -msgstr "Continuer" +msgid "Film sequences\\Films before and after the missions" +msgstr "Séquences cinématiques\\Films avant ou après une mission" -msgid "Continue\\Continue the current mission" -msgstr "Continuer\\Continuer la mission en cours" +msgid "Exit film\\Film at the exit of exercises" +msgstr "Retour animé\\Retour animé dans les exercices" -msgid "Continue\\Continue the game" -msgstr "Continuer\\Continuer de jouer" +msgid "Friendly fire\\Your shooting can damage your own objects " +msgstr "Dégâts à soi-même\\Vos tirs infligent des dommages à vos unités" -msgid "Controls\\Keyboard, joystick and mouse settings" -msgstr "Commandes\\Touches du clavier" +msgid "Scrolling\\Scrolling when the mouse touches right or left border" +msgstr "" +"Défilement dans les bords\\Défilement lorsque la souris touches les bords " +"gauche ou droite" -msgid "Converts ore to titanium" -msgstr "Conversion minerai en titanium" +msgid "Mouse inversion X\\Inversion of the scrolling direction on the X axis" +msgstr "" +"Inversion souris X\\Inversion de la rotation lorsque la souris touche un bord" -msgid "Copy" -msgstr "Copier" +msgid "Mouse inversion Y\\Inversion of the scrolling direction on the Y axis" +msgstr "" +"Inversion souris Y\\Inversion de la rotation lorsque la souris touche un bord" -msgid "Copy (Ctrl+c)" -msgstr "Copier (Ctrl+c)" +msgid "Quake at explosions\\The screen shakes at explosions" +msgstr "Secousses lors d'explosions\\L'écran vibre lors d'une explosion" -msgid "Ctrl" -msgstr "Ctrl" +msgid "Mouse shadow\\Gives the mouse a shadow" +msgstr "Souris ombrée\\Jolie souris avec une ombre" -msgid "Current mission saved" -msgstr "Enregistrement effectué" +msgid "Automatic indent\\When program editing" +msgstr "Indentation automatique\\Pendant l'édition d'un programme" -msgid "Customize your appearance" -msgstr "Personnalisation de votre apparence" +msgid "Big indent\\Indent 2 or 4 spaces per level defined by braces" +msgstr "Grande indentation\\Indente avec 2 ou 4 espaces" -msgid "Cut (Ctrl+x)" -msgstr "Couper (Ctrl+x)" +msgid "Access to solutions\\Show program \"4: Solution\" in the exercises" +msgstr "Accès aux solutions\\Programme \"4: Solution\" dans les exercices" -msgid "Defense tower" -msgstr "Tour de défense" +msgid "Standard controls\\Standard key functions" +msgstr "Tout réinitialiser\\Remet toutes les touches standards" -msgid "Delete" -msgstr "Détruire" +msgid "Turn left\\turns the bot to the left" +msgstr "Tourner à gauche\\Moteur à gauche" -msgid "Delete player\\Deletes the player from the list" -msgstr "Supprimer le joueur\\Supprimer le joueur de la liste" +msgid "Turn right\\turns the bot to the right" +msgstr "Tourner à droite\\Moteur à droite" -msgid "Delete\\Deletes the selected file" -msgstr "Supprimer\\Supprime l'enregistrement sélectionné" +msgid "Forward\\Moves forward" +msgstr "Avancer\\Moteur en avant" -msgid "Depth of field\\Maximum visibility" -msgstr "Profondeur de champ\\Distance de vue maximale" +msgid "Backward\\Moves backward" +msgstr "Reculer\\Moteur en arrière" -msgid "Derrick" -msgstr "Derrick" +msgid "Climb\\Increases the power of the jet" +msgstr "Monter\\Augmenter la puissance du réacteur" msgid "Descend\\Reduces the power of the jet" msgstr "Descendre\\Diminuer la puissance du réacteur" -msgid "Destroy" -msgstr "" +msgid "Change camera\\Switches between onboard camera and following camera" +msgstr "Changement de caméra\\Autre de point de vue" -msgid "Destroy the building" -msgstr "Démolit le bâtiment" +msgid "Previous object\\Selects the previous object" +msgstr "Sélection précédente\\Sélectionne l'objet précédent" -msgid "Destroyer" -msgstr "Destructeur" +msgid "" +"Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)" +msgstr "Action standard\\Action du bouton avec le cadre rouge" -msgid "Details\\Visual quality of 3D objects" -msgstr "Détails des objets\\Qualité des objets en 3D" +msgid "Camera closer\\Moves the camera forward" +msgstr "Caméra plus proche\\Avance la caméra" + +msgid "Camera back\\Moves the camera backward" +msgstr "Caméra plus loin\\Recule la caméra" -msgid "Developed by :" -msgstr "Développé par :" +msgid "Next object\\Selects the next object" +msgstr "Sélectionner l'objet suivant\\Sélectionner l'objet suivant" -msgid "Device\\Driver and resolution settings" -msgstr "Affichage\\Pilote et résolution d'affichage" +msgid "Select the astronaut\\Selects the astronaut" +msgstr "Sélectionner le cosmonaute\\Sélectionner le cosmonaute" -msgid "Dividing by zero" -msgstr "Division par zéro" +msgid "Quit\\Quit the current mission or exercise" +msgstr "Quitter la mission en cours\\Terminer un exercice ou une mssion" -msgid "Do not use in this exercise" -msgstr "Interdit dans cet exercice" +msgid "Instructions\\Shows the instructions for the current mission" +msgstr "Instructions mission\\Marche à suivre" -msgid "Do you really want to destroy the selected building?" -msgstr "Voulez-vous vraiment détruire le bâtiment sélectionné ?" +msgid "Programming help\\Gives more detailed help with programming" +msgstr "Instructions programmation\\Explication sur la programmation" -#, c-format -msgid "Do you want to delete %s's saved games? " -msgstr "Voulez-vous détruire les sauvegardes de %s ?" +msgid "Key word help\\More detailed help about key words" +msgstr "Instructions mot-clé\\Explication sur le mot-clé" -msgid "Do you want to quit COLOBOT ?" -msgstr "Voulez-vous quitter COLOBOT ?" +msgid "Origin of last message\\Shows where the last message was sent from" +msgstr "Montrer le lieu d'un message\\Montrer le lieu du dernier message" -msgid "Doors blocked by a robot or another object " -msgstr "Portes bloquées par un robot ou un objet" +msgid "Speed 1.0x\\Normal speed" +msgstr "Vitesse 1.0x\\Vitesse normale" -msgid "Down (\\key gdown;)" -msgstr "Descend (\\key gdown;)" +msgid "Speed 1.5x\\1.5 times faster" +msgstr "Vitesse 1.5x\\Une fois et demi plus rapide" -msgid "Drawer bot" -msgstr "Robot dessinateur" +msgid "Speed 2.0x\\Double speed" +msgstr "Vitesse 2.0x\\Deux fois plus rapide" -msgid "Dust\\Dust and dirt on bots and buildings" -msgstr "Salissures\\Salissures des robots et bâtiments" +msgid "Speed 3.0x\\Three times faster" +msgstr "Vitesse 3.0x\\Trois fois plus rapide" -msgid "Dynamic lighting\\Mobile light sources" -msgstr "Lumières dynamiques\\Éclairages mobiles" +msgid "Sound effects:\\Volume of engines, voice, shooting, etc." +msgstr "Bruitages :\\Volume des moteurs, voix, etc." -msgid "Edit the selected program" -msgstr "Édite le programme sélectionné" +msgid "Background sound :\\Volume of audio tracks on the CD" +msgstr "Fond sonore :\\Volume des pistes audio du CD" -msgid "Egg" -msgstr "Oeuf" +msgid "3D sound\\3D positioning of the sound" +msgstr "Bruitages 3D\\Positionnement sonore dans l'espace" -msgid "End of block missing" -msgstr "Il manque la fin du bloc" +msgid "Lowest\\Minimum graphic quality (highest frame rate)" +msgstr "Mini\\Qualité minimale (+ rapide)" -msgid "Energy deposit (site for power station)" -msgstr "Emplacement pour station" +msgid "Normal\\Normal graphic quality" +msgstr "Normal\\Qualité standard" -msgid "Energy level" -msgstr "Niveau d'énergie" +msgid "Highest\\Highest graphic quality (lowest frame rate)" +msgstr "Maxi\\Haute qualité (+ lent)" -msgid "Engineer" -msgstr "Technicien" +msgid "Mute\\No sound" +msgstr "Silencieux\\Totalement silencieux" -msgid "Error in instruction move" -msgstr "Déplacement impossible" +msgid "Normal\\Normal sound volume" +msgstr "Normal\\Niveaux normaux" -msgid "Execute the selected program" -msgstr "Exécute le programme sélectionné" +msgid "Use a joystick\\Joystick or keyboard" +msgstr "Utilise un joystick\\Joystick ou clavier" -msgid "Execute/stop" -msgstr "Démarrer/stopper" +msgid "" +"Access to solution\\Shows the solution (detailed instructions for missions)" +msgstr "Accès à la solution\\Donne la solution" -msgid "Exercises\\Programming exercises" -msgstr "Programmation\\Exercices de programmation" +msgid "\\New player name" +msgstr "\\Nom du joueur à créer" -msgid "Exit film\\Film at the exit of exercises" -msgstr "Retour animé\\Retour animé dans les exercices" +msgid "OK\\Choose the selected player" +msgstr "D'accord\\Choisir le joueur" -msgid "Explode (\\key action;)" -msgstr "" +msgid "Cancel\\Keep current player name" +msgstr "Annuler\\Conserver le joueur actuel" -msgid "Explosive" -msgstr "Explosif" +msgid "Delete player\\Deletes the player from the list" +msgstr "Supprimer le joueur\\Supprimer le joueur de la liste" -msgid "Extend shield (\\key action;)" -msgstr "Déploie le bouclier (\\key action;)" +msgid "Player name" +msgstr "Nom du joueur" -msgid "Eyeglasses:" -msgstr "Lunettes :" +msgid "Save\\Saves the current mission" +msgstr "Enregistrer\\Enregistrer la mission en cours" -msgid "Face type:" -msgstr "Type de visage :" +msgid "Load\\Loads the selected mission" +msgstr "Charger\\Charger la mission sélectionnée" -msgid "File not open" -msgstr "Le fichier n'est pas ouvert" +msgid "List of saved missions" +msgstr "Liste des missions enregistrées" msgid "Filename:" msgstr "Nom du fichier :" -msgid "Film sequences\\Films before and after the missions" -msgstr "Séquences cinématiques\\Films avant ou après une mission" +msgid "Mission name" +msgstr "Nom de la mission" -msgid "Finish" -msgstr "But" +msgid "Photography" +msgstr "Vue de la mission" -msgid "Fixed mine" -msgstr "Mine fixe" +msgid "Delete\\Deletes the selected file" +msgstr "Supprimer\\Supprime l'enregistrement sélectionné" -msgid "Flat ground not large enough" -msgstr "Sol plat pas assez grand" +msgid "Appearance\\Choose your appearance" +msgstr "Aspect\\Choisir votre aspect" -msgid "Fog\\Fog" -msgstr "Brouillard\\Nappes de brouillard" +msgid "Standard\\Standard appearance settings" +msgstr "Standard\\Remet les couleurs standards" -msgid "Folder:" -msgstr "Dans:" +msgid "Head\\Face and hair" +msgstr "Tête\\Visage et cheveux" -#, c-format -msgid "Folder: %s" -msgstr "Dossier: %s" +msgid "Suit\\Astronaut suit" +msgstr "Corps\\Combinaison" -msgid "Font size" -msgstr "Taille des caractères" +msgid "\\Turn left" +msgstr "\\Rotation à gauche" -msgid "Forward" -msgstr "Page suivante" +msgid "\\Turn right" +msgstr "\\Rotation à droite" -msgid "Forward (\\key up;)" -msgstr "Avance (\\key up;)" +msgid "Red" +msgstr "Rouge" -msgid "Forward\\Moves forward" -msgstr "Avancer\\Moteur en avant" +msgid "Green" +msgstr "Vert" -msgid "Found a site for a derrick" -msgstr "Emplacement pour derrick trouvé" +msgid "Blue" +msgstr "Bleu" -msgid "Found a site for power station" -msgstr "Emplacement pour station trouvé" +msgid "\\Face 1" +msgstr "\\Visage 1" -msgid "Found key A (site for derrick)" -msgstr "Emplacement pour derrick (clé A)" +msgid "\\Face 4" +msgstr "\\Visage 4" -msgid "Found key B (site for derrick)" -msgstr "Emplacement pour derrick (clé B)" +msgid "\\Face 3" +msgstr "\\Visage 3" -msgid "Found key C (site for derrick)" -msgstr "Emplacement pour derrick (clé C)" +msgid "\\Face 2" +msgstr "\\Visage 2" -msgid "Found key D (site for derrick)" -msgstr "Emplacement pour derrick (clé D)" +msgid "\\No eyeglasses" +msgstr "\\Pas de lunettes" -msgid "Free game" -msgstr "Jeu libre" +msgid "\\Eyeglasses 1" +msgstr "\\Lunettes 1" -msgid "Free game\\Free game without a specific goal" -msgstr "Jeu libre\\Jeu libre sans but précis" +msgid "\\Eyeglasses 2" +msgstr "\\Lunettes 2" -msgid "Friendly fire\\Your shooting can damage your own objects " -msgstr "Dégâts à soi-même\\Vos tirs infligent des dommages à vos unités" +msgid "\\Eyeglasses 3" +msgstr "\\Lunettes 3" -msgid "Full screen\\Full screen or window mode" -msgstr "Plein écran\\Plein écran ou fenêtré" +msgid "\\Eyeglasses 4" +msgstr "\\Lunettes 4" -msgid "Function already exists" -msgstr "Cette fonction existe déjà" +msgid "\\Eyeglasses 5" +msgstr "\\Lunettes 5" -msgid "Function name missing" -msgstr "Nom de la fonction attendu" +msgid "Previous selection (\\key desel;)" +msgstr "Sélection précédente (\\key desel;)" -msgid "Game speed" -msgstr "Vitesse du jeu" +msgid "Turn left (\\key left;)" +msgstr "Tourne à gauche (\\key left;)" -msgid "Game\\Game settings" -msgstr "Jeu\\Options de jouabilité" +msgid "Turn right (\\key right;)" +msgstr "Tourne à droite (\\key right;)" -msgid "Gantry crane" -msgstr "Portique" +msgid "Forward (\\key up;)" +msgstr "Avance (\\key up;)" -msgid "Goto: destination occupied" -msgstr "Goto: Destination occupée" +msgid "Backward (\\key down;)" +msgstr "Recule (\\key down;)" -msgid "Goto: inaccessible destination" -msgstr "Chemin introuvable" +msgid "Up (\\key gup;)" +msgstr "Monte (\\key gup;)" + +msgid "Down (\\key gdown;)" +msgstr "Descend (\\key gdown;)" msgid "Grab or drop (\\key action;)" msgstr "Prend ou dépose (\\key action;)" -msgid "Graphics\\Graphics settings" -msgstr "Graphique\\Options graphiques" +msgid "..in front" +msgstr "..devant" + +msgid "..behind" +msgstr "..derrière" + +msgid "..power cell" +msgstr "..pile" + +msgid "Instructions for the mission (\\key help;)" +msgstr "Instructions sur la mission (\\key help;)" + +msgid "Take off to finish the mission" +msgstr "Décolle pour terminer la mission" + +msgid "Destroy" +msgstr "" + +msgid "Build a derrick" +msgstr "Construit un derrick" + +msgid "Build a power station" +msgstr "Construit une station" -msgid "Green" -msgstr "Vert" +msgid "Build a bot factory" +msgstr "Construit une fabrique de robots" -msgid "Green flag" -msgstr "Drapeau vert" +msgid "Build a repair center" +msgstr "Construit un centre de réparation" -msgid "Ground inappropriate" -msgstr "Terrain inadapté" +msgid "Build a converter" +msgstr "Construit un convertisseur" -msgid "Ground not flat enough" -msgstr "Sol pas assez plat" +msgid "Build a defense tower" +msgstr "Construit une tour" -msgid "Hair color:" -msgstr "Couleur des cheveux :" +msgid "Build a research center" +msgstr "Construit un centre de recherches" -msgid "Head\\Face and hair" -msgstr "Tête\\Visage et cheveux" +msgid "Build a radar station" +msgstr "Construit un radar" -msgid "Help about selected object" -msgstr "Instructions sur la sélection" +msgid "Build a power cell factory" +msgstr "Construit une fabrique de piles" -msgid "Help balloons\\Explain the function of the buttons" -msgstr "Bulles d'aide\\Bulles explicatives" +msgid "Build an autolab" +msgstr "Construit un laboratoire" -msgid "Highest\\Highest graphic quality (lowest frame rate)" -msgstr "Maxi\\Haute qualité (+ lent)" +msgid "Build a nuclear power plant" +msgstr "Construit une centrale nucléaire" -msgid "Home" -msgstr "Page initiale" +msgid "Build a lightning conductor" +msgstr "Construit un paratonnerre" -msgid "Houston Mission Control" -msgstr "Centre de contrôle" +msgid "Build a exchange post" +msgstr "Construit une borne d'information" -msgid "Illegal object" -msgstr "Objet inaccessible" +msgid "Build a destroyer" +msgstr "" -msgid "Impossible under water" -msgstr "Impossible sous l'eau" +msgid "Show if the ground is flat" +msgstr "Montre si le sol est plat" -msgid "Impossible when carrying an object" -msgstr "Impossible en portant un objet" +msgid "Plant a flag" +msgstr "Pose un drapeau de couleur" -msgid "Impossible when flying" -msgstr "Impossible en vol" +msgid "Remove a flag" +msgstr "Enlève un drapeau" -msgid "Impossible when moving" -msgstr "Impossible en mouvement" +msgid "\\Blue flags" +msgstr "\\Drapeaux bleus" -msgid "Impossible when swimming" -msgstr "Impossible en nageant" +msgid "\\Red flags" +msgstr "\\Drapeaux rouges" -msgid "Inappropriate bot" -msgstr "Robot inadapté" +msgid "\\Green flags" +msgstr "\\Drapeaux verts" -msgid "Inappropriate cell type" -msgstr "Pas le bon type de pile" +msgid "\\Yellow flags" +msgstr "\\Drapeaux jaunes" -msgid "Inappropriate object" -msgstr "" +msgid "\\Violet flags" +msgstr "\\Drapeaux violets" -msgid "Incorrect index type" -msgstr "Mauvais type d'index" +msgid "Build a winged grabber" +msgstr "Fabrique un déménageur volant" -msgid "Infected by a virus; temporarily out of order" -msgstr "Infecté par un virus; ne fonctionne plus temporairement" +msgid "Build a tracked grabber" +msgstr "Fabrique un déménageur à chenilles" -msgid "Information exchange post" -msgstr "Borne d'information" +msgid "Build a wheeled grabber" +msgstr "Fabrique un déménageur à roues" -msgid "Instruction \"break\" outside a loop" -msgstr "Instruction \"break\" en dehors d'une boucle" +msgid "Build a legged grabber" +msgstr "Fabrique un déménageur à pattes" -msgid "Instruction \"case\" missing" -msgstr "Manque une instruction \"case\"" +msgid "Build a winged shooter" +msgstr "Fabrique un shooter volant" -msgid "Instruction \"case\" outside a block \"switch\"" -msgstr "Instruction \"case\" hors d'un bloc \"switch\"" +msgid "Build a tracked shooter" +msgstr "Fabrique un shooter à chenilles" -msgid "Instruction \"else\" without corresponding \"if\" " -msgstr "Instruction \"else\" sans \"if\" correspondant" +msgid "Build a wheeled shooter" +msgstr "Fabrique un shooter à roues" -msgid "Instructions (\\key help;)" -msgstr "Instructions (\\key help;)" +msgid "Build a legged shooter" +msgstr "Fabrique un shooter à pattes" -msgid "Instructions after the final closing brace" -msgstr "Instructions après la fin" +msgid "Build a winged orga shooter" +msgstr "Fabrique un orgaShooter volant" -msgid "Instructions for the mission (\\key help;)" -msgstr "Instructions sur la mission (\\key help;)" +msgid "Build a tracked orga shooter" +msgstr "Fabrique un orgaShooter à chenilles" -msgid "Instructions from Houston" -msgstr "Instructions de Houston" +msgid "Build a wheeled orga shooter" +msgstr "Fabrique un orgaShooter à roues" -msgid "Instructions\\Shows the instructions for the current mission" -msgstr "Instructions mission\\Marche à suivre" +msgid "Build a legged orga shooter" +msgstr "Fabrique un orgaShooter à pattes" -msgid "Internal error - tell the developers" -msgstr "" +msgid "Build a winged sniffer" +msgstr "Fabrique un renifleur volant" -msgid "Jet temperature" -msgstr "Température du réacteur" +msgid "Build a tracked sniffer" +msgstr "Fabrique un renifleur à chenilles" -msgid "Key A" -msgstr "Clé A" +msgid "Build a wheeled sniffer" +msgstr "Fabrique un renifleur à roues" -msgid "Key B" -msgstr "Clé B" +msgid "Build a legged sniffer" +msgstr "Fabrique un renifleur à pattes" -msgid "Key C" -msgstr "Clé C" +msgid "Build a thumper" +msgstr "Fabrique un robot secoueur" -msgid "Key D" -msgstr "Clé D" +msgid "Build a phazer shooter" +msgstr "Fabrique un robot phazer" -msgid "Key word help\\More detailed help about key words" -msgstr "Instructions mot-clé\\Explication sur le mot-clé" +msgid "Build a recycler" +msgstr "Fabrique un robot recycleur" -msgid "Keyword \"while\" missing" -msgstr "Manque le mot \"while\"" +msgid "Build a shielder" +msgstr "Fabrique un robot bouclier" -msgid "Keyword help(\\key cbot;)" -msgstr "Aide sur le mot-clé (\\key cbot;)" +msgid "Build a subber" +msgstr "Fabrique un robot sous-marin" -msgid "LOADING" -msgstr "CHARGEMENT" +msgid "Run research program for tracked bots" +msgstr "Recherche les chenilles" -msgid "Legged grabber" -msgstr "Robot déménageur" +msgid "Run research program for winged bots" +msgstr "Recherche les robots volants" -msgid "Legged orga shooter" -msgstr "Robot orgaShooter" +msgid "Run research program for thumper" +msgstr "Recherche le secoueur" -msgid "Legged shooter" -msgstr "Robot shooter" +msgid "Run research program for shooter" +msgstr "Recherche le canon shooter" -msgid "Legged sniffer" -msgstr "Robot renifleur" +msgid "Run research program for defense tower" +msgstr "Recherche la tour de défense" -msgid "Lightning conductor" -msgstr "Paratonnerre" +msgid "Run research program for phazer shooter" +msgstr "Recherche le canon phazer" -msgid "List of objects" -msgstr "Liste des objets" +msgid "Run research program for shielder" +msgstr "Recherche le bouclier" -msgid "List of saved missions" -msgstr "Liste des missions enregistrées" +msgid "Run research program for nuclear power" +msgstr "Recherche le nucléaire" -msgid "Load a saved mission" -msgstr "Chargement d'une mission enregistrée" +msgid "Run research program for legged bots" +msgstr "Recherche les pattes" -msgid "Load\\Load a saved mission" -msgstr "Charger\\Charger une mission enregistrée" +msgid "Run research program for orga shooter" +msgstr "Recherche le canon orgaShooter" -msgid "Load\\Loads the selected mission" -msgstr "Charger\\Charger la mission sélectionnée" +msgid "Return to start" +msgstr "Remet au départ" -msgid "Lowest\\Minimum graphic quality (highest frame rate)" -msgstr "Mini\\Qualité minimale (+ rapide)" +msgid "Sniff (\\key action;)" +msgstr "Cherche (\\key action;)" -msgid "Lunar Roving Vehicle" -msgstr "Lunar Roving Vehicle" +msgid "Thump (\\key action;)" +msgstr "Secoue (\\key action;)" -msgid "Marks on the ground\\Marks on the ground" -msgstr "Marques sur le sol\\Marques dessinées sur le sol" +msgid "Shoot (\\key action;)" +msgstr "Tir (\\key action;)" -msgid "Maximize" -msgstr "Taille maximale" +msgid "Explode (\\key action;)" +msgstr "" -msgid "Minimize" -msgstr "Taille réduite" +msgid "Recycle (\\key action;)" +msgstr "Recycle (\\key action;)" -msgid "Mission name" -msgstr "Nom de la mission" +msgid "Extend shield (\\key action;)" +msgstr "Déploie le bouclier (\\key action;)" -msgid "Missions" -msgstr "Missions" +msgid "Withdraw shield (\\key action;)" +msgstr "Stoppe le bouclier (\\key action;)" -msgid "Missions\\Select mission" -msgstr "Missions\\La grande aventure" +msgid "Shield radius" +msgstr "Rayon du bouclier" -msgid "Mouse inversion X\\Inversion of the scrolling direction on the X axis" -msgstr "" -"Inversion souris X\\Inversion de la rotation lorsque la souris touche un bord" +msgid "Execute the selected program" +msgstr "Exécute le programme sélectionné" -msgid "Mouse inversion Y\\Inversion of the scrolling direction on the Y axis" -msgstr "" -"Inversion souris Y\\Inversion de la rotation lorsque la souris touche un bord" +msgid "Edit the selected program" +msgstr "Édite le programme sélectionné" + +msgid "\\SatCom on standby" +msgstr "\\Mettre le SatCom en veille" -msgid "Mouse shadow\\Gives the mouse a shadow" -msgstr "Souris ombrée\\Jolie souris avec une ombre" +msgid "Destroy the building" +msgstr "Démolit le bâtiment" -msgid "Mute\\No sound" -msgstr "Silencieux\\Totalement silencieux" +msgid "Energy level" +msgstr "Niveau d'énergie" -msgid "Name:" -msgstr "Nom:" +msgid "Shield level" +msgstr "Niveau du bouclier" -msgid "Negative value rejected by \"throw\"" -msgstr "Valeur négative refusée pour \"throw\"" +msgid "Jet temperature" +msgstr "Température du réacteur" -msgid "Nest" -msgstr "Nid" +msgid "Still working ..." +msgstr "Travail en cours ..." -msgid "New" -msgstr "Nouveau" +msgid "Number of insects detected" +msgstr "Nombre d'insectes détectés" -msgid "New ..." -msgstr "Nouveau ..." +msgid "Transmitted information" +msgstr "Informations diffusées" -msgid "New bot available" -msgstr "Nouveau robot disponible" +msgid "Compass" +msgstr "Boussole" -msgid "Next" -msgstr "Suivant" +msgid "Zoom mini-map" +msgstr "Zoom mini-carte" -msgid "Next object\\Selects the next object" -msgstr "Sélectionner l'objet suivant\\Sélectionner l'objet suivant" +msgid "Camera (\\key camera;)" +msgstr "Caméra (\\key camera;)" -msgid "No energy in the subsoil" -msgstr "Pas d'énergie en sous-sol" +msgid "Camera to left" +msgstr "Caméra à gauche" -msgid "No flag nearby" -msgstr "Aucun drapeau à proximité" +msgid "Camera to right" +msgstr "Caméra à droite" -msgid "No function running" -msgstr "Pas de fonction en exécution" +msgid "Camera nearest" +msgstr "Caméra plus proche" -msgid "No function with this name accepts this kind of parameter" -msgstr "Aucune fonction de ce nom n'accepte ce(s) type(s) de paramètre(s)" +msgid "Camera awayest" +msgstr "Caméra plus loin" -msgid "No function with this name accepts this number of parameters" -msgstr "Aucune fonction de ce nom n'accepte ce nombre de paramètres" +msgid "Help about selected object" +msgstr "Instructions sur la sélection" -msgid "No information exchange post within range" -msgstr "Pas trouvé de borne d'information" +msgid "Show the solution" +msgstr "Donne la solution" -msgid "No more energy" -msgstr "Plus d'énergie" +msgid "Switch bots <-> buildings" +msgstr "Permute robots <-> bâtiments" -msgid "No ore in the subsoil" -msgstr "Pas de minerai en sous-sol" +msgid "Show the range" +msgstr "Montre le rayon d'action" -msgid "No other robot" -msgstr "Pas d'autre robot" +msgid "\\Raise the pencil" +msgstr "\\Relève le crayon" -msgid "No power cell" -msgstr "Pas de pile" +msgid "\\Use the black pencil" +msgstr "\\Abaisse le crayon noir" -msgid "No titanium" -msgstr "Pas de titanium" +msgid "\\Use the yellow pencil" +msgstr "\\Abaisse le crayon jaune" -msgid "No titanium around" -msgstr "Titanium inexistant" +msgid "\\Use the orange pencil" +msgstr "\\Abaisse le crayon orange" -msgid "No titanium ore to convert" -msgstr "Pas de minerai de titanium à convertir" +msgid "\\Use the red pencil" +msgstr "\\Abaisse le crayon rouge" -msgid "No titanium to transform" -msgstr "Pas de titanium à transformer" +msgid "\\Use the purple pencil" +msgstr "\\Abaisse le crayon violet" -msgid "No uranium to transform" -msgstr "Pas d'uranium à transformer" +msgid "\\Use the blue pencil" +msgstr "\\Abaisse le crayon bleu" -msgid "Normal size" -msgstr "Taille normale" +msgid "\\Use the green pencil" +msgstr "\\Abaisse le crayon vert" -msgid "Normal\\Normal graphic quality" -msgstr "Normal\\Qualité standard" +msgid "\\Use the brown pencil" +msgstr "\\Abaisse le crayon brun" -msgid "Normal\\Normal sound volume" -msgstr "Normal\\Niveaux normaux" +msgid "\\Start recording" +msgstr "\\Démarre l'enregistrement" -msgid "Not enough energy" -msgstr "Pas assez d'énergie" +msgid "\\Stop recording" +msgstr "\\Stoppe l'enregistrement" -msgid "Not enough energy yet" -msgstr "Pas encore assez d'énergie" +msgid "Show the place" +msgstr "Montre l'endroit" -msgid "Not found anything to destroy" -msgstr "" +msgid "Continue" +msgstr "Continuer" -msgid "Not yet enough energy" -msgstr "Pas encore assez d'énergie" +msgid "Command line" +msgstr "Console de commande" -msgid "Nothing to analyze" -msgstr "Rien à analyser" +msgid "Game speed" +msgstr "Vitesse du jeu" -msgid "Nothing to drop" -msgstr "Rien à déposer" +msgid "Back" +msgstr "Page précédente" -msgid "Nothing to grab" -msgstr "Rien à prendre" +msgid "Forward" +msgstr "Page suivante" -msgid "Nothing to recycle" -msgstr "Rien à recycler" +msgid "Home" +msgstr "Page initiale" -msgid "Nuclear power cell" -msgstr "Pile nucléaire" +msgid "Copy" +msgstr "Copier" -msgid "Nuclear power cell available" -msgstr "Pile nucléaire disponible" +msgid "Size 1" +msgstr "Taille 1" -msgid "Nuclear power station" -msgstr "Centrale nucléaire" +msgid "Size 2" +msgstr "Taille 2" -msgid "Num of decorative objects\\Number of purely ornamental objects" -msgstr "Nb d'objets décoratifs\\Qualité d'objets non indispensables" +msgid "Size 3" +msgstr "Taille 3" -msgid "Number missing" -msgstr "Un nombre est attendu" +msgid "Size 4" +msgstr "Taille 4" -msgid "Number of insects detected" -msgstr "Nombre d'insectes détectés" +msgid "Size 5" +msgstr "Taille 5" -msgid "Number of particles\\Explosions, dust, reflections, etc." -msgstr "Quantité de particules\\Explosions, poussières, reflets, etc." +msgid "Instructions from Houston" +msgstr "Instructions de Houston" -msgid "OK" -msgstr "D'accord" +msgid "Satellite report" +msgstr "Rapport du satellite" -msgid "OK\\Choose the selected player" -msgstr "D'accord\\Choisir le joueur" +msgid "Programs dispatched by Houston" +msgstr "Programmes envoyés par Houston" -msgid "OK\\Close program editor and return to game" -msgstr "D'accord\\Compiler le programme" +msgid "List of objects" +msgstr "Liste des objets" -msgid "Object not found" -msgstr "Objet n'existe pas" +msgid "Programming help" +msgstr "Aide à la programmation" -msgid "Object too close" -msgstr "Objet trop proche" +msgid "Solution" +msgstr "Solution" -msgid "One step" -msgstr "Un pas" +msgid "OK\\Close program editor and return to game" +msgstr "D'accord\\Compiler le programme" -msgid "Open" -msgstr "Ouvrir" +msgid "Cancel\\Cancel all changes" +msgstr "Annuler\\Annuler toutes les modifications" msgid "Open (Ctrl+o)" msgstr "Ouvrir (Ctrl+o)" -msgid "Opening brace missing " -msgstr "Début d'un bloc attendu" +msgid "Save (Ctrl+s)" +msgstr "Enregistrer (Ctrl+s)" -msgid "Opening bracket missing" -msgstr "Il manque une parenthèse ouvrante" +msgid "Undo (Ctrl+z)" +msgstr "Annuler (Ctrl+z)" -msgid "Operation impossible with value \"nan\"" -msgstr "Opération sur un \"nan\"" +msgid "Cut (Ctrl+x)" +msgstr "Couper (Ctrl+x)" -msgid "Options" -msgstr "Options" +msgid "Copy (Ctrl+c)" +msgstr "Copier (Ctrl+c)" -msgid "Options\\Preferences" -msgstr "Options\\Réglages" +msgid "Paste (Ctrl+v)" +msgstr "Coller (Ctrl+v)" -msgid "Organic matter" -msgstr "Matière organique" +msgid "Font size" +msgstr "Taille des caractères" -msgid "Origin of last message\\Shows where the last message was sent from" -msgstr "Montrer le lieu d'un message\\Montrer le lieu du dernier message" +msgid "Instructions (\\key help;)" +msgstr "Instructions (\\key help;)" -msgid "Parameters missing " -msgstr "Pas assez de paramètres" +msgid "Programming help (\\key prog;)" +msgstr "Aide à la programmation (\\key prog;)" -msgid "Particles in the interface\\Steam clouds and sparks in the interface" -msgstr "Particules dans l'interface\\Pluie de particules" +msgid "Compile" +msgstr "Compiler" -msgid "Paste (Ctrl+v)" -msgstr "Coller (Ctrl+v)" +msgid "Execute/stop" +msgstr "Démarrer/stopper" msgid "Pause/continue" msgstr "Pause/continuer" -msgid "Phazer shooter" -msgstr "Robot phazer" - -msgid "Photography" -msgstr "Vue de la mission" - -msgid "Place occupied" -msgstr "Emplacement occupé" - -msgid "Planets and stars\\Astronomical objects in the sky" -msgstr "Planètes et étoiles\\Motifs mobiles dans le ciel" - -msgid "Plans for defense tower available" -msgstr "Construction d'une tour de défense possible" +msgid "One step" +msgstr "Un pas" -msgid "Plans for nuclear power plant available" -msgstr "Construction d'une centrale nucléaire possible" +msgid "Gantry crane" +msgstr "Portique" -msgid "Plans for phazer shooter available" -msgstr "Fabrication d'un robot phazer possible" +msgid "Spaceship" +msgstr "Vaisseau spatial" -msgid "Plans for shielder available" -msgstr "Fabrication d'un robot bouclier possible" +msgid "Derrick" +msgstr "Derrick" -msgid "Plans for shooter available" -msgstr "Fabrication de robots shooter possible" +msgid "Bot factory" +msgstr "Fabrique de robots" -msgid "Plans for thumper available" -msgstr "Fabrication d'un robot secoueur possible" +msgid "Repair center" +msgstr "Centre de réparation" -msgid "Plans for tracked robots available " -msgstr "Fabrication d'un robot à chenilles possible" +msgid "Destroyer" +msgstr "Destructeur" -msgid "Plant a flag" -msgstr "Pose un drapeau de couleur" +msgid "Power station" +msgstr "Station de recharge" -msgid "Play\\Start mission!" -msgstr "Jouer ...\\Démarrer l'action!" +msgid "Converts ore to titanium" +msgstr "Conversion minerai en titanium" -msgid "Player" -msgstr "Joueur" +msgid "Defense tower" +msgstr "Tour de défense" -msgid "Player name" -msgstr "Nom du joueur" +msgid "Nest" +msgstr "Nid" -msgid "Player's name" -msgstr "Nom du joueur" +msgid "Research center" +msgstr "Centre de recherches" -msgid "Power cell" -msgstr "Pile normale" +msgid "Radar station" +msgstr "Radar" -msgid "Power cell available" -msgstr "Pile disponible" +msgid "Information exchange post" +msgstr "Borne d'information" msgid "Power cell factory" msgstr "Fabrique de piles" -msgid "Power station" -msgstr "Station de recharge" - -msgid "Practice bot" -msgstr "Robot d'entraînement" +msgid "Autolab" +msgstr "Laboratoire de matières organiques" -msgid "Press \\key help; to read instructions on your SatCom" -msgstr "Consultez votre SatCom en appuyant sur \\key help;" +msgid "Nuclear power station" +msgstr "Centrale nucléaire" -msgid "Previous" -msgstr "Précédent" +msgid "Lightning conductor" +msgstr "Paratonnerre" -msgid "Previous object\\Selects the previous object" -msgstr "Sélection précédente\\Sélectionne l'objet précédent" +msgid "Vault" +msgstr "Coffre-fort" -msgid "Previous selection (\\key desel;)" -msgstr "Sélection précédente (\\key desel;)" +msgid "Houston Mission Control" +msgstr "Centre de contrôle" -msgid "Private element" -msgstr "Elément protégé" +msgid "Target" +msgstr "Cible" -msgid "Private\\Private folder" -msgstr "Privé\\Dossier privé" +msgid "Start" +msgstr "Départ" -msgid "Program editor" -msgstr "Edition du programme" +msgid "Finish" +msgstr "But" -msgid "Program finished" -msgstr "Programme terminé" +msgid "Titanium ore" +msgstr "Minerai de titanium" -msgid "Program infected by a virus" -msgstr "Un programme est infecté par un virus" +msgid "Uranium ore" +msgstr "Minerai d'uranium" -msgid "Programming exercises" -msgstr "Programmation" +msgid "Organic matter" +msgstr "Matière organique" -msgid "Programming help" -msgstr "Aide à la programmation" +msgid "Titanium" +msgstr "Titanium" -msgid "Programming help (\\key prog;)" -msgstr "Aide à la programmation (\\key prog;)" +msgid "Power cell" +msgstr "Pile normale" -msgid "Programming help\\Gives more detailed help with programming" -msgstr "Instructions programmation\\Explication sur la programmation" +msgid "Nuclear power cell" +msgstr "Pile nucléaire" -msgid "Programs dispatched by Houston" -msgstr "Programmes envoyés par Houston" +msgid "Black box" +msgstr "Boîte noire" -msgid "Public required" -msgstr "Public requis" +msgid "Key A" +msgstr "Clé A" -msgid "Public\\Common folder" -msgstr "Public\\Dossier commun à tous les joueurs" +msgid "Key B" +msgstr "Clé B" -msgid "Quake at explosions\\The screen shakes at explosions" -msgstr "Secousses lors d'explosions\\L'écran vibre lors d'une explosion" +msgid "Key C" +msgstr "Clé C" -msgid "Quit the mission?" -msgstr "Quitter la mission ?" +msgid "Key D" +msgstr "Clé D" -msgid "Quit\\Quit COLOBOT" -msgstr "Quitter\\Quitter COLOBOT" +msgid "Explosive" +msgstr "Explosif" -msgid "Quit\\Quit the current mission or exercise" -msgstr "Quitter la mission en cours\\Terminer un exercice ou une mssion" +msgid "Fixed mine" +msgstr "Mine fixe" -msgid "Radar station" -msgstr "Radar" +msgid "Survival kit" +msgstr "Sac de survie" -msgid "Read error" -msgstr "Erreur à la lecture" +msgid "Checkpoint" +msgstr "Indicateur" -msgid "Recorder" -msgstr "Enregistreur" +msgid "Blue flag" +msgstr "Drapeau bleu" -msgid "Recycle (\\key action;)" -msgstr "Recycle (\\key action;)" +msgid "Red flag" +msgstr "Drapeau rouge" -msgid "Recycler" -msgstr "Robot recycleur" +msgid "Green flag" +msgstr "Drapeau vert" -msgid "Red" -msgstr "Rouge" +msgid "Yellow flag" +msgstr "Drapeau jaune" -msgid "Red flag" -msgstr "Drapeau rouge" +msgid "Violet flag" +msgstr "Drapeau violet" -msgid "Reflections on the buttons \\Shiny buttons" -msgstr "Reflets sur les boutons\\Boutons brillants" +msgid "Energy deposit (site for power station)" +msgstr "Emplacement pour station" -msgid "Remains of Apollo mission" -msgstr "Vestige d'une mission Apollo" +msgid "Uranium deposit (site for derrick)" +msgstr "Emplacement pour derrick (uranium)" -msgid "Remove a flag" -msgstr "Enlève un drapeau" +msgid "Found key A (site for derrick)" +msgstr "Emplacement pour derrick (clé A)" -msgid "Repair center" -msgstr "Centre de réparation" +msgid "Found key B (site for derrick)" +msgstr "Emplacement pour derrick (clé B)" -msgid "Research center" -msgstr "Centre de recherches" +msgid "Found key C (site for derrick)" +msgstr "Emplacement pour derrick (clé C)" -msgid "Research program already performed" -msgstr "Recherche déjà effectuée" +msgid "Found key D (site for derrick)" +msgstr "Emplacement pour derrick (clé D)" -msgid "Research program completed" -msgstr "Recherche terminée" +msgid "Titanium deposit (site for derrick)" +msgstr "Emplacement pour derrick (titanium)" -msgid "Reserved keyword of CBOT language" -msgstr "Ce mot est réservé" +msgid "Practice bot" +msgstr "Robot d'entraînement" -msgid "Resolution" -msgstr "Résolution" +msgid "Winged grabber" +msgstr "Robot déménageur" -msgid "Restart\\Restart the mission from the beginning" -msgstr "Recommencer\\Recommencer la mission au début" +msgid "Tracked grabber" +msgstr "Robot déménageur" -msgid "Return to start" -msgstr "Remet au départ" +msgid "Wheeled grabber" +msgstr "Robot déménageur" -msgid "Robbie" -msgstr "Robbie" +msgid "Legged grabber" +msgstr "Robot déménageur" -msgid "Robbie\\Your assistant" -msgstr "Robbie\\Votre assistant" +msgid "Winged shooter" +msgstr "Robot shooter" -msgid "Ruin" -msgstr "Bâtiment en ruine" +msgid "Tracked shooter" +msgstr "Robot shooter" -msgid "Run research program for defense tower" -msgstr "Recherche la tour de défense" +msgid "Wheeled shooter" +msgstr "Robot shooter" -msgid "Run research program for legged bots" -msgstr "Recherche les pattes" +msgid "Legged shooter" +msgstr "Robot shooter" -msgid "Run research program for nuclear power" -msgstr "Recherche le nucléaire" +msgid "Winged orga shooter" +msgstr "Robot orgaShooter" -msgid "Run research program for orga shooter" -msgstr "Recherche le canon orgaShooter" +msgid "Tracked orga shooter" +msgstr "Robot orgaShooter" -msgid "Run research program for phazer shooter" -msgstr "Recherche le canon phazer" +msgid "Wheeled orga shooter" +msgstr "Robot orgaShooter" -msgid "Run research program for shielder" -msgstr "Recherche le bouclier" +msgid "Legged orga shooter" +msgstr "Robot orgaShooter" -msgid "Run research program for shooter" -msgstr "Recherche le canon shooter" +msgid "Winged sniffer" +msgstr "Robot renifleur" -msgid "Run research program for thumper" -msgstr "Recherche le secoueur" +msgid "Tracked sniffer" +msgstr "Robot renifleur" -msgid "Run research program for tracked bots" -msgstr "Recherche les chenilles" +msgid "Wheeled sniffer" +msgstr "Robot renifleur" -msgid "Run research program for winged bots" -msgstr "Recherche les robots volants" +msgid "Legged sniffer" +msgstr "Robot renifleur" -msgid "SatCom" -msgstr "SatCom" +msgid "Thumper" +msgstr "Robot secoueur" -msgid "Satellite report" -msgstr "Rapport du satellite" +msgid "Phazer shooter" +msgstr "Robot phazer" -msgid "Save" -msgstr "Enregistrer" +msgid "Recycler" +msgstr "Robot recycleur" -msgid "Save (Ctrl+s)" -msgstr "Enregistrer (Ctrl+s)" +msgid "Shielder" +msgstr "Robot bouclier" -msgid "Save the current mission" -msgstr "Enregistrement de la mission en cours" +msgid "Subber" +msgstr "Robot sous-marin" -msgid "Save\\Save the current mission " -msgstr "Enregistrer\\Enregistrer la mission en cours" +msgid "Target bot" +msgstr "Cible d'entraînement" -msgid "Save\\Saves the current mission" -msgstr "Enregistrer\\Enregistrer la mission en cours" +msgid "Drawer bot" +msgstr "Robot dessinateur" -msgid "Scrolling\\Scrolling when the mouse touches right or left border" -msgstr "" -"Défilement dans les bords\\Défilement lorsque la souris touches les bords " -"gauche ou droite" +msgid "Engineer" +msgstr "Technicien" -msgid "Select the astronaut\\Selects the astronaut" -msgstr "Sélectionner le cosmonaute\\Sélectionner le cosmonaute" +msgid "Robbie" +msgstr "Robbie" -msgid "Semicolon terminator missing" -msgstr "Terminateur point-virgule non trouvé" +msgid "Alien Queen" +msgstr "Pondeuse" -msgid "Shadows\\Shadows on the ground" -msgstr "Ombres\\Ombres projetées au sol" +msgid "Ant" +msgstr "Fourmi" -msgid "Shield level" -msgstr "Niveau du bouclier" +msgid "Spider" +msgstr "Araignée" -msgid "Shield radius" -msgstr "Rayon du bouclier" +msgid "Wasp" +msgstr "Guępe" -msgid "Shielder" -msgstr "Robot bouclier" +msgid "Worm" +msgstr "Ver" -msgid "Shift" -msgstr "Shift" +msgid "Egg" +msgstr "Oeuf" -msgid "Shoot (\\key action;)" -msgstr "Tir (\\key action;)" +msgid "Wreckage" +msgstr "Epave de robot" -msgid "Show if the ground is flat" -msgstr "Montre si le sol est plat" +msgid "Ruin" +msgstr "Bâtiment en ruine" -msgid "Show the place" -msgstr "Montre l'endroit" +msgid "Waste" +msgstr "Déchet" -msgid "Show the range" -msgstr "Montre le rayon d'action" +msgid "Spaceship ruin" +msgstr "Epave de vaisseau spatial" -msgid "Show the solution" -msgstr "Donne la solution" +msgid "Remains of Apollo mission" +msgstr "Vestige d'une mission Apollo" -msgid "Sign \" : \" missing" -msgstr "Séparateur \" : \" attendu" +msgid "Lunar Roving Vehicle" +msgstr "Lunar Roving Vehicle" -msgid "Size 1" -msgstr "Taille 1" +msgid "Internal error - tell the developers" +msgstr "" -msgid "Size 2" -msgstr "Taille 2" +msgid "Unknown command" +msgstr "Commande inconnue" -msgid "Size 3" -msgstr "Taille 3" +msgid "Inappropriate bot" +msgstr "Robot inadapté" -msgid "Size 4" -msgstr "Taille 4" +msgid "Impossible when flying" +msgstr "Impossible en vol" -msgid "Size 5" -msgstr "Taille 5" +msgid "Already carrying something" +msgstr "Porte déjà quelque chose" -msgid "Sky\\Clouds and nebulae" -msgstr "Ciel\\Ciel et nuages" +msgid "Nothing to grab" +msgstr "Rien à prendre" -msgid "Sniff (\\key action;)" -msgstr "Cherche (\\key action;)" +msgid "Impossible when moving" +msgstr "Impossible en mouvement" -msgid "Solution" -msgstr "Solution" +msgid "Place occupied" +msgstr "Emplacement occupé" -msgid "Sound effects:\\Volume of engines, voice, shooting, etc." -msgstr "Bruitages :\\Volume des moteurs, voix, etc." +msgid "No other robot" +msgstr "Pas d'autre robot" -msgid "Sound\\Music and game sound volume" -msgstr "Son\\Volumes bruitages & musiques" +msgid "You can not carry a radioactive object" +msgstr "Vous ne pouvez pas transporter un objet radioactif" -msgid "Spaceship" -msgstr "Vaisseau spatial" +msgid "You can not carry an object under water" +msgstr "Vous ne pouvez pas transporter un objet sous l'eau" -msgid "Spaceship ruin" -msgstr "Epave de vaisseau spatial" +msgid "Nothing to drop" +msgstr "Rien à déposer" -msgid "Speed 1.0x\\Normal speed" -msgstr "Vitesse 1.0x\\Vitesse normale" +msgid "Impossible under water" +msgstr "Impossible sous l'eau" -msgid "Speed 1.5x\\1.5 times faster" -msgstr "Vitesse 1.5x\\Une fois et demi plus rapide" +msgid "Not enough energy" +msgstr "Pas assez d'énergie" -msgid "Speed 2.0x\\Double speed" -msgstr "Vitesse 2.0x\\Deux fois plus rapide" +msgid "Titanium too far away" +msgstr "Titanium trop loin" -msgid "Speed 3.0x\\Three times faster" -msgstr "Vitesse 3.0x\\Trois fois plus rapide" +msgid "Titanium too close" +msgstr "Titanium trop proche" -msgid "Spider" -msgstr "Araignée" +msgid "No titanium around" +msgstr "Titanium inexistant" -msgid "Spider fatally wounded" -msgstr "Araignée mortellement touchée" +msgid "Ground not flat enough" +msgstr "Sol pas assez plat" -msgid "Stack overflow" -msgstr "Débordement de la pile" +msgid "Flat ground not large enough" +msgstr "Sol plat pas assez grand" -msgid "" -"Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)" -msgstr "Action standard\\Action du bouton avec le cadre rouge" +msgid "Too close to space ship" +msgstr "Trop proche du vaisseau spatial" -msgid "Standard controls\\Standard key functions" -msgstr "Tout réinitialiser\\Remet toutes les touches standards" +msgid "Too close to a building" +msgstr "Trop proche d'un bâtiment" -msgid "Standard\\Standard appearance settings" -msgstr "Standard\\Remet les couleurs standards" +msgid "Can not produce this object in this mission" +msgstr "" -msgid "Start" -msgstr "Départ" +msgid "Can not produce not researched object" +msgstr "" -msgid "Still working ..." -msgstr "Travail en cours ..." +msgid "Ground inappropriate" +msgstr "Terrain inadapté" -msgid "String missing" -msgstr "Une chaîne de caractère est attendue" +msgid "Building too close" +msgstr "Bâtiment trop proche" -msgid "Strip color:" -msgstr "Couleur des bandes :" +msgid "Object too close" +msgstr "Objet trop proche" -msgid "Subber" -msgstr "Robot sous-marin" +msgid "Nothing to recycle" +msgstr "Rien à recycler" -msgid "Suit color:" -msgstr "Couleur de la combinaison :" +msgid "No more energy" +msgstr "Plus d'énergie" -msgid "Suit\\Astronaut suit" -msgstr "Corps\\Combinaison" +msgid "Error in instruction move" +msgstr "Déplacement impossible" -msgid "Sunbeams\\Sunbeams in the sky" -msgstr "Rayons du soleil\\Rayons selon l'orientation" +msgid "Object not found" +msgstr "Objet n'existe pas" -msgid "Survival kit" -msgstr "Sac de survie" +msgid "Goto: inaccessible destination" +msgstr "Chemin introuvable" -msgid "Switch bots <-> buildings" -msgstr "Permute robots <-> bâtiments" +msgid "Goto: destination occupied" +msgstr "Goto: Destination occupée" -msgid "Take off to finish the mission" -msgstr "Décolle pour terminer la mission" +msgid "No titanium ore to convert" +msgstr "Pas de minerai de titanium à convertir" -msgid "Target" -msgstr "Cible" +msgid "No ore in the subsoil" +msgstr "Pas de minerai en sous-sol" -msgid "Target bot" -msgstr "Cible d'entraînement" +msgid "No energy in the subsoil" +msgstr "Pas d'énergie en sous-sol" -msgid "Textures\\Quality of textures " -msgstr "Qualité des textures\\Qualité des images" +msgid "No power cell" +msgstr "Pas de pile" -msgid "The expression must return a boolean value" -msgstr "L'expression doit ętre un boolean" +msgid "Inappropriate cell type" +msgstr "Pas le bon type de pile" -msgid "The function returned no value " -msgstr "La fonction n'a pas retourné de résultat" +msgid "Research program already performed" +msgstr "Recherche déjà effectuée" -msgid "" -"The list is only available if a \\l;radar station\\u object\\radar; is " -"working.\n" -msgstr "Liste non disponible sans \\l;radar\\u object\\radar;.\n" +msgid "Not enough energy yet" +msgstr "Pas encore assez d'énergie" + +msgid "No titanium to transform" +msgstr "Pas de titanium à transformer" -msgid "" -"The mission is not accomplished yet (press \\key help; for more details)" -msgstr "" -"La misssion n'est pas terminée (appuyez sur \\key help; pour plus de détails)" +msgid "Transforms only titanium" +msgstr "Ne transforme que le titanium" -msgid "The types of the two operands are incompatible " -msgstr "Les deux opérandes ne sont pas de types compatibles" +msgid "Doors blocked by a robot or another object " +msgstr "Portes bloquées par un robot ou un objet" -msgid "This class already exists" -msgstr "Cette classe existe déjà" +msgid "You must get on the spaceship to take off " +msgstr "Vous devez embarquer pour pouvoir décoller" -msgid "This class does not exist" -msgstr "Cette classe n'existe pas" +msgid "Nothing to analyze" +msgstr "Rien à analyser" -msgid "This is not a member of this class" -msgstr "Cet élément n'existe pas dans cette classe" +msgid "Analyzes only organic matter" +msgstr "N'analyse que la matière organique" -msgid "This label does not exist" -msgstr "Cette étiquette n'existe pas" +msgid "Analysis already performed" +msgstr "Analyse déjà effectuée" -msgid "This object is not a member of a class" -msgstr "L'objet n'est pas une instance d'une classe" +msgid "Not yet enough energy" +msgstr "Pas encore assez d'énergie" -msgid "Thump (\\key action;)" -msgstr "Secoue (\\key action;)" +msgid "No uranium to transform" +msgstr "Pas d'uranium à transformer" -msgid "Thumper" -msgstr "Robot secoueur" +msgid "Transforms only uranium" +msgstr "Ne transforme que l'uranium" -msgid "Titanium" -msgstr "Titanium" +msgid "No titanium" +msgstr "Pas de titanium" -msgid "Titanium available" -msgstr "Titanium disponible" +msgid "No information exchange post within range" +msgstr "Pas trouvé de borne d'information" -msgid "Titanium deposit (site for derrick)" -msgstr "Emplacement pour derrick (titanium)" +msgid "Program infected by a virus" +msgstr "Un programme est infecté par un virus" -msgid "Titanium ore" -msgstr "Minerai de titanium" +msgid "Infected by a virus; temporarily out of order" +msgstr "Infecté par un virus; ne fonctionne plus temporairement" -msgid "Titanium too close" -msgstr "Titanium trop proche" +msgid "Impossible when swimming" +msgstr "Impossible en nageant" -msgid "Titanium too far away" -msgstr "Titanium trop loin" +msgid "Impossible when carrying an object" +msgstr "Impossible en portant un objet" -msgid "Too close to a building" -msgstr "Trop proche d'un bâtiment" +msgid "Too many flags of this color (maximum 5)" +msgstr "Trop de drapeaux de cette couleur (maximum 5)" msgid "Too close to an existing flag" msgstr "Trop proche d'un drapeau existant" -msgid "Too close to space ship" -msgstr "Trop proche du vaisseau spatial" +msgid "No flag nearby" +msgstr "Aucun drapeau à proximité" -msgid "Too many flags of this color (maximum 5)" -msgstr "Trop de drapeaux de cette couleur (maximum 5)" +msgid "Not found anything to destroy" +msgstr "" -msgid "Too many parameters" -msgstr "Trop de paramètres" +msgid "Inappropriate object" +msgstr "" -msgid "Tracked grabber" -msgstr "Robot déménageur" +msgid "" +"The mission is not accomplished yet (press \\key help; for more details)" +msgstr "" +"La misssion n'est pas terminée (appuyez sur \\key help; pour plus de détails)" -msgid "Tracked orga shooter" -msgstr "Robot orgaShooter" +msgid "Bot destroyed" +msgstr "Robot détruit" -msgid "Tracked shooter" -msgstr "Robot shooter" +msgid "Building destroyed" +msgstr "Bâtiment détruit" -msgid "Tracked sniffer" -msgstr "Robot renifleur" +msgid "Can not create this; there are too many objects" +msgstr "Création impossible; il y a trop d'objets" -msgid "Transforms only titanium" -msgstr "Ne transforme que le titanium" +#, c-format +msgid "\"%s\" missing in this exercise" +msgstr "Il manque \"%s\" dans le programme" -msgid "Transforms only uranium" -msgstr "Ne transforme que l'uranium" +msgid "Do not use in this exercise" +msgstr "Interdit dans cet exercice" -msgid "Transmitted information" -msgstr "Informations diffusées" +msgid "Building completed" +msgstr "Bâtiment terminé" -msgid "Turn left (\\key left;)" -msgstr "Tourne à gauche (\\key left;)" +msgid "Titanium available" +msgstr "Titanium disponible" -msgid "Turn left\\turns the bot to the left" -msgstr "Tourner à gauche\\Moteur à gauche" +msgid "Research program completed" +msgstr "Recherche terminée" -msgid "Turn right (\\key right;)" -msgstr "Tourne à droite (\\key right;)" +msgid "Plans for tracked robots available " +msgstr "Fabrication d'un robot à chenilles possible" -msgid "Turn right\\turns the bot to the right" -msgstr "Tourner à droite\\Moteur à droite" +msgid "You can fly with the keys (\\key gup;) and (\\key gdown;)" +msgstr "" +"Il est possible de voler avec les touches (\\key gup;) et (\\key gdown;)" -msgid "Type declaration missing" -msgstr "Déclaration de type attendu" +msgid "Plans for thumper available" +msgstr "Fabrication d'un robot secoueur possible" -msgid "Undo (Ctrl+z)" -msgstr "Annuler (Ctrl+z)" +msgid "Plans for shooter available" +msgstr "Fabrication de robots shooter possible" -msgid "Unit" -msgstr "Unité" +msgid "Plans for defense tower available" +msgstr "Construction d'une tour de défense possible" -msgid "Unknown Object" -msgstr "Objet n'existe pas" +msgid "Plans for phazer shooter available" +msgstr "Fabrication d'un robot phazer possible" -msgid "Unknown command" -msgstr "Commande inconnue" +msgid "Plans for shielder available" +msgstr "Fabrication d'un robot bouclier possible" -msgid "Unknown function" -msgstr "Routine inconnue" +msgid "Plans for nuclear power plant available" +msgstr "Construction d'une centrale nucléaire possible" -msgid "Up (\\key gup;)" -msgstr "Monte (\\key gup;)" +msgid "New bot available" +msgstr "Nouveau robot disponible" -msgid "Uranium deposit (site for derrick)" -msgstr "Emplacement pour derrick (uranium)" +msgid "Analysis performed" +msgstr "Analyse terminée" -msgid "Uranium ore" -msgstr "Minerai d'uranium" +msgid "Power cell available" +msgstr "Pile disponible" -msgid "Use a joystick\\Joystick or keyboard" -msgstr "Utilise un joystick\\Joystick ou clavier" +msgid "Nuclear power cell available" +msgstr "Pile nucléaire disponible" -msgid "User levels" -msgstr "Niveaux supplémentaires" +msgid "You found a usable object" +msgstr "Vous avez trouvé un objet utilisable" -msgid "User\\User levels" -msgstr "Suppl.\\Niveaux supplémentaires" +msgid "Found a site for power station" +msgstr "Emplacement pour station trouvé" -msgid "Variable name missing" -msgstr "Nom d'une variable attendu" +msgid "Found a site for a derrick" +msgstr "Emplacement pour derrick trouvé" -msgid "Variable not declared" -msgstr "Variable non déclarée" +msgid "<<< Well done; mission accomplished >>>" +msgstr "<<< Bravo; mission terminée >>>" -msgid "Variable not initialized" -msgstr "Variable non initialisée" +msgid "<<< Sorry; mission failed >>>" +msgstr "<<< Désolé; mission échouée >>>" -msgid "Vault" -msgstr "Coffre-fort" +msgid "Current mission saved" +msgstr "Enregistrement effectué" -msgid "Violet flag" -msgstr "Drapeau violet" +msgid "Checkpoint crossed" +msgstr "Indicateur atteint" -msgid "Void parameter" -msgstr "Paramètre void" +msgid "Alien Queen killed" +msgstr "Pondeuse mortellement touchée" -msgid "Wasp" -msgstr "Guępe" +msgid "Ant fatally wounded" +msgstr "Fourmi mortellement touchée" msgid "Wasp fatally wounded" msgstr "Guępe mortellement touchée" -msgid "Waste" -msgstr "Déchet" +msgid "Worm fatally wounded" +msgstr "Ver mortellement touché" -msgid "Wheeled grabber" -msgstr "Robot déménageur" +msgid "Spider fatally wounded" +msgstr "Araignée mortellement touchée" -msgid "Wheeled orga shooter" -msgstr "Robot orgaShooter" +msgid "Press \\key help; to read instructions on your SatCom" +msgstr "Consultez votre SatCom en appuyant sur \\key help;" -msgid "Wheeled shooter" -msgstr "Robot shooter" +msgid "Opening bracket missing" +msgstr "Il manque une parenthèse ouvrante" -msgid "Wheeled sniffer" -msgstr "Robot renifleur" +msgid "Closing bracket missing " +msgstr "Il manque une parenthèse fermante" -msgid "Win" -msgstr "Gagné" +msgid "The expression must return a boolean value" +msgstr "L'expression doit ętre un boolean" -msgid "Winged grabber" -msgstr "Robot déménageur" +msgid "Variable not declared" +msgstr "Variable non déclarée" -msgid "Winged orga shooter" -msgstr "Robot orgaShooter" +msgid "Assignment impossible" +msgstr "Assignation impossible" -msgid "Winged shooter" -msgstr "Robot shooter" +msgid "Semicolon terminator missing" +msgstr "Terminateur point-virgule non trouvé" -msgid "Winged sniffer" -msgstr "Robot renifleur" +msgid "Instruction \"case\" outside a block \"switch\"" +msgstr "Instruction \"case\" hors d'un bloc \"switch\"" -msgid "Withdraw shield (\\key action;)" -msgstr "Stoppe le bouclier (\\key action;)" +msgid "Instructions after the final closing brace" +msgstr "Instructions après la fin" + +msgid "End of block missing" +msgstr "Il manque la fin du bloc" + +msgid "Instruction \"else\" without corresponding \"if\" " +msgstr "Instruction \"else\" sans \"if\" correspondant" + +msgid "Opening brace missing " +msgstr "Début d'un bloc attendu" + +msgid "Wrong type for the assignment" +msgstr "Mauvais type de résultat pour l'assignation" -msgid "Worm" -msgstr "Ver" +msgid "A variable can not be declared twice" +msgstr "Redéfinition d'une variable" -msgid "Worm fatally wounded" -msgstr "Ver mortellement touché" +msgid "The types of the two operands are incompatible " +msgstr "Les deux opérandes ne sont pas de types compatibles" -msgid "Wreckage" -msgstr "Epave de robot" +msgid "Unknown function" +msgstr "Routine inconnue" -msgid "Write error" -msgstr "Erreur à l'écriture" +msgid "Sign \" : \" missing" +msgstr "Séparateur \" : \" attendu" -msgid "Wrong type for the assignment" -msgstr "Mauvais type de résultat pour l'assignation" +msgid "Keyword \"while\" missing" +msgstr "Manque le mot \"while\"" -msgid "Yellow flag" -msgstr "Drapeau jaune" +msgid "Instruction \"break\" outside a loop" +msgstr "Instruction \"break\" en dehors d'une boucle" -msgid "You can fly with the keys (\\key gup;) and (\\key gdown;)" +msgid "A label must be followed by \"for\"; \"while\"; \"do\" or \"switch\"" msgstr "" -"Il est possible de voler avec les touches (\\key gup;) et (\\key gdown;)" +"Un label ne peut se placer que devant un \"for\"; un \"while\"; un \"do\" ou " +"un \"switch\"" -msgid "You can not carry a radioactive object" -msgstr "Vous ne pouvez pas transporter un objet radioactif" +msgid "This label does not exist" +msgstr "Cette étiquette n'existe pas" -msgid "You can not carry an object under water" -msgstr "Vous ne pouvez pas transporter un objet sous l'eau" +msgid "Instruction \"case\" missing" +msgstr "Manque une instruction \"case\"" -msgid "You found a usable object" -msgstr "Vous avez trouvé un objet utilisable" +msgid "Number missing" +msgstr "Un nombre est attendu" -msgid "You must get on the spaceship to take off " -msgstr "Vous devez embarquer pour pouvoir décoller" +msgid "Void parameter" +msgstr "Paramètre void" -msgid "Zoom mini-map" -msgstr "Zoom mini-carte" +msgid "Type declaration missing" +msgstr "Déclaration de type attendu" -msgid "\\Blue flags" -msgstr "\\Drapeaux bleus" +msgid "Variable name missing" +msgstr "Nom d'une variable attendu" -msgid "\\Eyeglasses 1" -msgstr "\\Lunettes 1" +msgid "Function name missing" +msgstr "Nom de la fonction attendu" -msgid "\\Eyeglasses 2" -msgstr "\\Lunettes 2" +msgid "Too many parameters" +msgstr "Trop de paramètres" -msgid "\\Eyeglasses 3" -msgstr "\\Lunettes 3" +msgid "Function already exists" +msgstr "Cette fonction existe déjà" -msgid "\\Eyeglasses 4" -msgstr "\\Lunettes 4" +msgid "Parameters missing " +msgstr "Pas assez de paramètres" -msgid "\\Eyeglasses 5" -msgstr "\\Lunettes 5" +msgid "No function with this name accepts this kind of parameter" +msgstr "Aucune fonction de ce nom n'accepte ce(s) type(s) de paramètre(s)" -msgid "\\Face 1" -msgstr "\\Visage 1" +msgid "No function with this name accepts this number of parameters" +msgstr "Aucune fonction de ce nom n'accepte ce nombre de paramètres" -msgid "\\Face 2" -msgstr "\\Visage 2" +msgid "This is not a member of this class" +msgstr "Cet élément n'existe pas dans cette classe" -msgid "\\Face 3" -msgstr "\\Visage 3" +msgid "This object is not a member of a class" +msgstr "L'objet n'est pas une instance d'une classe" -msgid "\\Face 4" -msgstr "\\Visage 4" +msgid "Appropriate constructor missing" +msgstr "Il n'y a pas de constructeur approprié" -msgid "\\Green flags" -msgstr "\\Drapeaux verts" +msgid "This class already exists" +msgstr "Cette classe existe déjà" -msgid "\\New player name" -msgstr "\\Nom du joueur à créer" +msgid "\" ] \" missing" +msgstr "\" ] \" attendu" -msgid "\\No eyeglasses" -msgstr "\\Pas de lunettes" +msgid "Reserved keyword of CBOT language" +msgstr "Ce mot est réservé" -msgid "\\Raise the pencil" -msgstr "\\Relève le crayon" +msgid "Bad argument for \"new\"" +msgstr "Mauvais argument pour \"new\"" -msgid "\\Red flags" -msgstr "\\Drapeaux rouges" +msgid "\" [ \" expected" +msgstr "\" [ \" attendu" -msgid "\\Return to COLOBOT" -msgstr "\\Retourner dans COLOBOT" +msgid "String missing" +msgstr "Une chaîne de caractère est attendue" -msgid "\\SatCom on standby" -msgstr "\\Mettre le SatCom en veille" +msgid "Incorrect index type" +msgstr "Mauvais type d'index" -msgid "\\Start recording" -msgstr "\\Démarre l'enregistrement" +msgid "Private element" +msgstr "Elément protégé" -msgid "\\Stop recording" -msgstr "\\Stoppe l'enregistrement" +msgid "Public required" +msgstr "Public requis" -msgid "\\Turn left" -msgstr "\\Rotation à gauche" +msgid "Dividing by zero" +msgstr "Division par zéro" -msgid "\\Turn right" -msgstr "\\Rotation à droite" +msgid "Variable not initialized" +msgstr "Variable non initialisée" -msgid "\\Use the black pencil" -msgstr "\\Abaisse le crayon noir" +msgid "Negative value rejected by \"throw\"" +msgstr "Valeur négative refusée pour \"throw\"" -msgid "\\Use the blue pencil" -msgstr "\\Abaisse le crayon bleu" +msgid "The function returned no value " +msgstr "La fonction n'a pas retourné de résultat" -msgid "\\Use the brown pencil" -msgstr "\\Abaisse le crayon brun" +msgid "No function running" +msgstr "Pas de fonction en exécution" -msgid "\\Use the green pencil" -msgstr "\\Abaisse le crayon vert" +msgid "Calling an unknown function" +msgstr "Appel d'une fonction inexistante" -msgid "\\Use the orange pencil" -msgstr "\\Abaisse le crayon orange" +msgid "This class does not exist" +msgstr "Cette classe n'existe pas" -msgid "\\Use the purple pencil" -msgstr "\\Abaisse le crayon violet" +msgid "Unknown Object" +msgstr "Objet n'existe pas" -msgid "\\Use the red pencil" -msgstr "\\Abaisse le crayon rouge" +msgid "Operation impossible with value \"nan\"" +msgstr "Opération sur un \"nan\"" -msgid "\\Use the yellow pencil" -msgstr "\\Abaisse le crayon jaune" +msgid "Access beyond array limit" +msgstr "Accès hors du tableau" -msgid "\\Violet flags" -msgstr "\\Drapeaux violets" +msgid "Stack overflow" +msgstr "Débordement de la pile" -msgid "\\Yellow flags" -msgstr "\\Drapeaux jaunes" +msgid "Illegal object" +msgstr "Objet inaccessible" -msgid "\\b;Aliens\n" -msgstr "\\b;Listes des ennemis\n" +msgid "Can't open file" +msgstr "Ouverture du fichier impossible" -msgid "\\b;Buildings\n" -msgstr "\\b;Listes des bâtiments\n" +msgid "File not open" +msgstr "Le fichier n'est pas ouvert" -msgid "\\b;Error\n" -msgstr "\\b;Erreur\n" +msgid "Read error" +msgstr "Erreur à la lecture" -msgid "\\b;List of objects\n" -msgstr "\\b;Listes des objets\n" +msgid "Write error" +msgstr "Erreur à l'écriture" -msgid "\\b;Moveable objects\n" -msgstr "\\b;Listes des objets transportables\n" +msgid "left;" +msgstr "" -msgid "\\b;Robots\n" -msgstr "\\b;Listes des robots\n" +msgid "right;" +msgstr "" -msgid "\\c; (none)\\n;\n" -msgstr "\\c; (aucun)\\n;\n" +msgid "up;" +msgstr "" -msgid "action;" +msgid "down;" msgstr "" -msgid "away;" +msgid "gup;" msgstr "" -msgid "camera;" +msgid "gdown;" msgstr "" -msgid "cbot;" +msgid "camera;" msgstr "" msgid "desel;" msgstr "" -msgid "down;" +msgid "action;" msgstr "" -msgid "gdown;" +msgid "near;" msgstr "" -msgid "gup;" +msgid "away;" msgstr "" -msgid "help;" +msgid "next;" msgstr "" msgid "human;" msgstr "" -msgid "left;" -msgstr "" - -msgid "near;" +msgid "quit;" msgstr "" -msgid "next;" +msgid "help;" msgstr "" msgid "prog;" msgstr "" -msgid "quit;" +msgid "cbot;" msgstr "" -msgid "right;" +msgid "visit;" msgstr "" msgid "speed10;" @@ -1826,14 +1819,26 @@ msgstr "" msgid "speed20;" msgstr "" -msgid "up;" -msgstr "" +msgid "Ctrl" +msgstr "Ctrl" -msgid "visit;" -msgstr "" +msgid "Shift" +msgstr "Shift" -msgid "www.epsitec.com" -msgstr "www.epsitec.com" +msgid "Alt" +msgstr "Alt" + +msgid "Win" +msgstr "Gagné" + +msgid "Button %1" +msgstr "Bouton %1" + +msgid "%1" +msgstr "%1" + +#~ msgid "Menu (\\key quit;)" +#~ msgstr "Menu (\\key quit;)" #~ msgid "< none >" #~ msgstr "< aucune >" @@ -1973,9 +1978,6 @@ msgstr "www.epsitec.com" #~ msgid "Left Windows" #~ msgstr "Left Windows" -#~ msgid "Menu (\\key quit;)" -#~ msgstr "Menu (\\key quit;)" - #~ msgid "Mini-map" #~ msgstr "Mini-carte" diff --git a/po/pl.po b/po/pl.po index f07c71a..8153992 100644 --- a/po/pl.po +++ b/po/pl.po @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-07-10 16:50+0200\n" -"PO-Revision-Date: 2014-07-10 15:23+0200\n" +"PO-Revision-Date: 2014-07-10 15:30+0200\n" "Last-Translator: krzys_h \n" "Language-Team: LANGUAGE \n" "Language: pl\n" @@ -19,1815 +19,1808 @@ msgstr "" "X-Generator: Pootle 2.5.1.1\n" "X-Language: pl_PL\n" "X-Source-Language: en_US\n" -"X-POOTLE-MTIME: 1405002225.000000\n" +"X-POOTLE-MTIME: 1405002617.000000\n" -msgid " " -msgstr " " - -msgid " Challenges in the chapter:" -msgstr " Wyzwania w tym rozdziale:" - -msgid " Chapters:" -msgstr " Rozdziały:" - -msgid " Drivers:" -msgstr " Sterowniki:" +msgid "Colobot rules!" +msgstr "Colobot rządzi!" -msgid " Exercises in the chapter:" -msgstr " Ćwiczenia w tym rozdziale:" +msgid "SatCom" +msgstr "SatCom" -msgid " Free game on this chapter:" -msgstr " Swobodna gra na tej planecie:" +msgid "Maximize" +msgstr "Powiększ" -msgid " Free game on this planet:" -msgstr " Swobodna gra na tej planecie:" +msgid "Minimize" +msgstr "Pomniejsz" -msgid " Missions on this level:" -msgstr " Misje na tym poziomie:" +msgid "Normal size" +msgstr "Normalna wielkość" -msgid " Missions on this planet:" -msgstr " Misje na tej planecie:" +msgid "Close" +msgstr "Zamknij" -msgid " Planets:" -msgstr " Planety:" +msgid "Program editor" +msgstr "Edytor programu" -msgid " Resolution:" -msgstr " Rozdzielczość:" +msgid "New" +msgstr "Nowy" -msgid " Summary:" -msgstr " Streszczenie:" +msgid "Player" +msgstr "Gracz" -msgid " User levels:" -msgstr " Poziomy użytkownika:" +msgid "New ..." +msgstr "Nowy ..." msgid " or " msgstr " lub " -msgid "\" [ \" expected" -msgstr "Oczekiwane \" [ \"" +msgid "COLOBOT" +msgstr "COLOBOT" -msgid "\" ] \" missing" -msgstr "Brak \" ] \"" +msgid "COLOBOT: Gold Edition" +msgstr "COLOBOT: Gold Edition" -#, c-format -msgid "\"%s\" missing in this exercise" -msgstr "Brakuje \"%s\" w tym ćwiczeniu" +msgid "Programming exercises" +msgstr "Ćwiczenia programistyczne" -msgid "%1" -msgstr "%1" +msgid "Challenges" +msgstr "Wyzwania" -msgid "..behind" -msgstr "..za" +msgid "Missions" +msgstr "Misje" -msgid "..in front" -msgstr "..przed" +msgid "Free game" +msgstr "Swobodna gra" -msgid "..power cell" -msgstr "..ogniwo elektryczne" +msgid "User levels" +msgstr "Poziomy użytkownika" -msgid "1) First click on the key you want to redefine." -msgstr "1) Najpierw kliknij klawisz, który chcesz przedefiniować." +msgid "Options" +msgstr "Opcje" -msgid "2) Then press the key you want to use instead." -msgstr "2) Następnie naciśnij klawisz, którego chcesz używać." +msgid "Player's name" +msgstr "Imię gracza" -msgid "3D sound\\3D positioning of the sound" -msgstr "Dźwięk 3D\\Przestrzenne pozycjonowanie dźwięków" +msgid "Customize your appearance" +msgstr "Dostosuj wygląd" -msgid "<< Back \\Back to the previous screen" -msgstr "<< Wstecz \\Wraca do poprzedniego ekranu" +msgid "Save the current mission" +msgstr "Zapisz bieżącą misję" -msgid "<<< Sorry; mission failed >>>" -msgstr "<<< Niestety, misja nie powiodła się >>>" +msgid "Load a saved mission" +msgstr "Wczytaj zapisaną misję" -msgid "<<< Well done; mission accomplished >>>" -msgstr "<<< Dobra robota, misja wypełniona >>>" +msgid " Chapters:" +msgstr " Rozdziały:" -msgid "A label must be followed by \"for\"; \"while\"; \"do\" or \"switch\"" -msgstr "Po etykiecie musi wystąpić \"for\", \"while\", \"do\" lub \"switch\"" +msgid " Planets:" +msgstr " Planety:" -msgid "A variable can not be declared twice" -msgstr "Zmienna nie może być zadeklarowana dwukrotnie" +msgid " User levels:" +msgstr " Poziomy użytkownika:" -msgid "Abort\\Abort the current mission" -msgstr "Przerwij\\Przerywa bieżącą misję" +msgid " Exercises in the chapter:" +msgstr " Ćwiczenia w tym rozdziale:" -msgid "Access beyond array limit" -msgstr "Dostęp poza tablicę" +msgid " Challenges in the chapter:" +msgstr " Wyzwania w tym rozdziale:" -msgid "" -"Access to solution\\Shows the solution (detailed instructions for missions)" -msgstr "" -"Dostęp do rozwiązania\\Pokazuje rozwiązanie (szczegółowe instrukcje " -"dotyczące misji)" +msgid " Missions on this planet:" +msgstr " Misje na tej planecie:" -msgid "Access to solutions\\Show program \"4: Solution\" in the exercises" -msgstr "Accčs aux solutions\\Programme \"4: Solution\" dans les exercices" +msgid " Free game on this planet:" +msgstr " Swobodna gra na tej planecie:" -msgid "Alien Queen" -msgstr "Królowa Obcych" +msgid " Missions on this level:" +msgstr " Misje na tym poziomie:" -msgid "Alien Queen killed" -msgstr "Królowa Obcych została zabita" +msgid " Free game on this chapter:" +msgstr " Swobodna gra na tej planecie:" -msgid "Already carrying something" -msgstr "Nie można nieść więcej przedmiotów" +msgid " Summary:" +msgstr " Streszczenie:" -msgid "Alt" -msgstr "Alt" +msgid " Drivers:" +msgstr " Sterowniki:" -msgid "Analysis already performed" -msgstr "Analiza została już wykonana" +msgid " Resolution:" +msgstr " Rozdzielczość:" -msgid "Analysis performed" -msgstr "Analiza wykonana" +msgid "1) First click on the key you want to redefine." +msgstr "1) Najpierw kliknij klawisz, który chcesz przedefiniować." -msgid "Analyzes only organic matter" -msgstr "Analizuje jedynie materię organiczną" +msgid "2) Then press the key you want to use instead." +msgstr "2) Następnie naciśnij klawisz, którego chcesz używać." -msgid "Ant" -msgstr "Mrówka" +msgid "Face type:" +msgstr "Rodzaj twarzy:" -msgid "Ant fatally wounded" -msgstr "Mrówka śmiertelnie raniona" +msgid "Eyeglasses:" +msgstr "Okulary:" -msgid "Appearance\\Choose your appearance" -msgstr "Wygląd\\Wybierz swoją postać" +msgid "Hair color:" +msgstr "Kolor włosów:" -msgid "Apply changes\\Activates the changed settings" -msgstr "Zastosuj zmiany\\Aktywuje zmienione ustawienia" +msgid "Suit color:" +msgstr "Kolor skafandra:" -msgid "Appropriate constructor missing" -msgstr "Brak odpowiedniego konstruktora" +msgid "Strip color:" +msgstr "Kolor pasków:" -msgid "Assignment impossible" -msgstr "Przypisanie niemożliwe" +msgid "Do you want to quit COLOBOT ?" +msgstr "Czy na pewno chcesz opuścić grę COLOBOT?" -msgid "Autolab" -msgstr "Laboratorium" +msgid "Quit\\Quit COLOBOT" +msgstr "Zakończ\\Kończy grę COLOBOT" -msgid "Automatic indent\\When program editing" -msgstr "Automatyczne wcięcia\\Automatyczne wcięcia podczas edycji programu" +msgid "Quit the mission?" +msgstr "Opuścić misję?" -msgid "Back" -msgstr "Wstecz" +msgid "Abort\\Abort the current mission" +msgstr "Przerwij\\Przerywa bieżącą misję" -msgid "Background sound :\\Volume of audio tracks on the CD" -msgstr "Muzyka w tle :\\Głośność ścieżek dźwiękowych z płyty CD" +msgid "Continue\\Continue the current mission" +msgstr "Kontynuuj\\Kontynuuje bieżącą misję" -msgid "Backward (\\key down;)" -msgstr "Cofnij (\\key down;)" +msgid "Continue\\Continue the game" +msgstr "Kontynuuj\\Kontynuuje grę" -msgid "Backward\\Moves backward" -msgstr "Wstecz\\Porusza do tyłu" +msgid "Do you really want to destroy the selected building?" +msgstr "Czy na pewno chcesz zniszczyć zaznaczony budynek?" -msgid "Bad argument for \"new\"" -msgstr "Zły argument dla funkcji \"new\"" +#, c-format +msgid "Do you want to delete %s's saved games? " +msgstr "Czy na pewno chcesz skasować zapisane gry gracza %s? " -msgid "Big indent\\Indent 2 or 4 spaces per level defined by braces" -msgstr "" -"Duże wcięcie\\2 lub 4 spacje wcięcia na każdy poziom zdefiniowany przez " -"klamry" +msgid "Delete" +msgstr "Usuń" -msgid "Black box" -msgstr "Czarna skrzynka" +msgid "Cancel" +msgstr "Anuluj" -msgid "Blue" -msgstr "Niebieski" +msgid "LOADING" +msgstr "WCZYTYWANIE" -msgid "Blue flag" -msgstr "Niebieska flaga" +msgid "Keyword help(\\key cbot;)" +msgstr "Skróty klawiszowe (\\key cbot;)" -msgid "Bot destroyed" -msgstr "Robot zniszczony" +msgid "Compilation ok (0 errors)" +msgstr "Program skompilowany (0 błędów)" -msgid "Bot factory" -msgstr "Fabryka robotów" +msgid "Program finished" +msgstr "Program zakończony" -msgid "Build a bot factory" -msgstr "Zbuduj fabrykę robotów" +msgid "\\b;List of objects\n" +msgstr "\\b;Lista obiektów\n" -msgid "Build a converter" -msgstr "Zbuduj hutę" +msgid "\\b;Robots\n" +msgstr "\\b;Roboty\n" -msgid "Build a defense tower" -msgstr "Zbuduj wieżę obronną" +msgid "\\b;Buildings\n" +msgstr "\\b;Budynki\n" -msgid "Build a derrick" -msgstr "Zbuduj kopalnię" +msgid "\\b;Moveable objects\n" +msgstr "\\b;Obiekty ruchome\n" -msgid "Build a destroyer" -msgstr "Zbuduj niszczarkę" +msgid "\\b;Aliens\n" +msgstr "\\b;Obcy\n" -msgid "Build a exchange post" -msgstr "Zbuduj stację przekaźnikową" +msgid "\\c; (none)\\n;\n" +msgstr "" +"\\c; (brak)\\n" +";\n" -msgid "Build a legged grabber" -msgstr "Zbuduj transporter na nogach" +msgid "\\b;Error\n" +msgstr "\\b;Błąd\n" -msgid "Build a legged orga shooter" -msgstr "Zbuduj działo organiczne na nogach" +msgid "" +"The list is only available if a \\l;radar station\\u object\\radar; is " +"working.\n" +msgstr "" +"Lista jest dostępna jedynie gdy działa \\l;stacja radarowa\\u object\\radar;." +"\n" -msgid "Build a legged shooter" -msgstr "Zbuduj działo na nogach" +msgid "Open" +msgstr "Otwórz" -msgid "Build a legged sniffer" -msgstr "Zbuduj szperacz na nogach" +msgid "Save" +msgstr "Zapisz" -msgid "Build a lightning conductor" -msgstr "Zbuduj odgromnik" +#, c-format +msgid "Folder: %s" +msgstr "Folder: %s" -msgid "Build a nuclear power plant" -msgstr "Zbuduj elektrownię atomową" +msgid "Name:" +msgstr "Nazwa:" -msgid "Build a phazer shooter" -msgstr "Zbuduj działo fazowe" +msgid "Folder:" +msgstr "Folder:" -msgid "Build a power cell factory" -msgstr "Zbuduj fabrykę ogniw elektrycznych" +msgid "Private\\Private folder" +msgstr "Prywatny\\Folder prywatny" -msgid "Build a power station" -msgstr "Zbuduj elektrownię" +msgid "Public\\Common folder" +msgstr "Publiczny\\Folder ogólnodostępny" -msgid "Build a radar station" -msgstr "Zbuduj stację radarową" +msgid "Developed by :" +msgstr "Twórcy:" -msgid "Build a recycler" -msgstr "Zbuduj robota recyklera" +msgid "www.epsitec.com" +msgstr "www.epsitec.com" -msgid "Build a repair center" -msgstr "Zbuduj warsztat" +msgid " " +msgstr " " -msgid "Build a research center" -msgstr "Zbuduj centrum badawcze" +msgid "Recorder" +msgstr "Recorder" -msgid "Build a shielder" -msgstr "Zbuduj robota osłaniajacza" +msgid "OK" +msgstr "OK" -msgid "Build a subber" -msgstr "Zbuduj robota nurka" +msgid "Next" +msgstr "Następny" -msgid "Build a thumper" -msgstr "Zbuduj robota uderzacza" +msgid "Previous" +msgstr "Poprzedni" -msgid "Build a tracked grabber" -msgstr "Zbuduj transporter na gąsienicach" +msgid "Exercises\\Programming exercises" +msgstr "Ćwiczenia\\Ćwiczenia programistyczne" -msgid "Build a tracked orga shooter" -msgstr "Zbuduj działo organiczne na gąsienicach" +msgid "Challenges\\Programming challenges" +msgstr "Wyzwania\\Wyzwania programistyczne" -msgid "Build a tracked shooter" -msgstr "Zbuduj działo na gąsienicach" +msgid "Missions\\Select mission" +msgstr "Misje\\Wybierz misję" -msgid "Build a tracked sniffer" -msgstr "Zbuduj szperacz na gąsienicach" +msgid "Free game\\Free game without a specific goal" +msgstr "Swobodna gra\\Swobodna gra bez konkretnych celów" -msgid "Build a wheeled grabber" -msgstr "Zbuduj transporter na kołach" +msgid "User\\User levels" +msgstr "Poziomy\\Poziomy użytkownika" -msgid "Build a wheeled orga shooter" -msgstr "Zbuduj działo organiczne na kołach" +msgid "Change player\\Change player" +msgstr "Zmień gracza\\Zmień gracza" -msgid "Build a wheeled shooter" -msgstr "Zbuduj działo na kołach" +msgid "Options\\Preferences" +msgstr "Opcje\\Preferencje" -msgid "Build a wheeled sniffer" -msgstr "Zbuduj szperacz na kołach" +msgid "Restart\\Restart the mission from the beginning" +msgstr "Uruchom ponownie\\Uruchamia ponownie misję od początku" -msgid "Build a winged grabber" -msgstr "Zbuduj transporter latający" +msgid "Save\\Save the current mission " +msgstr "Zapisz\\Zapisuje bieżącą misję" -msgid "Build a winged orga shooter" -msgstr "Zbuduj latające działo organiczne" +msgid "Load\\Load a saved mission" +msgstr "Wczytaj\\Wczytuje zapisaną misję" -msgid "Build a winged shooter" -msgstr "Zbuduj działo latające" +msgid "\\Return to COLOBOT" +msgstr "\\Powróć do gry COLOBOT" -msgid "Build a winged sniffer" -msgstr "Zbuduj szperacz latający" +msgid "<< Back \\Back to the previous screen" +msgstr "<< Wstecz \\Wraca do poprzedniego ekranu" -msgid "Build an autolab" -msgstr "Zbuduj laboratorium" +msgid "Play\\Start mission!" +msgstr "Graj\\Rozpoczyna misję!" -msgid "Building completed" -msgstr "Budowa zakończona" +msgid "Device\\Driver and resolution settings" +msgstr "Urządzenie\\Ustawienia sterownika i rozdzielczości" -msgid "Building destroyed" -msgstr "Budynek zniszczony" +msgid "Graphics\\Graphics settings" +msgstr "Grafika\\Ustawienia grafiki" -msgid "Building too close" -msgstr "Budynek za blisko" +msgid "Game\\Game settings" +msgstr "Gra\\Ustawienia gry" -msgid "Button %1" -msgstr "Przycisk %1" +msgid "Controls\\Keyboard, joystick and mouse settings" +msgstr "Sterowanie\\Ustawienia klawiatury, joysticka i myszy" -msgid "COLOBOT" -msgstr "COLOBOT" +msgid "Sound\\Music and game sound volume" +msgstr "Dźwięk\\Głośność muzyki i dźwięków gry" -msgid "COLOBOT: Gold Edition" -msgstr "COLOBOT: Gold Edition" +msgid "Unit" +msgstr "Jednostka" -msgid "Calling an unknown function" -msgstr "Odwołanie do nieznanej funkcji" +msgid "Resolution" +msgstr "Rozdzielczość" -msgid "Camera (\\key camera;)" -msgstr "Kamera (\\key camera;)" +msgid "Full screen\\Full screen or window mode" +msgstr "Pełny ekran\\Pełny ekran lub tryb okna" -msgid "Camera awayest" -msgstr "Camera awayest" +msgid "Apply changes\\Activates the changed settings" +msgstr "Zastosuj zmiany\\Aktywuje zmienione ustawienia" -msgid "Camera back\\Moves the camera backward" -msgstr "Kamera dalej\\Oddala kamerę" +msgid "Robbie\\Your assistant" +msgstr "Robbie\\Twój asystent" -msgid "Camera closer\\Moves the camera forward" -msgstr "Kamera bliżej\\Przybliża kamerę" +msgid "Shadows\\Shadows on the ground" +msgstr "Cienie\\Cienie na ziemi" -msgid "Camera nearest" -msgstr "Camera nearest" +msgid "Marks on the ground\\Marks on the ground" +msgstr "Znaki na ziemi\\Znaki na ziemi" -msgid "Camera to left" -msgstr "Camera to left" +msgid "Dust\\Dust and dirt on bots and buildings" +msgstr "Kurz\\Kurz i bród na robotach i budynkach" -msgid "Camera to right" -msgstr "Camera to right" +msgid "Fog\\Fog" +msgstr "Mgła\\Mgła" -msgid "Can not create this; there are too many objects" -msgstr "Nie można tego utworzyć, za dużo obiektów" +msgid "Sunbeams\\Sunbeams in the sky" +msgstr "Promienie słoneczne\\Promienie słoneczne na niebie" -msgid "Can not produce not researched object" -msgstr "Nie można wyprodukować nie odkrytego obiektu" +msgid "Sky\\Clouds and nebulae" +msgstr "Niebo\\Chmury i mgławice" -msgid "Can not produce this object in this mission" -msgstr "Nie można utworzyć tego obiektu w tej misji" +msgid "Planets and stars\\Astronomical objects in the sky" +msgstr "Planety i gwiazdy\\Obiekty astronomiczne na niebie" -msgid "Can't open file" -msgstr "Nie można otworzyć pliku" +msgid "Dynamic lighting\\Mobile light sources" +msgstr "Dynamiczne oświetlenie\\Ruchome źródła światła" -msgid "Cancel" -msgstr "Anuluj" +msgid "Number of particles\\Explosions, dust, reflections, etc." +msgstr "Liczba cząstek\\Wybuchy, kurz, odbicia, itp." -msgid "Cancel\\Cancel all changes" -msgstr "Anuluj\\Pomija wszystkie zmiany" +msgid "Depth of field\\Maximum visibility" +msgstr "Głębokość pola\\Maksymalna widoczność" -msgid "Cancel\\Keep current player name" -msgstr "Anuluj\\Zachowuje bieżące imię gracza" +msgid "Details\\Visual quality of 3D objects" +msgstr "Szczegóły\\Jakość wizualna obiektów 3D" -msgid "Challenges" -msgstr "Wyzwania" +msgid "Textures\\Quality of textures " +msgstr "Tekstury\\Jakość tekstur " -msgid "Challenges\\Programming challenges" -msgstr "Wyzwania\\Wyzwania programistyczne" +msgid "Num of decorative objects\\Number of purely ornamental objects" +msgstr "Ilość elementów dekoracyjnych \\Ilość elementów czysto dekoracyjnych" -msgid "Change camera\\Switches between onboard camera and following camera" -msgstr "Zmień kamerę\\Przełącza pomiędzy kamerą pokładową i śledzącą" +msgid "Particles in the interface\\Steam clouds and sparks in the interface" +msgstr "Cząstki w interfejsie\\Para i iskry z silników w interfejsie" -msgid "Change player\\Change player" -msgstr "Zmień gracza\\Zmień gracza" +msgid "Reflections on the buttons \\Shiny buttons" +msgstr "Odbicia na przyciskach \\Świecące przyciski" -msgid "Checkpoint" -msgstr "Punkt kontrolny" +msgid "Help balloons\\Explain the function of the buttons" +msgstr "Dymki pomocy\\Wyjaśnia funkcje przycisków" -msgid "Checkpoint crossed" -msgstr "Przekroczono punkt kontrolny" +msgid "Film sequences\\Films before and after the missions" +msgstr "Sekwencje filmowe\\Filmy przed rozpoczęciem i na zakończenie misji" -msgid "Climb\\Increases the power of the jet" -msgstr "W górę\\Zwiększa moc silnika" +msgid "Exit film\\Film at the exit of exercises" +msgstr "Końcowy film\\Film na zakończenie ćwiczeń" -msgid "Close" -msgstr "Zamknij" +msgid "Friendly fire\\Your shooting can damage your own objects " +msgstr "Przyjacielski ogień\\Własne strzały uszkadzają Twoje obiekty" -msgid "Closing bracket missing " -msgstr "Brak nawiasu zamykającego" +msgid "Scrolling\\Scrolling when the mouse touches right or left border" +msgstr "" +"Przewijanie\\Ekran jest przewijany gdy mysz dotknie prawej lub lewej jego " +"krawędzi" -msgid "Colobot rules!" -msgstr "Colobot rządzi!" +msgid "Mouse inversion X\\Inversion of the scrolling direction on the X axis" +msgstr "Odwrócenie myszy X\\Odwrócenie kierunków przewijania w poziomie" -msgid "Command line" -msgstr "Linia polecenia" +msgid "Mouse inversion Y\\Inversion of the scrolling direction on the Y axis" +msgstr "Odwrócenie myszy Y\\Odwrócenie kierunków przewijania w pionie" -msgid "Compass" -msgstr "Kompas" +msgid "Quake at explosions\\The screen shakes at explosions" +msgstr "Wstrząsy przy wybuchach\\Ekran trzęsie się podczas wybuchów" -msgid "Compilation ok (0 errors)" -msgstr "Program skompilowany (0 błędów)" +msgid "Mouse shadow\\Gives the mouse a shadow" +msgstr "Cień kursora myszy\\Dodaje cień kursorowi myszy" -msgid "Compile" -msgstr "Kompiluj" +msgid "Automatic indent\\When program editing" +msgstr "Automatyczne wcięcia\\Automatyczne wcięcia podczas edycji programu" -msgid "Continue" -msgstr "Kontynuuj" +msgid "Big indent\\Indent 2 or 4 spaces per level defined by braces" +msgstr "" +"Duże wcięcie\\2 lub 4 spacje wcięcia na każdy poziom zdefiniowany przez " +"klamry" -msgid "Continue\\Continue the current mission" -msgstr "Kontynuuj\\Kontynuuje bieżącą misję" +msgid "Access to solutions\\Show program \"4: Solution\" in the exercises" +msgstr "Accčs aux solutions\\Programme \"4: Solution\" dans les exercices" -msgid "Continue\\Continue the game" -msgstr "Kontynuuj\\Kontynuuje grę" +msgid "Standard controls\\Standard key functions" +msgstr "Standardowa kontrola\\Standardowe klawisze funkcyjne" -msgid "Controls\\Keyboard, joystick and mouse settings" -msgstr "Sterowanie\\Ustawienia klawiatury, joysticka i myszy" +msgid "Turn left\\turns the bot to the left" +msgstr "Skręć w lewo\\Obraca robota w lewo" -msgid "Converts ore to titanium" -msgstr "Przetop rudę na tytan" +msgid "Turn right\\turns the bot to the right" +msgstr "Obróć w prawo\\Obraca robota w prawo" -msgid "Copy" -msgstr "Kopiuj" +msgid "Forward\\Moves forward" +msgstr "Naprzód\\Porusza do przodu" -msgid "Copy (Ctrl+c)" -msgstr "Kopiuj (Ctrl+C)" +msgid "Backward\\Moves backward" +msgstr "Wstecz\\Porusza do tyłu" -msgid "Ctrl" -msgstr "Ctrl" +msgid "Climb\\Increases the power of the jet" +msgstr "W górę\\Zwiększa moc silnika" -msgid "Current mission saved" -msgstr "Bieżąca misja zapisana" +msgid "Descend\\Reduces the power of the jet" +msgstr "W dół\\Zmniejsza moc silnika" -msgid "Customize your appearance" -msgstr "Dostosuj wygląd" +msgid "Change camera\\Switches between onboard camera and following camera" +msgstr "Zmień kamerę\\Przełącza pomiędzy kamerą pokładową i śledzącą" -msgid "Cut (Ctrl+x)" -msgstr "Wytnij (Ctrl+X)" +msgid "Previous object\\Selects the previous object" +msgstr "Poprzedni obiekt\\Zaznacz poprzedni obiekt" -msgid "Defense tower" -msgstr "Wieża obronna" +msgid "" +"Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)" +msgstr "" +"Standardowa akcja\\Standardowa akcja robota (podnieś/upuść, strzelaj, " +"szukaj, itp.)" -msgid "Delete" -msgstr "Usuń" +msgid "Camera closer\\Moves the camera forward" +msgstr "Kamera bliżej\\Przybliża kamerę" -msgid "Delete player\\Deletes the player from the list" -msgstr "Usuń gracza\\Usuwa gracza z listy" +msgid "Camera back\\Moves the camera backward" +msgstr "Kamera dalej\\Oddala kamerę" -msgid "Delete\\Deletes the selected file" -msgstr "Usuń\\Usuwa zaznaczony plik" +msgid "Next object\\Selects the next object" +msgstr "Następny obiekt\\Zaznacza następny obiekt" -msgid "Depth of field\\Maximum visibility" -msgstr "Głębokość pola\\Maksymalna widoczność" +msgid "Select the astronaut\\Selects the astronaut" +msgstr "Zaznacz astronautę\\Zaznacza astronautę" -msgid "Derrick" -msgstr "Kopalnia" +msgid "Quit\\Quit the current mission or exercise" +msgstr "Zakończ\\Kończy bieżącą misję lub ćwiczenie" -msgid "Descend\\Reduces the power of the jet" -msgstr "W dół\\Zmniejsza moc silnika" +msgid "Instructions\\Shows the instructions for the current mission" +msgstr "Rozkazy\\Pokazuje rozkazy dotyczące bieżącej misji" -msgid "Destroy" -msgstr "Zniszcz" +msgid "Programming help\\Gives more detailed help with programming" +msgstr "Podręcznik programowania\\Dostarcza szczegółową pomoc w programowaniu" -msgid "Destroy the building" -msgstr "Zniszcz budynek" +msgid "Key word help\\More detailed help about key words" +msgstr "" +"Pomoc dot. słów kluczowych\\Dokładniejsza pomoc na temat słów kluczowych" -msgid "Destroyer" -msgstr "Destroyer" +msgid "Origin of last message\\Shows where the last message was sent from" +msgstr "" +"Miejsce nadania wiadomości\\Pokazuje skąd została wysłana ostatnia wiadomość" -msgid "Details\\Visual quality of 3D objects" -msgstr "Szczegóły\\Jakość wizualna obiektów 3D" +msgid "Speed 1.0x\\Normal speed" +msgstr "Prędkość 1,0x\\Prędkość normalna" -msgid "Developed by :" -msgstr "Twórcy:" +msgid "Speed 1.5x\\1.5 times faster" +msgstr "Prędkość 1,5x\\1,5 raza szybciej" -msgid "Device\\Driver and resolution settings" -msgstr "Urządzenie\\Ustawienia sterownika i rozdzielczości" +msgid "Speed 2.0x\\Double speed" +msgstr "Prędkość 2,0x\\Dwa razy szybciej" -msgid "Dividing by zero" -msgstr "Dzielenie przez zero" +msgid "Speed 3.0x\\Three times faster" +msgstr "Prędkość 3,0x\\Trzy razy szybciej" -msgid "Do not use in this exercise" -msgstr "Do not use in this exercise" +msgid "Sound effects:\\Volume of engines, voice, shooting, etc." +msgstr "Efekty dźwiękowe:\\Głośność silników, głosów, strzałów, itp." -msgid "Do you really want to destroy the selected building?" -msgstr "Czy na pewno chcesz zniszczyć zaznaczony budynek?" +msgid "Background sound :\\Volume of audio tracks on the CD" +msgstr "Muzyka w tle :\\Głośność ścieżek dźwiękowych z płyty CD" -#, c-format -msgid "Do you want to delete %s's saved games? " -msgstr "Czy na pewno chcesz skasować zapisane gry gracza %s? " +msgid "3D sound\\3D positioning of the sound" +msgstr "Dźwięk 3D\\Przestrzenne pozycjonowanie dźwięków" -msgid "Do you want to quit COLOBOT ?" -msgstr "Czy na pewno chcesz opuścić grę COLOBOT?" +msgid "Lowest\\Minimum graphic quality (highest frame rate)" +msgstr "" +"Najniższa\\Minimalna jakość grafiki (najwyższa częstotliwość odświeżania)" -msgid "Doors blocked by a robot or another object " -msgstr "Drzwi zablokowane przez robota lub inny obiekt " +msgid "Normal\\Normal graphic quality" +msgstr "Normalna\\Normalna jakość grafiki" -msgid "Down (\\key gdown;)" -msgstr "Dół (\\key gdown;)" +msgid "Highest\\Highest graphic quality (lowest frame rate)" +msgstr "" +"Najwyższa\\Maksymalna jakość grafiki (najniższa częstotliwość odświeżania)" -msgid "Drawer bot" -msgstr "Drawer bot" +msgid "Mute\\No sound" +msgstr "Cisza\\Brak dźwięków" -msgid "Dust\\Dust and dirt on bots and buildings" -msgstr "Kurz\\Kurz i bród na robotach i budynkach" +msgid "Normal\\Normal sound volume" +msgstr "Normalne\\Normalna głośność dźwięków" -msgid "Dynamic lighting\\Mobile light sources" -msgstr "Dynamiczne oświetlenie\\Ruchome źródła światła" +msgid "Use a joystick\\Joystick or keyboard" +msgstr "Używaj joysticka\\Joystick lub klawiatura" -msgid "Edit the selected program" -msgstr "Edytuj zaznaczony program" +msgid "" +"Access to solution\\Shows the solution (detailed instructions for missions)" +msgstr "" +"Dostęp do rozwiązania\\Pokazuje rozwiązanie (szczegółowe instrukcje " +"dotyczące misji)" -msgid "Egg" -msgstr "Jajo" +msgid "\\New player name" +msgstr "\\Nowe imię gracza" -msgid "End of block missing" -msgstr "Brak końca bloku" +msgid "OK\\Choose the selected player" +msgstr "OK\\Wybiera zaznaczonego gracza" -msgid "Energy deposit (site for power station)" -msgstr "Źródło energii (miejsce na elektrownię)" +msgid "Cancel\\Keep current player name" +msgstr "Anuluj\\Zachowuje bieżące imię gracza" -msgid "Energy level" -msgstr "Poziom energii" +msgid "Delete player\\Deletes the player from the list" +msgstr "Usuń gracza\\Usuwa gracza z listy" -msgid "Engineer" -msgstr "Inżynier" +msgid "Player name" +msgstr "Imię gracza" -msgid "Error in instruction move" -msgstr "Błąd w poleceniu ruchu" +msgid "Save\\Saves the current mission" +msgstr "Zapisz\\Zapisuje bieżącą misję" -msgid "Execute the selected program" -msgstr "Wykonaj zaznaczony program" +msgid "Load\\Loads the selected mission" +msgstr "Wczytaj\\Wczytuje zaznaczoną misję" -msgid "Execute/stop" -msgstr "Wykonaj/Zatrzymaj" +msgid "List of saved missions" +msgstr "Lista zapisanych misji" -msgid "Exercises\\Programming exercises" -msgstr "Ćwiczenia\\Ćwiczenia programistyczne" +msgid "Filename:" +msgstr "Nazwa pliku:" -msgid "Exit film\\Film at the exit of exercises" -msgstr "Końcowy film\\Film na zakończenie ćwiczeń" +msgid "Mission name" +msgstr "Nazwa misji" -msgid "Explode (\\key action;)" -msgstr "Wysadź (\\key action;)" +msgid "Photography" +msgstr "Fotografia" -msgid "Explosive" -msgstr "Materiały wybuchowe" +msgid "Delete\\Deletes the selected file" +msgstr "Usuń\\Usuwa zaznaczony plik" -msgid "Extend shield (\\key action;)" -msgstr "Rozszerz osłonę (\\key action;)" +msgid "Appearance\\Choose your appearance" +msgstr "Wygląd\\Wybierz swoją postać" -msgid "Eyeglasses:" -msgstr "Okulary:" +msgid "Standard\\Standard appearance settings" +msgstr "Standardowe\\Standardowe ustawienia wyglądu" -msgid "Face type:" -msgstr "Rodzaj twarzy:" +msgid "Head\\Face and hair" +msgstr "Głowa\\Twarz i włosy" -msgid "File not open" -msgstr "Plik nie jest otwarty" +msgid "Suit\\Astronaut suit" +msgstr "Skafander\\Skafander astronauty" -msgid "Filename:" -msgstr "Nazwa pliku:" +msgid "\\Turn left" +msgstr "\\Obróć w lewo" -msgid "Film sequences\\Films before and after the missions" -msgstr "Sekwencje filmowe\\Filmy przed rozpoczęciem i na zakończenie misji" +msgid "\\Turn right" +msgstr "\\Obróć w prawo" -msgid "Finish" -msgstr "Koniec" +msgid "Red" +msgstr "Czerwony" -msgid "Fixed mine" -msgstr "Mina" +msgid "Green" +msgstr "Zielony" -msgid "Flat ground not large enough" -msgstr "Za mało płaskiego terenu" +msgid "Blue" +msgstr "Niebieski" -msgid "Fog\\Fog" -msgstr "Mgła\\Mgła" +msgid "\\Face 1" +msgstr "\\Twarz 1" -msgid "Folder:" -msgstr "Folder:" +msgid "\\Face 4" +msgstr "\\Twarz 4" -#, c-format -msgid "Folder: %s" -msgstr "Folder: %s" +msgid "\\Face 3" +msgstr "\\Twarz 3" -msgid "Font size" -msgstr "Wielkość czcionki" +msgid "\\Face 2" +msgstr "\\Twarz 2" -msgid "Forward" -msgstr "Naprzód" +msgid "\\No eyeglasses" +msgstr "\\Bez okularów" -msgid "Forward (\\key up;)" -msgstr "Naprzód (\\key up;)" +msgid "\\Eyeglasses 1" +msgstr "\\Okulary 1" -msgid "Forward\\Moves forward" -msgstr "Naprzód\\Porusza do przodu" +msgid "\\Eyeglasses 2" +msgstr "\\Okulary 2" -msgid "Found a site for a derrick" -msgstr "Znaleziono miejsce na kopalnię" +msgid "\\Eyeglasses 3" +msgstr "\\Okulary 3" -msgid "Found a site for power station" -msgstr "Znaleziono miejsce na elektrownię" +msgid "\\Eyeglasses 4" +msgstr "\\Okulary 4" -msgid "Found key A (site for derrick)" -msgstr "Znaleziono klucz A (miejsce na kopalnię)" +msgid "\\Eyeglasses 5" +msgstr "\\Okulary 5" -msgid "Found key B (site for derrick)" -msgstr "Znaleziono klucz B (miejsce na kopalnię)" +msgid "Previous selection (\\key desel;)" +msgstr "Poprzednie zaznaczenie (\\key desel;)" -msgid "Found key C (site for derrick)" -msgstr "Znaleziono klucz C (miejsce na kopalnię)" +msgid "Turn left (\\key left;)" +msgstr "Skręć w lewo (\\key left;)" -msgid "Found key D (site for derrick)" -msgstr "Znaleziono klucz D (miejsce na kopalnię)" +msgid "Turn right (\\key right;)" +msgstr "Skręć w prawo (\\key right;)" -msgid "Free game" -msgstr "Swobodna gra" +msgid "Forward (\\key up;)" +msgstr "Naprzód (\\key up;)" -msgid "Free game\\Free game without a specific goal" -msgstr "Swobodna gra\\Swobodna gra bez konkretnych celów" +msgid "Backward (\\key down;)" +msgstr "Cofnij (\\key down;)" -msgid "Friendly fire\\Your shooting can damage your own objects " -msgstr "Przyjacielski ogień\\Własne strzały uszkadzają Twoje obiekty" +msgid "Up (\\key gup;)" +msgstr "Góra (\\key gup;)" -msgid "Full screen\\Full screen or window mode" -msgstr "Pełny ekran\\Pełny ekran lub tryb okna" +msgid "Down (\\key gdown;)" +msgstr "Dół (\\key gdown;)" -msgid "Function already exists" -msgstr "Funkcja już istnieje" +msgid "Grab or drop (\\key action;)" +msgstr "Podnieś lub upuść (\\key action;)" -msgid "Function name missing" -msgstr "Brakująca nazwa funkcji" +msgid "..in front" +msgstr "..przed" -msgid "Game speed" -msgstr "Prędkość gry" +msgid "..behind" +msgstr "..za" -msgid "Game\\Game settings" -msgstr "Gra\\Ustawienia gry" +msgid "..power cell" +msgstr "..ogniwo elektryczne" -msgid "Gantry crane" -msgstr "Żuraw przesuwalny" +msgid "Instructions for the mission (\\key help;)" +msgstr "Rozkazy dotyczące misji (\\key help;)" -msgid "Goto: destination occupied" -msgstr "Goto: miejsce docelowe zajęte" +msgid "Take off to finish the mission" +msgstr "Odleć, aby zakończyć misję" -msgid "Goto: inaccessible destination" -msgstr "Goto: miejsce docelowe niedostępne" +msgid "Destroy" +msgstr "Zniszcz" -msgid "Grab or drop (\\key action;)" -msgstr "Podnieś lub upuść (\\key action;)" +msgid "Build a derrick" +msgstr "Zbuduj kopalnię" -msgid "Graphics\\Graphics settings" -msgstr "Grafika\\Ustawienia grafiki" +msgid "Build a power station" +msgstr "Zbuduj elektrownię" -msgid "Green" -msgstr "Zielony" +msgid "Build a bot factory" +msgstr "Zbuduj fabrykę robotów" + +msgid "Build a repair center" +msgstr "Zbuduj warsztat" + +msgid "Build a converter" +msgstr "Zbuduj hutę" + +msgid "Build a defense tower" +msgstr "Zbuduj wieżę obronną" + +msgid "Build a research center" +msgstr "Zbuduj centrum badawcze" -msgid "Green flag" -msgstr "Zielona flaga" +msgid "Build a radar station" +msgstr "Zbuduj stację radarową" -msgid "Ground inappropriate" -msgstr "Nieodpowiedni teren" +msgid "Build a power cell factory" +msgstr "Zbuduj fabrykę ogniw elektrycznych" -msgid "Ground not flat enough" -msgstr "Powierzchnia nie jest wystarczająco płaska" +msgid "Build an autolab" +msgstr "Zbuduj laboratorium" -msgid "Hair color:" -msgstr "Kolor włosów:" +msgid "Build a nuclear power plant" +msgstr "Zbuduj elektrownię atomową" -msgid "Head\\Face and hair" -msgstr "Głowa\\Twarz i włosy" +msgid "Build a lightning conductor" +msgstr "Zbuduj odgromnik" -msgid "Help about selected object" -msgstr "Pomoc na temat zaznaczonego obiektu" +msgid "Build a exchange post" +msgstr "Zbuduj stację przekaźnikową" -msgid "Help balloons\\Explain the function of the buttons" -msgstr "Dymki pomocy\\Wyjaśnia funkcje przycisków" +msgid "Build a destroyer" +msgstr "Zbuduj niszczarkę" -msgid "Highest\\Highest graphic quality (lowest frame rate)" -msgstr "" -"Najwyższa\\Maksymalna jakość grafiki (najniższa częstotliwość odświeżania)" +msgid "Show if the ground is flat" +msgstr "Pokaż czy teren jest płaski" -msgid "Home" -msgstr "Początek" +msgid "Plant a flag" +msgstr "Postaw flagę" -msgid "Houston Mission Control" -msgstr "Centrum Kontroli Misji w Houston" +msgid "Remove a flag" +msgstr "Usuń flagę" -msgid "Illegal object" -msgstr "Nieprawidłowy obiekt" +msgid "\\Blue flags" +msgstr "\\Niebieskie flagi" -msgid "Impossible under water" -msgstr "Niemożliwe pod wodą" +msgid "\\Red flags" +msgstr "\\Czerwone flagi" -msgid "Impossible when carrying an object" -msgstr "Niemożliwe podczas przenoszenia przedmiotu" +msgid "\\Green flags" +msgstr "\\Zielone flagi" -msgid "Impossible when flying" -msgstr "Niemożliwe podczas lotu" +msgid "\\Yellow flags" +msgstr "\\Żółte flagi" -msgid "Impossible when moving" -msgstr "Niemożliwe podczas ruchu" +msgid "\\Violet flags" +msgstr "\\Fioletowe flagi" -msgid "Impossible when swimming" -msgstr "Niemożliwe podczas pływania" +msgid "Build a winged grabber" +msgstr "Zbuduj transporter latający" -msgid "Inappropriate bot" -msgstr "Nieodpowiedni robot" +msgid "Build a tracked grabber" +msgstr "Zbuduj transporter na gąsienicach" -msgid "Inappropriate cell type" -msgstr "Nieodpowiedni rodzaj ogniw" +msgid "Build a wheeled grabber" +msgstr "Zbuduj transporter na kołach" -msgid "Inappropriate object" -msgstr "Nieodpowiedni objekt" +msgid "Build a legged grabber" +msgstr "Zbuduj transporter na nogach" -msgid "Incorrect index type" -msgstr "Nieprawidłowy typ indeksu" +msgid "Build a winged shooter" +msgstr "Zbuduj działo latające" -msgid "Infected by a virus; temporarily out of order" -msgstr "Zainfekowane wirusem, chwilowo niesprawne" +msgid "Build a tracked shooter" +msgstr "Zbuduj działo na gąsienicach" -msgid "Information exchange post" -msgstr "Stacja przekaźnikowa informacji" +msgid "Build a wheeled shooter" +msgstr "Zbuduj działo na kołach" -msgid "Instruction \"break\" outside a loop" -msgstr "Polecenie \"break\" na zewnątrz pętli" +msgid "Build a legged shooter" +msgstr "Zbuduj działo na nogach" -msgid "Instruction \"case\" missing" -msgstr "Brak polecenia \"case" +msgid "Build a winged orga shooter" +msgstr "Zbuduj latające działo organiczne" -msgid "Instruction \"case\" outside a block \"switch\"" -msgstr "Polecenie \"case\" na zewnątrz bloku \"switch\"" +msgid "Build a tracked orga shooter" +msgstr "Zbuduj działo organiczne na gąsienicach" -msgid "Instruction \"else\" without corresponding \"if\" " -msgstr "Polecenie \"else\" bez wystąpienia \"if\" " +msgid "Build a wheeled orga shooter" +msgstr "Zbuduj działo organiczne na kołach" -msgid "Instructions (\\key help;)" -msgstr "Rozkazy (\\key help;)" +msgid "Build a legged orga shooter" +msgstr "Zbuduj działo organiczne na nogach" -msgid "Instructions after the final closing brace" -msgstr "Polecenie po końcowej klamrze zamykającej" +msgid "Build a winged sniffer" +msgstr "Zbuduj szperacz latający" -msgid "Instructions for the mission (\\key help;)" -msgstr "Rozkazy dotyczące misji (\\key help;)" +msgid "Build a tracked sniffer" +msgstr "Zbuduj szperacz na gąsienicach" -msgid "Instructions from Houston" -msgstr "Rozkazy z Houston" +msgid "Build a wheeled sniffer" +msgstr "Zbuduj szperacz na kołach" -msgid "Instructions\\Shows the instructions for the current mission" -msgstr "Rozkazy\\Pokazuje rozkazy dotyczące bieżącej misji" +msgid "Build a legged sniffer" +msgstr "Zbuduj szperacz na nogach" -msgid "Internal error - tell the developers" -msgstr "Błąd wewnętrzny - powiadom twórców gry" +msgid "Build a thumper" +msgstr "Zbuduj robota uderzacza" -msgid "Jet temperature" -msgstr "Temperatura silnika" +msgid "Build a phazer shooter" +msgstr "Zbuduj działo fazowe" -msgid "Key A" -msgstr "Klucz A" +msgid "Build a recycler" +msgstr "Zbuduj robota recyklera" -msgid "Key B" -msgstr "Klucz B" +msgid "Build a shielder" +msgstr "Zbuduj robota osłaniajacza" -msgid "Key C" -msgstr "Klucz C" +msgid "Build a subber" +msgstr "Zbuduj robota nurka" -msgid "Key D" -msgstr "Klucz D" +msgid "Run research program for tracked bots" +msgstr "Rozpocznij prace badawcze nad transporterem na gąsienicach" -msgid "Key word help\\More detailed help about key words" -msgstr "" -"Pomoc dot. słów kluczowych\\Dokładniejsza pomoc na temat słów kluczowych" +msgid "Run research program for winged bots" +msgstr "Rozpocznij prace badawcze nad transporterem latającym" -msgid "Keyword \"while\" missing" -msgstr "Brak kluczowego słowa \"while" +msgid "Run research program for thumper" +msgstr "Rozpocznij prace badawcze nad robotem uderzaczem" -msgid "Keyword help(\\key cbot;)" -msgstr "Skróty klawiszowe (\\key cbot;)" +msgid "Run research program for shooter" +msgstr "Rozpocznij prace badawcze nad działem" -msgid "LOADING" -msgstr "WCZYTYWANIE" +msgid "Run research program for defense tower" +msgstr "Rozpocznij prace badawcze nad wieżą obronną" -msgid "Legged grabber" -msgstr "Transporter na nogach" +msgid "Run research program for phazer shooter" +msgstr "Rozpocznij prace badawcze nad działem fazowym" -msgid "Legged orga shooter" -msgstr "Działo organiczne na nogach" +msgid "Run research program for shielder" +msgstr "Rozpocznij prace badawcze nad robotem osłaniaczem" -msgid "Legged shooter" -msgstr "Działo na nogach" +msgid "Run research program for nuclear power" +msgstr "Rozpocznij prace badawcze nad energią atomową" -msgid "Legged sniffer" -msgstr "Szperacz na nogach" +msgid "Run research program for legged bots" +msgstr "Rozpocznij prace badawcze nad transporterem na nogach" -msgid "Lightning conductor" -msgstr "Odgromnik" +msgid "Run research program for orga shooter" +msgstr "Rozpocznij prace badawcze nad działem organicznym" -msgid "List of objects" -msgstr "Lista obiektów" +msgid "Return to start" +msgstr "Powrót do początku" -msgid "List of saved missions" -msgstr "Lista zapisanych misji" +msgid "Sniff (\\key action;)" +msgstr "Szukaj (\\key action;)" -msgid "Load a saved mission" -msgstr "Wczytaj zapisaną misję" +msgid "Thump (\\key action;)" +msgstr "Uderz (\\key action;)" -msgid "Load\\Load a saved mission" -msgstr "Wczytaj\\Wczytuje zapisaną misję" +msgid "Shoot (\\key action;)" +msgstr "Strzelaj (\\key action;)" -msgid "Load\\Loads the selected mission" -msgstr "Wczytaj\\Wczytuje zaznaczoną misję" +msgid "Explode (\\key action;)" +msgstr "Wysadź (\\key action;)" -msgid "Lowest\\Minimum graphic quality (highest frame rate)" -msgstr "" -"Najniższa\\Minimalna jakość grafiki (najwyższa częstotliwość odświeżania)" +msgid "Recycle (\\key action;)" +msgstr "Odzyskaj (\\key action;)" -msgid "Lunar Roving Vehicle" -msgstr "Pojazd Księżycowy" +msgid "Extend shield (\\key action;)" +msgstr "Rozszerz osłonę (\\key action;)" -msgid "Marks on the ground\\Marks on the ground" -msgstr "Znaki na ziemi\\Znaki na ziemi" +msgid "Withdraw shield (\\key action;)" +msgstr "Wyłącz osłonę (\\key action;)" -msgid "Maximize" -msgstr "Powiększ" +msgid "Shield radius" +msgstr "Zasięg osłony" -msgid "Minimize" -msgstr "Pomniejsz" +msgid "Execute the selected program" +msgstr "Wykonaj zaznaczony program" -msgid "Mission name" -msgstr "Nazwa misji" +msgid "Edit the selected program" +msgstr "Edytuj zaznaczony program" -msgid "Missions" -msgstr "Misje" +msgid "\\SatCom on standby" +msgstr "\\Przełącz przekaźnik SatCom w stan gotowości" -msgid "Missions\\Select mission" -msgstr "Misje\\Wybierz misję" +msgid "Destroy the building" +msgstr "Zniszcz budynek" -msgid "Mouse inversion X\\Inversion of the scrolling direction on the X axis" -msgstr "Odwrócenie myszy X\\Odwrócenie kierunków przewijania w poziomie" +msgid "Energy level" +msgstr "Poziom energii" -msgid "Mouse inversion Y\\Inversion of the scrolling direction on the Y axis" -msgstr "Odwrócenie myszy Y\\Odwrócenie kierunków przewijania w pionie" +msgid "Shield level" +msgstr "Poziom osłony" -msgid "Mouse shadow\\Gives the mouse a shadow" -msgstr "Cień kursora myszy\\Dodaje cień kursorowi myszy" +msgid "Jet temperature" +msgstr "Temperatura silnika" -msgid "Mute\\No sound" -msgstr "Cisza\\Brak dźwięków" +msgid "Still working ..." +msgstr "Wciąż pracuje..." -msgid "Name:" -msgstr "Nazwa:" +msgid "Number of insects detected" +msgstr "Liczba wykrytych insektów" -msgid "Negative value rejected by \"throw\"" -msgstr "Wartość ujemna odrzucona przez \"throw\"" +msgid "Transmitted information" +msgstr "Przesłane informacje" -msgid "Nest" -msgstr "Gniazdo" +msgid "Compass" +msgstr "Kompas" -msgid "New" -msgstr "Nowy" +msgid "Zoom mini-map" +msgstr "Powiększenie mapki" -msgid "New ..." -msgstr "Nowy ..." +msgid "Camera (\\key camera;)" +msgstr "Kamera (\\key camera;)" -msgid "New bot available" -msgstr "Dostępny nowy robot" +msgid "Camera to left" +msgstr "Camera to left" -msgid "Next" -msgstr "Następny" +msgid "Camera to right" +msgstr "Camera to right" -msgid "Next object\\Selects the next object" -msgstr "Następny obiekt\\Zaznacza następny obiekt" +msgid "Camera nearest" +msgstr "Camera nearest" -msgid "No energy in the subsoil" -msgstr "Brak energii w ziemi" +msgid "Camera awayest" +msgstr "Camera awayest" -msgid "No flag nearby" -msgstr "Nie ma flagi w pobliżu" +msgid "Help about selected object" +msgstr "Pomoc na temat zaznaczonego obiektu" -msgid "No function running" -msgstr "Żadna funkcja nie działa" +msgid "Show the solution" +msgstr "Pokaż rozwiązanie" -msgid "No function with this name accepts this kind of parameter" -msgstr "Funkcja o tej nazwie nie akceptuje parametrów tego typu" +msgid "Switch bots <-> buildings" +msgstr "Przełącz roboty <-> budynki" -msgid "No function with this name accepts this number of parameters" -msgstr "Funkcja o tej nazwie nie akceptuje takiej liczby parametrów" +msgid "Show the range" +msgstr "Pokaż zasięg" -msgid "No information exchange post within range" -msgstr "Nie ma żadnej stacji przekaźnikowej w zasięgu" +msgid "\\Raise the pencil" +msgstr "\\Relčve le crayon" -msgid "No more energy" -msgstr "Nie ma więcej energii" +msgid "\\Use the black pencil" +msgstr "\\Abaisse le crayon noir" -msgid "No ore in the subsoil" -msgstr "W ziemi nie ma żadnej rudy" +msgid "\\Use the yellow pencil" +msgstr "\\Abaisse le crayon jaune" -msgid "No other robot" -msgstr "Brak innego robota" +msgid "\\Use the orange pencil" +msgstr "\\Abaisse le crayon orange" -msgid "No power cell" -msgstr "Brak ogniwa elektrycznego" +msgid "\\Use the red pencil" +msgstr "\\Abaisse le crayon rouge" -msgid "No titanium" -msgstr "Brak tytanu" +msgid "\\Use the purple pencil" +msgstr "\\Abaisse le crayon violet" -msgid "No titanium around" -msgstr "Brak tytanu w pobliżu" +msgid "\\Use the blue pencil" +msgstr "\\Abaisse le crayon bleu" -msgid "No titanium ore to convert" -msgstr "Brak rudy tytanu do przetopienia" +msgid "\\Use the green pencil" +msgstr "\\Abaisse le crayon vert" -msgid "No titanium to transform" -msgstr "Brak tytanu do przetworzenia" +msgid "\\Use the brown pencil" +msgstr "\\Abaisse le crayon brun" -msgid "No uranium to transform" -msgstr "Brak uranu do przetworzenia" +msgid "\\Start recording" +msgstr "\\Démarre l'enregistrement" -msgid "Normal size" -msgstr "Normalna wielkość" +msgid "\\Stop recording" +msgstr "\\Stoppe l'enregistrement" -msgid "Normal\\Normal graphic quality" -msgstr "Normalna\\Normalna jakość grafiki" +msgid "Show the place" +msgstr "Pokaż miejsce" -msgid "Normal\\Normal sound volume" -msgstr "Normalne\\Normalna głośność dźwięków" +msgid "Continue" +msgstr "Kontynuuj" -msgid "Not enough energy" -msgstr "Za mało energii" +msgid "Command line" +msgstr "Linia polecenia" -msgid "Not enough energy yet" -msgstr "Wciąż za mało energii" +msgid "Game speed" +msgstr "Prędkość gry" -msgid "Not found anything to destroy" -msgstr "Nie znaleziono nic do zniszczenia" +msgid "Back" +msgstr "Wstecz" -msgid "Not yet enough energy" -msgstr "Wciąż za mało energii" +msgid "Forward" +msgstr "Naprzód" -msgid "Nothing to analyze" -msgstr "Nie ma niczego do zanalizowania" +msgid "Home" +msgstr "Początek" -msgid "Nothing to drop" -msgstr "Nie ma nic do upuszczenia" +msgid "Copy" +msgstr "Kopiuj" -msgid "Nothing to grab" -msgstr "Nie ma nic do podniesienia" +msgid "Size 1" +msgstr "Wielkość 1" -msgid "Nothing to recycle" -msgstr "Nie ma niczego do odzysku" +msgid "Size 2" +msgstr "Wielkość 2" -msgid "Nuclear power cell" -msgstr "Atomowe ogniwa elektryczne" +msgid "Size 3" +msgstr "Wielkość 3" -msgid "Nuclear power cell available" -msgstr "Wytworzono atomowe ogniwo elektryczne" +msgid "Size 4" +msgstr "Wielkość 4" -msgid "Nuclear power station" -msgstr "Elektrownia atomowa" +msgid "Size 5" +msgstr "Wielkość 5" -msgid "Num of decorative objects\\Number of purely ornamental objects" -msgstr "Ilość elementów dekoracyjnych \\Ilość elementów czysto dekoracyjnych" +msgid "Instructions from Houston" +msgstr "Rozkazy z Houston" -msgid "Number missing" -msgstr "Brak liczby" +msgid "Satellite report" +msgstr "Raport z satelity" -msgid "Number of insects detected" -msgstr "Liczba wykrytych insektów" +msgid "Programs dispatched by Houston" +msgstr "Program dostarczony z Houston" -msgid "Number of particles\\Explosions, dust, reflections, etc." -msgstr "Liczba cząstek\\Wybuchy, kurz, odbicia, itp." +msgid "List of objects" +msgstr "Lista obiektów" -msgid "OK" -msgstr "OK" +msgid "Programming help" +msgstr "Podręcznik programowania" -msgid "OK\\Choose the selected player" -msgstr "OK\\Wybiera zaznaczonego gracza" +msgid "Solution" +msgstr "Rozwiązanie" msgid "OK\\Close program editor and return to game" msgstr "OK\\Zamyka edytor programu i powraca do gry" -msgid "Object not found" -msgstr "Obiekt nieznany" - -msgid "Object too close" -msgstr "Obiekt za blisko" - -msgid "One step" -msgstr "Jeden krok" - -msgid "Open" -msgstr "Otwórz" +msgid "Cancel\\Cancel all changes" +msgstr "Anuluj\\Pomija wszystkie zmiany" msgid "Open (Ctrl+o)" msgstr "Otwórz (Ctrl+O)" -msgid "Opening brace missing " -msgstr "Brak klamry otwierającej" +msgid "Save (Ctrl+s)" +msgstr "Zapisz (Ctrl+S)" -msgid "Opening bracket missing" -msgstr "Brak nawiasu otwierającego" +msgid "Undo (Ctrl+z)" +msgstr "Cofnij (Ctrl+Z)" -msgid "Operation impossible with value \"nan\"" -msgstr "Działanie niemożliwe z wartością \"nan\"" +msgid "Cut (Ctrl+x)" +msgstr "Wytnij (Ctrl+X)" -msgid "Options" -msgstr "Opcje" +msgid "Copy (Ctrl+c)" +msgstr "Kopiuj (Ctrl+C)" -msgid "Options\\Preferences" -msgstr "Opcje\\Preferencje" +msgid "Paste (Ctrl+v)" +msgstr "Wklej (Ctrl+V)" -msgid "Organic matter" -msgstr "Materia organiczna" +msgid "Font size" +msgstr "Wielkość czcionki" -msgid "Origin of last message\\Shows where the last message was sent from" -msgstr "" -"Miejsce nadania wiadomości\\Pokazuje skąd została wysłana ostatnia wiadomość" +msgid "Instructions (\\key help;)" +msgstr "Rozkazy (\\key help;)" -msgid "Parameters missing " -msgstr "Brak wymaganego parametru" +msgid "Programming help (\\key prog;)" +msgstr "Podręcznik programowania (\\key prog;)" -msgid "Particles in the interface\\Steam clouds and sparks in the interface" -msgstr "Cząstki w interfejsie\\Para i iskry z silników w interfejsie" +msgid "Compile" +msgstr "Kompiluj" -msgid "Paste (Ctrl+v)" -msgstr "Wklej (Ctrl+V)" +msgid "Execute/stop" +msgstr "Wykonaj/Zatrzymaj" msgid "Pause/continue" msgstr "Pauza/Kontynuuj" -msgid "Phazer shooter" -msgstr "Działo fazowe" - -msgid "Photography" -msgstr "Fotografia" - -msgid "Place occupied" -msgstr "Miejsce zajęte" - -msgid "Planets and stars\\Astronomical objects in the sky" -msgstr "Planety i gwiazdy\\Obiekty astronomiczne na niebie" - -msgid "Plans for defense tower available" -msgstr "Dostępne plany wieży obronnej" +msgid "One step" +msgstr "Jeden krok" -msgid "Plans for nuclear power plant available" -msgstr "Dostępne plany elektrowni atomowej" +msgid "Gantry crane" +msgstr "Żuraw przesuwalny" -msgid "Plans for phazer shooter available" -msgstr "Dostępne plany działa fazowego" +msgid "Spaceship" +msgstr "Statek kosmiczny" -msgid "Plans for shielder available" -msgstr "Dostępne plany robota osłaniacza" +msgid "Derrick" +msgstr "Kopalnia" -msgid "Plans for shooter available" -msgstr "Dostępne plany działa" +msgid "Bot factory" +msgstr "Fabryka robotów" -msgid "Plans for thumper available" -msgstr "Dostępne plany robota uderzacza" +msgid "Repair center" +msgstr "Warsztat" -msgid "Plans for tracked robots available " -msgstr "Dostępne plany tranporterów na gąsienicach" +msgid "Destroyer" +msgstr "Destroyer" -msgid "Plant a flag" -msgstr "Postaw flagę" +msgid "Power station" +msgstr "Stacja energetyczna" -msgid "Play\\Start mission!" -msgstr "Graj\\Rozpoczyna misję!" +msgid "Converts ore to titanium" +msgstr "Przetop rudę na tytan" -msgid "Player" -msgstr "Gracz" +msgid "Defense tower" +msgstr "Wieża obronna" -msgid "Player name" -msgstr "Imię gracza" +msgid "Nest" +msgstr "Gniazdo" -msgid "Player's name" -msgstr "Imię gracza" +msgid "Research center" +msgstr "Centrum badawcze" -msgid "Power cell" -msgstr "Ogniwo elektryczne" +msgid "Radar station" +msgstr "Stacja radarowa" -msgid "Power cell available" -msgstr "Wytworzono ogniwo elektryczne" +msgid "Information exchange post" +msgstr "Stacja przekaźnikowa informacji" msgid "Power cell factory" msgstr "Fabryka ogniw elektrycznych" -msgid "Power station" -msgstr "Stacja energetyczna" +msgid "Autolab" +msgstr "Laboratorium" -msgid "Practice bot" -msgstr "Robot treningowy" +msgid "Nuclear power station" +msgstr "Elektrownia atomowa" -msgid "Press \\key help; to read instructions on your SatCom" -msgstr "" -"Naciśnij klawisz \\key help; aby wyświetlić rozkazy na przekaźniku SatCom" +msgid "Lightning conductor" +msgstr "Odgromnik" -msgid "Previous" -msgstr "Poprzedni" +msgid "Vault" +msgstr "Skrytka" -msgid "Previous object\\Selects the previous object" -msgstr "Poprzedni obiekt\\Zaznacz poprzedni obiekt" +msgid "Houston Mission Control" +msgstr "Centrum Kontroli Misji w Houston" -msgid "Previous selection (\\key desel;)" -msgstr "Poprzednie zaznaczenie (\\key desel;)" +msgid "Target" +msgstr "Cel" -msgid "Private element" -msgstr "Element prywatny" +msgid "Start" +msgstr "Początek" -msgid "Private\\Private folder" -msgstr "Prywatny\\Folder prywatny" +msgid "Finish" +msgstr "Koniec" -msgid "Program editor" -msgstr "Edytor programu" +msgid "Titanium ore" +msgstr "Ruda tytanu" -msgid "Program finished" -msgstr "Program zakończony" +msgid "Uranium ore" +msgstr "Ruda uranu" -msgid "Program infected by a virus" -msgstr "Program zawirusowany" +msgid "Organic matter" +msgstr "Materia organiczna" -msgid "Programming exercises" -msgstr "Ćwiczenia programistyczne" +msgid "Titanium" +msgstr "Tytan" -msgid "Programming help" -msgstr "Podręcznik programowania" +msgid "Power cell" +msgstr "Ogniwo elektryczne" -msgid "Programming help (\\key prog;)" -msgstr "Podręcznik programowania (\\key prog;)" +msgid "Nuclear power cell" +msgstr "Atomowe ogniwa elektryczne" -msgid "Programming help\\Gives more detailed help with programming" -msgstr "Podręcznik programowania\\Dostarcza szczegółową pomoc w programowaniu" +msgid "Black box" +msgstr "Czarna skrzynka" -msgid "Programs dispatched by Houston" -msgstr "Program dostarczony z Houston" +msgid "Key A" +msgstr "Klucz A" -msgid "Public required" -msgstr "Wymagany publiczny" +msgid "Key B" +msgstr "Klucz B" -msgid "Public\\Common folder" -msgstr "Publiczny\\Folder ogólnodostępny" +msgid "Key C" +msgstr "Klucz C" -msgid "Quake at explosions\\The screen shakes at explosions" -msgstr "Wstrząsy przy wybuchach\\Ekran trzęsie się podczas wybuchów" +msgid "Key D" +msgstr "Klucz D" -msgid "Quit the mission?" -msgstr "Opuścić misję?" +msgid "Explosive" +msgstr "Materiały wybuchowe" -msgid "Quit\\Quit COLOBOT" -msgstr "Zakończ\\Kończy grę COLOBOT" +msgid "Fixed mine" +msgstr "Mina" -msgid "Quit\\Quit the current mission or exercise" -msgstr "Zakończ\\Kończy bieżącą misję lub ćwiczenie" +msgid "Survival kit" +msgstr "Zestaw przetrwania" -msgid "Radar station" -msgstr "Stacja radarowa" +msgid "Checkpoint" +msgstr "Punkt kontrolny" -msgid "Read error" -msgstr "Błąd odczytu" +msgid "Blue flag" +msgstr "Niebieska flaga" -msgid "Recorder" -msgstr "Recorder" +msgid "Red flag" +msgstr "Czerwona flaga" -msgid "Recycle (\\key action;)" -msgstr "Odzyskaj (\\key action;)" +msgid "Green flag" +msgstr "Zielona flaga" -msgid "Recycler" -msgstr "Recykler" +msgid "Yellow flag" +msgstr "Żółta flaga" -msgid "Red" -msgstr "Czerwony" +msgid "Violet flag" +msgstr "Fioletowa flaga" -msgid "Red flag" -msgstr "Czerwona flaga" +msgid "Energy deposit (site for power station)" +msgstr "Źródło energii (miejsce na elektrownię)" -msgid "Reflections on the buttons \\Shiny buttons" -msgstr "Odbicia na przyciskach \\Świecące przyciski" +msgid "Uranium deposit (site for derrick)" +msgstr "Złoże uranu (miejsce na kopalnię)" -msgid "Remains of Apollo mission" -msgstr "Pozostałości z misji Apollo" +msgid "Found key A (site for derrick)" +msgstr "Znaleziono klucz A (miejsce na kopalnię)" -msgid "Remove a flag" -msgstr "Usuń flagę" +msgid "Found key B (site for derrick)" +msgstr "Znaleziono klucz B (miejsce na kopalnię)" -msgid "Repair center" -msgstr "Warsztat" +msgid "Found key C (site for derrick)" +msgstr "Znaleziono klucz C (miejsce na kopalnię)" -msgid "Research center" -msgstr "Centrum badawcze" +msgid "Found key D (site for derrick)" +msgstr "Znaleziono klucz D (miejsce na kopalnię)" -msgid "Research program already performed" -msgstr "Program badawczy został już wykonany" +msgid "Titanium deposit (site for derrick)" +msgstr "Złoże tytanu (miejsce na kopalnię)" -msgid "Research program completed" -msgstr "Program badawczy zakończony" +msgid "Practice bot" +msgstr "Robot treningowy" -msgid "Reserved keyword of CBOT language" -msgstr "Słowo zarezerwowane języka CBOT" +msgid "Winged grabber" +msgstr "Transporter latający" -msgid "Resolution" -msgstr "Rozdzielczość" +msgid "Tracked grabber" +msgstr "Transporter na gąsienicach" -msgid "Restart\\Restart the mission from the beginning" -msgstr "Uruchom ponownie\\Uruchamia ponownie misję od początku" +msgid "Wheeled grabber" +msgstr "Transporter na kołach" -msgid "Return to start" -msgstr "Powrót do początku" +msgid "Legged grabber" +msgstr "Transporter na nogach" -msgid "Robbie" -msgstr "Robbie" +msgid "Winged shooter" +msgstr "Działo latające" -msgid "Robbie\\Your assistant" -msgstr "Robbie\\Twój asystent" +msgid "Tracked shooter" +msgstr "Działo na gąsienicach" -msgid "Ruin" -msgstr "Ruiny" +msgid "Wheeled shooter" +msgstr "Działo na kołach" -msgid "Run research program for defense tower" -msgstr "Rozpocznij prace badawcze nad wieżą obronną" +msgid "Legged shooter" +msgstr "Działo na nogach" -msgid "Run research program for legged bots" -msgstr "Rozpocznij prace badawcze nad transporterem na nogach" +msgid "Winged orga shooter" +msgstr "Latające działo organiczne" -msgid "Run research program for nuclear power" -msgstr "Rozpocznij prace badawcze nad energią atomową" +msgid "Tracked orga shooter" +msgstr "Działo organiczne na gąsienicach" -msgid "Run research program for orga shooter" -msgstr "Rozpocznij prace badawcze nad działem organicznym" +msgid "Wheeled orga shooter" +msgstr "Działo organiczne na kołach" -msgid "Run research program for phazer shooter" -msgstr "Rozpocznij prace badawcze nad działem fazowym" +msgid "Legged orga shooter" +msgstr "Działo organiczne na nogach" -msgid "Run research program for shielder" -msgstr "Rozpocznij prace badawcze nad robotem osłaniaczem" +msgid "Winged sniffer" +msgstr "Szperacz latający" -msgid "Run research program for shooter" -msgstr "Rozpocznij prace badawcze nad działem" +msgid "Tracked sniffer" +msgstr "Szperacz na gąsienicach" -msgid "Run research program for thumper" -msgstr "Rozpocznij prace badawcze nad robotem uderzaczem" +msgid "Wheeled sniffer" +msgstr "Szperacz na kołach" -msgid "Run research program for tracked bots" -msgstr "Rozpocznij prace badawcze nad transporterem na gąsienicach" +msgid "Legged sniffer" +msgstr "Szperacz na nogach" -msgid "Run research program for winged bots" -msgstr "Rozpocznij prace badawcze nad transporterem latającym" +msgid "Thumper" +msgstr "Uderzacz" -msgid "SatCom" -msgstr "SatCom" +msgid "Phazer shooter" +msgstr "Działo fazowe" -msgid "Satellite report" -msgstr "Raport z satelity" +msgid "Recycler" +msgstr "Recykler" -msgid "Save" -msgstr "Zapisz" +msgid "Shielder" +msgstr "Osłaniacz" -msgid "Save (Ctrl+s)" -msgstr "Zapisz (Ctrl+S)" +msgid "Subber" +msgstr "Robot nurek" -msgid "Save the current mission" -msgstr "Zapisz bieżącą misję" +msgid "Target bot" +msgstr "Robot cel" -msgid "Save\\Save the current mission " -msgstr "Zapisz\\Zapisuje bieżącą misję" +msgid "Drawer bot" +msgstr "Drawer bot" -msgid "Save\\Saves the current mission" -msgstr "Zapisz\\Zapisuje bieżącą misję" +msgid "Engineer" +msgstr "Inżynier" -msgid "Scrolling\\Scrolling when the mouse touches right or left border" -msgstr "" -"Przewijanie\\Ekran jest przewijany gdy mysz dotknie prawej lub lewej jego " -"krawędzi" +msgid "Robbie" +msgstr "Robbie" -msgid "Select the astronaut\\Selects the astronaut" -msgstr "Zaznacz astronautę\\Zaznacza astronautę" +msgid "Alien Queen" +msgstr "Królowa Obcych" -msgid "Semicolon terminator missing" -msgstr "Brak średnika na końcu wiersza" +msgid "Ant" +msgstr "Mrówka" -msgid "Shadows\\Shadows on the ground" -msgstr "Cienie\\Cienie na ziemi" +msgid "Spider" +msgstr "Pająk" -msgid "Shield level" -msgstr "Poziom osłony" +msgid "Wasp" +msgstr "Osa" -msgid "Shield radius" -msgstr "Zasięg osłony" +msgid "Worm" +msgstr "Robal" -msgid "Shielder" -msgstr "Osłaniacz" +msgid "Egg" +msgstr "Jajo" -msgid "Shift" -msgstr "Shift" +msgid "Wreckage" +msgstr "Wrak" -msgid "Shoot (\\key action;)" -msgstr "Strzelaj (\\key action;)" +msgid "Ruin" +msgstr "Ruiny" -msgid "Show if the ground is flat" -msgstr "Pokaż czy teren jest płaski" +msgid "Waste" +msgstr "Odpady" -msgid "Show the place" -msgstr "Pokaż miejsce" +msgid "Spaceship ruin" +msgstr "Ruiny statku kosmicznego" -msgid "Show the range" -msgstr "Pokaż zasięg" +msgid "Remains of Apollo mission" +msgstr "Pozostałości z misji Apollo" -msgid "Show the solution" -msgstr "Pokaż rozwiązanie" +msgid "Lunar Roving Vehicle" +msgstr "Pojazd Księżycowy" -msgid "Sign \" : \" missing" -msgstr "Brak znaku \" :\"" +msgid "Internal error - tell the developers" +msgstr "Błąd wewnętrzny - powiadom twórców gry" -msgid "Size 1" -msgstr "Wielkość 1" +msgid "Unknown command" +msgstr "Nieznane polecenie" -msgid "Size 2" -msgstr "Wielkość 2" +msgid "Inappropriate bot" +msgstr "Nieodpowiedni robot" -msgid "Size 3" -msgstr "Wielkość 3" +msgid "Impossible when flying" +msgstr "Niemożliwe podczas lotu" -msgid "Size 4" -msgstr "Wielkość 4" +msgid "Already carrying something" +msgstr "Nie można nieść więcej przedmiotów" -msgid "Size 5" -msgstr "Wielkość 5" +msgid "Nothing to grab" +msgstr "Nie ma nic do podniesienia" -msgid "Sky\\Clouds and nebulae" -msgstr "Niebo\\Chmury i mgławice" +msgid "Impossible when moving" +msgstr "Niemożliwe podczas ruchu" -msgid "Sniff (\\key action;)" -msgstr "Szukaj (\\key action;)" +msgid "Place occupied" +msgstr "Miejsce zajęte" -msgid "Solution" -msgstr "Rozwiązanie" +msgid "No other robot" +msgstr "Brak innego robota" -msgid "Sound effects:\\Volume of engines, voice, shooting, etc." -msgstr "Efekty dźwiękowe:\\Głośność silników, głosów, strzałów, itp." +msgid "You can not carry a radioactive object" +msgstr "Nie możesz przenosić przedmiotów radioaktywnych" -msgid "Sound\\Music and game sound volume" -msgstr "Dźwięk\\Głośność muzyki i dźwięków gry" +msgid "You can not carry an object under water" +msgstr "Nie możesz przenosić przedmiotów pod wodą" -msgid "Spaceship" -msgstr "Statek kosmiczny" +msgid "Nothing to drop" +msgstr "Nie ma nic do upuszczenia" -msgid "Spaceship ruin" -msgstr "Ruiny statku kosmicznego" +msgid "Impossible under water" +msgstr "Niemożliwe pod wodą" -msgid "Speed 1.0x\\Normal speed" -msgstr "Prędkość 1,0x\\Prędkość normalna" +msgid "Not enough energy" +msgstr "Za mało energii" -msgid "Speed 1.5x\\1.5 times faster" -msgstr "Prędkość 1,5x\\1,5 raza szybciej" +msgid "Titanium too far away" +msgstr "Tytan za daleko" -msgid "Speed 2.0x\\Double speed" -msgstr "Prędkość 2,0x\\Dwa razy szybciej" +msgid "Titanium too close" +msgstr "Tytan za blisko" -msgid "Speed 3.0x\\Three times faster" -msgstr "Prędkość 3,0x\\Trzy razy szybciej" +msgid "No titanium around" +msgstr "Brak tytanu w pobliżu" -msgid "Spider" -msgstr "Pająk" +msgid "Ground not flat enough" +msgstr "Powierzchnia nie jest wystarczająco płaska" -msgid "Spider fatally wounded" -msgstr "Pająk śmiertelnie raniony" +msgid "Flat ground not large enough" +msgstr "Za mało płaskiego terenu" -msgid "Stack overflow" -msgstr "Przepełnienie stosu" +msgid "Too close to space ship" +msgstr "Za blisko statku kosmicznego" -msgid "" -"Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)" -msgstr "" -"Standardowa akcja\\Standardowa akcja robota (podnieś/upuść, strzelaj, " -"szukaj, itp.)" +msgid "Too close to a building" +msgstr "Za blisko budynku" -msgid "Standard controls\\Standard key functions" -msgstr "Standardowa kontrola\\Standardowe klawisze funkcyjne" +msgid "Can not produce this object in this mission" +msgstr "Nie można utworzyć tego obiektu w tej misji" -msgid "Standard\\Standard appearance settings" -msgstr "Standardowe\\Standardowe ustawienia wyglądu" +msgid "Can not produce not researched object" +msgstr "Nie można wyprodukować nie wynalezionego obiektu" -msgid "Start" -msgstr "Początek" +msgid "Ground inappropriate" +msgstr "Nieodpowiedni teren" -msgid "Still working ..." -msgstr "Wciąż pracuje..." +msgid "Building too close" +msgstr "Budynek za blisko" -msgid "String missing" -msgstr "Brak łańcucha" +msgid "Object too close" +msgstr "Obiekt za blisko" -msgid "Strip color:" -msgstr "Kolor pasków:" +msgid "Nothing to recycle" +msgstr "Nie ma niczego do odzysku" -msgid "Subber" -msgstr "Robot nurek" +msgid "No more energy" +msgstr "Nie ma więcej energii" -msgid "Suit color:" -msgstr "Kolor skafandra:" +msgid "Error in instruction move" +msgstr "Błąd w poleceniu ruchu" -msgid "Suit\\Astronaut suit" -msgstr "Skafander\\Skafander astronauty" +msgid "Object not found" +msgstr "Obiekt nieznany" -msgid "Sunbeams\\Sunbeams in the sky" -msgstr "Promienie słoneczne\\Promienie słoneczne na niebie" +msgid "Goto: inaccessible destination" +msgstr "Goto: miejsce docelowe niedostępne" -msgid "Survival kit" -msgstr "Zestaw przetrwania" +msgid "Goto: destination occupied" +msgstr "Goto: miejsce docelowe zajęte" -msgid "Switch bots <-> buildings" -msgstr "Przełącz roboty <-> budynki" +msgid "No titanium ore to convert" +msgstr "Brak rudy tytanu do przetopienia" -msgid "Take off to finish the mission" -msgstr "Odleć, aby zakończyć misję" +msgid "No ore in the subsoil" +msgstr "W ziemi nie ma żadnej rudy" -msgid "Target" -msgstr "Cel" +msgid "No energy in the subsoil" +msgstr "Brak energii w ziemi" -msgid "Target bot" -msgstr "Robot cel" +msgid "No power cell" +msgstr "Brak ogniwa elektrycznego" -msgid "Textures\\Quality of textures " -msgstr "Tekstury\\Jakość tekstur " +msgid "Inappropriate cell type" +msgstr "Nieodpowiedni rodzaj ogniw" -msgid "The expression must return a boolean value" -msgstr "Wyrażenie musi zwrócić wartość logiczną" +msgid "Research program already performed" +msgstr "Program badawczy został już wykonany" -msgid "The function returned no value " -msgstr "Funkcja nie zwróciła żadnej wartości " +msgid "Not enough energy yet" +msgstr "Wciąż za mało energii" -msgid "" -"The list is only available if a \\l;radar station\\u object\\radar; is " -"working.\n" -msgstr "" -"Lista jest dostępna jedynie gdy działa \\l;stacja radarowa\\u object" -"\\radar;.\n" +msgid "No titanium to transform" +msgstr "Brak tytanu do przetworzenia" -msgid "" -"The mission is not accomplished yet (press \\key help; for more details)" -msgstr "Misja nie jest wypełniona (naciśnij \\key help; aby uzyskać szczegóły)" +msgid "Transforms only titanium" +msgstr "Przetwarza jedynie tytan" -msgid "The types of the two operands are incompatible " -msgstr "Niezgodne typy operatorów" +msgid "Doors blocked by a robot or another object " +msgstr "Drzwi zablokowane przez robota lub inny obiekt " -msgid "This class already exists" -msgstr "Taka klasa już istnieje" +msgid "You must get on the spaceship to take off " +msgstr "Musisz być na statku kosmicznym aby nim odlecieć" -msgid "This class does not exist" -msgstr "Taka klasa nie istnieje" +msgid "Nothing to analyze" +msgstr "Nie ma niczego do zanalizowania" -msgid "This is not a member of this class" -msgstr "To nie jest obiekt tej klasy" +msgid "Analyzes only organic matter" +msgstr "Analizuje jedynie materię organiczną" -msgid "This label does not exist" -msgstr "Taka etykieta nie istnieje" +msgid "Analysis already performed" +msgstr "Analiza została już wykonana" -msgid "This object is not a member of a class" -msgstr "Ten obiekt nie jest członkiem klasy" +msgid "Not yet enough energy" +msgstr "Wciąż za mało energii" -msgid "Thump (\\key action;)" -msgstr "Uderz (\\key action;)" +msgid "No uranium to transform" +msgstr "Brak uranu do przetworzenia" -msgid "Thumper" -msgstr "Uderzacz" +msgid "Transforms only uranium" +msgstr "Przetwarza jedynie uran" -msgid "Titanium" -msgstr "Tytan" +msgid "No titanium" +msgstr "Brak tytanu" -msgid "Titanium available" -msgstr "Tytan dostępny" +msgid "No information exchange post within range" +msgstr "Nie ma żadnej stacji przekaźnikowej w zasięgu" -msgid "Titanium deposit (site for derrick)" -msgstr "Złoże tytanu (miejsce na kopalnię)" +msgid "Program infected by a virus" +msgstr "Program zawirusowany" -msgid "Titanium ore" -msgstr "Ruda tytanu" +msgid "Infected by a virus; temporarily out of order" +msgstr "Zainfekowane wirusem, chwilowo niesprawne" -msgid "Titanium too close" -msgstr "Tytan za blisko" +msgid "Impossible when swimming" +msgstr "Niemożliwe podczas pływania" -msgid "Titanium too far away" -msgstr "Tytan za daleko" +msgid "Impossible when carrying an object" +msgstr "Niemożliwe podczas przenoszenia przedmiotu" -msgid "Too close to a building" -msgstr "Za blisko budynku" +msgid "Too many flags of this color (maximum 5)" +msgstr "Za dużo flag w tym kolorze (maksymalnie 5)" msgid "Too close to an existing flag" msgstr "Za blisko istniejącej flagi" -msgid "Too close to space ship" -msgstr "Za blisko statku kosmicznego" +msgid "No flag nearby" +msgstr "Nie ma flagi w pobliżu" -msgid "Too many flags of this color (maximum 5)" -msgstr "Za dużo flag w tym kolorze (maksymalnie 5)" +msgid "Not found anything to destroy" +msgstr "Nie znaleziono nic do zniszczenia" -msgid "Too many parameters" -msgstr "Za dużo parametrów" +msgid "Inappropriate object" +msgstr "Nieodpowiedni obiekt" -msgid "Tracked grabber" -msgstr "Transporter na gąsienicach" +msgid "" +"The mission is not accomplished yet (press \\key help; for more details)" +msgstr "Misja nie jest wypełniona (naciśnij \\key help; aby uzyskać szczegóły)" -msgid "Tracked orga shooter" -msgstr "Działo organiczne na gąsienicach" +msgid "Bot destroyed" +msgstr "Robot zniszczony" -msgid "Tracked shooter" -msgstr "Działo na gąsienicach" +msgid "Building destroyed" +msgstr "Budynek zniszczony" -msgid "Tracked sniffer" -msgstr "Szperacz na gąsienicach" +msgid "Can not create this; there are too many objects" +msgstr "Nie można tego utworzyć, za dużo obiektów" -msgid "Transforms only titanium" -msgstr "Przetwarza jedynie tytan" +#, c-format +msgid "\"%s\" missing in this exercise" +msgstr "Brakuje \"%s\" w tym ćwiczeniu" -msgid "Transforms only uranium" -msgstr "Przetwarza jedynie uran" +msgid "Do not use in this exercise" +msgstr "Do not use in this exercise" -msgid "Transmitted information" -msgstr "Przesłane informacje" +msgid "Building completed" +msgstr "Budowa zakończona" -msgid "Turn left (\\key left;)" -msgstr "Skręć w lewo (\\key left;)" +msgid "Titanium available" +msgstr "Tytan dostępny" -msgid "Turn left\\turns the bot to the left" -msgstr "Skręć w lewo\\Obraca robota w lewo" +msgid "Research program completed" +msgstr "Program badawczy zakończony" -msgid "Turn right (\\key right;)" -msgstr "Skręć w prawo (\\key right;)" +msgid "Plans for tracked robots available " +msgstr "Dostępne plany tranporterów na gąsienicach" -msgid "Turn right\\turns the bot to the right" -msgstr "Obróć w prawo\\Obraca robota w prawo" +msgid "You can fly with the keys (\\key gup;) and (\\key gdown;)" +msgstr "Możesz latać używając klawiszy (\\key gup;) oraz (\\key gdown;)" -msgid "Type declaration missing" -msgstr "Brak deklaracji typu" +msgid "Plans for thumper available" +msgstr "Dostępne plany robota uderzacza" -msgid "Undo (Ctrl+z)" -msgstr "Cofnij (Ctrl+Z)" +msgid "Plans for shooter available" +msgstr "Dostępne plany działa" -msgid "Unit" -msgstr "Jednostka" +msgid "Plans for defense tower available" +msgstr "Dostępne plany wieży obronnej" -msgid "Unknown Object" -msgstr "Obiekt nieznany" +msgid "Plans for phazer shooter available" +msgstr "Dostępne plany działa fazowego" -msgid "Unknown command" -msgstr "Nieznane polecenie" +msgid "Plans for shielder available" +msgstr "Dostępne plany robota osłaniacza" -msgid "Unknown function" -msgstr "Funkcja nieznana" +msgid "Plans for nuclear power plant available" +msgstr "Dostępne plany elektrowni atomowej" -msgid "Up (\\key gup;)" -msgstr "Góra (\\key gup;)" +msgid "New bot available" +msgstr "Dostępny nowy robot" -msgid "Uranium deposit (site for derrick)" -msgstr "Złoże uranu (miejsce na kopalnię)" +msgid "Analysis performed" +msgstr "Analiza wykonana" -msgid "Uranium ore" -msgstr "Ruda uranu" +msgid "Power cell available" +msgstr "Wytworzono ogniwo elektryczne" -msgid "Use a joystick\\Joystick or keyboard" -msgstr "Używaj joysticka\\Joystick lub klawiatura" +msgid "Nuclear power cell available" +msgstr "Wytworzono atomowe ogniwo elektryczne" -msgid "User levels" -msgstr "Poziomy użytkownika" +msgid "You found a usable object" +msgstr "Znaleziono użyteczny przedmiot" -msgid "User\\User levels" -msgstr "Poziomy\\Poziomy użytkownika" +msgid "Found a site for power station" +msgstr "Znaleziono miejsce na elektrownię" -msgid "Variable name missing" -msgstr "Brak nazwy zmiennej" +msgid "Found a site for a derrick" +msgstr "Znaleziono miejsce na kopalnię" -msgid "Variable not declared" -msgstr "Zmienna nie została zadeklarowana" +msgid "<<< Well done; mission accomplished >>>" +msgstr "<<< Dobra robota, misja wypełniona >>>" -msgid "Variable not initialized" -msgstr "Zmienna nie została zainicjalizowana" +msgid "<<< Sorry; mission failed >>>" +msgstr "<<< Niestety, misja nie powiodła się >>>" -msgid "Vault" -msgstr "Skrytka" +msgid "Current mission saved" +msgstr "Bieżąca misja zapisana" -msgid "Violet flag" -msgstr "Fioletowa flaga" +msgid "Checkpoint crossed" +msgstr "Przekroczono punkt kontrolny" -msgid "Void parameter" -msgstr "Pusty parametr" +msgid "Alien Queen killed" +msgstr "Królowa Obcych została zabita" -msgid "Wasp" -msgstr "Osa" +msgid "Ant fatally wounded" +msgstr "Mrówka śmiertelnie raniona" msgid "Wasp fatally wounded" msgstr "Osa śmiertelnie raniona" -msgid "Waste" -msgstr "Odpady" - -msgid "Wheeled grabber" -msgstr "Transporter na kołach" +msgid "Worm fatally wounded" +msgstr "Robal śmiertelnie raniony" -msgid "Wheeled orga shooter" -msgstr "Działo organiczne na kołach" +msgid "Spider fatally wounded" +msgstr "Pająk śmiertelnie raniony" -msgid "Wheeled shooter" -msgstr "Działo na kołach" +msgid "Press \\key help; to read instructions on your SatCom" +msgstr "" +"Naciśnij klawisz \\key help; aby wyświetlić rozkazy na przekaźniku SatCom" -msgid "Wheeled sniffer" -msgstr "Szperacz na kołach" +msgid "Opening bracket missing" +msgstr "Brak nawiasu otwierającego" -msgid "Win" -msgstr "Win" +msgid "Closing bracket missing " +msgstr "Brak nawiasu zamykającego" -msgid "Winged grabber" -msgstr "Transporter latający" +msgid "The expression must return a boolean value" +msgstr "Wyrażenie musi zwrócić wartość logiczną" -msgid "Winged orga shooter" -msgstr "Latające działo organiczne" +msgid "Variable not declared" +msgstr "Zmienna nie została zadeklarowana" -msgid "Winged shooter" -msgstr "Działo latające" +msgid "Assignment impossible" +msgstr "Przypisanie niemożliwe" -msgid "Winged sniffer" -msgstr "Szperacz latający" +msgid "Semicolon terminator missing" +msgstr "Brak średnika na końcu wiersza" -msgid "Withdraw shield (\\key action;)" -msgstr "Wyłącz osłonę (\\key action;)" +msgid "Instruction \"case\" outside a block \"switch\"" +msgstr "Polecenie \"case\" na zewnątrz bloku \"switch\"" -msgid "Worm" -msgstr "Robal" +msgid "Instructions after the final closing brace" +msgstr "Polecenie po końcowej klamrze zamykającej" -msgid "Worm fatally wounded" -msgstr "Robal śmiertelnie raniony" +msgid "End of block missing" +msgstr "Brak końca bloku" -msgid "Wreckage" -msgstr "Wrak" +msgid "Instruction \"else\" without corresponding \"if\" " +msgstr "Polecenie \"else\" bez wystąpienia \"if\" " -msgid "Write error" -msgstr "Błąd zapisu" +msgid "Opening brace missing " +msgstr "Brak klamry otwierającej" msgid "Wrong type for the assignment" msgstr "Zły typ dla przypisania" -msgid "Yellow flag" -msgstr "Żółta flaga" +msgid "A variable can not be declared twice" +msgstr "Zmienna nie może być zadeklarowana dwukrotnie" -msgid "You can fly with the keys (\\key gup;) and (\\key gdown;)" -msgstr "Możesz latać używając klawiszy (\\key gup;) oraz (\\key gdown;)" +msgid "The types of the two operands are incompatible " +msgstr "Niezgodne typy operatorów" -msgid "You can not carry a radioactive object" -msgstr "Nie możesz przenosić przedmiotów radioaktywnych" +msgid "Unknown function" +msgstr "Funkcja nieznana" -msgid "You can not carry an object under water" -msgstr "Nie możesz przenosić przedmiotów pod wodą" +msgid "Sign \" : \" missing" +msgstr "Brak znaku \" :\"" -msgid "You found a usable object" -msgstr "Znaleziono użyteczny przedmiot" +msgid "Keyword \"while\" missing" +msgstr "Brak kluczowego słowa \"while" -msgid "You must get on the spaceship to take off " -msgstr "Musisz być na statku kosmicznym aby nim odlecieć" +msgid "Instruction \"break\" outside a loop" +msgstr "Polecenie \"break\" na zewnątrz pętli" -msgid "Zoom mini-map" -msgstr "Powiększenie mapki" +msgid "A label must be followed by \"for\"; \"while\"; \"do\" or \"switch\"" +msgstr "Po etykiecie musi wystąpić \"for\", \"while\", \"do\" lub \"switch\"" -msgid "\\Blue flags" -msgstr "\\Niebieskie flagi" +msgid "This label does not exist" +msgstr "Taka etykieta nie istnieje" -msgid "\\Eyeglasses 1" -msgstr "\\Okulary 1" +msgid "Instruction \"case\" missing" +msgstr "Brak polecenia \"case" -msgid "\\Eyeglasses 2" -msgstr "\\Okulary 2" +msgid "Number missing" +msgstr "Brak liczby" -msgid "\\Eyeglasses 3" -msgstr "\\Okulary 3" +msgid "Void parameter" +msgstr "Pusty parametr" -msgid "\\Eyeglasses 4" -msgstr "\\Okulary 4" +msgid "Type declaration missing" +msgstr "Brak deklaracji typu" -msgid "\\Eyeglasses 5" -msgstr "\\Okulary 5" +msgid "Variable name missing" +msgstr "Brak nazwy zmiennej" -msgid "\\Face 1" -msgstr "\\Twarz 1" +msgid "Function name missing" +msgstr "Brakująca nazwa funkcji" -msgid "\\Face 2" -msgstr "\\Twarz 2" +msgid "Too many parameters" +msgstr "Za dużo parametrów" -msgid "\\Face 3" -msgstr "\\Twarz 3" +msgid "Function already exists" +msgstr "Funkcja już istnieje" -msgid "\\Face 4" -msgstr "\\Twarz 4" +msgid "Parameters missing " +msgstr "Brak wymaganego parametru" -msgid "\\Green flags" -msgstr "\\Zielone flagi" +msgid "No function with this name accepts this kind of parameter" +msgstr "Funkcja o tej nazwie nie akceptuje parametrów tego typu" -msgid "\\New player name" -msgstr "\\Nowe imię gracza" +msgid "No function with this name accepts this number of parameters" +msgstr "Funkcja o tej nazwie nie akceptuje takiej liczby parametrów" -msgid "\\No eyeglasses" -msgstr "\\Bez okularów" +msgid "This is not a member of this class" +msgstr "To nie jest obiekt tej klasy" -msgid "\\Raise the pencil" -msgstr "\\Relčve le crayon" +msgid "This object is not a member of a class" +msgstr "Ten obiekt nie jest członkiem klasy" -msgid "\\Red flags" -msgstr "\\Czerwone flagi" +msgid "Appropriate constructor missing" +msgstr "Brak odpowiedniego konstruktora" -msgid "\\Return to COLOBOT" -msgstr "\\Powróć do gry COLOBOT" +msgid "This class already exists" +msgstr "Taka klasa już istnieje" -msgid "\\SatCom on standby" -msgstr "\\Przełącz przekaźnik SatCom w stan gotowości" +msgid "\" ] \" missing" +msgstr "Brak \" ] \"" -msgid "\\Start recording" -msgstr "\\Démarre l'enregistrement" +msgid "Reserved keyword of CBOT language" +msgstr "Słowo zarezerwowane języka CBOT" -msgid "\\Stop recording" -msgstr "\\Stoppe l'enregistrement" +msgid "Bad argument for \"new\"" +msgstr "Zły argument dla funkcji \"new\"" -msgid "\\Turn left" -msgstr "\\Obróć w lewo" +msgid "\" [ \" expected" +msgstr "Oczekiwane \" [ \"" -msgid "\\Turn right" -msgstr "\\Obróć w prawo" +msgid "String missing" +msgstr "Brak łańcucha" -msgid "\\Use the black pencil" -msgstr "\\Abaisse le crayon noir" +msgid "Incorrect index type" +msgstr "Nieprawidłowy typ indeksu" -msgid "\\Use the blue pencil" -msgstr "\\Abaisse le crayon bleu" +msgid "Private element" +msgstr "Element prywatny" -msgid "\\Use the brown pencil" -msgstr "\\Abaisse le crayon brun" +msgid "Public required" +msgstr "Wymagany publiczny" -msgid "\\Use the green pencil" -msgstr "\\Abaisse le crayon vert" +msgid "Dividing by zero" +msgstr "Dzielenie przez zero" -msgid "\\Use the orange pencil" -msgstr "\\Abaisse le crayon orange" +msgid "Variable not initialized" +msgstr "Zmienna nie została zainicjalizowana" -msgid "\\Use the purple pencil" -msgstr "\\Abaisse le crayon violet" +msgid "Negative value rejected by \"throw\"" +msgstr "Wartość ujemna odrzucona przez \"throw\"" -msgid "\\Use the red pencil" -msgstr "\\Abaisse le crayon rouge" +msgid "The function returned no value " +msgstr "Funkcja nie zwróciła żadnej wartości " -msgid "\\Use the yellow pencil" -msgstr "\\Abaisse le crayon jaune" +msgid "No function running" +msgstr "Żadna funkcja nie działa" -msgid "\\Violet flags" -msgstr "\\Fioletowe flagi" +msgid "Calling an unknown function" +msgstr "Odwołanie do nieznanej funkcji" -msgid "\\Yellow flags" -msgstr "\\Żółte flagi" +msgid "This class does not exist" +msgstr "Taka klasa nie istnieje" -msgid "\\b;Aliens\n" -msgstr "\\b;Obcy\n" +msgid "Unknown Object" +msgstr "Obiekt nieznany" -msgid "\\b;Buildings\n" -msgstr "\\b;Budynki\n" +msgid "Operation impossible with value \"nan\"" +msgstr "Działanie niemożliwe z wartością \"nan\"" -msgid "\\b;Error\n" -msgstr "\\b;Błąd\n" +msgid "Access beyond array limit" +msgstr "Dostęp poza tablicę" -msgid "\\b;List of objects\n" -msgstr "\\b;Lista obiektów\n" +msgid "Stack overflow" +msgstr "Przepełnienie stosu" -msgid "\\b;Moveable objects\n" -msgstr "\\b;Obiekty ruchome\n" +msgid "Illegal object" +msgstr "Nieprawidłowy obiekt" -msgid "\\b;Robots\n" -msgstr "\\b;Roboty\n" +msgid "Can't open file" +msgstr "Nie można otworzyć pliku" -msgid "\\c; (none)\\n;\n" -msgstr "\\c; (brak)\\n;\n" +msgid "File not open" +msgstr "Plik nie jest otwarty" -msgid "action;" -msgstr "action;" +msgid "Read error" +msgstr "Błąd odczytu" -msgid "away;" -msgstr "away;" +msgid "Write error" +msgstr "Błąd zapisu" -msgid "camera;" -msgstr "camera;" +msgid "left;" +msgstr "left;" -msgid "cbot;" -msgstr "cbot;" +msgid "right;" +msgstr "right;" -msgid "desel;" -msgstr "desel;" +msgid "up;" +msgstr "up;" msgid "down;" msgstr "down;" -msgid "gdown;" -msgstr "gdown;" - msgid "gup;" msgstr "gup;" -msgid "help;" -msgstr "help;" +msgid "gdown;" +msgstr "gdown;" -msgid "human;" -msgstr "human;" +msgid "camera;" +msgstr "camera;" -msgid "left;" -msgstr "left;" +msgid "desel;" +msgstr "desel;" + +msgid "action;" +msgstr "action;" msgid "near;" msgstr "near;" +msgid "away;" +msgstr "away;" + msgid "next;" msgstr "next;" -msgid "prog;" -msgstr "prog;" +msgid "human;" +msgstr "human;" msgid "quit;" msgstr "quit;" -msgid "right;" -msgstr "right;" +msgid "help;" +msgstr "help;" + +msgid "prog;" +msgstr "prog;" + +msgid "cbot;" +msgstr "cbot;" + +msgid "visit;" +msgstr "visit;" msgid "speed10;" msgstr "speed10;" @@ -1838,14 +1831,30 @@ msgstr "speed15;" msgid "speed20;" msgstr "speed20;" -msgid "up;" -msgstr "up;" +msgid "Ctrl" +msgstr "Ctrl" -msgid "visit;" -msgstr "visit;" +msgid "Shift" +msgstr "Shift" -msgid "www.epsitec.com" -msgstr "www.epsitec.com" +msgid "Alt" +msgstr "Alt" + +msgid "Win" +msgstr "Win" + +msgid "Button %1" +msgstr "Przycisk %1" + +msgid "%1" +msgstr "%1" + +#~ msgid "Menu (\\key quit;)" +#~ msgstr "Menu (\\key quit;)" + +#, c-format +#~ msgid "GetResource event num out of range: %d\n" +#~ msgstr "GetResource numer zdarzenia poza zakresem: %d\n" #~ msgid "< none >" #~ msgstr "< brak >" @@ -1973,9 +1982,6 @@ msgstr "www.epsitec.com" #~ msgid "F9" #~ msgstr "F9" -#~ msgid "GetResource event num out of range: %d\n" -#~ msgstr "GetResource numer zdarzenia poza zakresem: %d\n" - #~ msgid "Help" #~ msgstr "Pomoc" @@ -1988,9 +1994,6 @@ msgstr "www.epsitec.com" #~ msgid "Left Windows" #~ msgstr "Lewy klawisz Windows" -#~ msgid "Menu (\\key quit;)" -#~ msgstr "Menu (\\key quit;)" - #~ msgid "Mini-map" #~ msgstr "Mapka" diff --git a/po/ru.po b/po/ru.po index aa3383f..288adca 100644 --- a/po/ru.po +++ b/po/ru.po @@ -18,1805 +18,1798 @@ msgstr "" "X-Language: ru_RU\n" "X-Source-Language: en_US\n" -msgid " " -msgstr " " - -msgid " Challenges in the chapter:" -msgstr " Задачи к главе:" - -msgid " Chapters:" -msgstr " Разделы:" - -msgid " Drivers:" -msgstr " Драйверы:" +msgid "Colobot rules!" +msgstr "Правила игры!" -msgid " Exercises in the chapter:" -msgstr " Упражнения в разделе:" +msgid "SatCom" +msgstr "SatCom" -msgid " Free game on this chapter:" -msgstr " Свободная игра на этой главе:" +msgid "Maximize" +msgstr "Развернуть" -msgid " Free game on this planet:" -msgstr " Свободная игра на этой планете:" +msgid "Minimize" +msgstr "Свернуть" -msgid " Missions on this level:" -msgstr " Миссии на этом уровне:" +msgid "Normal size" +msgstr "Нормальный размер" -msgid " Missions on this planet:" -msgstr "Миссии на этой планете:" +msgid "Close" +msgstr "Закрыть" -msgid " Planets:" -msgstr " Планеты:" +msgid "Program editor" +msgstr "Редактор программ" -msgid " Resolution:" -msgstr " Разрешение:" +msgid "New" +msgstr "Новый" -msgid " Summary:" -msgstr " Итог:" +msgid "Player" +msgstr "Игрок" -msgid " User levels:" -msgstr " Пользовательские уровни:" +msgid "New ..." +msgstr "Новый ..." msgid " or " msgstr " или " -msgid "\" [ \" expected" -msgstr "Ожидалось \" [ \"" +msgid "COLOBOT" +msgstr "КОЛОБОТ" -msgid "\" ] \" missing" -msgstr "Отсутствует \"]\" " +msgid "COLOBOT: Gold Edition" +msgstr "" -#, c-format -msgid "\"%s\" missing in this exercise" -msgstr "\"%s\" отсутствует в этом упражнении" +msgid "Programming exercises" +msgstr "Упражнения" -msgid "%1" -msgstr "%1" +msgid "Challenges" +msgstr "Задания" -msgid "..behind" -msgstr "Сзади" +msgid "Missions" +msgstr "Миссии" -msgid "..in front" -msgstr "Спереди" +msgid "Free game" +msgstr "Свободная игра" -msgid "..power cell" -msgstr "Батарею" +msgid "User levels" +msgstr "Пользовательские уровни" -msgid "1) First click on the key you want to redefine." -msgstr "1) Сначала нажми на клавишу, которую вы хотите переопределить." +msgid "Options" +msgstr "Опции" -msgid "2) Then press the key you want to use instead." -msgstr "2) После этого нажмите на клавишу, которую вы хотите использовать." +msgid "Player's name" +msgstr "Имя игрока" -msgid "3D sound\\3D positioning of the sound" -msgstr "3D-звук\\Стерео звук" +msgid "Customize your appearance" +msgstr "Настроить свой внешний вид" -msgid "<< Back \\Back to the previous screen" -msgstr "<< Назад \\Вернуться на предыдущую страницу" +msgid "Save the current mission" +msgstr "Сохранить" -msgid "<<< Sorry; mission failed >>>" -msgstr "<<< Миссия провалена >>>" +msgid "Load a saved mission" +msgstr "Загрузить" -msgid "<<< Well done; mission accomplished >>>" -msgstr "<<< Отлично, миссия выполнена >>>" +msgid " Chapters:" +msgstr " Разделы:" -msgid "A label must be followed by \"for\"; \"while\"; \"do\" or \"switch\"" -msgstr "За меткой должен быть \"for\", \"while\", \"do\" или \"switch\"" +msgid " Planets:" +msgstr " Планеты:" -msgid "A variable can not be declared twice" -msgstr "Переменная не может быть объявлена дважды" +msgid " User levels:" +msgstr " Пользовательские уровни:" -msgid "Abort\\Abort the current mission" -msgstr "Выход\\Прервать текущую миссию" +msgid " Exercises in the chapter:" +msgstr " Упражнения в разделе:" -msgid "Access beyond array limit" -msgstr "Доступ к массиву за предел" +msgid " Challenges in the chapter:" +msgstr " Задачи к главе:" -msgid "" -"Access to solution\\Shows the solution (detailed instructions for missions)" -msgstr "Доступ к решению\\Показывает решение (подробные инструкции для миссий)" +msgid " Missions on this planet:" +msgstr "Миссии на этой планете:" -msgid "Access to solutions\\Show program \"4: Solution\" in the exercises" -msgstr "Доступ к решению\\Показывает решение \"4: Решение\" в упражнениях" +msgid " Free game on this planet:" +msgstr " Свободная игра на этой планете:" -msgid "Alien Queen" -msgstr "Королева чужих" +msgid " Missions on this level:" +msgstr " Миссии на этом уровне:" -msgid "Alien Queen killed" -msgstr "Королева чужих убита" +msgid " Free game on this chapter:" +msgstr " Свободная игра на этой главе:" -msgid "Already carrying something" -msgstr "Уже что-то несу" +msgid " Summary:" +msgstr " Итог:" -msgid "Alt" -msgstr "Alt" +msgid " Drivers:" +msgstr " Драйверы:" -msgid "Analysis already performed" -msgstr "Анализ уже выполнен" +msgid " Resolution:" +msgstr " Разрешение:" -msgid "Analysis performed" -msgstr "Анализ выполнен" +msgid "1) First click on the key you want to redefine." +msgstr "1) Сначала нажми на клавишу, которую вы хотите переопределить." -msgid "Analyzes only organic matter" -msgstr "Анализирую только органические вещества" +msgid "2) Then press the key you want to use instead." +msgstr "2) После этого нажмите на клавишу, которую вы хотите использовать." -msgid "Ant" -msgstr "Муравей" +msgid "Face type:" +msgstr "Лицо:" -msgid "Ant fatally wounded" -msgstr "Муравей смертельно ранен" +msgid "Eyeglasses:" +msgstr "Очки:" -msgid "Appearance\\Choose your appearance" -msgstr "Внешность\\Настройка внешности" +msgid "Hair color:" +msgstr "Волосы:" -msgid "Apply changes\\Activates the changed settings" -msgstr "Принять\\Принять изменения настроек" +msgid "Suit color:" +msgstr "Костюм:" -msgid "Appropriate constructor missing" -msgstr "Соответствующий конструктор отсутствует" +msgid "Strip color:" +msgstr "Цвет полос" -msgid "Assignment impossible" -msgstr "Назначение невозможно" +msgid "Do you want to quit COLOBOT ?" +msgstr "Вы хотите закрыть COLOBOT?" -msgid "Autolab" -msgstr "Лаборатория" +msgid "Quit\\Quit COLOBOT" +msgstr "Выход\\Выход из COLOBOT" -msgid "Automatic indent\\When program editing" -msgstr "Автоматический отступ\\При редактировании программы" +msgid "Quit the mission?" +msgstr "Завершить миссию?" -msgid "Back" -msgstr "Назад" +msgid "Abort\\Abort the current mission" +msgstr "Выход\\Прервать текущую миссию" -msgid "Background sound :\\Volume of audio tracks on the CD" -msgstr "Фоновый звук:\\Громкость звуковых дорожек на CD" +msgid "Continue\\Continue the current mission" +msgstr "Продолжить\\Продолжить текущую миссию" -msgid "Backward (\\key down;)" -msgstr "Назад (\\key down;)" +msgid "Continue\\Continue the game" +msgstr "Продолжить\\Продолжить игру" -msgid "Backward\\Moves backward" -msgstr "Назад\\Двигаться назад" +msgid "Do you really want to destroy the selected building?" +msgstr "Вы действительно хотите уничтожить выбранное здание?" -msgid "Bad argument for \"new\"" -msgstr "Неверный аргумент для \"new\"" +#, c-format +msgid "Do you want to delete %s's saved games? " +msgstr "Вы действительно хотите удалить сохраненные игры игрока %s?" -msgid "Big indent\\Indent 2 or 4 spaces per level defined by braces" -msgstr "Большой отступ\\Отступать на 2 или 4 пробела, в зависимости от скобок" +msgid "Delete" +msgstr "Удалить" -msgid "Black box" -msgstr "Черный ящик" +msgid "Cancel" +msgstr "Отмена" -msgid "Blue" -msgstr "Синий" +msgid "LOADING" +msgstr "ЗАГРУЗКА" -msgid "Blue flag" -msgstr "Синий флаг" +msgid "Keyword help(\\key cbot;)" +msgstr "Помощь(\\key cbot;)" -msgid "Bot destroyed" -msgstr "Бот уничтожен" +msgid "Compilation ok (0 errors)" +msgstr "Компиляция завершена (0 ошибок)" -msgid "Bot factory" -msgstr "Завод ботов" +msgid "Program finished" +msgstr "Программа выполнена" -msgid "Build a bot factory" -msgstr "Построить завод ботов" +msgid "\\b;List of objects\n" +msgstr "\\b;Список объектов\n" -msgid "Build a converter" -msgstr "Построить преобразователь" +msgid "\\b;Robots\n" +msgstr "\\b;Роботы\n" -msgid "Build a defense tower" -msgstr "Построить защитную башню" +msgid "\\b;Buildings\n" +msgstr "\\b;Здания\n" -msgid "Build a derrick" -msgstr "Построить буровую вышку" +msgid "\\b;Moveable objects\n" +msgstr "\\b;Подвижные объекты\n" -msgid "Build a destroyer" -msgstr "" +msgid "\\b;Aliens\n" +msgstr "\\b;Чужаки\n" -msgid "Build a exchange post" -msgstr "Построить пост по обмену сообщениями" +msgid "\\c; (none)\\n;\n" +msgstr "" +"\\c; (нет)\\n" +";\n" -msgid "Build a legged grabber" -msgstr "Собрать шагающего сборщика" +msgid "\\b;Error\n" +msgstr "\\b;Ошибка\n" -msgid "Build a legged orga shooter" -msgstr "Собрать шагающего орга-стрелка" +msgid "" +"The list is only available if a \\l;radar station\\u object\\radar; is " +"working.\n" +msgstr "" +"Список доступен только если \\l;radar station\\u object\\radar; работают\n" -msgid "Build a legged shooter" -msgstr "Собрать шагающего стрелка" +msgid "Open" +msgstr "Открыть" -msgid "Build a legged sniffer" -msgstr "Собрать шагающего искателя" +msgid "Save" +msgstr "Сохранить" -msgid "Build a lightning conductor" -msgstr "Построить громоотвод" +#, c-format +msgid "Folder: %s" +msgstr "Папка: %s" -msgid "Build a nuclear power plant" -msgstr "Построить завод атомных батарей (неперезаряж.)" +msgid "Name:" +msgstr "Имя:" -msgid "Build a phazer shooter" -msgstr "Собрать фазового стрелка" +msgid "Folder:" +msgstr "Папка" -msgid "Build a power cell factory" -msgstr "Построить завод перезаряжаемых батарей" +msgid "Private\\Private folder" +msgstr "Личное\\Личная папка" -msgid "Build a power station" -msgstr "Построить электростанцию" +msgid "Public\\Common folder" +msgstr "Общее\\Общая папка" -msgid "Build a radar station" -msgstr "Построить радарную станцию" +msgid "Developed by :" +msgstr "Разработка :" -msgid "Build a recycler" -msgstr "Собрать утилизатор" +msgid "www.epsitec.com" +msgstr "www.epsitec.com" -msgid "Build a repair center" -msgstr "Построить ремонтный пункт" +msgid " " +msgstr " " -msgid "Build a research center" -msgstr "Построить научно-исследовательский центр" +msgid "Recorder" +msgstr "Запись" -msgid "Build a shielder" -msgstr "Собрать передвижной щит" +msgid "OK" +msgstr "ОК" -msgid "Build a subber" -msgstr "Собрать саббера" +msgid "Next" +msgstr "Следующий" -msgid "Build a thumper" -msgstr "Собрать ударника" +msgid "Previous" +msgstr "Предыдущий" -msgid "Build a tracked grabber" -msgstr "Собрать гусеничного сборщика" +msgid "Exercises\\Programming exercises" +msgstr "Упражнения\\Упражнения по программированию" -msgid "Build a tracked orga shooter" -msgstr "Собрать гусеничного орга-стрелка" +msgid "Challenges\\Programming challenges" +msgstr "Задания\\Практика программирования" -msgid "Build a tracked shooter" -msgstr "Собрать гусеничного стрелка" +msgid "Missions\\Select mission" +msgstr "Миссии\\Выбор миссии" -msgid "Build a tracked sniffer" -msgstr "Собрать гусеничного искателя" +msgid "Free game\\Free game without a specific goal" +msgstr "Свобод. игра\\Игра без четкой цели" -msgid "Build a wheeled grabber" -msgstr "Собрать колесного сборщика" +msgid "User\\User levels" +msgstr "Польз.\\Пользовательские уровни" -msgid "Build a wheeled orga shooter" -msgstr "Собрать колесного орга-стрелка" +msgid "Change player\\Change player" +msgstr "Новый игрок\\Выберите имя для игрока" -msgid "Build a wheeled shooter" -msgstr "Собрать колесного стрелка" +msgid "Options\\Preferences" +msgstr "Опции\\Настройки" -msgid "Build a wheeled sniffer" -msgstr "Собрать колесного искателя" +msgid "Restart\\Restart the mission from the beginning" +msgstr "Заново\\Начать данную миссию с начала" -msgid "Build a winged grabber" -msgstr "Собрать летающего сборщика" +msgid "Save\\Save the current mission " +msgstr "Сохранить\\Сохранить текущую миссию" -msgid "Build a winged orga shooter" -msgstr "Собрать летающего орга-стрелка" +msgid "Load\\Load a saved mission" +msgstr "Загрузить\\Загрузить сохраненную миссию" -msgid "Build a winged shooter" -msgstr "Собрать летающего стрелка" +msgid "\\Return to COLOBOT" +msgstr "\\Вернуться в COLOBOT" -msgid "Build a winged sniffer" -msgstr "Собрать летающего искателя" +msgid "<< Back \\Back to the previous screen" +msgstr "<< Назад \\Вернуться на предыдущую страницу" -msgid "Build an autolab" -msgstr "Построить лабораторию" +msgid "Play\\Start mission!" +msgstr "Начать\\Перейти к выполнению миссии!" -msgid "Building completed" -msgstr "Здание построено" +msgid "Device\\Driver and resolution settings" +msgstr "Устройство\\Драйвер и настройки разрешения" -msgid "Building destroyed" -msgstr "Здание разрушено" +msgid "Graphics\\Graphics settings" +msgstr "Графика\\Настройки графики" -msgid "Building too close" -msgstr "Здание слишком близко" +msgid "Game\\Game settings" +msgstr "Игра\\Настройки игры" -msgid "Button %1" -msgstr "Кнопка %1" +msgid "Controls\\Keyboard, joystick and mouse settings" +msgstr "Управление\\Настройки клавиатуры, джойстика и мыши" -msgid "COLOBOT" -msgstr "КОЛОБОТ" +msgid "Sound\\Music and game sound volume" +msgstr "Звук\\Громкость музыки и звуков" -msgid "COLOBOT: Gold Edition" -msgstr "" +msgid "Unit" +msgstr "Юнит" -msgid "Calling an unknown function" -msgstr "Вызов неизвестной функции" +msgid "Resolution" +msgstr "Разрешение" -msgid "Camera (\\key camera;)" -msgstr "Камера (\\key camera;)" +msgid "Full screen\\Full screen or window mode" +msgstr "Во весь экран\\Выбор полноэкранного или оконного режима" -msgid "Camera awayest" -msgstr "Отдалить камеру" +msgid "Apply changes\\Activates the changed settings" +msgstr "Принять\\Принять изменения настроек" -msgid "Camera back\\Moves the camera backward" -msgstr "Отдалить камеру\\Перемещение камеры назад" +msgid "Robbie\\Your assistant" +msgstr "Робби\\Ваш помощник" -msgid "Camera closer\\Moves the camera forward" -msgstr "Приблизать камеру\\Перемещение камеры вперед" +msgid "Shadows\\Shadows on the ground" +msgstr "Тени\\Тени на земле" -msgid "Camera nearest" -msgstr "Приблизить камеру" +msgid "Marks on the ground\\Marks on the ground" +msgstr "Метки на земле\\Метки на земле" -msgid "Camera to left" -msgstr "Камеру влево" +msgid "Dust\\Dust and dirt on bots and buildings" +msgstr "Пыль\\Пыль и грязь на ботах и зданиях" -msgid "Camera to right" -msgstr "Камеру вправо" +msgid "Fog\\Fog" +msgstr "Туман\\Туман" -msgid "Can not create this; there are too many objects" -msgstr "Не удается это создать, слишком много объектов" +msgid "Sunbeams\\Sunbeams in the sky" +msgstr "Солнечные лучи\\Солнечные лучи в небе" -msgid "Can not produce not researched object" -msgstr "" +msgid "Sky\\Clouds and nebulae" +msgstr "Небо\\Облака и туманности" -msgid "Can not produce this object in this mission" -msgstr "" +msgid "Planets and stars\\Astronomical objects in the sky" +msgstr "Планеты и звезды\\Астрономические объекты в небе" -msgid "Can't open file" -msgstr "Невозможно открыть файл" +msgid "Dynamic lighting\\Mobile light sources" +msgstr "Динамическое освещение\\Подвижные источники света" -msgid "Cancel" -msgstr "Отмена" +msgid "Number of particles\\Explosions, dust, reflections, etc." +msgstr "Количество частиц\\Взрывы, пыль, отражения и т.д." -msgid "Cancel\\Cancel all changes" -msgstr "Отмена\\Отменить все изменения" +msgid "Depth of field\\Maximum visibility" +msgstr "Дальность прорисовки\\Максимальная видимость" -msgid "Cancel\\Keep current player name" -msgstr "Отмена\\Отмена" +msgid "Details\\Visual quality of 3D objects" +msgstr "Детали\\Визуальное качество 3D-объектов" -msgid "Challenges" -msgstr "Задания" +msgid "Textures\\Quality of textures " +msgstr "Текстуры\\Качество текстур " -msgid "Challenges\\Programming challenges" -msgstr "Задания\\Практика программирования" +msgid "Num of decorative objects\\Number of purely ornamental objects" +msgstr "Количество декораций\\Количество декоративных объектов" -msgid "Change camera\\Switches between onboard camera and following camera" -msgstr "Изменить вид\\Переключение между бортовой камерой и следящей камерой" +msgid "Particles in the interface\\Steam clouds and sparks in the interface" +msgstr "Частицы в интерфейсе меню\\Пар из труб и искры в интерфейсе меню" -msgid "Change player\\Change player" -msgstr "Новый игрок\\Выберите имя для игрока" +msgid "Reflections on the buttons \\Shiny buttons" +msgstr "Отражения кнопок \\Блестящие кнопки" -msgid "Checkpoint" -msgstr "Контрольная точка" +msgid "Help balloons\\Explain the function of the buttons" +msgstr "Подсказки\\Объяснение функций кнопок" -msgid "Checkpoint crossed" -msgstr "Вы прошли контрольную точку" +msgid "Film sequences\\Films before and after the missions" +msgstr "Показывать видео\\Фильмы до и после миссий" -msgid "Climb\\Increases the power of the jet" -msgstr "Взлет и подъем\\Увеличивает мощность реактивного двигателя" +msgid "Exit film\\Film at the exit of exercises" +msgstr "Ролик при выходе\\Ролик во время выхода из упражнения" -msgid "Close" -msgstr "Закрыть" +msgid "Friendly fire\\Your shooting can damage your own objects " +msgstr "Огонь по своим\\Вы можете повредить собственные объекты" -msgid "Closing bracket missing " -msgstr "Закрывающая скобка отсутствует" +msgid "Scrolling\\Scrolling when the mouse touches right or left border" +msgstr "Прокрутка\\Прокрутка, когда указатель мыши касается граней экрана" -msgid "Colobot rules!" -msgstr "Правила игры!" +msgid "Mouse inversion X\\Inversion of the scrolling direction on the X axis" +msgstr "Инверсия мыши по оси X\\Инверсия прокрутки по оси Х" -msgid "Command line" -msgstr "Командная строка" +msgid "Mouse inversion Y\\Inversion of the scrolling direction on the Y axis" +msgstr "Инверсия мыши по оси Y\\Инверсия прокрутки по оси Y" -msgid "Compass" -msgstr "Компас" +msgid "Quake at explosions\\The screen shakes at explosions" +msgstr "Землетряс. при взрывах\\Тряска экрана при взрывах" -msgid "Compilation ok (0 errors)" -msgstr "Компиляция завершена (0 ошибок)" +msgid "Mouse shadow\\Gives the mouse a shadow" +msgstr "Тень мыши\\Мышь отбрасывает тень" -msgid "Compile" -msgstr "Компилировать" +msgid "Automatic indent\\When program editing" +msgstr "Автоматический отступ\\При редактировании программы" -msgid "Continue" -msgstr "Продолжить" +msgid "Big indent\\Indent 2 or 4 spaces per level defined by braces" +msgstr "Большой отступ\\Отступать на 2 или 4 пробела, в зависимости от скобок" -msgid "Continue\\Continue the current mission" -msgstr "Продолжить\\Продолжить текущую миссию" +msgid "Access to solutions\\Show program \"4: Solution\" in the exercises" +msgstr "Доступ к решению\\Показывает решение \"4: Решение\" в упражнениях" -msgid "Continue\\Continue the game" -msgstr "Продолжить\\Продолжить игру" +msgid "Standard controls\\Standard key functions" +msgstr "Стандартное управление\\Сделать управление по умолчанию" -msgid "Controls\\Keyboard, joystick and mouse settings" -msgstr "Управление\\Настройки клавиатуры, джойстика и мыши" +msgid "Turn left\\turns the bot to the left" +msgstr "Повернуть налево\\Поворот налево" -msgid "Converts ore to titanium" -msgstr "Преобразует руду в титан" +msgid "Turn right\\turns the bot to the right" +msgstr "Повернуть налево\\Поворот налево" -msgid "Copy" -msgstr "Копировать" +msgid "Forward\\Moves forward" +msgstr "Вперед\\Двигаться вперед" -msgid "Copy (Ctrl+c)" -msgstr "Копировать (Ctrl+C)" +msgid "Backward\\Moves backward" +msgstr "Назад\\Двигаться назад" -msgid "Ctrl" -msgstr "Ctrl" +msgid "Climb\\Increases the power of the jet" +msgstr "Взлет и подъем\\Увеличивает мощность реактивного двигателя" -msgid "Current mission saved" -msgstr "Текущая миссия сохранена" +msgid "Descend\\Reduces the power of the jet" +msgstr "Снижение и посадка\\Понижение мощности реактивного двигателя" -msgid "Customize your appearance" -msgstr "Настроить свой внешний вид" +msgid "Change camera\\Switches between onboard camera and following camera" +msgstr "Изменить вид\\Переключение между бортовой камерой и следящей камерой" -msgid "Cut (Ctrl+x)" -msgstr "Вырезать (Ctrl+X)" +msgid "Previous object\\Selects the previous object" +msgstr "Предыдущий объект\\Выбор предыдущего объекта" -msgid "Defense tower" -msgstr "Защитная башня" +msgid "" +"Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)" +msgstr "" +"Стандартное действие\\Стандартное действие бота (брать/взять, стрелять, " +"искать и т.д.)" -msgid "Delete" -msgstr "Удалить" +msgid "Camera closer\\Moves the camera forward" +msgstr "Приблизать камеру\\Перемещение камеры вперед" -msgid "Delete player\\Deletes the player from the list" -msgstr "Удалить игрока\\Удаление игрока из списка" +msgid "Camera back\\Moves the camera backward" +msgstr "Отдалить камеру\\Перемещение камеры назад" -msgid "Delete\\Deletes the selected file" -msgstr "Удалить\\Удаление выбранного файла" +msgid "Next object\\Selects the next object" +msgstr "Следующий объект\\Выбор следующего объекта" -msgid "Depth of field\\Maximum visibility" -msgstr "Дальность прорисовки\\Максимальная видимость" +msgid "Select the astronaut\\Selects the astronaut" +msgstr "Выбор астронавта\\Выбор астронавта" -msgid "Derrick" -msgstr "Космический корабль" +msgid "Quit\\Quit the current mission or exercise" +msgstr "Выход\\Выход из текущей миссии" -msgid "Descend\\Reduces the power of the jet" -msgstr "Снижение и посадка\\Понижение мощности реактивного двигателя" +msgid "Instructions\\Shows the instructions for the current mission" +msgstr "Инструкции\\Показывает инструкции по текущей миссии" + +msgid "Programming help\\Gives more detailed help with programming" +msgstr "" +"Помощь в программировании\\Дает более детальную помощь в программировании" + +msgid "Key word help\\More detailed help about key words" +msgstr "Помощь по командам\\Более подробная справку по командам" -msgid "Destroy" +msgid "Origin of last message\\Shows where the last message was sent from" msgstr "" +"Источник сообщения\\Показывает место, откуда было отправлено последнеее " +"сообщение" -msgid "Destroy the building" -msgstr "Уничтожить здание" - -msgid "Destroyer" -msgstr "Уничтожитель" +msgid "Speed 1.0x\\Normal speed" +msgstr "Скорость 1.0х\\Нормальная скорость" -msgid "Details\\Visual quality of 3D objects" -msgstr "Детали\\Визуальное качество 3D-объектов" +msgid "Speed 1.5x\\1.5 times faster" +msgstr "Скорость 1.5х\\В полтора раза быстрее" -msgid "Developed by :" -msgstr "Разработка :" +msgid "Speed 2.0x\\Double speed" +msgstr "Скорость 2.0х\\В два раза скорость" -msgid "Device\\Driver and resolution settings" -msgstr "Устройство\\Драйвер и настройки разрешения" +msgid "Speed 3.0x\\Three times faster" +msgstr "Скорость 3.0х\\В три раза быстрее" -msgid "Dividing by zero" -msgstr "Деление на ноль (запрещено!)" +msgid "Sound effects:\\Volume of engines, voice, shooting, etc." +msgstr "Общий звук:\\Гормкость двигателя, голоса, стрельбы и т.д." -msgid "Do not use in this exercise" -msgstr "Не используй в этом упражнении" +msgid "Background sound :\\Volume of audio tracks on the CD" +msgstr "Фоновый звук:\\Громкость звуковых дорожек на CD" -msgid "Do you really want to destroy the selected building?" -msgstr "Вы действительно хотите уничтожить выбранное здание?" +msgid "3D sound\\3D positioning of the sound" +msgstr "3D-звук\\Стерео звук" -#, c-format -msgid "Do you want to delete %s's saved games? " -msgstr "Вы действительно хотите удалить сохраненные игры игрока %s?" +msgid "Lowest\\Minimum graphic quality (highest frame rate)" +msgstr "Низкое\\Минимальное качество графики (быстро)" -msgid "Do you want to quit COLOBOT ?" -msgstr "Вы хотите закрыть COLOBOT?" +msgid "Normal\\Normal graphic quality" +msgstr "Средн.\\Нормальное качество графики" -msgid "Doors blocked by a robot or another object " -msgstr "Двери заблокированы роботом или другим объектом" +msgid "Highest\\Highest graphic quality (lowest frame rate)" +msgstr "Высок.\\Самые высокие настройки графики (лучшее качество)" -msgid "Down (\\key gdown;)" -msgstr "Вниз (\\key gdown;)" +msgid "Mute\\No sound" +msgstr "Без звука\\Без звука" -msgid "Drawer bot" -msgstr "Рисовальщик" +msgid "Normal\\Normal sound volume" +msgstr "Нормально\\Нормальная громкость" -msgid "Dust\\Dust and dirt on bots and buildings" -msgstr "Пыль\\Пыль и грязь на ботах и зданиях" +msgid "Use a joystick\\Joystick or keyboard" +msgstr "Использовать джойстик\\Джойстик или клавиатура" -msgid "Dynamic lighting\\Mobile light sources" -msgstr "Динамическое освещение\\Подвижные источники света" +msgid "" +"Access to solution\\Shows the solution (detailed instructions for missions)" +msgstr "Доступ к решению\\Показывает решение (подробные инструкции для миссий)" -msgid "Edit the selected program" -msgstr "Изменить выбранную программу" +msgid "\\New player name" +msgstr "\\Новое имя" -msgid "Egg" -msgstr "Яйцо" +msgid "OK\\Choose the selected player" +msgstr "ОК\\Выбрать игрока" -msgid "End of block missing" -msgstr "Отсутствует конец блока" +msgid "Cancel\\Keep current player name" +msgstr "Отмена\\Отмена" -msgid "Energy deposit (site for power station)" -msgstr "Запасы энергии (место для электростанций)" +msgid "Delete player\\Deletes the player from the list" +msgstr "Удалить игрока\\Удаление игрока из списка" -msgid "Energy level" -msgstr "Уровень энергии" +msgid "Player name" +msgstr "Имя игрока" -msgid "Engineer" -msgstr "Инженер" +msgid "Save\\Saves the current mission" +msgstr "Сохранить\\Сохранить текущую миссию" -msgid "Error in instruction move" -msgstr "Ошибка движения" +msgid "Load\\Loads the selected mission" +msgstr "Загрузить\\Загрузить выбранную миссию" -msgid "Execute the selected program" -msgstr "Выполнить выбранную программу" +msgid "List of saved missions" +msgstr "Список сохраненных миссий" -msgid "Execute/stop" -msgstr "Выполнить/стоп" +msgid "Filename:" +msgstr "Имя файла:" -msgid "Exercises\\Programming exercises" -msgstr "Упражнения\\Упражнения по программированию" +msgid "Mission name" +msgstr "Название миссии" -msgid "Exit film\\Film at the exit of exercises" -msgstr "Ролик при выходе\\Ролик во время выхода из упражнения" +msgid "Photography" +msgstr "Фотография" -msgid "Explode (\\key action;)" -msgstr "" +msgid "Delete\\Deletes the selected file" +msgstr "Удалить\\Удаление выбранного файла" -msgid "Explosive" -msgstr "Взрывчатка" +msgid "Appearance\\Choose your appearance" +msgstr "Внешность\\Настройка внешности" -msgid "Extend shield (\\key action;)" -msgstr "Поднять щит (\\key action;)" +msgid "Standard\\Standard appearance settings" +msgstr "По умолчанию\\Настройки внешнего вида по умолчанию" -msgid "Eyeglasses:" -msgstr "Очки:" +msgid "Head\\Face and hair" +msgstr "Голова\\Лицо и волосы" -msgid "Face type:" -msgstr "Лицо:" +msgid "Suit\\Astronaut suit" +msgstr "Костюм\\Костюм астронавта" -msgid "File not open" -msgstr "Файл не открыт" +msgid "\\Turn left" +msgstr "\\Повернуть налево" -msgid "Filename:" -msgstr "Имя файла:" +msgid "\\Turn right" +msgstr "\\Повернуть направо" -msgid "Film sequences\\Films before and after the missions" -msgstr "Показывать видео\\Фильмы до и после миссий" +msgid "Red" +msgstr "Красный" -msgid "Finish" -msgstr "Финиш" +msgid "Green" +msgstr "Зеленый" -msgid "Fixed mine" -msgstr "Мина" +msgid "Blue" +msgstr "Синий" -msgid "Flat ground not large enough" -msgstr "Недостаточно плоской земли" +msgid "\\Face 1" +msgstr "Лицо 1" -msgid "Fog\\Fog" -msgstr "Туман\\Туман" +msgid "\\Face 4" +msgstr "\\Лицо 4" -msgid "Folder:" -msgstr "Папка" +msgid "\\Face 3" +msgstr "\\Лицо 3" -#, c-format -msgid "Folder: %s" -msgstr "Папка: %s" +msgid "\\Face 2" +msgstr "\\Лицо 4" -msgid "Font size" -msgstr "Размер шрифта" +msgid "\\No eyeglasses" +msgstr "\\Без очков" -msgid "Forward" -msgstr "Вперед" +msgid "\\Eyeglasses 1" +msgstr "\\Очки 1" -msgid "Forward (\\key up;)" -msgstr "Вперед (\\key up;)" +msgid "\\Eyeglasses 2" +msgstr "\\Очки 2" -msgid "Forward\\Moves forward" -msgstr "Вперед\\Двигаться вперед" +msgid "\\Eyeglasses 3" +msgstr "\\Очки 3" -msgid "Found a site for a derrick" -msgstr "Найдено место для буровой вышки" +msgid "\\Eyeglasses 4" +msgstr "\\Очки 4" -msgid "Found a site for power station" -msgstr "Найдено место для электростанции" +msgid "\\Eyeglasses 5" +msgstr "\\Очки 5" -msgid "Found key A (site for derrick)" -msgstr "Найден ключ A (место для буровой вышки)" +msgid "Previous selection (\\key desel;)" +msgstr "Предыдущий выбор (\\key desel;)" -msgid "Found key B (site for derrick)" -msgstr "Найден ключ B (место для буровой вышки)" +msgid "Turn left (\\key left;)" +msgstr "Налево (\\key left;)" -msgid "Found key C (site for derrick)" -msgstr "Найден ключ C (место для буровой вышки)" +msgid "Turn right (\\key right;)" +msgstr "Направо (\\key right;)" -msgid "Found key D (site for derrick)" -msgstr "Найден ключ D (место для буровой вышки)" +msgid "Forward (\\key up;)" +msgstr "Вперед (\\key up;)" -msgid "Free game" -msgstr "Свободная игра" +msgid "Backward (\\key down;)" +msgstr "Назад (\\key down;)" -msgid "Free game\\Free game without a specific goal" -msgstr "Свобод. игра\\Игра без четкой цели" +msgid "Up (\\key gup;)" +msgstr "Вверх (\\key gup;)" -msgid "Friendly fire\\Your shooting can damage your own objects " -msgstr "Огонь по своим\\Вы можете повредить собственные объекты" +msgid "Down (\\key gdown;)" +msgstr "Вниз (\\key gdown;)" -msgid "Full screen\\Full screen or window mode" -msgstr "Во весь экран\\Выбор полноэкранного или оконного режима" +msgid "Grab or drop (\\key action;)" +msgstr "Взять или бросить (\\key action;)" -msgid "Function already exists" -msgstr "Функция уже существует" +msgid "..in front" +msgstr "Спереди" -msgid "Function name missing" -msgstr "Имя функции отсутствует" +msgid "..behind" +msgstr "Сзади" -msgid "Game speed" -msgstr "Скорость игры" +msgid "..power cell" +msgstr "Батарею" -msgid "Game\\Game settings" -msgstr "Игра\\Настройки игры" +msgid "Instructions for the mission (\\key help;)" +msgstr "Инструкции для миссии (\\key help;)" -msgid "Gantry crane" -msgstr "Козловой кран" +msgid "Take off to finish the mission" +msgstr "Взлететь, чтобы закончить миссию" -msgid "Goto: destination occupied" -msgstr "Перейти: место занято" +msgid "Destroy" +msgstr "" -msgid "Goto: inaccessible destination" -msgstr "Перейти: место недоступно" +msgid "Build a derrick" +msgstr "Построить буровую вышку" -msgid "Grab or drop (\\key action;)" -msgstr "Взять или бросить (\\key action;)" +msgid "Build a power station" +msgstr "Построить электростанцию" -msgid "Graphics\\Graphics settings" -msgstr "Графика\\Настройки графики" +msgid "Build a bot factory" +msgstr "Построить завод ботов" -msgid "Green" -msgstr "Зеленый" +msgid "Build a repair center" +msgstr "Построить ремонтный пункт" -msgid "Green flag" -msgstr "Зеленый флаг" +msgid "Build a converter" +msgstr "Построить преобразователь" -msgid "Ground inappropriate" -msgstr "Земля не подходит" +msgid "Build a defense tower" +msgstr "Построить защитную башню" -msgid "Ground not flat enough" -msgstr "Земля недостаточно плоская" +msgid "Build a research center" +msgstr "Построить научно-исследовательский центр" -msgid "Hair color:" -msgstr "Волосы:" +msgid "Build a radar station" +msgstr "Построить радарную станцию" -msgid "Head\\Face and hair" -msgstr "Голова\\Лицо и волосы" +msgid "Build a power cell factory" +msgstr "Построить завод перезаряжаемых батарей" -msgid "Help about selected object" -msgstr "Справка о выбранном объекте" +msgid "Build an autolab" +msgstr "Построить лабораторию" -msgid "Help balloons\\Explain the function of the buttons" -msgstr "Подсказки\\Объяснение функций кнопок" +msgid "Build a nuclear power plant" +msgstr "Построить завод атомных батарей (неперезаряж.)" -msgid "Highest\\Highest graphic quality (lowest frame rate)" -msgstr "Высок.\\Самые высокие настройки графики (лучшее качество)" +msgid "Build a lightning conductor" +msgstr "Построить громоотвод" -msgid "Home" -msgstr "Домой" +msgid "Build a exchange post" +msgstr "Построить пост по обмену сообщениями" -msgid "Houston Mission Control" -msgstr "Центр управления Хьюстон" +msgid "Build a destroyer" +msgstr "" -msgid "Illegal object" -msgstr "Запрещенный объект" +msgid "Show if the ground is flat" +msgstr "Показывать плоскую землю" -msgid "Impossible under water" -msgstr "Невозможно под водой" +msgid "Plant a flag" +msgstr "Установить флаг" -msgid "Impossible when carrying an object" -msgstr "Невозможно при движении с объектом" +msgid "Remove a flag" +msgstr "Удалить флаг" -msgid "Impossible when flying" -msgstr "Невозможно в полете" +msgid "\\Blue flags" +msgstr "\\Синий флаг" -msgid "Impossible when moving" -msgstr "Невозможно в движении" +msgid "\\Red flags" +msgstr "\\Красный флаг" -msgid "Impossible when swimming" -msgstr "Невозможно в воде" +msgid "\\Green flags" +msgstr "\\Зеленый флаг" -msgid "Inappropriate bot" -msgstr "Неверный бот" +msgid "\\Yellow flags" +msgstr "\\Желтый флаг" -msgid "Inappropriate cell type" -msgstr "Батарея не подходит" +msgid "\\Violet flags" +msgstr "\\Фиолетовый флаг" -msgid "Inappropriate object" -msgstr "" +msgid "Build a winged grabber" +msgstr "Собрать летающего сборщика" -msgid "Incorrect index type" -msgstr "Неверный тип индекса" +msgid "Build a tracked grabber" +msgstr "Собрать гусеничного сборщика" -msgid "Infected by a virus; temporarily out of order" -msgstr "Заражено вирусом. Временно вышел из строя" +msgid "Build a wheeled grabber" +msgstr "Собрать колесного сборщика" -msgid "Information exchange post" -msgstr "Пост обмена информацией" +msgid "Build a legged grabber" +msgstr "Собрать шагающего сборщика" -msgid "Instruction \"break\" outside a loop" -msgstr "Инструкция \"break\" вне цикла" +msgid "Build a winged shooter" +msgstr "Собрать летающего стрелка" -msgid "Instruction \"case\" missing" -msgstr "Отсутствует инструкция \"case\"" +msgid "Build a tracked shooter" +msgstr "Собрать гусеничного стрелка" -msgid "Instruction \"case\" outside a block \"switch\"" -msgstr "Инструкция \"case\" вне блока \"switch\" " +msgid "Build a wheeled shooter" +msgstr "Собрать колесного стрелка" -msgid "Instruction \"else\" without corresponding \"if\" " -msgstr "Инструкция \"else\" без \"if\" " +msgid "Build a legged shooter" +msgstr "Собрать шагающего стрелка" -msgid "Instructions (\\key help;)" -msgstr "Инструкции (\\key help;)" +msgid "Build a winged orga shooter" +msgstr "Собрать летающего орга-стрелка" -msgid "Instructions after the final closing brace" -msgstr "Инструкция после последней закрывающей фигурной скобки" +msgid "Build a tracked orga shooter" +msgstr "Собрать гусеничного орга-стрелка" -msgid "Instructions for the mission (\\key help;)" -msgstr "Инструкции для миссии (\\key help;)" +msgid "Build a wheeled orga shooter" +msgstr "Собрать колесного орга-стрелка" -msgid "Instructions from Houston" -msgstr "Инструкции из Хьюстона" +msgid "Build a legged orga shooter" +msgstr "Собрать шагающего орга-стрелка" -msgid "Instructions\\Shows the instructions for the current mission" -msgstr "Инструкции\\Показывает инструкции по текущей миссии" +msgid "Build a winged sniffer" +msgstr "Собрать летающего искателя" -msgid "Internal error - tell the developers" -msgstr "" +msgid "Build a tracked sniffer" +msgstr "Собрать гусеничного искателя" -msgid "Jet temperature" -msgstr "Температура реактивного двигателя" +msgid "Build a wheeled sniffer" +msgstr "Собрать колесного искателя" -msgid "Key A" -msgstr "Ключ А" +msgid "Build a legged sniffer" +msgstr "Собрать шагающего искателя" -msgid "Key B" -msgstr "Ключ B" +msgid "Build a thumper" +msgstr "Собрать ударника" -msgid "Key C" -msgstr "Ключ C" +msgid "Build a phazer shooter" +msgstr "Собрать фазового стрелка" -msgid "Key D" -msgstr "Ключ D" +msgid "Build a recycler" +msgstr "Собрать утилизатор" -msgid "Key word help\\More detailed help about key words" -msgstr "Помощь по командам\\Более подробная справку по командам" +msgid "Build a shielder" +msgstr "Собрать передвижной щит" -msgid "Keyword \"while\" missing" -msgstr "Нет ключевого слова \"while\" " +msgid "Build a subber" +msgstr "Собрать саббера" -msgid "Keyword help(\\key cbot;)" -msgstr "Помощь(\\key cbot;)" +msgid "Run research program for tracked bots" +msgstr "Начать исследование программы для гусеничного бота " -msgid "LOADING" -msgstr "ЗАГРУЗКА" +msgid "Run research program for winged bots" +msgstr "Начать исследование программы для летающего бота" -msgid "Legged grabber" -msgstr "Шагающий сборщик" +msgid "Run research program for thumper" +msgstr "Начать исследование программы для ударника" -msgid "Legged orga shooter" -msgstr "Шагающий орга-стрелка" +msgid "Run research program for shooter" +msgstr "Начать исследование программы для стрелка" -msgid "Legged shooter" -msgstr "Шагающий стрелок" +msgid "Run research program for defense tower" +msgstr "Начать исследование программы для защитной башни" -msgid "Legged sniffer" -msgstr "Шагающий искатель" +msgid "Run research program for phazer shooter" +msgstr "Начать исследование программы для фазового стрелка" -msgid "Lightning conductor" -msgstr "Громоотвод" +msgid "Run research program for shielder" +msgstr "Начать исследование программы для передвижного щита" -msgid "List of objects" -msgstr "Список объектов" +msgid "Run research program for nuclear power" +msgstr "Начать исследование программы для атомной энергетики" -msgid "List of saved missions" -msgstr "Список сохраненных миссий" +msgid "Run research program for legged bots" +msgstr "Начать исследование программы для шагающих ботов" -msgid "Load a saved mission" -msgstr "Загрузить" +msgid "Run research program for orga shooter" +msgstr "Начать исследование программы для орга-стерлка" -msgid "Load\\Load a saved mission" -msgstr "Загрузить\\Загрузить сохраненную миссию" +msgid "Return to start" +msgstr "Вернуться в начало" -msgid "Load\\Loads the selected mission" -msgstr "Загрузить\\Загрузить выбранную миссию" +msgid "Sniff (\\key action;)" +msgstr "Искать (\\key action;)" -msgid "Lowest\\Minimum graphic quality (highest frame rate)" -msgstr "Низкое\\Минимальное качество графики (быстро)" +msgid "Thump (\\key action;)" +msgstr "Удар (\\key action;)" -msgid "Lunar Roving Vehicle" -msgstr "Луноход" +msgid "Shoot (\\key action;)" +msgstr "Огонь (\\key action;)" -msgid "Marks on the ground\\Marks on the ground" -msgstr "Метки на земле\\Метки на земле" +msgid "Explode (\\key action;)" +msgstr "" -msgid "Maximize" -msgstr "Развернуть" +msgid "Recycle (\\key action;)" +msgstr "Утилизация (\\key action;)" -msgid "Minimize" -msgstr "Свернуть" +msgid "Extend shield (\\key action;)" +msgstr "Поднять щит (\\key action;)" -msgid "Mission name" -msgstr "Название миссии" +msgid "Withdraw shield (\\key action;)" +msgstr "Снять щит (\\key action;)" -msgid "Missions" -msgstr "Миссии" +msgid "Shield radius" +msgstr "Радиус щита" -msgid "Missions\\Select mission" -msgstr "Миссии\\Выбор миссии" +msgid "Execute the selected program" +msgstr "Выполнить выбранную программу" -msgid "Mouse inversion X\\Inversion of the scrolling direction on the X axis" -msgstr "Инверсия мыши по оси X\\Инверсия прокрутки по оси Х" +msgid "Edit the selected program" +msgstr "Изменить выбранную программу" -msgid "Mouse inversion Y\\Inversion of the scrolling direction on the Y axis" -msgstr "Инверсия мыши по оси Y\\Инверсия прокрутки по оси Y" +msgid "\\SatCom on standby" +msgstr "\\SatCom ждет" -msgid "Mouse shadow\\Gives the mouse a shadow" -msgstr "Тень мыши\\Мышь отбрасывает тень" +msgid "Destroy the building" +msgstr "Уничтожить здание" -msgid "Mute\\No sound" -msgstr "Без звука\\Без звука" +msgid "Energy level" +msgstr "Уровень энергии" -msgid "Name:" -msgstr "Имя:" +msgid "Shield level" +msgstr "Уровень брони" -msgid "Negative value rejected by \"throw\"" -msgstr "Отрицательное значение не принято" +msgid "Jet temperature" +msgstr "Температура реактивного двигателя" -msgid "Nest" -msgstr "Гнездо" +msgid "Still working ..." +msgstr "Работает ..." -msgid "New" -msgstr "Новый" +msgid "Number of insects detected" +msgstr "Количество обнаруженных насекомых" -msgid "New ..." -msgstr "Новый ..." +msgid "Transmitted information" +msgstr "Переданная информация" -msgid "New bot available" -msgstr "Доступен новый бот" +msgid "Compass" +msgstr "Компас" -msgid "Next" -msgstr "Следующий" +msgid "Zoom mini-map" +msgstr "Масштаб мини-карты" -msgid "Next object\\Selects the next object" -msgstr "Следующий объект\\Выбор следующего объекта" +msgid "Camera (\\key camera;)" +msgstr "Камера (\\key camera;)" -msgid "No energy in the subsoil" -msgstr "Под землей нет запасов энергии" +msgid "Camera to left" +msgstr "Камеру влево" -msgid "No flag nearby" -msgstr "Слишком много флагов этого цвета (максимум 5)" +msgid "Camera to right" +msgstr "Камеру вправо" -msgid "No function running" -msgstr "Нет запущенной функции" +msgid "Camera nearest" +msgstr "Приблизить камеру" -msgid "No function with this name accepts this kind of parameter" -msgstr "Нет функции с этим именем для этого вида параметра" +msgid "Camera awayest" +msgstr "Отдалить камеру" -msgid "No function with this name accepts this number of parameters" -msgstr "Нет функции с этим именем для этого числа параметра" +msgid "Help about selected object" +msgstr "Справка о выбранном объекте" -msgid "No information exchange post within range" -msgstr "Поста по обмену информацией нет рядом или он далеко" +msgid "Show the solution" +msgstr "Показать решение" -msgid "No more energy" -msgstr "Нет энергии" +msgid "Switch bots <-> buildings" +msgstr "Переключение между ботами и зданиями" -msgid "No ore in the subsoil" -msgstr "" +msgid "Show the range" +msgstr "Дальность" -msgid "No other robot" -msgstr "Нет робота" +msgid "\\Raise the pencil" +msgstr "\\Поднять перо" -msgid "No power cell" -msgstr "Нет батареи" +msgid "\\Use the black pencil" +msgstr "\\Использовать черное перо" -msgid "No titanium" -msgstr "Нет титана" +msgid "\\Use the yellow pencil" +msgstr "\\Использовать желтое перо" -msgid "No titanium around" -msgstr "Вокруг нет титана" +msgid "\\Use the orange pencil" +msgstr "\\Использовать оранжевое перо" -msgid "No titanium ore to convert" -msgstr "Нет титановых руд для преобразования" +msgid "\\Use the red pencil" +msgstr "\\Использовать красное перо" -msgid "No titanium to transform" +msgid "\\Use the purple pencil" msgstr "" -msgid "No uranium to transform" -msgstr "Нет урана для преобразования" +msgid "\\Use the blue pencil" +msgstr "\\Использовать синее перо" -msgid "Normal size" -msgstr "Нормальный размер" +msgid "\\Use the green pencil" +msgstr "\\Использовать зеленое перо" -msgid "Normal\\Normal graphic quality" -msgstr "Средн.\\Нормальное качество графики" +msgid "\\Use the brown pencil" +msgstr "Использовать коричневое перо" -msgid "Normal\\Normal sound volume" -msgstr "Нормально\\Нормальная громкость" +msgid "\\Start recording" +msgstr "\\Начать запись" -msgid "Not enough energy" -msgstr "Не хватает энергии" +msgid "\\Stop recording" +msgstr "\\Остановить запись" -msgid "Not enough energy yet" -msgstr "Не хватает энергии" +msgid "Show the place" +msgstr "Место" -msgid "Not found anything to destroy" -msgstr "" +msgid "Continue" +msgstr "Продолжить" -msgid "Not yet enough energy" -msgstr "Не хватает энергии" +msgid "Command line" +msgstr "Командная строка" -msgid "Nothing to analyze" -msgstr "Нечего анализировать" +msgid "Game speed" +msgstr "Скорость игры" -msgid "Nothing to drop" -msgstr "Нечего бросить" +msgid "Back" +msgstr "Назад" -msgid "Nothing to grab" -msgstr "Нечего взять" +msgid "Forward" +msgstr "Вперед" -msgid "Nothing to recycle" -msgstr "Нечего утилизировать" +msgid "Home" +msgstr "Домой" -msgid "Nuclear power cell" -msgstr "Атомная батарея" +msgid "Copy" +msgstr "Копировать" -msgid "Nuclear power cell available" -msgstr "Доступна атомная батарея" +msgid "Size 1" +msgstr "Размер 1" -msgid "Nuclear power station" -msgstr "Завод атомных батарей (неперезаряж.)" +msgid "Size 2" +msgstr "Размер 2" -msgid "Num of decorative objects\\Number of purely ornamental objects" -msgstr "Количество декораций\\Количество декоративных объектов" +msgid "Size 3" +msgstr "Размер 3" -msgid "Number missing" -msgstr "Нет числа" +msgid "Size 4" +msgstr "Размер 4" -msgid "Number of insects detected" -msgstr "Количество обнаруженных насекомых" +msgid "Size 5" +msgstr "Размер 5" -msgid "Number of particles\\Explosions, dust, reflections, etc." -msgstr "Количество частиц\\Взрывы, пыль, отражения и т.д." +msgid "Instructions from Houston" +msgstr "Инструкции из Хьюстона" -msgid "OK" -msgstr "ОК" +msgid "Satellite report" +msgstr "Спутниковый отчет" -msgid "OK\\Choose the selected player" -msgstr "ОК\\Выбрать игрока" +msgid "Programs dispatched by Houston" +msgstr "Программы переданные с Хьюстона" -msgid "OK\\Close program editor and return to game" -msgstr "ОК\\Закрыть редактор программ и вернуться к игре" +msgid "List of objects" +msgstr "Список объектов" -msgid "Object not found" -msgstr "Объект не найден" +msgid "Programming help" +msgstr "Помощь в программировании" -msgid "Object too close" -msgstr "Объект слишком близок" +msgid "Solution" +msgstr "Решение" -msgid "One step" -msgstr "Один шаг" +msgid "OK\\Close program editor and return to game" +msgstr "ОК\\Закрыть редактор программ и вернуться к игре" -msgid "Open" -msgstr "Открыть" +msgid "Cancel\\Cancel all changes" +msgstr "Отмена\\Отменить все изменения" msgid "Open (Ctrl+o)" msgstr "Открыть (Ctrl+o)" -msgid "Opening brace missing " -msgstr "Открывающая скобка отсутствует " +msgid "Save (Ctrl+s)" +msgstr "Сохранить (Ctrl+s)" -msgid "Opening bracket missing" -msgstr "Открывающая скобка отсутствует" +msgid "Undo (Ctrl+z)" +msgstr "Отмена (Ctrl+Z)" -msgid "Operation impossible with value \"nan\"" -msgstr "Операция невозможна значение \"nan\"" +msgid "Cut (Ctrl+x)" +msgstr "Вырезать (Ctrl+X)" -msgid "Options" -msgstr "Опции" +msgid "Copy (Ctrl+c)" +msgstr "Копировать (Ctrl+C)" -msgid "Options\\Preferences" -msgstr "Опции\\Настройки" +msgid "Paste (Ctrl+v)" +msgstr "Вставить (Ctrl+V)" -msgid "Organic matter" -msgstr "Органическое вещество" +msgid "Font size" +msgstr "Размер шрифта" -msgid "Origin of last message\\Shows where the last message was sent from" -msgstr "" -"Источник сообщения\\Показывает место, откуда было отправлено последнеее " -"сообщение" +msgid "Instructions (\\key help;)" +msgstr "Инструкции (\\key help;)" -msgid "Parameters missing " -msgstr "Отсутствуют параметры " +msgid "Programming help (\\key prog;)" +msgstr "Помощь в программировании (\\key prog;)" -msgid "Particles in the interface\\Steam clouds and sparks in the interface" -msgstr "Частицы в интерфейсе меню\\Пар из труб и искры в интерфейсе меню" +msgid "Compile" +msgstr "Компилировать" -msgid "Paste (Ctrl+v)" -msgstr "Вставить (Ctrl+V)" +msgid "Execute/stop" +msgstr "Выполнить/стоп" msgid "Pause/continue" msgstr "Пауза/продолжить" -msgid "Phazer shooter" -msgstr "Фазовый стрелок" - -msgid "Photography" -msgstr "Фотография" - -msgid "Place occupied" -msgstr "Место занято" - -msgid "Planets and stars\\Astronomical objects in the sky" -msgstr "Планеты и звезды\\Астрономические объекты в небе" - -msgid "Plans for defense tower available" -msgstr "Доступны схемы защитной башни" +msgid "One step" +msgstr "Один шаг" -msgid "Plans for nuclear power plant available" -msgstr "Доступны схемы АЭС" +msgid "Gantry crane" +msgstr "Козловой кран" -msgid "Plans for phazer shooter available" -msgstr "Доступны схемы фазового стрелка" +msgid "Spaceship" +msgstr "Космический корабль" -msgid "Plans for shielder available" -msgstr "Доступны схемы передвижного щита" +msgid "Derrick" +msgstr "Космический корабль" -msgid "Plans for shooter available" -msgstr "Доступны схемы стрелка" +msgid "Bot factory" +msgstr "Завод ботов" -msgid "Plans for thumper available" -msgstr "Доступны схемы ударника" +msgid "Repair center" +msgstr "Ремонтный пункт" -msgid "Plans for tracked robots available " -msgstr "Доступны схемы гусеничных роботов " +msgid "Destroyer" +msgstr "Уничтожитель" -msgid "Plant a flag" -msgstr "Установить флаг" +msgid "Power station" +msgstr "Электростанция" -msgid "Play\\Start mission!" -msgstr "Начать\\Перейти к выполнению миссии!" +msgid "Converts ore to titanium" +msgstr "Преобразует руду в титан" -msgid "Player" -msgstr "Игрок" +msgid "Defense tower" +msgstr "Защитная башня" -msgid "Player name" -msgstr "Имя игрока" +msgid "Nest" +msgstr "Гнездо" -msgid "Player's name" -msgstr "Имя игрока" +msgid "Research center" +msgstr "Научно-исследовательский центр" -msgid "Power cell" -msgstr "Батарея" +msgid "Radar station" +msgstr "Радар" -msgid "Power cell available" -msgstr "Доступна батарея" +msgid "Information exchange post" +msgstr "Пост обмена информацией" msgid "Power cell factory" msgstr "Завод перезаряжаемых батарей" -msgid "Power station" -msgstr "Электростанция" +msgid "Autolab" +msgstr "Лаборатория" -msgid "Practice bot" -msgstr "Тренировочный бот" +msgid "Nuclear power station" +msgstr "Завод атомных батарей (неперезаряж.)" -msgid "Press \\key help; to read instructions on your SatCom" -msgstr "Нажмите \\key help; чтобы получить инструкции от SatCom" +msgid "Lightning conductor" +msgstr "Громоотвод" -msgid "Previous" -msgstr "Предыдущий" +msgid "Vault" +msgstr "Хранилище" -msgid "Previous object\\Selects the previous object" -msgstr "Предыдущий объект\\Выбор предыдущего объекта" +msgid "Houston Mission Control" +msgstr "Центр управления Хьюстон" -msgid "Previous selection (\\key desel;)" -msgstr "Предыдущий выбор (\\key desel;)" +msgid "Target" +msgstr "Цель" -msgid "Private element" -msgstr "Частный элемент" +msgid "Start" +msgstr "Начало" -msgid "Private\\Private folder" -msgstr "Личное\\Личная папка" +msgid "Finish" +msgstr "Финиш" -msgid "Program editor" -msgstr "Редактор программ" +msgid "Titanium ore" +msgstr "Титановая руда" -msgid "Program finished" -msgstr "Программа выполнена" +msgid "Uranium ore" +msgstr "Урановая руда" -msgid "Program infected by a virus" -msgstr "Программа заражена вирусом" +msgid "Organic matter" +msgstr "Органическое вещество" -msgid "Programming exercises" -msgstr "Упражнения" +msgid "Titanium" +msgstr "Титан" -msgid "Programming help" -msgstr "Помощь в программировании" +msgid "Power cell" +msgstr "Батарея" -msgid "Programming help (\\key prog;)" -msgstr "Помощь в программировании (\\key prog;)" +msgid "Nuclear power cell" +msgstr "Атомная батарея" -msgid "Programming help\\Gives more detailed help with programming" -msgstr "" -"Помощь в программировании\\Дает более детальную помощь в программировании" +msgid "Black box" +msgstr "Черный ящик" -msgid "Programs dispatched by Houston" -msgstr "Программы переданные с Хьюстона" +msgid "Key A" +msgstr "Ключ А" -msgid "Public required" -msgstr "Требуется общественное" +msgid "Key B" +msgstr "Ключ B" -msgid "Public\\Common folder" -msgstr "Общее\\Общая папка" +msgid "Key C" +msgstr "Ключ C" -msgid "Quake at explosions\\The screen shakes at explosions" -msgstr "Землетряс. при взрывах\\Тряска экрана при взрывах" +msgid "Key D" +msgstr "Ключ D" -msgid "Quit the mission?" -msgstr "Завершить миссию?" +msgid "Explosive" +msgstr "Взрывчатка" -msgid "Quit\\Quit COLOBOT" -msgstr "Выход\\Выход из COLOBOT" +msgid "Fixed mine" +msgstr "Мина" -msgid "Quit\\Quit the current mission or exercise" -msgstr "Выход\\Выход из текущей миссии" +msgid "Survival kit" +msgstr "Аптечка" -msgid "Radar station" -msgstr "Радар" +msgid "Checkpoint" +msgstr "Контрольная точка" -msgid "Read error" -msgstr "Ошибка чтения" +msgid "Blue flag" +msgstr "Синий флаг" -msgid "Recorder" -msgstr "Запись" +msgid "Red flag" +msgstr "Красный флаг" -msgid "Recycle (\\key action;)" -msgstr "Утилизация (\\key action;)" +msgid "Green flag" +msgstr "Зеленый флаг" -msgid "Recycler" -msgstr "Утилизатор" +msgid "Yellow flag" +msgstr "Желтый флаг" -msgid "Red" -msgstr "Красный" +msgid "Violet flag" +msgstr "Фиолетовый флаг" -msgid "Red flag" -msgstr "Красный флаг" +msgid "Energy deposit (site for power station)" +msgstr "Запасы энергии (место для электростанций)" -msgid "Reflections on the buttons \\Shiny buttons" -msgstr "Отражения кнопок \\Блестящие кнопки" +msgid "Uranium deposit (site for derrick)" +msgstr "Запасы урана (место для буровой вышки)" -msgid "Remains of Apollo mission" -msgstr "Остатки миссии Аполлон" +msgid "Found key A (site for derrick)" +msgstr "Найден ключ A (место для буровой вышки)" -msgid "Remove a flag" -msgstr "Удалить флаг" +msgid "Found key B (site for derrick)" +msgstr "Найден ключ B (место для буровой вышки)" -msgid "Repair center" -msgstr "Ремонтный пункт" +msgid "Found key C (site for derrick)" +msgstr "Найден ключ C (место для буровой вышки)" -msgid "Research center" -msgstr "Научно-исследовательский центр" +msgid "Found key D (site for derrick)" +msgstr "Найден ключ D (место для буровой вышки)" -msgid "Research program already performed" -msgstr "Научно-исследовательская программа уже выполняется" +msgid "Titanium deposit (site for derrick)" +msgstr "Запасы титана (место для буровой вышки)" -msgid "Research program completed" -msgstr "Научно-исследовательская программа завершена" +msgid "Practice bot" +msgstr "Тренировочный бот" -msgid "Reserved keyword of CBOT language" -msgstr "Резервное ключевое слово языка CBOT" +msgid "Winged grabber" +msgstr "Летающий сборщик" -msgid "Resolution" -msgstr "Разрешение" +msgid "Tracked grabber" +msgstr "Гусеничный сборщик" -msgid "Restart\\Restart the mission from the beginning" -msgstr "Заново\\Начать данную миссию с начала" +msgid "Wheeled grabber" +msgstr "Колесный сборщик" -msgid "Return to start" -msgstr "Вернуться в начало" +msgid "Legged grabber" +msgstr "Шагающий сборщик" -msgid "Robbie" -msgstr "Робби" +msgid "Winged shooter" +msgstr "Летающий стрелок" -msgid "Robbie\\Your assistant" -msgstr "Робби\\Ваш помощник" +msgid "Tracked shooter" +msgstr "Гусеничный стрелок" -msgid "Ruin" -msgstr "Руины" +msgid "Wheeled shooter" +msgstr "Колесный стрелок" -msgid "Run research program for defense tower" -msgstr "Начать исследование программы для защитной башни" +msgid "Legged shooter" +msgstr "Шагающий стрелок" -msgid "Run research program for legged bots" -msgstr "Начать исследование программы для шагающих ботов" +msgid "Winged orga shooter" +msgstr "Летающий орга-стрелок" -msgid "Run research program for nuclear power" -msgstr "Начать исследование программы для атомной энергетики" +msgid "Tracked orga shooter" +msgstr "Гусеничный орга-стрелок" -msgid "Run research program for orga shooter" -msgstr "Начать исследование программы для орга-стерлка" +msgid "Wheeled orga shooter" +msgstr "Колесный орга-стрелок" -msgid "Run research program for phazer shooter" -msgstr "Начать исследование программы для фазового стрелка" +msgid "Legged orga shooter" +msgstr "Шагающий орга-стрелка" -msgid "Run research program for shielder" -msgstr "Начать исследование программы для передвижного щита" +msgid "Winged sniffer" +msgstr "Летающий искатель" -msgid "Run research program for shooter" -msgstr "Начать исследование программы для стрелка" +msgid "Tracked sniffer" +msgstr "Гусеничный искатель" -msgid "Run research program for thumper" -msgstr "Начать исследование программы для ударника" +msgid "Wheeled sniffer" +msgstr "Колесный искатель" -msgid "Run research program for tracked bots" -msgstr "Начать исследование программы для гусеничного бота " +msgid "Legged sniffer" +msgstr "Шагающий искатель" + +msgid "Thumper" +msgstr "Ударник" -msgid "Run research program for winged bots" -msgstr "Начать исследование программы для летающего бота" +msgid "Phazer shooter" +msgstr "Фазовый стрелок" -msgid "SatCom" -msgstr "SatCom" +msgid "Recycler" +msgstr "Утилизатор" -msgid "Satellite report" -msgstr "Спутниковый отчет" +msgid "Shielder" +msgstr "Передвижной щит" -msgid "Save" -msgstr "Сохранить" +msgid "Subber" +msgstr "Саббер" -msgid "Save (Ctrl+s)" -msgstr "Сохранить (Ctrl+s)" +msgid "Target bot" +msgstr "Целевой бот" -msgid "Save the current mission" -msgstr "Сохранить" +msgid "Drawer bot" +msgstr "Рисовальщик" -msgid "Save\\Save the current mission " -msgstr "Сохранить\\Сохранить текущую миссию" +msgid "Engineer" +msgstr "Инженер" -msgid "Save\\Saves the current mission" -msgstr "Сохранить\\Сохранить текущую миссию" +msgid "Robbie" +msgstr "Робби" -msgid "Scrolling\\Scrolling when the mouse touches right or left border" -msgstr "Прокрутка\\Прокрутка, когда указатель мыши касается граней экрана" +msgid "Alien Queen" +msgstr "Королева чужих" -msgid "Select the astronaut\\Selects the astronaut" -msgstr "Выбор астронавта\\Выбор астронавта" +msgid "Ant" +msgstr "Муравей" -msgid "Semicolon terminator missing" -msgstr "Отсутствует точка с запятой" +msgid "Spider" +msgstr "Маук" -msgid "Shadows\\Shadows on the ground" -msgstr "Тени\\Тени на земле" +msgid "Wasp" +msgstr "Оса" -msgid "Shield level" -msgstr "Уровень брони" +msgid "Worm" +msgstr "Червь" -msgid "Shield radius" -msgstr "Радиус щита" +msgid "Egg" +msgstr "Яйцо" -msgid "Shielder" -msgstr "Передвижной щит" +msgid "Wreckage" +msgstr "Обломки" -msgid "Shift" -msgstr "Shift" +msgid "Ruin" +msgstr "Руины" -msgid "Shoot (\\key action;)" -msgstr "Огонь (\\key action;)" +msgid "Waste" +msgstr "Мусор" -msgid "Show if the ground is flat" -msgstr "Показывать плоскую землю" +msgid "Spaceship ruin" +msgstr "Обломки корабля" -msgid "Show the place" -msgstr "Место" +msgid "Remains of Apollo mission" +msgstr "Остатки миссии Аполлон" -msgid "Show the range" -msgstr "Дальность" +msgid "Lunar Roving Vehicle" +msgstr "Луноход" -msgid "Show the solution" -msgstr "Показать решение" +msgid "Internal error - tell the developers" +msgstr "" -msgid "Sign \" : \" missing" -msgstr "Знак \" : \" отсутствует" +msgid "Unknown command" +msgstr "Неизвестная команда" -msgid "Size 1" -msgstr "Размер 1" +msgid "Inappropriate bot" +msgstr "Неверный бот" -msgid "Size 2" -msgstr "Размер 2" +msgid "Impossible when flying" +msgstr "Невозможно в полете" -msgid "Size 3" -msgstr "Размер 3" +msgid "Already carrying something" +msgstr "Уже что-то несу" -msgid "Size 4" -msgstr "Размер 4" +msgid "Nothing to grab" +msgstr "Нечего взять" -msgid "Size 5" -msgstr "Размер 5" +msgid "Impossible when moving" +msgstr "Невозможно в движении" -msgid "Sky\\Clouds and nebulae" -msgstr "Небо\\Облака и туманности" +msgid "Place occupied" +msgstr "Место занято" -msgid "Sniff (\\key action;)" -msgstr "Искать (\\key action;)" +msgid "No other robot" +msgstr "Нет робота" -msgid "Solution" -msgstr "Решение" +msgid "You can not carry a radioactive object" +msgstr "Вы не можете нести радиоактивные объекты" -msgid "Sound effects:\\Volume of engines, voice, shooting, etc." -msgstr "Общий звук:\\Гормкость двигателя, голоса, стрельбы и т.д." +msgid "You can not carry an object under water" +msgstr "Вы не можете нести объекты под водой" -msgid "Sound\\Music and game sound volume" -msgstr "Звук\\Громкость музыки и звуков" +msgid "Nothing to drop" +msgstr "Нечего бросить" -msgid "Spaceship" -msgstr "Космический корабль" +msgid "Impossible under water" +msgstr "Невозможно под водой" -msgid "Spaceship ruin" -msgstr "Обломки корабля" +msgid "Not enough energy" +msgstr "Не хватает энергии" -msgid "Speed 1.0x\\Normal speed" -msgstr "Скорость 1.0х\\Нормальная скорость" +msgid "Titanium too far away" +msgstr "Титан слишком далеко" -msgid "Speed 1.5x\\1.5 times faster" -msgstr "Скорость 1.5х\\В полтора раза быстрее" +msgid "Titanium too close" +msgstr "Титан слишком близко" -msgid "Speed 2.0x\\Double speed" -msgstr "Скорость 2.0х\\В два раза скорость" +msgid "No titanium around" +msgstr "Вокруг нет титана" -msgid "Speed 3.0x\\Three times faster" -msgstr "Скорость 3.0х\\В три раза быстрее" +msgid "Ground not flat enough" +msgstr "Земля недостаточно плоская" -msgid "Spider" -msgstr "Маук" +msgid "Flat ground not large enough" +msgstr "Недостаточно плоской земли" -msgid "Spider fatally wounded" -msgstr "Паук смертельно ранен" +msgid "Too close to space ship" +msgstr "Слишком близко к кораблю" -msgid "Stack overflow" -msgstr "Переполнение стека" +msgid "Too close to a building" +msgstr "Слишком близко к зданию" -msgid "" -"Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)" +msgid "Can not produce this object in this mission" msgstr "" -"Стандартное действие\\Стандартное действие бота (брать/взять, стрелять, " -"искать и т.д.)" - -msgid "Standard controls\\Standard key functions" -msgstr "Стандартное управление\\Сделать управление по умолчанию" -msgid "Standard\\Standard appearance settings" -msgstr "По умолчанию\\Настройки внешнего вида по умолчанию" +msgid "Can not produce not researched object" +msgstr "" -msgid "Start" -msgstr "Начало" +msgid "Ground inappropriate" +msgstr "Земля не подходит" -msgid "Still working ..." -msgstr "Работает ..." +msgid "Building too close" +msgstr "Здание слишком близко" -msgid "String missing" -msgstr "Отсутствует строка" +msgid "Object too close" +msgstr "Объект слишком близок" -msgid "Strip color:" -msgstr "Цвет полос" +msgid "Nothing to recycle" +msgstr "Нечего утилизировать" -msgid "Subber" -msgstr "Саббер" +msgid "No more energy" +msgstr "Нет энергии" -msgid "Suit color:" -msgstr "Костюм:" +msgid "Error in instruction move" +msgstr "Ошибка движения" -msgid "Suit\\Astronaut suit" -msgstr "Костюм\\Костюм астронавта" +msgid "Object not found" +msgstr "Объект не найден" -msgid "Sunbeams\\Sunbeams in the sky" -msgstr "Солнечные лучи\\Солнечные лучи в небе" +msgid "Goto: inaccessible destination" +msgstr "Перейти: место недоступно" -msgid "Survival kit" -msgstr "Аптечка" +msgid "Goto: destination occupied" +msgstr "Перейти: место занято" -msgid "Switch bots <-> buildings" -msgstr "Переключение между ботами и зданиями" +msgid "No titanium ore to convert" +msgstr "Нет титановых руд для преобразования" -msgid "Take off to finish the mission" -msgstr "Взлететь, чтобы закончить миссию" +msgid "No ore in the subsoil" +msgstr "" -msgid "Target" -msgstr "Цель" +msgid "No energy in the subsoil" +msgstr "Под землей нет запасов энергии" -msgid "Target bot" -msgstr "Целевой бот" +msgid "No power cell" +msgstr "Нет батареи" -msgid "Textures\\Quality of textures " -msgstr "Текстуры\\Качество текстур " +msgid "Inappropriate cell type" +msgstr "Батарея не подходит" -msgid "The expression must return a boolean value" -msgstr "Выражение должно возвращать логическое значение" +msgid "Research program already performed" +msgstr "Научно-исследовательская программа уже выполняется" -msgid "The function returned no value " -msgstr "Функция не возвратила значения" +msgid "Not enough energy yet" +msgstr "Не хватает энергии" -msgid "" -"The list is only available if a \\l;radar station\\u object\\radar; is " -"working.\n" +msgid "No titanium to transform" msgstr "" -"Список доступен только если \\l;radar station\\u object\\radar; работают\n" -msgid "" -"The mission is not accomplished yet (press \\key help; for more details)" -msgstr "" -"Миссия еще не выполнена (нажмите \\key help; для более подробной информации)" +msgid "Transforms only titanium" +msgstr "Нет титана для преобразования" -msgid "The types of the two operands are incompatible " -msgstr "Типы операндов несовместимы" +msgid "Doors blocked by a robot or another object " +msgstr "Двери заблокированы роботом или другим объектом" -msgid "This class already exists" -msgstr "Этот класс уже существует" +msgid "You must get on the spaceship to take off " +msgstr "Вы должны быть на борту корабля, чтобы взлететь" -msgid "This class does not exist" -msgstr "Этот класс не существует" +msgid "Nothing to analyze" +msgstr "Нечего анализировать" -msgid "This is not a member of this class" -msgstr "Это не член этого класса" +msgid "Analyzes only organic matter" +msgstr "Анализирую только органические вещества" -msgid "This label does not exist" -msgstr "Эта метка не существует" +msgid "Analysis already performed" +msgstr "Анализ уже выполнен" -msgid "This object is not a member of a class" -msgstr "Этот объект не член класса" +msgid "Not yet enough energy" +msgstr "Не хватает энергии" -msgid "Thump (\\key action;)" -msgstr "Удар (\\key action;)" +msgid "No uranium to transform" +msgstr "Нет урана для преобразования" -msgid "Thumper" -msgstr "Ударник" +msgid "Transforms only uranium" +msgstr "Преобразовывается только уран" -msgid "Titanium" -msgstr "Титан" +msgid "No titanium" +msgstr "Нет титана" -msgid "Titanium available" -msgstr "Титан доступен" +msgid "No information exchange post within range" +msgstr "Поста по обмену информацией нет рядом или он далеко" -msgid "Titanium deposit (site for derrick)" -msgstr "Запасы титана (место для буровой вышки)" +msgid "Program infected by a virus" +msgstr "Программа заражена вирусом" -msgid "Titanium ore" -msgstr "Титановая руда" +msgid "Infected by a virus; temporarily out of order" +msgstr "Заражено вирусом. Временно вышел из строя" -msgid "Titanium too close" -msgstr "Титан слишком близко" +msgid "Impossible when swimming" +msgstr "Невозможно в воде" -msgid "Titanium too far away" -msgstr "Титан слишком далеко" +msgid "Impossible when carrying an object" +msgstr "Невозможно при движении с объектом" -msgid "Too close to a building" -msgstr "Слишком близко к зданию" +msgid "Too many flags of this color (maximum 5)" +msgstr "" msgid "Too close to an existing flag" msgstr "" -msgid "Too close to space ship" -msgstr "Слишком близко к кораблю" +msgid "No flag nearby" +msgstr "Слишком много флагов этого цвета (максимум 5)" -msgid "Too many flags of this color (maximum 5)" +msgid "Not found anything to destroy" msgstr "" -msgid "Too many parameters" -msgstr "Слишком много параметров" +msgid "Inappropriate object" +msgstr "" -msgid "Tracked grabber" -msgstr "Гусеничный сборщик" +msgid "" +"The mission is not accomplished yet (press \\key help; for more details)" +msgstr "" +"Миссия еще не выполнена (нажмите \\key help; для более подробной информации)" -msgid "Tracked orga shooter" -msgstr "Гусеничный орга-стрелок" +msgid "Bot destroyed" +msgstr "Бот уничтожен" -msgid "Tracked shooter" -msgstr "Гусеничный стрелок" +msgid "Building destroyed" +msgstr "Здание разрушено" -msgid "Tracked sniffer" -msgstr "Гусеничный искатель" +msgid "Can not create this; there are too many objects" +msgstr "Не удается это создать, слишком много объектов" -msgid "Transforms only titanium" -msgstr "Нет титана для преобразования" +#, c-format +msgid "\"%s\" missing in this exercise" +msgstr "\"%s\" отсутствует в этом упражнении" -msgid "Transforms only uranium" -msgstr "Преобразовывается только уран" +msgid "Do not use in this exercise" +msgstr "Не используй в этом упражнении" -msgid "Transmitted information" -msgstr "Переданная информация" +msgid "Building completed" +msgstr "Здание построено" -msgid "Turn left (\\key left;)" -msgstr "Налево (\\key left;)" +msgid "Titanium available" +msgstr "Титан доступен" -msgid "Turn left\\turns the bot to the left" -msgstr "Повернуть налево\\Поворот налево" +msgid "Research program completed" +msgstr "Научно-исследовательская программа завершена" -msgid "Turn right (\\key right;)" -msgstr "Направо (\\key right;)" +msgid "Plans for tracked robots available " +msgstr "Доступны схемы гусеничных роботов " -msgid "Turn right\\turns the bot to the right" -msgstr "Повернуть налево\\Поворот налево" +msgid "You can fly with the keys (\\key gup;) and (\\key gdown;)" +msgstr "Вы можете лететь с помощью клавиш (\\key gup;) и (\\key gdown;)" -msgid "Type declaration missing" -msgstr "Не задан тип" +msgid "Plans for thumper available" +msgstr "Доступны схемы ударника" -msgid "Undo (Ctrl+z)" -msgstr "Отмена (Ctrl+Z)" +msgid "Plans for shooter available" +msgstr "Доступны схемы стрелка" -msgid "Unit" -msgstr "Юнит" +msgid "Plans for defense tower available" +msgstr "Доступны схемы защитной башни" -msgid "Unknown Object" -msgstr "Неизвестный объект" +msgid "Plans for phazer shooter available" +msgstr "Доступны схемы фазового стрелка" -msgid "Unknown command" -msgstr "Неизвестная команда" +msgid "Plans for shielder available" +msgstr "Доступны схемы передвижного щита" -msgid "Unknown function" -msgstr "Неизвестная функция" +msgid "Plans for nuclear power plant available" +msgstr "Доступны схемы АЭС" -msgid "Up (\\key gup;)" -msgstr "Вверх (\\key gup;)" +msgid "New bot available" +msgstr "Доступен новый бот" -msgid "Uranium deposit (site for derrick)" -msgstr "Запасы урана (место для буровой вышки)" +msgid "Analysis performed" +msgstr "Анализ выполнен" -msgid "Uranium ore" -msgstr "Урановая руда" +msgid "Power cell available" +msgstr "Доступна батарея" -msgid "Use a joystick\\Joystick or keyboard" -msgstr "Использовать джойстик\\Джойстик или клавиатура" +msgid "Nuclear power cell available" +msgstr "Доступна атомная батарея" -msgid "User levels" -msgstr "Пользовательские уровни" +msgid "You found a usable object" +msgstr "Вы нашли рабочий объект" -msgid "User\\User levels" -msgstr "Польз.\\Пользовательские уровни" +msgid "Found a site for power station" +msgstr "Найдено место для электростанции" -msgid "Variable name missing" -msgstr "Нет имени переменной" +msgid "Found a site for a derrick" +msgstr "Найдено место для буровой вышки" -msgid "Variable not declared" -msgstr "Переменная не объявлена" +msgid "<<< Well done; mission accomplished >>>" +msgstr "<<< Отлично, миссия выполнена >>>" -msgid "Variable not initialized" -msgstr "Переменная не инициализирована" +msgid "<<< Sorry; mission failed >>>" +msgstr "<<< Миссия провалена >>>" -msgid "Vault" -msgstr "Хранилище" +msgid "Current mission saved" +msgstr "Текущая миссия сохранена" -msgid "Violet flag" -msgstr "Фиолетовый флаг" +msgid "Checkpoint crossed" +msgstr "Вы прошли контрольную точку" -msgid "Void parameter" -msgstr "Пустой параметр" +msgid "Alien Queen killed" +msgstr "Королева чужих убита" -msgid "Wasp" -msgstr "Оса" +msgid "Ant fatally wounded" +msgstr "Муравей смертельно ранен" msgid "Wasp fatally wounded" msgstr "Оса смертельно ранена" -msgid "Waste" -msgstr "Мусор" - -msgid "Wheeled grabber" -msgstr "Колесный сборщик" +msgid "Worm fatally wounded" +msgstr "Червь смертельно ранен" -msgid "Wheeled orga shooter" -msgstr "Колесный орга-стрелок" +msgid "Spider fatally wounded" +msgstr "Паук смертельно ранен" -msgid "Wheeled shooter" -msgstr "Колесный стрелок" +msgid "Press \\key help; to read instructions on your SatCom" +msgstr "Нажмите \\key help; чтобы получить инструкции от SatCom" -msgid "Wheeled sniffer" -msgstr "Колесный искатель" +msgid "Opening bracket missing" +msgstr "Открывающая скобка отсутствует" -msgid "Win" -msgstr "Win" +msgid "Closing bracket missing " +msgstr "Закрывающая скобка отсутствует" -msgid "Winged grabber" -msgstr "Летающий сборщик" +msgid "The expression must return a boolean value" +msgstr "Выражение должно возвращать логическое значение" -msgid "Winged orga shooter" -msgstr "Летающий орга-стрелок" +msgid "Variable not declared" +msgstr "Переменная не объявлена" -msgid "Winged shooter" -msgstr "Летающий стрелок" +msgid "Assignment impossible" +msgstr "Назначение невозможно" -msgid "Winged sniffer" -msgstr "Летающий искатель" +msgid "Semicolon terminator missing" +msgstr "Отсутствует точка с запятой" -msgid "Withdraw shield (\\key action;)" -msgstr "Снять щит (\\key action;)" +msgid "Instruction \"case\" outside a block \"switch\"" +msgstr "Инструкция \"case\" вне блока \"switch\" " -msgid "Worm" -msgstr "Червь" +msgid "Instructions after the final closing brace" +msgstr "Инструкция после последней закрывающей фигурной скобки" -msgid "Worm fatally wounded" -msgstr "Червь смертельно ранен" +msgid "End of block missing" +msgstr "Отсутствует конец блока" -msgid "Wreckage" -msgstr "Обломки" +msgid "Instruction \"else\" without corresponding \"if\" " +msgstr "Инструкция \"else\" без \"if\" " -msgid "Write error" -msgstr "Ошибка записи" +msgid "Opening brace missing " +msgstr "Открывающая скобка отсутствует " msgid "Wrong type for the assignment" msgstr "Неверный тип для назначения" -msgid "Yellow flag" -msgstr "Желтый флаг" +msgid "A variable can not be declared twice" +msgstr "Переменная не может быть объявлена дважды" -msgid "You can fly with the keys (\\key gup;) and (\\key gdown;)" -msgstr "Вы можете лететь с помощью клавиш (\\key gup;) и (\\key gdown;)" +msgid "The types of the two operands are incompatible " +msgstr "Типы операндов несовместимы" -msgid "You can not carry a radioactive object" -msgstr "Вы не можете нести радиоактивные объекты" +msgid "Unknown function" +msgstr "Неизвестная функция" -msgid "You can not carry an object under water" -msgstr "Вы не можете нести объекты под водой" +msgid "Sign \" : \" missing" +msgstr "Знак \" : \" отсутствует" -msgid "You found a usable object" -msgstr "Вы нашли рабочий объект" +msgid "Keyword \"while\" missing" +msgstr "Нет ключевого слова \"while\" " -msgid "You must get on the spaceship to take off " -msgstr "Вы должны быть на борту корабля, чтобы взлететь" +msgid "Instruction \"break\" outside a loop" +msgstr "Инструкция \"break\" вне цикла" -msgid "Zoom mini-map" -msgstr "Масштаб мини-карты" +msgid "A label must be followed by \"for\"; \"while\"; \"do\" or \"switch\"" +msgstr "За меткой должен быть \"for\", \"while\", \"do\" или \"switch\"" -msgid "\\Blue flags" -msgstr "\\Синий флаг" +msgid "This label does not exist" +msgstr "Эта метка не существует" -msgid "\\Eyeglasses 1" -msgstr "\\Очки 1" +msgid "Instruction \"case\" missing" +msgstr "Отсутствует инструкция \"case\"" -msgid "\\Eyeglasses 2" -msgstr "\\Очки 2" +msgid "Number missing" +msgstr "Нет числа" -msgid "\\Eyeglasses 3" -msgstr "\\Очки 3" +msgid "Void parameter" +msgstr "Пустой параметр" -msgid "\\Eyeglasses 4" -msgstr "\\Очки 4" +msgid "Type declaration missing" +msgstr "Не задан тип" -msgid "\\Eyeglasses 5" -msgstr "\\Очки 5" +msgid "Variable name missing" +msgstr "Нет имени переменной" -msgid "\\Face 1" -msgstr "Лицо 1" +msgid "Function name missing" +msgstr "Имя функции отсутствует" -msgid "\\Face 2" -msgstr "\\Лицо 4" +msgid "Too many parameters" +msgstr "Слишком много параметров" -msgid "\\Face 3" -msgstr "\\Лицо 3" +msgid "Function already exists" +msgstr "Функция уже существует" -msgid "\\Face 4" -msgstr "\\Лицо 4" +msgid "Parameters missing " +msgstr "Отсутствуют параметры " -msgid "\\Green flags" -msgstr "\\Зеленый флаг" +msgid "No function with this name accepts this kind of parameter" +msgstr "Нет функции с этим именем для этого вида параметра" -msgid "\\New player name" -msgstr "\\Новое имя" +msgid "No function with this name accepts this number of parameters" +msgstr "Нет функции с этим именем для этого числа параметра" -msgid "\\No eyeglasses" -msgstr "\\Без очков" +msgid "This is not a member of this class" +msgstr "Это не член этого класса" -msgid "\\Raise the pencil" -msgstr "\\Поднять перо" +msgid "This object is not a member of a class" +msgstr "Этот объект не член класса" -msgid "\\Red flags" -msgstr "\\Красный флаг" +msgid "Appropriate constructor missing" +msgstr "Соответствующий конструктор отсутствует" -msgid "\\Return to COLOBOT" -msgstr "\\Вернуться в COLOBOT" +msgid "This class already exists" +msgstr "Этот класс уже существует" -msgid "\\SatCom on standby" -msgstr "\\SatCom ждет" +msgid "\" ] \" missing" +msgstr "Отсутствует \"]\" " -msgid "\\Start recording" -msgstr "\\Начать запись" +msgid "Reserved keyword of CBOT language" +msgstr "Резервное ключевое слово языка CBOT" -msgid "\\Stop recording" -msgstr "\\Остановить запись" +msgid "Bad argument for \"new\"" +msgstr "Неверный аргумент для \"new\"" -msgid "\\Turn left" -msgstr "\\Повернуть налево" +msgid "\" [ \" expected" +msgstr "Ожидалось \" [ \"" -msgid "\\Turn right" -msgstr "\\Повернуть направо" +msgid "String missing" +msgstr "Отсутствует строка" -msgid "\\Use the black pencil" -msgstr "\\Использовать черное перо" +msgid "Incorrect index type" +msgstr "Неверный тип индекса" -msgid "\\Use the blue pencil" -msgstr "\\Использовать синее перо" +msgid "Private element" +msgstr "Частный элемент" -msgid "\\Use the brown pencil" -msgstr "Использовать коричневое перо" +msgid "Public required" +msgstr "Требуется общественное" -msgid "\\Use the green pencil" -msgstr "\\Использовать зеленое перо" +msgid "Dividing by zero" +msgstr "Деление на ноль (запрещено!)" -msgid "\\Use the orange pencil" -msgstr "\\Использовать оранжевое перо" +msgid "Variable not initialized" +msgstr "Переменная не инициализирована" -msgid "\\Use the purple pencil" -msgstr "" +msgid "Negative value rejected by \"throw\"" +msgstr "Отрицательное значение не принято" -msgid "\\Use the red pencil" -msgstr "\\Использовать красное перо" +msgid "The function returned no value " +msgstr "Функция не возвратила значения" -msgid "\\Use the yellow pencil" -msgstr "\\Использовать желтое перо" +msgid "No function running" +msgstr "Нет запущенной функции" -msgid "\\Violet flags" -msgstr "\\Фиолетовый флаг" +msgid "Calling an unknown function" +msgstr "Вызов неизвестной функции" -msgid "\\Yellow flags" -msgstr "\\Желтый флаг" +msgid "This class does not exist" +msgstr "Этот класс не существует" -msgid "\\b;Aliens\n" -msgstr "\\b;Чужаки\n" +msgid "Unknown Object" +msgstr "Неизвестный объект" -msgid "\\b;Buildings\n" -msgstr "\\b;Здания\n" +msgid "Operation impossible with value \"nan\"" +msgstr "Операция невозможна значение \"nan\"" -msgid "\\b;Error\n" -msgstr "\\b;Ошибка\n" +msgid "Access beyond array limit" +msgstr "Доступ к массиву за предел" -msgid "\\b;List of objects\n" -msgstr "\\b;Список объектов\n" +msgid "Stack overflow" +msgstr "Переполнение стека" -msgid "\\b;Moveable objects\n" -msgstr "\\b;Подвижные объекты\n" +msgid "Illegal object" +msgstr "Запрещенный объект" -msgid "\\b;Robots\n" -msgstr "\\b;Роботы\n" +msgid "Can't open file" +msgstr "Невозможно открыть файл" -msgid "\\c; (none)\\n;\n" -msgstr "\\c; (нет)\\n;\n" +msgid "File not open" +msgstr "Файл не открыт" -msgid "action;" -msgstr "действие" +msgid "Read error" +msgstr "Ошибка чтения" -msgid "away;" -msgstr "дальше" +msgid "Write error" +msgstr "Ошибка записи" -msgid "camera;" -msgstr "камера" +msgid "left;" +msgstr "влево" -msgid "cbot;" -msgstr "cobt" +msgid "right;" +msgstr "вправо" -msgid "desel;" -msgstr "отмена" +msgid "up;" +msgstr "вверх" msgid "down;" msgstr "вниз" -msgid "gdown;" -msgstr "вниз" - msgid "gup;" msgstr "вверх" -msgid "help;" -msgstr "помощь" +msgid "gdown;" +msgstr "вниз" -msgid "human;" -msgstr "человек" +msgid "camera;" +msgstr "камера" -msgid "left;" -msgstr "влево" +msgid "desel;" +msgstr "отмена" + +msgid "action;" +msgstr "действие" msgid "near;" msgstr "ближе" +msgid "away;" +msgstr "дальше" + msgid "next;" msgstr "следующий" -msgid "prog;" -msgstr "прог." +msgid "human;" +msgstr "человек" msgid "quit;" msgstr "выйти" -msgid "right;" -msgstr "вправо" +msgid "help;" +msgstr "помощь" + +msgid "prog;" +msgstr "прог." + +msgid "cbot;" +msgstr "cobt" + +msgid "visit;" +msgstr "посетить" msgid "speed10;" msgstr "скорость10" @@ -1827,17 +1820,27 @@ msgstr "скорость15" msgid "speed20;" msgstr "скорость20" -msgid "up;" -msgstr "вверх" +msgid "Ctrl" +msgstr "Ctrl" -msgid "visit;" -msgstr "посетить" +msgid "Shift" +msgstr "Shift" -msgid "www.epsitec.com" -msgstr "www.epsitec.com" +msgid "Alt" +msgstr "Alt" -#~ msgid "GetResource event num out of range: %d\n" -#~ msgstr "событие GetResource, число вне диапазона: %d\n" +msgid "Win" +msgstr "Win" + +msgid "Button %1" +msgstr "Кнопка %1" + +msgid "%1" +msgstr "%1" #~ msgid "Menu (\\key quit;)" #~ msgstr "Меню (\\key выйти;)" + +#, c-format +#~ msgid "GetResource event num out of range: %d\n" +#~ msgstr "событие GetResource, число вне диапазона: %d\n" -- cgit v1.2.3-1-g7c22 From 02ba358a892b9977250ea345c42f8226f89ba250 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Fri, 11 Jul 2014 16:40:07 +0200 Subject: Help file loading --- src/object/robotmain.cpp | 54 +++++++++++++++++++++++++++++++++++++++--------- src/object/robotmain.h | 5 +++++ src/ui/edit.cpp | 26 +++++++++++++---------- src/ui/maindialog.cpp | 23 ++++++++++++++------- src/ui/maindialog.h | 2 +- 5 files changed, 80 insertions(+), 30 deletions(-) diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp index 8108129..9860943 100644 --- a/src/object/robotmain.cpp +++ b/src/object/robotmain.cpp @@ -3843,11 +3843,6 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) const char* stack = m_dialog->GetStackRead().c_str(); m_dialog->SetUserDir(base, rank); - /* - * TODO: original code relying on UserDir() was removed. - * A new way of providing custom data file paths will need to be devised. - */ - m_fixScene = fixScene; g_id = 0; @@ -4020,7 +4015,9 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) if (Cmd(line, "Instructions") && !resetObject) { OpString(line, "name", name); - strcpy(m_infoFilename[SATCOM_HUSTON], name); + std::string path = name; + InjectLevelDir(path, "help/%lng%"); + strcpy(m_infoFilename[SATCOM_HUSTON], path.c_str()); m_immediatSatCom = OpInt(line, "immediat", 0); if (m_version >= 2) m_beginSatCom = m_lockedSatCom = OpInt(line, "lock", 0); @@ -4031,27 +4028,35 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) if (Cmd(line, "Satellite") && !resetObject) { OpString(line, "name", name); - strcpy(m_infoFilename[SATCOM_SAT], name); + std::string path = name; + InjectLevelDir(path, "help/%lng%"); + strcpy(m_infoFilename[SATCOM_SAT], path.c_str()); continue; } if (Cmd(line, "Loading") && !resetObject) { OpString(line, "name", name); - strcpy(m_infoFilename[SATCOM_LOADING], name); + std::string path = name; + InjectLevelDir(path, "help/%lng%"); + strcpy(m_infoFilename[SATCOM_LOADING], path.c_str()); continue; } if (Cmd(line, "HelpFile") && !resetObject) { OpString(line, "name", name); - strcpy(m_infoFilename[SATCOM_PROG], name); + std::string path = name; + InjectLevelDir(path, "help/%lng%"); + strcpy(m_infoFilename[SATCOM_PROG], path.c_str()); continue; } if (Cmd(line, "SoluceFile") && !resetObject) { OpString(line, "name", name); - strcpy(m_infoFilename[SATCOM_SOLUCE], name); + std::string path = name; + InjectLevelDir(path, "help/%lng%"); + strcpy(m_infoFilename[SATCOM_SOLUCE], path.c_str()); continue; } @@ -7001,6 +7006,21 @@ float CRobotMain::GetPersoAngle() return m_dialog->GetPersoAngle(); } +char* CRobotMain::GetSceneName() +{ + return m_dialog->GetSceneName(); +} + +int CRobotMain::GetSceneRank() +{ + return m_dialog->GetSceneRank(); +} + +void CRobotMain::BuildSceneName(std::string &filename, char *base, int rank, bool sceneFile) +{ + m_dialog->BuildSceneName(filename, base, rank, sceneFile); +} + //! Changes on the pause mode void CRobotMain::ChangePause(PauseType pause) @@ -7236,3 +7256,17 @@ void CRobotMain::DisplayError(Error err, Math::Vector goal, float height, float { m_displayText->DisplayError(err, goal, height, dist, time); } + +void CRobotMain::InjectLevelDir(std::string& path, const std::string defaultDir) +{ + std::string oldPath = path; + std::string lvlDir; + CRobotMain::GetInstancePointer()->BuildSceneName(lvlDir, CRobotMain::GetInstancePointer()->GetSceneName(), CRobotMain::GetInstancePointer()->GetSceneRank(), false); + boost::replace_all(path, "%lvl%", lvlDir); + if(path == oldPath) + { + path = defaultDir + "/" + path; + } + std::string langStr(1, CApplication::GetInstancePointer()->GetLanguageChar()); + boost::replace_all(path, "%lng%", langStr); +} diff --git a/src/object/robotmain.h b/src/object/robotmain.h index 19e9e7d..f9bf131 100644 --- a/src/object/robotmain.h +++ b/src/object/robotmain.h @@ -337,6 +337,9 @@ public: int GetGamerGlasses(); bool GetGamerOnlyHead(); float GetPersoAngle(); + char* GetSceneName(); + int GetSceneRank(); + void BuildSceneName(std::string &filename, char *base, int rank, bool sceneFile = true); void StartMusic(); void StartPauseMusic(PauseType pause); @@ -386,6 +389,8 @@ public: void DisplayError(Error err, CObject* pObj, float time=10.0f); void DisplayError(Error err, Math::Vector goal, float height=15.0f, float dist=60.0f, float time=10.0f); + + static void InjectLevelDir(std::string& path, const std::string defaultDir = ""); protected: bool EventFrame(const Event &event); diff --git a/src/ui/edit.cpp b/src/ui/edit.cpp index f9b7837..a0387bf 100644 --- a/src/ui/edit.cpp +++ b/src/ui/edit.cpp @@ -22,10 +22,13 @@ #include "clipboard/clipboard.h" +#include "object/robotmain.h" + #include "common/resources/inputstream.h" #include "common/resources/outputstream.h" #include +#include namespace Ui { @@ -784,14 +787,9 @@ void CEdit::HyperJump(std::string name, std::string marker) sMarker = marker; - if ( name[0] == '%' ) - { - filename = GetProfile().GetUserBasedPath(name, "") + ".txt"; - } - else - { - filename = name + std::string(".txt"); - } + filename = name + std::string(".txt"); + CRobotMain::InjectLevelDir(filename, "help/%lng%"); + boost::replace_all(filename, "\\", "/"); //TODO: Fix this in files if ( ReadText(filename) ) { @@ -1146,6 +1144,9 @@ void CEdit::DrawImage(Math::Point pos, std::string name, float width, std::string filename; filename = name + ".png"; + CRobotMain::InjectLevelDir(filename, "icons"); + boost::replace_all(filename, "\\", "/"); //TODO: Fix this in files + filename = "../" + filename; m_engine->SetTexture(filename); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); @@ -1434,7 +1435,9 @@ void CEdit::LoadImage(std::string name) { std::string filename; filename = name + ".png"; - m_engine->LoadTexture(filename); + CRobotMain::InjectLevelDir(filename, "icons"); + boost::replace_all(filename, "\\", "/"); //TODO: Fix this in files + m_engine->LoadTexture("../"+filename); } // Read from a text file. @@ -1449,13 +1452,14 @@ bool CEdit::ReadText(std::string filename, int addSize) InputSlot slot; bool bInSoluce, bBOL; - if ( filename[0] == 0 ) return false; + if ( filename == "" ) return false; CInputStream stream; - stream.open(filename); + stream.open(filename); if (!stream.is_open()) { + CLogger::GetInstancePointer()->Error("Failed to load text file %s\n", filename.c_str()); return false; } diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index fd6cd2e..068732d 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -3290,7 +3290,7 @@ void CMainDialog::SetUserDir(char *base, int rank) // Builds the file name of a mission. -void CMainDialog::BuildSceneName(std::string &filename, char *base, int rank) +void CMainDialog::BuildSceneName(std::string &filename, char *base, int rank, bool sceneFile) { //TODO: Support for more than 9 chapters int chapter = rank/100; @@ -3311,20 +3311,27 @@ void CMainDialog::BuildSceneName(std::string &filename, char *base, int rank) else if( strcmp(base, "win") == 0 || strcmp(base, "lost") == 0 ) { outstream << "levels/other/"; - outstream << base << std::setfill('0') << std::setw(3) << chapter << "/"; - outstream << "scene.txt"; - std::cout << outstream.str() << std::endl; + outstream << base << std::setfill('0') << std::setw(3) << rank << ".txt"; filename = outstream.str(); } else { outstream << "levels/" << base << "/"; outstream << "chapter" << std::setfill('0') << std::setw(3) << chapter << "/"; - if(new_rank == 000) { - outstream << "chaptertitle.txt"; - } else { + if(new_rank == 000) + { + if(sceneFile) + { + outstream << "chaptertitle.txt"; + } + } + else + { outstream << "level" << std::setfill('0') << std::setw(3) << new_rank << "/"; - outstream << "scene.txt"; + if(sceneFile) + { + outstream << "scene.txt"; + } } filename = outstream.str(); } diff --git a/src/ui/maindialog.h b/src/ui/maindialog.h index 7732f9f..cb26426 100644 --- a/src/ui/maindialog.h +++ b/src/ui/maindialog.h @@ -99,7 +99,7 @@ public: bool GetHimselfDamage(); void SetUserDir(char *base, int rank); - void BuildSceneName(std::string &filename, char *base, int rank); + void BuildSceneName(std::string &filename, char *base, int rank, bool sceneFile = true); void BuildResumeName(char *filename, char *base, int rank); std::string & GetFilesDir(); -- cgit v1.2.3-1-g7c22 From 117a5289ead3a4fd7eab1502da2be5ab3966c011 Mon Sep 17 00:00:00 2001 From: Mohamed Waheed Date: Sat, 12 Jul 2014 19:37:34 +0000 Subject: fixed issue #223 about disabling shadows/ground textures --- src/graphics/engine/engine.cpp | 80 +++++++++++++++++++++--------------------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/src/graphics/engine/engine.cpp b/src/graphics/engine/engine.cpp index e0861d2..d0b37a5 100644 --- a/src/graphics/engine/engine.cpp +++ b/src/graphics/engine/engine.cpp @@ -3124,67 +3124,67 @@ void CEngine::Draw3DScene() m_app->StartPerformanceCounter(PCNT_RENDER_TERRAIN); - // Draw terrain with shadows, if shadows enabled - if (m_shadowVisible) + // Draw terrain + + m_lightMan->UpdateDeviceLights(ENG_OBJTYPE_TERRAIN); + + for (int objRank = 0; objRank < static_cast(m_objects.size()); objRank++) { - m_lightMan->UpdateDeviceLights(ENG_OBJTYPE_TERRAIN); + if (! m_objects[objRank].used) + continue; - for (int objRank = 0; objRank < static_cast(m_objects.size()); objRank++) - { - if (! m_objects[objRank].used) - continue; + if (m_objects[objRank].type != ENG_OBJTYPE_TERRAIN) + continue; - if (m_objects[objRank].type != ENG_OBJTYPE_TERRAIN) - continue; + if (! m_objects[objRank].drawWorld) + continue; - if (! m_objects[objRank].drawWorld) - continue; + m_device->SetTransform(TRANSFORM_WORLD, m_objects[objRank].transform); - m_device->SetTransform(TRANSFORM_WORLD, m_objects[objRank].transform); + if (! IsVisible(objRank)) + continue; - if (! IsVisible(objRank)) - continue; + int baseObjRank = m_objects[objRank].baseObjRank; + if (baseObjRank == -1) + continue; - int baseObjRank = m_objects[objRank].baseObjRank; - if (baseObjRank == -1) - continue; + assert(baseObjRank >= 0 && baseObjRank < static_cast( m_baseObjects.size() )); - assert(baseObjRank >= 0 && baseObjRank < static_cast( m_baseObjects.size() )); + EngineBaseObject& p1 = m_baseObjects[baseObjRank]; + if (! p1.used) + continue; - EngineBaseObject& p1 = m_baseObjects[baseObjRank]; - if (! p1.used) - continue; + for (int l2 = 0; l2 < static_cast( p1.next.size() ); l2++) + { + EngineBaseObjTexTier& p2 = p1.next[l2]; - for (int l2 = 0; l2 < static_cast( p1.next.size() ); l2++) + SetTexture(p2.tex1, 0); + SetTexture(p2.tex2, 1); + + for (int l3 = 0; l3 < static_cast( p2.next.size() ); l3++) { - EngineBaseObjTexTier& p2 = p1.next[l2]; + EngineBaseObjLODTier& p3 = p2.next[l3]; - SetTexture(p2.tex1, 0); - SetTexture(p2.tex2, 1); + if (! IsWithinLODLimit(m_objects[objRank].distance, p3.lodLevel)) + continue; - for (int l3 = 0; l3 < static_cast( p2.next.size() ); l3++) + for (int l4 = 0; l4 < static_cast( p3.next.size() ); l4++) { - EngineBaseObjLODTier& p3 = p2.next[l3]; - - if (! IsWithinLODLimit(m_objects[objRank].distance, p3.lodLevel)) - continue; - - for (int l4 = 0; l4 < static_cast( p3.next.size() ); l4++) - { - EngineBaseObjDataTier& p4 = p3.next[l4]; + EngineBaseObjDataTier& p4 = p3.next[l4]; - SetMaterial(p4.material); - SetState(p4.state); + SetMaterial(p4.material); + SetState(p4.state); - DrawObject(p4); - } + DrawObject(p4); } } } + } - // Draws the shadows + // Draws the shadows , if shadows enabled + if (m_shadowVisible) DrawShadow(); - } + m_app->StopPerformanceCounter(PCNT_RENDER_TERRAIN); -- cgit v1.2.3-1-g7c22 From 15f73d0cea6855107a61f2360254a24a2d66944d Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sun, 13 Jul 2014 04:32:51 +0200 Subject: Auto-update from Pootle 2014-07-13 This commit was automatically generated from http://translations.colobot.info/ --- data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data b/data index d9ad327..b4c9190 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit d9ad3270af60905f53929cdf44aa47b4f910f603 +Subproject commit b4c9190a85ef8bda3a1b7992dada1f8fcecc37c2 -- cgit v1.2.3-1-g7c22 From 878d37a593f02fe0b1ff9f9d34b3b35a8c152c40 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Tue, 15 Jul 2014 04:33:12 +0200 Subject: Auto-update from Pootle 2014-07-15 This commit was automatically generated from http://translations.colobot.info/ --- data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data b/data index b4c9190..14137c0 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit b4c9190a85ef8bda3a1b7992dada1f8fcecc37c2 +Subproject commit 14137c0761f13d8395f43dca28cad813b6ad5c9b -- cgit v1.2.3-1-g7c22 From 6fd5caeee9c3ec684d748977f501520bc32bff98 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Wed, 16 Jul 2014 04:33:09 +0200 Subject: Auto-update from Pootle 2014-07-16 This commit was automatically generated from http://translations.colobot.info/ --- data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data b/data index 14137c0..d775bf9 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit 14137c0761f13d8395f43dca28cad813b6ad5c9b +Subproject commit d775bf97639bb272425e7c3f8be85c813fce4271 -- cgit v1.2.3-1-g7c22 From b03f15e0dbdeb254d7a40010234cec837db90627 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Thu, 17 Jul 2014 04:33:02 +0200 Subject: Auto-update from Pootle 2014-07-17 This commit was automatically generated from http://translations.colobot.info/ --- po/de.po | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/po/de.po b/po/de.po index b6ce0cf..3c5b134 100644 --- a/po/de.po +++ b/po/de.po @@ -7,17 +7,18 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-07-10 16:50+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2014-06-30 12:23+0200\n" +"Last-Translator: krzys_h \n" "Language-Team: LANGUAGE \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Translate Toolkit 1.11.0\n" +"X-Generator: Pootle 2.5.1.1\n" "X-Language: de_DE\n" "X-Source-Language: en_US\n" +"X-POOTLE-MTIME: 1404127439.000000\n" msgid "Colobot rules!" msgstr "Colobot ist wunderbar!" @@ -644,8 +645,9 @@ msgstr "Anweisungen über die Mission(\\key help;)" msgid "Take off to finish the mission" msgstr "Abheben nach vollbrachter Mission" +#, fuzzy msgid "Destroy" -msgstr "" +msgstr "Einstampfer" msgid "Build a derrick" msgstr "Baut einen Bohrturm" @@ -686,8 +688,9 @@ msgstr "Baut einen Blitzableiter" msgid "Build a exchange post" msgstr "Baut einen Infoserver" +#, fuzzy msgid "Build a destroyer" -msgstr "" +msgstr "Gebäude zerstört" msgid "Show if the ground is flat" msgstr "Zeigt ob der Boden eben ist" @@ -1469,8 +1472,9 @@ msgstr "Keine Fahne in Reichweite" msgid "Not found anything to destroy" msgstr "" +#, fuzzy msgid "Inappropriate object" -msgstr "" +msgstr "Roboter ungeeignet" msgid "" "The mission is not accomplished yet (press \\key help; for more details)" -- cgit v1.2.3-1-g7c22 From 20df3a91a25c23e142189cf870007af126239600 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sun, 20 Jul 2014 04:33:05 +0200 Subject: Auto-update from Pootle 2014-07-20 This commit was automatically generated from http://translations.colobot.info/ --- data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data b/data index d775bf9..2f2c690 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit d775bf97639bb272425e7c3f8be85c813fce4271 +Subproject commit 2f2c6907dbdffd16ee998179b29f82d05e290d1e -- cgit v1.2.3-1-g7c22 From 459f72fb58f9e2586d693eb78accb73cb5efc699 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Wed, 23 Jul 2014 04:33:02 +0200 Subject: Auto-update from Pootle 2014-07-23 This commit was automatically generated from http://translations.colobot.info/ --- data | 2 +- po/de.po | 22 ++++++++++------------ 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/data b/data index 2f2c690..b8d5e71 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit 2f2c6907dbdffd16ee998179b29f82d05e290d1e +Subproject commit b8d5e712c64a1d426522f09272a45e229979e591 diff --git a/po/de.po b/po/de.po index 3c5b134..ab932d3 100644 --- a/po/de.po +++ b/po/de.po @@ -7,8 +7,8 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-07-10 16:50+0200\n" -"PO-Revision-Date: 2014-06-30 12:23+0200\n" -"Last-Translator: krzys_h \n" +"PO-Revision-Date: 2014-07-22 20:26+0200\n" +"Last-Translator: GermanBot \n" "Language-Team: LANGUAGE \n" "Language: de\n" "MIME-Version: 1.0\n" @@ -18,7 +18,7 @@ msgstr "" "X-Generator: Pootle 2.5.1.1\n" "X-Language: de_DE\n" "X-Source-Language: en_US\n" -"X-POOTLE-MTIME: 1404127439.000000\n" +"X-POOTLE-MTIME: 1406057163.000000\n" msgid "Colobot rules!" msgstr "Colobot ist wunderbar!" @@ -645,9 +645,8 @@ msgstr "Anweisungen über die Mission(\\key help;)" msgid "Take off to finish the mission" msgstr "Abheben nach vollbrachter Mission" -#, fuzzy msgid "Destroy" -msgstr "Einstampfer" +msgstr "Zerstören" msgid "Build a derrick" msgstr "Baut einen Bohrturm" @@ -688,9 +687,8 @@ msgstr "Baut einen Blitzableiter" msgid "Build a exchange post" msgstr "Baut einen Infoserver" -#, fuzzy msgid "Build a destroyer" -msgstr "Gebäude zerstört" +msgstr "Baue einen Zerstörer" msgid "Show if the ground is flat" msgstr "Zeigt ob der Boden eben ist" @@ -822,7 +820,7 @@ msgid "Shoot (\\key action;)" msgstr "Feuer (\\key action;)" msgid "Explode (\\key action;)" -msgstr "" +msgstr "Explodieren (\\key action;)" msgid "Recycle (\\key action;)" msgstr "Recyceln (\\key action;)" @@ -1296,7 +1294,7 @@ msgid "Lunar Roving Vehicle" msgstr "Lunar Roving Vehicle" msgid "Internal error - tell the developers" -msgstr "" +msgstr "Interner Fehler - Benachrichtige die Entwickler" msgid "Unknown command" msgstr "Befehl unbekannt" @@ -1359,10 +1357,10 @@ msgid "Too close to a building" msgstr "Zu nahe an einem Gebäude" msgid "Can not produce this object in this mission" -msgstr "" +msgstr "Das Objekt kann in dieser Mission nicht produziert werden" msgid "Can not produce not researched object" -msgstr "" +msgstr "Das erforschte Objekt kann nicht produziert werden" msgid "Ground inappropriate" msgstr "Boden ungeeignet" @@ -1470,7 +1468,7 @@ msgid "No flag nearby" msgstr "Keine Fahne in Reichweite" msgid "Not found anything to destroy" -msgstr "" +msgstr "Nichts zum Zerstampfen gefunden" #, fuzzy msgid "Inappropriate object" -- cgit v1.2.3-1-g7c22 From f290b6c4e73afaaa5326ee3919b0c95cd877a45c Mon Sep 17 00:00:00 2001 From: krzys-h Date: Thu, 24 Jul 2014 04:32:39 +0200 Subject: Auto-update from Pootle 2014-07-24 This commit was automatically generated from http://translations.colobot.info/ --- data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data b/data index b8d5e71..0e40e07 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit b8d5e712c64a1d426522f09272a45e229979e591 +Subproject commit 0e40e07941e0b932413570999db7e27dc964fc6d -- cgit v1.2.3-1-g7c22 From 86683c06ade41db9a3fe8390a697b702966d3047 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Thu, 24 Jul 2014 11:44:51 +0200 Subject: Pootle broke stuff, I've fixed stuff --- data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data b/data index 0e40e07..55b1a1c 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit 0e40e07941e0b932413570999db7e27dc964fc6d +Subproject commit 55b1a1c201c9a8104d9f46bf6e68bde6960b7bc5 -- cgit v1.2.3-1-g7c22 From 7131abd385bb370328e7c59e8a6b70d160b2effc Mon Sep 17 00:00:00 2001 From: krzys-h Date: Thu, 24 Jul 2014 22:17:49 +0200 Subject: Fixed SatCom image loading Now LoadTexture/SetTexture functions require full path with "textures/" directory --- src/graphics/engine/cloud.cpp | 6 ++-- src/graphics/engine/engine.cpp | 48 +++++++++++++++---------------- src/graphics/engine/lightning.cpp | 2 +- src/graphics/engine/particle.cpp | 6 ++-- src/graphics/engine/planet.cpp | 4 +-- src/graphics/engine/pyro.cpp | 4 +-- src/graphics/engine/water.cpp | 6 ++-- src/object/auto/autobase.cpp | 4 +-- src/object/robotmain.cpp | 32 ++++++++++----------- src/ui/button.cpp | 2 +- src/ui/check.cpp | 2 +- src/ui/color.cpp | 2 +- src/ui/compass.cpp | 2 +- src/ui/control.cpp | 14 ++++----- src/ui/edit.cpp | 7 ++--- src/ui/gauge.cpp | 2 +- src/ui/group.cpp | 60 +++++++++++++++++++-------------------- src/ui/image.cpp | 8 ++++-- src/ui/key.cpp | 2 +- src/ui/list.cpp | 10 +++---- src/ui/map.cpp | 32 +++++++++++---------- src/ui/scroll.cpp | 8 +++--- src/ui/shortcut.cpp | 6 ++-- src/ui/slider.cpp | 6 ++-- src/ui/window.cpp | 38 ++++++++++++------------- 25 files changed, 158 insertions(+), 155 deletions(-) diff --git a/src/graphics/engine/cloud.cpp b/src/graphics/engine/cloud.cpp index 74083af..2f1720e 100644 --- a/src/graphics/engine/cloud.cpp +++ b/src/graphics/engine/cloud.cpp @@ -125,8 +125,8 @@ void CCloud::Draw() material.ambient = m_ambient; m_engine->SetMaterial(material); - m_engine->SetTexture(m_fileName, 0); - m_engine->SetTexture(m_fileName, 1); + m_engine->SetTexture("textures/"+m_fileName, 0); + m_engine->SetTexture("textures/"+m_fileName, 1); m_engine->SetState(ENG_RSTATE_TTEXTURE_BLACK | ENG_RSTATE_FOG | ENG_RSTATE_WRAP); @@ -218,7 +218,7 @@ void CCloud::Create(const std::string& fileName, m_fileName = fileName; if (! m_fileName.empty()) - m_engine->LoadTexture(m_fileName); + m_engine->LoadTexture("textures/"+m_fileName); if (m_terrain == nullptr) m_terrain = CRobotMain::GetInstancePointer()->GetTerrain(); diff --git a/src/graphics/engine/engine.cpp b/src/graphics/engine/engine.cpp index cfb794a..2996cb2 100644 --- a/src/graphics/engine/engine.cpp +++ b/src/graphics/engine/engine.cpp @@ -282,7 +282,7 @@ bool CEngine::Create() params.minFilter = TEX_MIN_FILTER_NEAREST; params.magFilter = TEX_MAG_FILTER_NEAREST; params.mipmap = false; - m_miceTexture = LoadTexture("interface/mouse.png", params); + m_miceTexture = LoadTexture("textures/interface/mouse.png", params); GetSystemUtils()->GetCurrentTimeStamp(m_currentFrameTime); GetSystemUtils()->GetCurrentTimeStamp(m_lastFrameTime); @@ -1123,10 +1123,10 @@ void CEngine::ChangeSecondTexture(int objRank, const std::string& tex2Name) p1.next[l2].next.clear(); if (!newP2.tex1.Valid()) - newP2.tex1 = LoadTexture(newP2.tex1Name); + newP2.tex1 = LoadTexture("textures/"+newP2.tex1Name); if (!newP2.tex2.Valid()) - newP2.tex2 = LoadTexture(newP2.tex2Name); + newP2.tex2 = LoadTexture("textures/"+newP2.tex2Name); } } @@ -2257,7 +2257,7 @@ Texture CEngine::CreateTexture(const std::string& texName, const TextureCreatePa if (image == nullptr) { - if (!img.Load("textures/"+texName)) + if (!img.Load(texName)) { std::string error = img.GetError(); GetLogger()->Error("Couldn't load texture '%s': %s, blacklisting\n", texName.c_str(), error.c_str()); @@ -2308,27 +2308,27 @@ Texture CEngine::LoadTexture(const std::string& name, const TextureCreateParams& bool CEngine::LoadAllTextures() { - LoadTexture("interface/text.png"); - m_miceTexture = LoadTexture("interface/mouse.png"); - LoadTexture("interface/button1.png"); - LoadTexture("interface/button2.png"); - LoadTexture("interface/button3.png"); - LoadTexture("interface/effect00.png"); - LoadTexture("interface/effect01.png"); - LoadTexture("interface/effect02.png"); - LoadTexture("interface/map.png"); + LoadTexture("textures/interface/text.png"); + m_miceTexture = LoadTexture("textures/interface/mouse.png"); + LoadTexture("textures/interface/button1.png"); + LoadTexture("textures/interface/button2.png"); + LoadTexture("textures/interface/button3.png"); + LoadTexture("textures/interface/effect00.png"); + LoadTexture("textures/interface/effect01.png"); + LoadTexture("textures/interface/effect02.png"); + LoadTexture("textures/interface/map.png"); if (! m_backgroundName.empty()) { TextureCreateParams params = m_defaultTexParams; params.padToNearestPowerOfTwo = true; - m_backgroundTex = LoadTexture(m_backgroundName, params); + m_backgroundTex = LoadTexture("textures/"+m_backgroundName, params); } else m_backgroundTex.SetInvalid(); if (! m_foregroundName.empty()) - m_foregroundTex = LoadTexture(m_foregroundName); + m_foregroundTex = LoadTexture("textures/"+m_foregroundName); else m_foregroundTex.SetInvalid(); @@ -2362,9 +2362,9 @@ bool CEngine::LoadAllTextures() if (! p2.tex1Name.empty()) { if (terrain) - p2.tex1 = LoadTexture(p2.tex1Name, m_terrainTexParams); + p2.tex1 = LoadTexture("textures/"+p2.tex1Name, m_terrainTexParams); else - p2.tex1 = LoadTexture(p2.tex1Name); + p2.tex1 = LoadTexture("textures/"+p2.tex1Name); if (! p2.tex1.Valid()) ok = false; @@ -2373,9 +2373,9 @@ bool CEngine::LoadAllTextures() if (! p2.tex2Name.empty()) { if (terrain) - p2.tex2 = LoadTexture(p2.tex2Name, m_terrainTexParams); + p2.tex2 = LoadTexture("textures/"+p2.tex2Name, m_terrainTexParams); else - p2.tex2 = LoadTexture(p2.tex2Name); + p2.tex2 = LoadTexture("textures/"+p2.tex2Name); if (! p2.tex2.Valid()) ok = false; @@ -2425,7 +2425,7 @@ bool CEngine::ChangeTextureColor(const std::string& texName, CImage img; - if (!img.Load("textures/"+texName)) + if (!img.Load(texName)) { std::string error = img.GetError(); GetLogger()->Error("Couldn't load texture '%s': %s, blacklisting\n", texName.c_str(), error.c_str()); @@ -2770,7 +2770,7 @@ void CEngine::SetBackground(const std::string& name, Color up, Color down, { TextureCreateParams params = m_defaultTexParams; params.padToNearestPowerOfTwo = true; - m_backgroundTex = LoadTexture(m_backgroundName, params); + m_backgroundTex = LoadTexture("textures/"+m_backgroundName, params); } } @@ -2796,7 +2796,7 @@ void CEngine::SetForegroundName(const std::string& name) m_foregroundName = name; if (! m_foregroundName.empty()) - m_foregroundTex = LoadTexture(m_foregroundName); + m_foregroundTex = LoadTexture("textures/"+m_foregroundName); } void CEngine::SetOverFront(bool front) @@ -3735,7 +3735,7 @@ void CEngine::UpdateGroundSpotTextures() } std::stringstream str; - str << "shadow" << std::setfill('0') << std::setw(2) << s << ".png"; + str << "textures/shadow" << std::setfill('0') << std::setw(2) << s << ".png"; std::string texName = str.str(); DeleteTexture(texName); @@ -3784,7 +3784,7 @@ void CEngine::DrawShadow() SetMaterial(material); // TODO: create a separate texture - SetTexture("interface/text.png"); + SetTexture("textures/interface/text.png"); Math::Point ts, ti; diff --git a/src/graphics/engine/lightning.cpp b/src/graphics/engine/lightning.cpp index b0e144c..69d8a3c 100644 --- a/src/graphics/engine/lightning.cpp +++ b/src/graphics/engine/lightning.cpp @@ -235,7 +235,7 @@ void CLightning::Draw() mat.LoadIdentity(); device->SetTransform(TRANSFORM_WORLD, mat); - m_engine->SetTexture("interface/effect00.png"); + m_engine->SetTexture("textures/interface/effect00.png"); m_engine->SetState(ENG_RSTATE_TTEXTURE_BLACK); Math::Point texInf; diff --git a/src/graphics/engine/particle.cpp b/src/graphics/engine/particle.cpp index 3dc8c0d..229385e 100644 --- a/src/graphics/engine/particle.cpp +++ b/src/graphics/engine/particle.cpp @@ -3532,7 +3532,7 @@ void CParticle::DrawParticle(int sheet) if (m_particle[i].sheet != sheet) continue; if (m_particle[i].type == PARTIPART) continue; - m_engine->SetTexture(m_triangle[i].tex1Name); + m_engine->SetTexture("textures/"+m_triangle[i].tex1Name); m_engine->SetMaterial(m_triangle[i].material); m_engine->SetState(m_triangle[i].state); DrawParticleTriangle(i); @@ -3551,7 +3551,7 @@ void CParticle::DrawParticle(int sheet) // Draw tire marks. if (m_wheelTraceTotal > 0 && sheet == SH_WORLD) { - m_engine->SetTexture("interface/text.png"); + m_engine->SetTexture("textures/interface/text.png"); m_engine->SetState(ENG_RSTATE_TTEXTURE_WHITE); Math::Matrix matrix; matrix.LoadIdentity(); @@ -3582,7 +3582,7 @@ void CParticle::DrawParticle(int sheet) { std::string name; NameParticle(name, t); - m_engine->SetTexture(name); + m_engine->SetTexture("textures/"+name); loadTexture = true; } diff --git a/src/graphics/engine/planet.cpp b/src/graphics/engine/planet.cpp index 0c96f63..bfcfe8a 100644 --- a/src/graphics/engine/planet.cpp +++ b/src/graphics/engine/planet.cpp @@ -86,7 +86,7 @@ void CPlanet::LoadTexture() { for (int i = 0; i < static_cast( m_planet[j].size() ); i++) { - m_engine->LoadTexture(m_planet[j][i].name); + m_engine->LoadTexture("textures/"+m_planet[j][i].name); } } } @@ -102,7 +102,7 @@ void CPlanet::Draw() for (int i = 0; i < static_cast( m_planet[m_mode].size() ); i++) { - m_engine->SetTexture(m_planet[m_mode][i].name); + m_engine->SetTexture("textures/"+m_planet[m_mode][i].name); if (m_planet[m_mode][i].transparent) m_engine->SetState(ENG_RSTATE_WRAP | ENG_RSTATE_ALPHA); diff --git a/src/graphics/engine/pyro.cpp b/src/graphics/engine/pyro.cpp index d3e0405..ea0b0fa 100644 --- a/src/graphics/engine/pyro.cpp +++ b/src/graphics/engine/pyro.cpp @@ -1594,7 +1594,7 @@ void CPyro::ExploStart() if (channel != -1) m_object->SetMasterParticle(i, channel); } - m_engine->LoadTexture("dirty04.png"); + m_engine->LoadTexture("textures/dirty04.png"); DeleteObject(false, true); // destroys the object transported + the battery } @@ -1637,7 +1637,7 @@ void CPyro::BurnStart() m_engine->ChangeSecondTexture(objRank, "dirty04.png"); } } - m_engine->LoadTexture("dirty04.png"); + m_engine->LoadTexture("textures/dirty04.png"); m_burnPartTotal = 0; diff --git a/src/graphics/engine/water.cpp b/src/graphics/engine/water.cpp index d1f8d29..cb0c43f 100644 --- a/src/graphics/engine/water.cpp +++ b/src/graphics/engine/water.cpp @@ -348,8 +348,8 @@ void CWater::DrawSurf() material.ambient = m_ambient; m_engine->SetMaterial(material); - m_engine->SetTexture(m_fileName, 0); - m_engine->SetTexture(m_fileName, 1); + m_engine->SetTexture("textures/"+m_fileName, 0); + m_engine->SetTexture("textures/"+m_fileName, 1); if (m_type[rankview] == WATER_TT) m_engine->SetState(ENG_RSTATE_TTEXTURE_BLACK | ENG_RSTATE_DUAL_WHITE | ENG_RSTATE_WRAP, m_color); @@ -492,7 +492,7 @@ void CWater::Create(WaterType type1, WaterType type2, const std::string& fileNam VaporFlush(); if (! m_fileName.empty()) - m_engine->LoadTexture(m_fileName); + m_engine->LoadTexture("textures/"+m_fileName); if (m_terrain == nullptr) m_terrain = CRobotMain::GetInstancePointer()->GetTerrain(); diff --git a/src/object/auto/autobase.cpp b/src/object/auto/autobase.cpp index af6c6e0..718a72b 100644 --- a/src/object/auto/autobase.cpp +++ b/src/object/auto/autobase.cpp @@ -1371,7 +1371,7 @@ void CAutoBase::BeginTransit() Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f)); - m_engine->LoadTexture(m_bgBack); + m_engine->LoadTexture("textures/"+m_bgBack); m_cloud->SetEnabled(false); // cache clouds m_planet->SetMode(1); @@ -1388,7 +1388,7 @@ void CAutoBase::EndTransit() m_engine->DeleteTexture(m_bgBack); m_engine->SetBackground(m_bgName, m_bgUp, m_bgDown, m_bgCloudUp, m_bgCloudDown); - m_engine->LoadTexture(m_bgName); + m_engine->LoadTexture("textures/"+m_bgName); m_cloud->SetEnabled(true); // gives the clouds m_planet->SetMode(0); diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp index 9860943..407a1ec 100644 --- a/src/object/robotmain.cpp +++ b/src/object/robotmain.cpp @@ -5153,7 +5153,7 @@ void CRobotMain::ChangeColor() exclu[3] = Math::Point(256.0f/256.0f, 256.0f/256.0f); // SatCom screen exclu[4] = Math::Point(0.0f, 0.0f); exclu[5] = Math::Point(0.0f, 0.0f); // terminator - m_engine->ChangeTextureColor("human.png", colorRef1, colorNew1, colorRef2, colorNew2, 0.30f, 0.01f, ts, ti, exclu); + m_engine->ChangeTextureColor("textures/human.png", colorRef1, colorNew1, colorRef2, colorNew2, 0.30f, 0.01f, ts, ti, exclu); float tolerance; @@ -5195,7 +5195,7 @@ void CRobotMain::ChangeColor() colorNew2.b = 0.0f; char name[100]; - sprintf(name, "face%.2d.png", face+1); + sprintf(name, "textures/face%.2d.png", face+1); exclu[0] = Math::Point(105.0f/256.0f, 47.0f/166.0f); exclu[1] = Math::Point(153.0f/256.0f, 79.0f/166.0f); // blue canister exclu[2] = Math::Point(0.0f, 0.0f); @@ -5209,19 +5209,19 @@ void CRobotMain::ChangeColor() colorNew2.g = 0.0f; colorNew2.b = 0.0f; - m_engine->ChangeTextureColor("base1.png", m_colorRefBot, m_colorNewBot, colorRef2, colorNew2, 0.10f, -1.0f, ts, ti, 0, 0, true); - m_engine->ChangeTextureColor("convert.png", m_colorRefBot, m_colorNewBot, colorRef2, colorNew2, 0.10f, -1.0f, ts, ti, 0, 0, true); - m_engine->ChangeTextureColor("derrick.png", m_colorRefBot, m_colorNewBot, colorRef2, colorNew2, 0.10f, -1.0f, ts, ti, 0, 0, true); - m_engine->ChangeTextureColor("factory.png", m_colorRefBot, m_colorNewBot, colorRef2, colorNew2, 0.10f, -1.0f, ts, ti, 0, 0, true); - m_engine->ChangeTextureColor("lemt.png", m_colorRefBot, m_colorNewBot, colorRef2, colorNew2, 0.10f, -1.0f, ts, ti, 0, 0, true); - m_engine->ChangeTextureColor("roller.png", m_colorRefBot, m_colorNewBot, colorRef2, colorNew2, 0.10f, -1.0f, ts, ti, 0, 0, true); - m_engine->ChangeTextureColor("search.png", m_colorRefBot, m_colorNewBot, colorRef2, colorNew2, 0.10f, -1.0f, ts, ti, 0, 0, true); + m_engine->ChangeTextureColor("textures/base1.png", m_colorRefBot, m_colorNewBot, colorRef2, colorNew2, 0.10f, -1.0f, ts, ti, 0, 0, true); + m_engine->ChangeTextureColor("textures/convert.png", m_colorRefBot, m_colorNewBot, colorRef2, colorNew2, 0.10f, -1.0f, ts, ti, 0, 0, true); + m_engine->ChangeTextureColor("textures/derrick.png", m_colorRefBot, m_colorNewBot, colorRef2, colorNew2, 0.10f, -1.0f, ts, ti, 0, 0, true); + m_engine->ChangeTextureColor("textures/factory.png", m_colorRefBot, m_colorNewBot, colorRef2, colorNew2, 0.10f, -1.0f, ts, ti, 0, 0, true); + m_engine->ChangeTextureColor("textures/lemt.png", m_colorRefBot, m_colorNewBot, colorRef2, colorNew2, 0.10f, -1.0f, ts, ti, 0, 0, true); + m_engine->ChangeTextureColor("textures/roller.png", m_colorRefBot, m_colorNewBot, colorRef2, colorNew2, 0.10f, -1.0f, ts, ti, 0, 0, true); + m_engine->ChangeTextureColor("textures/search.png", m_colorRefBot, m_colorNewBot, colorRef2, colorNew2, 0.10f, -1.0f, ts, ti, 0, 0, true); exclu[0] = Math::Point( 0.0f/256.0f, 160.0f/256.0f); exclu[1] = Math::Point(256.0f/256.0f, 256.0f/256.0f); // pencils exclu[2] = Math::Point(0.0f, 0.0f); exclu[3] = Math::Point(0.0f, 0.0f); // terminator - m_engine->ChangeTextureColor("drawer.png", m_colorRefBot, m_colorNewBot, colorRef2, colorNew2, 0.10f, -1.0f, ts, ti, exclu, 0, true); + m_engine->ChangeTextureColor("textures/drawer.png", m_colorRefBot, m_colorNewBot, colorRef2, colorNew2, 0.10f, -1.0f, ts, ti, exclu, 0, true); exclu[0] = Math::Point(237.0f/256.0f, 176.0f/256.0f); exclu[1] = Math::Point(256.0f/256.0f, 220.0f/256.0f); // blue canister @@ -5229,26 +5229,26 @@ void CRobotMain::ChangeColor() exclu[3] = Math::Point(130.0f/256.0f, 214.0f/256.0f); // safe location exclu[4] = Math::Point(0.0f, 0.0f); exclu[5] = Math::Point(0.0f, 0.0f); // terminator - m_engine->ChangeTextureColor("subm.png", m_colorRefBot, m_colorNewBot, colorRef2, colorNew2, 0.10f, -1.0f, ts, ti, exclu, 0, true); + m_engine->ChangeTextureColor("textures/subm.png", m_colorRefBot, m_colorNewBot, colorRef2, colorNew2, 0.10f, -1.0f, ts, ti, exclu, 0, true); exclu[0] = Math::Point(128.0f/256.0f, 160.0f/256.0f); exclu[1] = Math::Point(256.0f/256.0f, 256.0f/256.0f); // SatCom exclu[2] = Math::Point(0.0f, 0.0f); exclu[3] = Math::Point(0.0f, 0.0f); // terminator - m_engine->ChangeTextureColor("ant.png", m_colorRefAlien, m_colorNewAlien, colorRef2, colorNew2, 0.50f, -1.0f, ts, ti, exclu); - m_engine->ChangeTextureColor("mother.png", m_colorRefAlien, m_colorNewAlien, colorRef2, colorNew2, 0.50f, -1.0f, ts, ti); + m_engine->ChangeTextureColor("textures/ant.png", m_colorRefAlien, m_colorNewAlien, colorRef2, colorNew2, 0.50f, -1.0f, ts, ti, exclu); + m_engine->ChangeTextureColor("textures/mother.png", m_colorRefAlien, m_colorNewAlien, colorRef2, colorNew2, 0.50f, -1.0f, ts, ti); - m_engine->ChangeTextureColor("plant.png", m_colorRefGreen, m_colorNewGreen, colorRef2, colorNew2, 0.50f, -1.0f, ts, ti); + m_engine->ChangeTextureColor("textures/plant.png", m_colorRefGreen, m_colorNewGreen, colorRef2, colorNew2, 0.50f, -1.0f, ts, ti); // PARTIPLOUF0 and PARTIDROP : ts = Math::Point(0.500f, 0.500f); ti = Math::Point(0.875f, 0.750f); - m_engine->ChangeTextureColor("interface/effect00.png", m_colorRefWater, m_colorNewWater, colorRef2, colorNew2, 0.20f, -1.0f, ts, ti, 0, m_colorShiftWater, true); + m_engine->ChangeTextureColor("textures/interface/effect00.png", m_colorRefWater, m_colorNewWater, colorRef2, colorNew2, 0.20f, -1.0f, ts, ti, 0, m_colorShiftWater, true); // PARTIFLIC : ts = Math::Point(0.00f, 0.75f); ti = Math::Point(0.25f, 1.00f); - m_engine->ChangeTextureColor("interface/effect02.png", m_colorRefWater, m_colorNewWater, colorRef2, colorNew2, 0.20f, -1.0f, ts, ti, 0, m_colorShiftWater, true); + m_engine->ChangeTextureColor("textures/interface/effect02.png", m_colorRefWater, m_colorNewWater, colorRef2, colorNew2, 0.20f, -1.0f, ts, ti, 0, m_colorShiftWater, true); } //! Updates the number of unnecessary objects diff --git a/src/ui/button.cpp b/src/ui/button.cpp index 2a1fb3b..d859fb7 100644 --- a/src/ui/button.cpp +++ b/src/ui/button.cpp @@ -176,7 +176,7 @@ void CButton::Draw() (m_state & STATE_CARD ) == 0 && (m_state & STATE_SIMPLY) == 0 ) { - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); dp = 0.5f / 256.0f; diff --git a/src/ui/check.cpp b/src/ui/check.cpp index 9d42b86..3410d2e 100644 --- a/src/ui/check.cpp +++ b/src/ui/check.cpp @@ -102,7 +102,7 @@ void CCheck::Draw() DrawShadow(m_pos, m_dim); } - m_engine->SetTexture("interface/button1.png"); + m_engine->SetTexture("textures/interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); zoomExt = 1.00f; diff --git a/src/ui/color.cpp b/src/ui/color.cpp index 57e78d5..1f8cb29 100644 --- a/src/ui/color.cpp +++ b/src/ui/color.cpp @@ -138,7 +138,7 @@ void CColor::Draw() DrawShadow(m_pos, m_dim); } - m_engine->SetTexture("interface/button1.png"); + m_engine->SetTexture("textures/interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); CControl::Draw(); diff --git a/src/ui/compass.cpp b/src/ui/compass.cpp index 068c37f..ebe1908 100644 --- a/src/ui/compass.cpp +++ b/src/ui/compass.cpp @@ -88,7 +88,7 @@ void CCompass::Draw() device = m_engine->GetDevice(); - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); p1.x = m_pos.x; diff --git a/src/ui/control.cpp b/src/ui/control.cpp index 6686c55..98c3396 100644 --- a/src/ui/control.cpp +++ b/src/ui/control.cpp @@ -437,7 +437,7 @@ void CControl::Draw() if ( (m_state & STATE_VISIBLE) == 0 ) return; - m_engine->SetTexture("interface/button1.png"); + m_engine->SetTexture("textures/interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); zoomExt = 1.00f; @@ -491,7 +491,7 @@ void CControl::Draw() if ( m_state & STATE_OKAY ) { - m_engine->SetTexture("interface/button3.png"); + m_engine->SetTexture("textures/interface/button3.png"); icon = 3; // yellow with green point pressed } @@ -506,19 +506,19 @@ void CControl::Draw() if ( icon >= 192 ) { icon -= 192; - m_engine->SetTexture("interface/text.png"); + m_engine->SetTexture("textures/interface/text.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); } else if ( icon >= 128 ) { icon -= 128; - m_engine->SetTexture("interface/button3.png"); + m_engine->SetTexture("textures/interface/button3.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); } else if ( icon >= 64 ) { icon -= 64; - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); } else @@ -751,7 +751,7 @@ void CControl::DrawWarning(Math::Point pos, Math::Point dim) dp = 0.5f / 256.0f; - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 64.0f / 256.0f; @@ -795,7 +795,7 @@ void CControl::DrawShadow(Math::Point pos, Math::Point dim, float deep) dp = 0.5f/256.0f; - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState( Gfx::ENG_RSTATE_TTEXTURE_WHITE); pos.x += deep * 0.010f * 0.75f; diff --git a/src/ui/edit.cpp b/src/ui/edit.cpp index a0387bf..8f46e42 100644 --- a/src/ui/edit.cpp +++ b/src/ui/edit.cpp @@ -1146,7 +1146,6 @@ void CEdit::DrawImage(Math::Point pos, std::string name, float width, filename = name + ".png"; CRobotMain::InjectLevelDir(filename, "icons"); boost::replace_all(filename, "\\", "/"); //TODO: Fix this in files - filename = "../" + filename; m_engine->SetTexture(filename); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); @@ -1176,7 +1175,7 @@ void CEdit::DrawBack(Math::Point pos, Math::Point dim) if ( m_bGeneric ) return; - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); if ( m_bMulti ) @@ -1226,7 +1225,7 @@ void CEdit::DrawPart(Math::Point pos, Math::Point dim, int icon) Math::Point uv1, uv2; float dp; - m_engine->SetTexture("interface/text.png"); + m_engine->SetTexture("textures/interface/text.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = (16.0f/256.0f)*(icon%16); @@ -1437,7 +1436,7 @@ void CEdit::LoadImage(std::string name) filename = name + ".png"; CRobotMain::InjectLevelDir(filename, "icons"); boost::replace_all(filename, "\\", "/"); //TODO: Fix this in files - m_engine->LoadTexture("../"+filename); + m_engine->LoadTexture(filename); } // Read from a text file. diff --git a/src/ui/gauge.cpp b/src/ui/gauge.cpp index 73585d3..170db5b 100644 --- a/src/ui/gauge.cpp +++ b/src/ui/gauge.cpp @@ -75,7 +75,7 @@ void CGauge::Draw() if ( (m_state & STATE_VISIBLE) == 0 ) return; - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); dp = 0.5f/256.0f; diff --git a/src/ui/group.cpp b/src/ui/group.cpp index 723a9fc..d90a9e6 100644 --- a/src/ui/group.cpp +++ b/src/ui/group.cpp @@ -87,7 +87,7 @@ void CGroup::Draw() if ( m_icon == 0 ) // hollow frame? { - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 160.0f / 256.0f; uv1.y = 192.0f / 256.0f; // u-v texture @@ -103,7 +103,7 @@ void CGroup::Draw() } if ( m_icon == 1 ) // orange solid opaque? { - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 104.0f / 256.0f; uv1.y = 48.0f / 256.0f; @@ -117,7 +117,7 @@ void CGroup::Draw() } if ( m_icon == 2 ) // orange degrade -> transparent? { - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); uv1.x = 112.0f / 256.0f; uv1.y = 48.0f / 256.0f; @@ -131,7 +131,7 @@ void CGroup::Draw() } if ( m_icon == 3 ) // transparent gradient -> gray? { - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); uv1.x = 120.0f / 256.0f; uv1.y = 48.0f / 256.0f; @@ -145,7 +145,7 @@ void CGroup::Draw() } if ( m_icon == 4 ) // degrade blue corner? { - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); uv1.x = 192.0f / 256.0f; uv1.y = 128.0f / 256.0f; @@ -159,7 +159,7 @@ void CGroup::Draw() } if ( m_icon == 5 ) // degrade orange corner? { - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); uv1.x = 224.0f / 256.0f; uv1.y = 128.0f / 256.0f; @@ -173,7 +173,7 @@ void CGroup::Draw() } if ( m_icon == 6 ) { - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 0.0f / 256.0f; // brown transparent uv1.y = 75.0f / 256.0f; @@ -189,7 +189,7 @@ void CGroup::Draw() } if ( m_icon == 7 ) { - m_engine->SetTexture("interface/button1.png"); + m_engine->SetTexture("textures/interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 64.0f / 256.0f; uv1.y = 0.0f / 256.0f; @@ -203,7 +203,7 @@ void CGroup::Draw() } if ( m_icon == 8 ) { - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 64.0f / 256.0f; // green transparent uv1.y = 160.0f / 256.0f; @@ -217,7 +217,7 @@ void CGroup::Draw() } if ( m_icon == 9 ) { - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 64.0f / 256.0f; // red transparent uv1.y = 176.0f/256.0f; @@ -231,7 +231,7 @@ void CGroup::Draw() } if ( m_icon == 10 ) { - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 64.0f / 256.0f; // blue transparent uv1.y = 192.0f / 256.0f; @@ -245,7 +245,7 @@ void CGroup::Draw() } if ( m_icon == 11 ) { - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 64.0f / 256.0f; // yellow transparent uv1.y = 224.0f / 256.0f; @@ -262,7 +262,7 @@ void CGroup::Draw() dim.x = m_dim.x / 2.0f; dim.y = m_dim.y / 2.0f; - m_engine->SetTexture("interface/mouse.png"); + m_engine->SetTexture("textures/interface/mouse.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); pos.x = m_pos.x-m_dim.x/300.0f; pos.y = m_pos.y+m_dim.y/300.0f+dim.y; @@ -301,7 +301,7 @@ void CGroup::Draw() } if ( m_icon == 13 ) // corner upper / left? { - m_engine->SetTexture("interface/mouse.png"); + m_engine->SetTexture("textures/interface/mouse.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); pos.x = m_pos.x-m_dim.x/150.0f; pos.y = m_pos.y+m_dim.y/150.0f; @@ -322,7 +322,7 @@ void CGroup::Draw() } if ( m_icon == 14 ) // corner upper / right? { - m_engine->SetTexture("interface/mouse.png"); + m_engine->SetTexture("textures/interface/mouse.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); pos.x = m_pos.x-m_dim.x/150.0f; pos.y = m_pos.y+m_dim.y/150.0f; @@ -343,7 +343,7 @@ void CGroup::Draw() } if ( m_icon == 15 ) // corner lower / left? { - m_engine->SetTexture("interface/mouse.png"); + m_engine->SetTexture("textures/interface/mouse.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); pos.x = m_pos.x-m_dim.x/150.0f; pos.y = m_pos.y+m_dim.y/150.0f; @@ -364,7 +364,7 @@ void CGroup::Draw() } if ( m_icon == 16 ) // corner lower / left? { - m_engine->SetTexture("interface/mouse.png"); + m_engine->SetTexture("textures/interface/mouse.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); pos.x = m_pos.x-m_dim.x/150.0f; pos.y = m_pos.y+m_dim.y/150.0f; @@ -385,7 +385,7 @@ void CGroup::Draw() } if ( m_icon == 17 ) { - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 0.0f / 256.0f; // blue frame uv1.y = 75.0f / 256.0f; @@ -401,7 +401,7 @@ void CGroup::Draw() } if ( m_icon == 18 ) // arrow> for SatCom? { - m_engine->SetTexture("interface/button1.png"); + m_engine->SetTexture("textures/interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); uv1.x = 0.0f / 256.0f; // > uv1.y = 192.0f / 256.0f; @@ -415,7 +415,7 @@ void CGroup::Draw() } if ( m_icon == 19 ) // SatCom symbol? { - m_engine->SetTexture("interface/button1.png"); + m_engine->SetTexture("textures/interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); uv1.x = 224.0f / 256.0f; // SatCom symbol uv1.y = 224.0f / 256.0f; @@ -429,7 +429,7 @@ void CGroup::Draw() } if ( m_icon == 20 ) // solid blue background? { - m_engine->SetTexture("interface/button1.png"); + m_engine->SetTexture("textures/interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); uv1.x = 224.0f / 256.0f; uv1.y = 32.0f / 256.0f; @@ -443,7 +443,7 @@ void CGroup::Draw() } if ( m_icon == 21 ) // stand-by symbol? { - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); uv1.x = 160.0f / 256.0f; uv1.y = 32.0f / 256.0f; @@ -457,7 +457,7 @@ void CGroup::Draw() } if ( m_icon == 22 ) { - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 64.0f / 256.0f; // opaque yellow uv1.y = 224.0f / 256.0f; @@ -474,7 +474,7 @@ void CGroup::Draw() if ( m_icon == 23 ) { - m_engine->SetTexture("interface/button3.png"); + m_engine->SetTexture("textures/interface/button3.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 64.0f / 256.0f; // yellow uv1.y = 192.0f / 256.0f; @@ -490,7 +490,7 @@ void CGroup::Draw() } if ( m_icon == 24 ) { - m_engine->SetTexture("interface/button3.png"); + m_engine->SetTexture("textures/interface/button3.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 80.0f / 256.0f; // orange uv1.y = 192.0f / 256.0f; @@ -506,7 +506,7 @@ void CGroup::Draw() } if ( m_icon == 25 ) { - m_engine->SetTexture("interface/button3.png"); + m_engine->SetTexture("textures/interface/button3.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 64.0f / 256.0f; // orange uv1.y = 208.0f / 256.0f; @@ -522,7 +522,7 @@ void CGroup::Draw() } if ( m_icon == 26 ) { - m_engine->SetTexture("interface/button3.png"); + m_engine->SetTexture("textures/interface/button3.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 80.0f / 256.0f; // red uv1.y = 208.0f / 256.0f; @@ -538,7 +538,7 @@ void CGroup::Draw() } if ( m_icon == 27 ) { - m_engine->SetTexture("interface/button3.png"); + m_engine->SetTexture("textures/interface/button3.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 32.0f / 256.0f; uv1.y = 0.0f / 256.0f; @@ -556,7 +556,7 @@ void CGroup::Draw() pos = m_pos; dim = m_dim; - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 32.0f / 256.0f; uv1.y = 32.0f / 256.0f; @@ -568,7 +568,7 @@ void CGroup::Draw() uv2.y -= dp; DrawIcon(pos, dim, uv1, uv2); - m_engine->SetTexture("interface/button3.png"); + m_engine->SetTexture("textures/interface/button3.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); pos.x += 8.0f / 640.0f; pos.y += 8.0f / 480.0f; diff --git a/src/ui/image.cpp b/src/ui/image.cpp index 07b0675..3f002df 100644 --- a/src/ui/image.cpp +++ b/src/ui/image.cpp @@ -110,7 +110,7 @@ void CImage::Draw() if ( m_icon == 0 ) // hollow frame? { - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 160.0f / 256.0f; uv1.y = 192.0f / 256.0f; // u-v texture @@ -127,8 +127,10 @@ void CImage::Draw() if ( m_filename[0] != 0 ) // displays an image? { - m_engine->LoadTexture(m_filename); - m_engine->SetTexture(m_filename); + std::string texFilename = m_filename; + texFilename = "textures/"+texFilename; + m_engine->LoadTexture(texFilename.c_str()); + m_engine->SetTexture(texFilename); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); pos = m_pos; dim = m_dim; diff --git a/src/ui/key.cpp b/src/ui/key.cpp index 1c8ebcd..0b86a91 100644 --- a/src/ui/key.cpp +++ b/src/ui/key.cpp @@ -136,7 +136,7 @@ void CKey::Draw() DrawShadow(m_pos, m_dim); - m_engine->SetTexture("interface/button1.png"); + m_engine->SetTexture("textures/interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); // was D3DSTATENORMAL float zoomExt = 1.00f; diff --git a/src/ui/list.cpp b/src/ui/list.cpp index bccb435..b5f7599 100644 --- a/src/ui/list.cpp +++ b/src/ui/list.cpp @@ -388,7 +388,7 @@ void CList::Draw() if (m_icon == 0) { - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 128.0f / 256.0f; @@ -398,7 +398,7 @@ void CList::Draw() } else { - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 132.0f / 256.0f; @@ -434,7 +434,7 @@ void CList::Draw() dim.y *= 0.4f; pos.y -= dim.y; - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); // was D3DSTATETTw uv1.x = 120.0f / 256.0f; uv1.y = 64.0f / 256.0f; @@ -509,7 +509,7 @@ void CList::Draw() if ( m_check[i + m_firstLine] ) { - m_engine->SetTexture("interface/button1.png"); + m_engine->SetTexture("textures/interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 64.0f / 256.0f; uv1.y = 0.0f / 256.0f; @@ -534,7 +534,7 @@ void CList::Draw() } else { - m_engine->SetTexture("interface/button1.png"); + m_engine->SetTexture("textures/interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); // was D3DSTATETTw if ( i + m_firstLine == m_selectLine ) { diff --git a/src/ui/map.cpp b/src/ui/map.cpp index 22cd616..8ff05ab 100644 --- a/src/ui/map.cpp +++ b/src/ui/map.cpp @@ -322,7 +322,7 @@ void CMap::Draw() m_offset = AdjustOffset(m_map[MAPMAXOBJECT - 1].pos); if ( m_fixImage[0] == 0 ) { // drawing of the relief? - m_engine->SetTexture("interface/map.png"); + m_engine->SetTexture("textures/interface/map.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 0.5f + (m_offset.x - (m_half / m_zoom)) / (m_half * 2.0f); uv1.y = 0.5f - (m_offset.y + (m_half / m_zoom)) / (m_half * 2.0f); @@ -330,8 +330,10 @@ void CMap::Draw() uv2.y = 0.5f - (m_offset.y - (m_half / m_zoom)) / (m_half * 2.0f); DrawVertex(uv1, uv2, 0.97f); // drawing the map } else { // still image? - m_engine->LoadTexture(m_fixImage); - m_engine->SetTexture(m_fixImage); + std::string texFilename = m_fixImage; + texFilename = "textures/"+texFilename; + m_engine->LoadTexture(texFilename.c_str()); + m_engine->SetTexture(texFilename.c_str()); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 0.0f; uv1.y = 0.0f; @@ -469,7 +471,7 @@ void CMap::DrawFocus(Math::Point pos, float dir, ObjectType type, MapColor color uv2.x = 126.0f/256.0f; uv2.y = 255.0f/256.0f; - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); bEnding = false; @@ -529,7 +531,7 @@ void CMap::DrawObject(Math::Point pos, float dir, ObjectType type, MapColor colo return; // flashes } - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); if ( bUp ) { @@ -672,7 +674,7 @@ void CMap::DrawObject(Math::Point pos, float dir, ObjectType type, MapColor colo { if ( bSelect ) { - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); if ( m_bToy ) { @@ -698,7 +700,7 @@ void CMap::DrawObject(Math::Point pos, float dir, ObjectType type, MapColor colo { if ( m_bRadar ) { - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); uv1.x = 64.5f/256.0f; // blue triangle uv1.y = 240.5f/256.0f; @@ -718,7 +720,7 @@ void CMap::DrawObject(Math::Point pos, float dir, ObjectType type, MapColor colo if ( color == MAPCOLOR_WAYPOINTb ) { - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 192.5f/256.0f; // blue cross uv1.y = 240.5f/256.0f; @@ -728,7 +730,7 @@ void CMap::DrawObject(Math::Point pos, float dir, ObjectType type, MapColor colo } if ( color == MAPCOLOR_WAYPOINTr ) { - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 208.5f/256.0f; // red cross uv1.y = 240.5f/256.0f; @@ -738,7 +740,7 @@ void CMap::DrawObject(Math::Point pos, float dir, ObjectType type, MapColor colo } if ( color == MAPCOLOR_WAYPOINTg ) { - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 224.5f/256.0f; // green cross uv1.y = 240.5f/256.0f; @@ -748,7 +750,7 @@ void CMap::DrawObject(Math::Point pos, float dir, ObjectType type, MapColor colo } if ( color == MAPCOLOR_WAYPOINTy ) { - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 240.5f/256.0f; // yellow cross uv1.y = 240.5f/256.0f; @@ -758,7 +760,7 @@ void CMap::DrawObject(Math::Point pos, float dir, ObjectType type, MapColor colo } if ( color == MAPCOLOR_WAYPOINTv ) { - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 192.5f/256.0f; // violet cross uv1.y = 224.5f/256.0f; @@ -779,7 +781,7 @@ void CMap::DrawObjectIcon(Math::Point pos, Math::Point dim, MapColor color, dp = 0.5f/256.0f; - m_engine->SetTexture("interface/button3.png"); + m_engine->SetTexture("textures/interface/button3.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); if ( color == MAPCOLOR_MOVE ) { @@ -894,7 +896,7 @@ void CMap::DrawHighlight(Math::Point pos) dim.x *= 2.0f+cosf(m_time*8.0f)*0.5f; dim.y *= 2.0f+cosf(m_time*8.0f)*0.5f; - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 160.5f/256.0f; // hilite uv1.y = 224.5f/256.0f; @@ -1053,7 +1055,7 @@ void CMap::UpdateTerrain() } m_engine->DeleteTexture("interface/map.png"); - m_engine->LoadTexture("interface/map.png", &img); + m_engine->LoadTexture("textures/interface/map.png", &img); } // Updates the field in the map. diff --git a/src/ui/scroll.cpp b/src/ui/scroll.cpp index 6be1e6d..680f647 100644 --- a/src/ui/scroll.cpp +++ b/src/ui/scroll.cpp @@ -379,7 +379,7 @@ void CScroll::DrawVertex(Math::Point pos, Math::Point dim, int icon) if ( icon == 0 ) { - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 0.0f/256.0f; // yellow rectangle uv1.y = 32.0f/256.0f; @@ -389,7 +389,7 @@ void CScroll::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 1 ) { - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 128.0f/256.0f; // gray rectangle uv1.y = 32.0f/256.0f; @@ -399,7 +399,7 @@ void CScroll::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 2 ) { - m_engine->SetTexture("interface/button1.png"); + m_engine->SetTexture("textures/interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 64.0f/256.0f; // blue rectangle uv1.y = 0.0f/256.0f; @@ -409,7 +409,7 @@ void CScroll::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else { - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 104.0f/256.0f; // blue line - uv1.y = 32.0f/256.0f; diff --git a/src/ui/shortcut.cpp b/src/ui/shortcut.cpp index 456b69a..8971e9d 100644 --- a/src/ui/shortcut.cpp +++ b/src/ui/shortcut.cpp @@ -114,7 +114,7 @@ void CShortcut::Draw() zoom = 1.0f; } - m_engine->SetTexture("interface/button3.png"); + m_engine->SetTexture("textures/interface/button3.png"); if ( icon != -1 ) { @@ -130,7 +130,7 @@ void CShortcut::Draw() Math::Point p1, p2, c, uv1, uv2; float dp; - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); zoom = 0.9f+sinf(m_time*8.0f)*0.1f; @@ -170,7 +170,7 @@ void CShortcut::Draw() Math::Point uv1, uv2; float dp; - m_engine->SetTexture("interface/button3.png"); + m_engine->SetTexture("textures/interface/button3.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); uv1.x = 160.0f/256.0f; diff --git a/src/ui/slider.cpp b/src/ui/slider.cpp index 9078cfe..7e41083 100644 --- a/src/ui/slider.cpp +++ b/src/ui/slider.cpp @@ -498,7 +498,7 @@ void CSlider::DrawVertex(Math::Point pos, Math::Point dim, int icon) if ( icon == 0 ) { - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 0.0f/256.0f; // yellow rectangle uv1.y = 32.0f/256.0f; @@ -510,7 +510,7 @@ void CSlider::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 1 ) { - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 128.0f/256.0f; // gray rectangle uv1.y = 32.0f/256.0f; @@ -522,7 +522,7 @@ void CSlider::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else { - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 224.0f/256.0f; // cursor uv1.y = 32.0f/256.0f; diff --git a/src/ui/window.cpp b/src/ui/window.cpp index 9740f7f..60aad0d 100644 --- a/src/ui/window.cpp +++ b/src/ui/window.cpp @@ -1174,7 +1174,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) if ( icon == 0 ) { - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); uv1.x = 64.0f/256.0f; // dark blue transparent uv1.y = 64.0f/256.0f; @@ -1190,7 +1190,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 1 ) { - m_engine->SetTexture("interface/button1.png"); + m_engine->SetTexture("textures/interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 128.0f/256.0f; // white tooltip uv1.y = 0.0f/256.0f; @@ -1204,7 +1204,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 2 ) { - m_engine->SetTexture("interface/button1.png"); + m_engine->SetTexture("textures/interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 128.0f/256.0f; // yellow uv1.y = 16.0f/256.0f; @@ -1218,7 +1218,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 3 ) { - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 0.0f/256.0f; // transparent blue bar with yellow upper uv1.y = 64.0f/256.0f; @@ -1237,7 +1237,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) dim.x += 100.0f/640.0f; dim.y += 60.0f/480.0f; - m_engine->SetTexture("interface/human.png"); + m_engine->SetTexture("textures/interface/human.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 140.0f/256.0f; uv1.y = 32.0f/256.0f; @@ -1254,7 +1254,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) dim.x -= 20.0f/640.0f; dim.y += 0.0f/480.0f; - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_WHITE); uv1.x = 192.0f/256.0f; uv1.y = 32.0f/256.0f; @@ -1273,7 +1273,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) dim.x -= 20.0f/640.0f; dim.y -= 20.0f/480.0f; - m_engine->SetTexture("interface/button1.png"); + m_engine->SetTexture("textures/interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 64.0f/256.0f; uv1.y = 0.0f/256.0f; @@ -1309,7 +1309,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) dim.x -= 20.0f/640.0f; dim.y -= 20.0f/480.0f; - m_engine->SetTexture("interface/button3.png"); + m_engine->SetTexture("textures/interface/button3.png"); uv1.x = 0.0f/256.0f; uv1.y = 224.0f/256.0f; uv2.x = 32.0f/256.0f; @@ -1320,7 +1320,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) uv2.y -= dp; DrawIcon(pos, dim, uv1, uv2); // dark blue background - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); uv1.x = 224.0f/256.0f; uv1.y = 224.0f/256.0f; uv2.x = 249.0f/256.0f; @@ -1392,7 +1392,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 5 ) { - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 64.0f/256.0f; // transparent green uv1.y = 160.0f/256.0f; @@ -1406,7 +1406,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 6 ) { - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 64.0f/256.0f; // transparent red uv1.y = 176.0f/256.0f; @@ -1420,7 +1420,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 7 ) { - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 64.0f/256.0f; // transparent blue uv1.y = 192.0f/256.0f; @@ -1434,7 +1434,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 8 ) { - m_engine->SetTexture("interface/button1.png"); + m_engine->SetTexture("textures/interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 0.0f/256.0f; // opaque orange uv1.y = 0.0f/256.0f; @@ -1450,7 +1450,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 9 ) { - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 32.0f/256.0f; // opaque gray uv1.y = 32.0f/256.0f; @@ -1470,7 +1470,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 11 ) { - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_TTEXTURE_BLACK); uv1.x = 64.0f/256.0f; // transparent yellow uv1.y = 224.0f/256.0f; @@ -1484,7 +1484,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 12 ) { - m_engine->SetTexture("interface/button1.png"); + m_engine->SetTexture("textures/interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 128.0f/256.0f; // dirty opaque gray uv1.y = 128.0f/256.0f; @@ -1500,7 +1500,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 13 ) { - m_engine->SetTexture("interface/button1.png"); + m_engine->SetTexture("textures/interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 192.0f/256.0f; // dirty opaque blue uv1.y = 128.0f/256.0f; @@ -1516,7 +1516,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) } else if ( icon == 14 ) { - m_engine->SetTexture("interface/button1.png"); + m_engine->SetTexture("textures/interface/button1.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 160.0f/256.0f; // dirty opaque red uv1.y = 128.0f/256.0f; @@ -1542,7 +1542,7 @@ void CWindow::DrawHach(Math::Point pos, Math::Point dim) dp = 0.5f/256.0f; - m_engine->SetTexture("interface/button2.png"); + m_engine->SetTexture("textures/interface/button2.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 64.0f/256.0f; // hatching uv1.y = 208.0f/256.0f; -- cgit v1.2.3-1-g7c22 From 17041e718b35b766df099dfaeaf4e7cc3cc63fa6 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Thu, 24 Jul 2014 22:46:47 +0200 Subject: Added -mod commandline argument to add additional locations to physfs --- src/app/app.cpp | 12 +++++++++++- src/app/main.cpp | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/app/app.cpp b/src/app/app.cpp index c245838..cf509f9 100644 --- a/src/app/app.cpp +++ b/src/app/app.cpp @@ -208,7 +208,8 @@ ParseArgsStatus CApplication::ParseArguments(int argc, char *argv[]) OPT_LOGLEVEL, OPT_LANGUAGE, OPT_LANGDIR, - OPT_VBO + OPT_VBO, + OPT_MOD }; option options[] = @@ -221,6 +222,7 @@ ParseArgsStatus CApplication::ParseArguments(int argc, char *argv[]) { "language", required_argument, nullptr, OPT_LANGUAGE }, { "langdir", required_argument, nullptr, OPT_LANGDIR }, { "vbo", required_argument, nullptr, OPT_VBO }, + { "mod", required_argument, nullptr, OPT_MOD }, { nullptr, 0, nullptr, 0} }; @@ -259,6 +261,7 @@ ParseArgsStatus CApplication::ParseArguments(int argc, char *argv[]) GetLogger()->Message(" -language lang set language (one of: en, de, fr, pl, ru)\n"); GetLogger()->Message(" -langdir path set custom language directory path\n"); GetLogger()->Message(" -vbo mode set OpenGL VBO mode (one of: auto, enable, disable)\n"); + GetLogger()->Message(" -mod path load datadir mod from given path\n"); return PARSE_ARGS_HELP; } case OPT_DEBUG: @@ -338,6 +341,13 @@ ParseArgsStatus CApplication::ParseArguments(int argc, char *argv[]) break; } + case OPT_MOD: + { + GetLogger()->Info("Loading mod from \"%s\"\n", optarg); + CResourceManager::AddLocation(optarg, true); + + break; + } default: assert(false); // should never get here } diff --git a/src/app/main.cpp b/src/app/main.cpp index 324acc2..6ba8da2 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -79,7 +79,7 @@ int SDL_MAIN_FUNC(int argc, char *argv[]) { CLogger logger; // single istance of logger CResourceManager manager(argv[0]); - manager.AddLocation(COLOBOT_DEFAULT_DATADIR); + manager.AddLocation(COLOBOT_DEFAULT_DATADIR, false); // Initialize static string arrays InitializeRestext(); -- cgit v1.2.3-1-g7c22 From 9a3cd67c3bb2f7d0d4b83f6a5ac8bbcfedf4207b Mon Sep 17 00:00:00 2001 From: krzys-h Date: Thu, 24 Jul 2014 23:38:13 +0200 Subject: Saving colobot.ini through physfs --- src/app/main.cpp | 4 ++++ src/app/system.cpp | 4 ++-- src/app/system.h | 4 ++-- src/app/system_linux.cpp | 24 +++++++++++------------ src/app/system_linux.h | 2 +- src/app/system_macosx.cpp | 11 ++++++----- src/app/system_macosx.h | 2 +- src/app/system_windows.cpp | 16 +++++++-------- src/app/system_windows.h | 2 +- src/common/profile.cpp | 30 +++++++++++++++++++---------- src/common/resources/outputstreambuffer.cpp | 1 + src/common/resources/resourcemanager.cpp | 23 +++++++++++----------- 12 files changed, 70 insertions(+), 53 deletions(-) diff --git a/src/app/main.cpp b/src/app/main.cpp index 6ba8da2..294b306 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -102,6 +102,9 @@ int SDL_MAIN_FUNC(int argc, char *argv[]) { return app->GetExitCode(); } + + manager.SetSaveLocation(systemUtils->GetSaveDir()); + manager.AddLocation(systemUtils->GetSaveDir(), true); int code = 0; @@ -121,6 +124,7 @@ int SDL_MAIN_FUNC(int argc, char *argv[]) delete app; delete systemUtils; + //delete manager; logger.Info("Exiting with code %d\n", code); return code; diff --git a/src/app/system.cpp b/src/app/system.cpp index b2e6b47..66d08e5 100644 --- a/src/app/system.cpp +++ b/src/app/system.cpp @@ -192,7 +192,7 @@ float CSystemUtils::TimeStampDiff(SystemTimeStamp *before, SystemTimeStamp *afte return result; } -std::string CSystemUtils::GetProfileFileLocation() +std::string CSystemUtils::GetSaveDir() { - return std::string("colobot.ini"); + return std::string("save"); } diff --git a/src/app/system.h b/src/app/system.h index 01f2672..6d2fe58 100644 --- a/src/app/system.h +++ b/src/app/system.h @@ -130,8 +130,8 @@ public: /** The difference is \a after - \a before. */ virtual long long TimeStampExactDiff(SystemTimeStamp *before, SystemTimeStamp *after) = 0; - //! Returns the profile (colobot.ini) file location - virtual std::string GetProfileFileLocation(); + //! Returns the save dir location + virtual std::string GetSaveDir(); }; //! Global function to get CSystemUtils instance diff --git a/src/app/system_linux.cpp b/src/app/system_linux.cpp index e584cd1..485d7c2 100644 --- a/src/app/system_linux.cpp +++ b/src/app/system_linux.cpp @@ -95,29 +95,29 @@ long long CSystemUtilsLinux::TimeStampExactDiff(SystemTimeStamp *before, SystemT (after->clockTime.tv_sec - before->clockTime.tv_sec) * 1000000000ll; } -std::string CSystemUtilsLinux::GetProfileFileLocation() +std::string CSystemUtilsLinux::GetSaveDir() { - std::string profileFile; - - // Determine profileFile according to XDG Base Directory Specification - char* envXDG_CONFIG_HOME = getenv("XDG_CONFIG_HOME"); - if (envXDG_CONFIG_HOME == NULL) + std::string savegameDir; + + // Determine savegame dir according to XDG Base Directory Specification + char *envXDG_DATA_HOME = getenv("XDG_CONFIG_DATA"); + if (envXDG_DATA_HOME == NULL) { char *envHOME = getenv("HOME"); if (envHOME == NULL) { - profileFile = "colobot.ini"; + savegameDir = "/tmp/colobot-save"; } else { - profileFile = std::string(envHOME) + "/.config/colobot.ini"; + savegameDir = std::string(envHOME) + "/.local/share/colobot"; } } else { - profileFile = std::string(envXDG_CONFIG_HOME) + "/colobot.ini"; + savegameDir = std::string(envXDG_DATA_HOME) + "/colobot"; } - GetLogger()->Trace("Profile configuration is %s\n", profileFile.c_str()); - - return profileFile; + GetLogger()->Trace("Saved game files are going to %s\n", savegameDir.c_str()); + + return savegameDir; } diff --git a/src/app/system_linux.h b/src/app/system_linux.h index ad26454..f9cce05 100644 --- a/src/app/system_linux.h +++ b/src/app/system_linux.h @@ -46,7 +46,7 @@ public: virtual long long GetTimeStampExactResolution() override; virtual long long TimeStampExactDiff(SystemTimeStamp *before, SystemTimeStamp *after) override; - virtual std::string GetProfileFileLocation() override; + virtual std::string GetSaveDir() override; private: bool m_zenityAvailable; diff --git a/src/app/system_macosx.cpp b/src/app/system_macosx.cpp index 38885eb..473a10c 100644 --- a/src/app/system_macosx.cpp +++ b/src/app/system_macosx.cpp @@ -87,10 +87,11 @@ void CSystemUtilsMacOSX::Init() m_dataPath += "/Contents/Resources"; } -std::string CSystemUtilsMacOSX::GetProfileFileLocation() +std::string CSystemUtilsMacOSX::GetSaveDir() { - std::string profileFile = m_ASPath + "/colobot.ini"; - - GetLogger()->Trace("Profile file is %s\n", profileFile.c_str()); - return profileFile; + std::string savegameDir = m_ASPath; + boost::filesystem::create_directories(savegameDir.c_str()); + GetLogger()->Trace("Saved game files are going to %s\n", savegameDir.c_str()); + + return savegameDir; } diff --git a/src/app/system_macosx.h b/src/app/system_macosx.h index 7360af1..6423320 100644 --- a/src/app/system_macosx.h +++ b/src/app/system_macosx.h @@ -28,7 +28,7 @@ class CSystemUtilsMacOSX : public CSystemUtilsOther public: virtual void Init() override; - virtual std::string GetProfileFileLocation() override; + virtual std::string GetSaveDir() override; private: std::string m_ASPath; std::string m_dataPath; diff --git a/src/app/system_windows.cpp b/src/app/system_windows.cpp index ffaa18a..e35f83f 100644 --- a/src/app/system_windows.cpp +++ b/src/app/system_windows.cpp @@ -111,20 +111,20 @@ std::wstring CSystemUtilsWindows::UTF8_Decode(const std::string& str) } -std::string CSystemUtilsWindows::GetProfileFileLocation() +std::string CSystemUtilsWindows::GetSaveDir() { - std::string profileFile; - + std::string savegameDir; + char* envUSERPROFILE = getenv("USERPROFILE"); if (envUSERPROFILE == NULL) { - profileFile = "colobot.ini"; + savegameDir = "save"; } else { - profileFile = std::string(envUSERPROFILE) + "\\colobot\\colobot.ini"; + savegameDir = std::string(envUSERPROFILE) + "\\colobot"; } - GetLogger()->Trace("Profile configuration is %s\n", profileFile.c_str()); - - return profileFile; + GetLogger()->Trace("Saved game files are going to %s\n", savegameDir.c_str()); + + return savegameDir; } diff --git a/src/app/system_windows.h b/src/app/system_windows.h index 0a41c1a..618caf9 100644 --- a/src/app/system_windows.h +++ b/src/app/system_windows.h @@ -44,7 +44,7 @@ public: virtual long long GetTimeStampExactResolution() override; virtual long long TimeStampExactDiff(SystemTimeStamp *before, SystemTimeStamp *after) override; - virtual std::string GetProfileFileLocation() override; + virtual std::string GetSaveDir() override; private: std::string UTF8_Encode(const std::wstring &wstr); diff --git a/src/common/profile.cpp b/src/common/profile.cpp index ee3e873..9947769 100644 --- a/src/common/profile.cpp +++ b/src/common/profile.cpp @@ -18,6 +18,8 @@ #include "common/profile.h" #include "common/logger.h" +#include "common/resources/inputstream.h" +#include "common/resources/outputstream.h" #include "app/system.h" @@ -47,11 +49,15 @@ bool CProfile::InitCurrentDirectory() { try { - #if DEV_BUILD - bp::ini_parser::read_ini("colobot.ini", m_propertyTree); - #else - bp::ini_parser::read_ini(GetSystemUtils()->GetProfileFileLocation(), m_propertyTree); - #endif + CInputStream stream; + stream.open("colobot.ini"); + if(stream.is_open()) { + bp::ini_parser::read_ini(stream, m_propertyTree); + } else { + GetLogger()->Error("Error on parsing profile: failed to open file\n"); + return false; + } + stream.close(); } catch (std::exception & e) { @@ -67,11 +73,15 @@ bool CProfile::SaveCurrentDirectory() { try { - #if DEV_BUILD - bp::ini_parser::write_ini("colobot.ini", m_propertyTree); - #else - bp::ini_parser::write_ini(GetSystemUtils()->GetProfileFileLocation(), m_propertyTree); - #endif + COutputStream stream; + stream.open("colobot.ini"); + if(stream.is_open()) { + bp::ini_parser::write_ini(stream, m_propertyTree); + } else { + GetLogger()->Error("Error on storing profile: failed to open file\n"); + return false; + } + stream.close(); } catch (std::exception & e) { diff --git a/src/common/resources/outputstreambuffer.cpp b/src/common/resources/outputstreambuffer.cpp index e611d13..22ed7cb 100644 --- a/src/common/resources/outputstreambuffer.cpp +++ b/src/common/resources/outputstreambuffer.cpp @@ -43,6 +43,7 @@ void COutputStreamBuffer::open(const std::string &filename) void COutputStreamBuffer::close() { + sync(); if (is_open()) PHYSFS_close(m_file); } diff --git a/src/common/resources/resourcemanager.cpp b/src/common/resources/resourcemanager.cpp index 5e8627d..be5baa8 100644 --- a/src/common/resources/resourcemanager.cpp +++ b/src/common/resources/resourcemanager.cpp @@ -18,15 +18,16 @@ #include "common/resources/resourcemanager.h" #include "common/config.h" +#include "common/logger.h" #include CResourceManager::CResourceManager(const char *argv0) { - if (PHYSFS_init(argv0)) + if (!PHYSFS_init(argv0)) { - // TODO error + CLogger::GetInstancePointer()->Error("Error while initializing physfs\n"); } } @@ -35,9 +36,9 @@ CResourceManager::~CResourceManager() { if (PHYSFS_isInit()) { - if (PHYSFS_deinit()) + if (!PHYSFS_deinit()) { - // TODO error + CLogger::GetInstancePointer()->Error("Error while deinitializing physfs\n"); } } } @@ -47,9 +48,9 @@ bool CResourceManager::AddLocation(const std::string &location, bool prepend) { if (PHYSFS_isInit()) { - if (PHYSFS_mount(location.c_str(), nullptr, prepend ? 0 : 1)) + if (!PHYSFS_mount(location.c_str(), nullptr, prepend ? 0 : 1)) { - // TODO error + CLogger::GetInstancePointer()->Error("Error while mounting \"%s\"\n", location.c_str()); } } @@ -61,9 +62,9 @@ bool CResourceManager::RemoveLocation(const std::string &location) { if (PHYSFS_isInit()) { - if (PHYSFS_removeFromSearchPath(location.c_str())) + if (!PHYSFS_removeFromSearchPath(location.c_str())) { - // TODO error + CLogger::GetInstancePointer()->Error("Error while unmounting \"%s\"\n", location.c_str()); } } @@ -75,9 +76,9 @@ bool CResourceManager::SetSaveLocation(const std::string &location) { if (PHYSFS_isInit()) { - if (PHYSFS_setWriteDir(location.c_str())) + if (!PHYSFS_setWriteDir(location.c_str())) { - // TODO error + CLogger::GetInstancePointer()->Error("Error while setting save location to \"%s\"\n", location.c_str()); } } @@ -96,7 +97,7 @@ SDL_RWops* CResourceManager::GetSDLFileHandler(const std::string &filename) SDL_RWops *handler = SDL_AllocRW(); if (!handler) { - // TODO error + CLogger::GetInstancePointer()->Error("Unable to allocate SDL_RWops for \"%s\"\n", filename.c_str()); return nullptr; } -- cgit v1.2.3-1-g7c22 From d5859fc70e3f8f24f57ca4881a06f69009ebef96 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Fri, 25 Jul 2014 04:32:56 +0200 Subject: Auto-update from Pootle 2014-07-25 This commit was automatically generated from http://translations.colobot.info/ --- data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data b/data index 55b1a1c..9ee3b6b 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit 55b1a1c201c9a8104d9f46bf6e68bde6960b7bc5 +Subproject commit 9ee3b6b3b8944253d5dd2611980529d40eff13d4 -- cgit v1.2.3-1-g7c22 From 5860684e782092031480a0e424ad35485609b04e Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sat, 26 Jul 2014 04:33:05 +0200 Subject: Auto-update from Pootle 2014-07-26 This commit was automatically generated from http://translations.colobot.info/ --- data | 2 +- po/de.po | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/data b/data index 9ee3b6b..b00b9cd 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit 9ee3b6b3b8944253d5dd2611980529d40eff13d4 +Subproject commit b00b9cd26e445dcef52d29b3a3db3253dd4c3137 diff --git a/po/de.po b/po/de.po index ab932d3..34ae436 100644 --- a/po/de.po +++ b/po/de.po @@ -7,8 +7,8 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-07-10 16:50+0200\n" -"PO-Revision-Date: 2014-07-22 20:26+0200\n" -"Last-Translator: GermanBot \n" +"PO-Revision-Date: 2014-07-25 20:39+0200\n" +"Last-Translator: krzys_h \n" "Language-Team: LANGUAGE \n" "Language: de\n" "MIME-Version: 1.0\n" @@ -18,7 +18,7 @@ msgstr "" "X-Generator: Pootle 2.5.1.1\n" "X-Language: de_DE\n" "X-Source-Language: en_US\n" -"X-POOTLE-MTIME: 1406057163.000000\n" +"X-POOTLE-MTIME: 1406317182.000000\n" msgid "Colobot rules!" msgstr "Colobot ist wunderbar!" @@ -178,7 +178,7 @@ msgid "Cancel" msgstr "Abbrechen" msgid "LOADING" -msgstr "Laden" +msgstr "LOADING" msgid "Keyword help(\\key cbot;)" msgstr "Hilfe über den Begriff (\\key cbot;)" @@ -1690,6 +1690,7 @@ msgstr "Diese Klasse gibt es schon" msgid "\" ] \" missing" msgstr "Es fehlt eine geschlossene eckige Klammer \" ] \"" +#, fuzzy msgid "Reserved keyword of CBOT language" msgstr "Dieses Wort ist reserviert" -- cgit v1.2.3-1-g7c22 From f2f9bd3c9e2e630b16fb5a265d0529517be98098 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Mon, 28 Jul 2014 04:32:47 +0200 Subject: Auto-update from Pootle 2014-07-28 This commit was automatically generated from http://translations.colobot.info/ --- data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data b/data index b00b9cd..29947d2 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit b00b9cd26e445dcef52d29b3a3db3253dd4c3137 +Subproject commit 29947d2c372713e9dd499c2d75a5f34793aab975 -- cgit v1.2.3-1-g7c22 From a74f601ec18b5b6e155aab4c47c9115602e03a25 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Tue, 29 Jul 2014 04:32:53 +0200 Subject: Auto-update from Pootle 2014-07-29 This commit was automatically generated from http://translations.colobot.info/ --- po/de.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/po/de.po b/po/de.po index 34ae436..7f99374 100644 --- a/po/de.po +++ b/po/de.po @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-07-10 16:50+0200\n" -"PO-Revision-Date: 2014-07-25 20:39+0200\n" +"PO-Revision-Date: 2014-07-28 09:27+0200\n" "Last-Translator: krzys_h \n" "Language-Team: LANGUAGE \n" "Language: de\n" @@ -18,7 +18,7 @@ msgstr "" "X-Generator: Pootle 2.5.1.1\n" "X-Language: de_DE\n" "X-Source-Language: en_US\n" -"X-POOTLE-MTIME: 1406317182.000000\n" +"X-POOTLE-MTIME: 1406536037.000000\n" msgid "Colobot rules!" msgstr "Colobot ist wunderbar!" @@ -178,7 +178,7 @@ msgid "Cancel" msgstr "Abbrechen" msgid "LOADING" -msgstr "LOADING" +msgstr "LADEN" msgid "Keyword help(\\key cbot;)" msgstr "Hilfe über den Begriff (\\key cbot;)" -- cgit v1.2.3-1-g7c22 From 73d6d945119561c227b2d6eab810b1db78752cbf Mon Sep 17 00:00:00 2001 From: krzys-h Date: Tue, 5 Aug 2014 04:33:13 +0200 Subject: Auto-update from Pootle 2014-08-05 This commit was automatically generated from http://translations.colobot.info/ --- data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data b/data index 29947d2..ea18354 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit 29947d2c372713e9dd499c2d75a5f34793aab975 +Subproject commit ea1835405d8b33ecc9d9f53848abb724eaf59a22 -- cgit v1.2.3-1-g7c22 From 0b2f25a6e3fda014b0f5a4282283fb90b0958d42 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Wed, 6 Aug 2014 12:27:17 +0200 Subject: Restored -datadir and -langdir arguments, added -savedir Also, fixed some crashes when unable to open file --- src/app/app.cpp | 68 +++++++++++++++++++++++--------- src/app/app.h | 9 +++++ src/app/main.cpp | 5 --- src/app/system.cpp | 10 +++++ src/app/system.h | 6 +++ src/app/system_macosx.cpp | 11 +++++- src/app/system_macosx.h | 2 + src/common/resources/resourcemanager.cpp | 6 --- src/common/resources/resourcemanager.h | 1 - src/common/resources/sndfile.cpp | 11 +++--- src/graphics/engine/text.cpp | 8 +++- 11 files changed, 99 insertions(+), 38 deletions(-) diff --git a/src/app/app.cpp b/src/app/app.cpp index cf509f9..429a9d4 100644 --- a/src/app/app.cpp +++ b/src/app/app.cpp @@ -146,6 +146,10 @@ CApplication::CApplication() m_kmodState = 0; m_mouseButtonsState = 0; m_trackedKeys = 0; + + m_dataPath = GetSystemUtils()->GetDataPath(); + m_langPath = GetSystemUtils()->GetLangPath(); + m_savePath = GetSystemUtils()->GetSaveDir(); m_runSceneName = ""; m_runSceneRank = 0; @@ -208,8 +212,10 @@ ParseArgsStatus CApplication::ParseArguments(int argc, char *argv[]) OPT_LOGLEVEL, OPT_LANGUAGE, OPT_LANGDIR, - OPT_VBO, - OPT_MOD + OPT_DATADIR, + OPT_SAVEDIR, + OPT_MOD, + OPT_VBO }; option options[] = @@ -221,8 +227,10 @@ ParseArgsStatus CApplication::ParseArguments(int argc, char *argv[]) { "loglevel", required_argument, nullptr, OPT_LOGLEVEL }, { "language", required_argument, nullptr, OPT_LANGUAGE }, { "langdir", required_argument, nullptr, OPT_LANGDIR }, - { "vbo", required_argument, nullptr, OPT_VBO }, + { "datadir", required_argument, nullptr, OPT_DATADIR }, + { "savedir", required_argument, nullptr, OPT_SAVEDIR }, { "mod", required_argument, nullptr, OPT_MOD }, + { "vbo", required_argument, nullptr, OPT_VBO }, { nullptr, 0, nullptr, 0} }; @@ -260,8 +268,10 @@ ParseArgsStatus CApplication::ParseArguments(int argc, char *argv[]) GetLogger()->Message(" -loglevel level set log level to level (one of: trace, debug, info, warn, error, none)\n"); GetLogger()->Message(" -language lang set language (one of: en, de, fr, pl, ru)\n"); GetLogger()->Message(" -langdir path set custom language directory path\n"); - GetLogger()->Message(" -vbo mode set OpenGL VBO mode (one of: auto, enable, disable)\n"); + GetLogger()->Message(" -datadir path set custom data directory path\n"); + GetLogger()->Message(" -savedir path set custom save directory path (must be writable)\n"); GetLogger()->Message(" -mod path load datadir mod from given path\n"); + GetLogger()->Message(" -vbo mode set OpenGL VBO mode (one of: auto, enable, disable)\n"); return PARSE_ARGS_HELP; } case OPT_DEBUG: @@ -341,11 +351,28 @@ ParseArgsStatus CApplication::ParseArguments(int argc, char *argv[]) break; } + case OPT_DATADIR: + { + m_dataPath = optarg; + GetLogger()->Info("Using data dir: '%s'\n", optarg); + break; + } + case OPT_LANGDIR: + { + m_langPath = optarg; + GetLogger()->Info("Using language dir: '%s'\n", optarg); + break; + } + case OPT_SAVEDIR: + { + m_savePath = optarg; + GetLogger()->Info("Using save dir: '%s'\n", optarg); + break; + } case OPT_MOD: { - GetLogger()->Info("Loading mod from \"%s\"\n", optarg); + GetLogger()->Info("Loading mod: '%s'\n", optarg); CResourceManager::AddLocation(optarg, true); - break; } default: @@ -362,23 +389,28 @@ bool CApplication::Create() bool defaultValues = false; GetLogger()->Info("Creating CApplication\n"); - - if (!GetProfile().InitCurrentDirectory()) - { - GetLogger()->Warn("Config not found. Default values will be used!\n"); - defaultValues = true; - } - - boost::filesystem::path dataPath(COLOBOT_DEFAULT_DATADIR); + + boost::filesystem::path dataPath(m_dataPath); if (! (boost::filesystem::exists(dataPath) && boost::filesystem::is_directory(dataPath)) ) { - GetLogger()->Error("Data directory '%s' doesn't exist or is not a directory\n", COLOBOT_DEFAULT_DATADIR); + GetLogger()->Error("Data directory '%s' doesn't exist or is not a directory\n", m_dataPath.c_str()); m_errorMessage = std::string("Could not read from data directory:\n") + - std::string("'") + COLOBOT_DEFAULT_DATADIR + std::string("'\n") + - std::string("Please check your installation, or supply a valid data directory by -datadir option."); + std::string("'") + m_dataPath + std::string("'\n") + + std::string("Please check your installation, or supply a valid data directory by -datadir option."); m_exitCode = 1; return false; } + + CResourceManager::AddLocation(m_dataPath, false); + boost::filesystem::create_directories(m_savePath); + CResourceManager::SetSaveLocation(m_savePath); + CResourceManager::AddLocation(m_savePath, true); + + if (!GetProfile().InitCurrentDirectory()) + { + GetLogger()->Warn("Config not found. Default values will be used!\n"); + defaultValues = true; + } if (GetProfile().GetLocalProfileString("Language", "Lang", path)) { Language language; @@ -1696,7 +1728,7 @@ void CApplication::SetLanguage(Language language) setlocale(LC_ALL, ""); - bindtextdomain("colobot", CResourceManager::GetLanguageLocation().c_str()); + bindtextdomain("colobot", m_langPath.c_str()); bind_textdomain_codeset("colobot", "UTF-8"); textdomain("colobot"); diff --git a/src/app/app.h b/src/app/app.h index 66b8900..0df3096 100644 --- a/src/app/app.h +++ b/src/app/app.h @@ -464,6 +464,15 @@ protected: std::vector m_joyAxeState; //! Current state of joystick buttons; may be updated from another thread std::vector m_joyButtonState; + + //! Path to directory with data files + std::string m_dataPath; + + //! Path to directory with language files + std::string m_langPath; + + //! Path to directory with save files + std::string m_savePath; //@{ //! Scene to run on startup diff --git a/src/app/main.cpp b/src/app/main.cpp index 294b306..e67cd7f 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -79,7 +79,6 @@ int SDL_MAIN_FUNC(int argc, char *argv[]) { CLogger logger; // single istance of logger CResourceManager manager(argv[0]); - manager.AddLocation(COLOBOT_DEFAULT_DATADIR, false); // Initialize static string arrays InitializeRestext(); @@ -102,9 +101,6 @@ int SDL_MAIN_FUNC(int argc, char *argv[]) { return app->GetExitCode(); } - - manager.SetSaveLocation(systemUtils->GetSaveDir()); - manager.AddLocation(systemUtils->GetSaveDir(), true); int code = 0; @@ -124,7 +120,6 @@ int SDL_MAIN_FUNC(int argc, char *argv[]) delete app; delete systemUtils; - //delete manager; logger.Info("Exiting with code %d\n", code); return code; diff --git a/src/app/system.cpp b/src/app/system.cpp index 66d08e5..0435b39 100644 --- a/src/app/system.cpp +++ b/src/app/system.cpp @@ -192,6 +192,16 @@ float CSystemUtils::TimeStampDiff(SystemTimeStamp *before, SystemTimeStamp *afte return result; } +std::string CSystemUtils::GetDataPath() +{ + return COLOBOT_DEFAULT_DATADIR; +} + +std::string CSystemUtils::GetLangPath() +{ + return COLOBOT_I18N_DIR; +} + std::string CSystemUtils::GetSaveDir() { return std::string("save"); diff --git a/src/app/system.h b/src/app/system.h index 6d2fe58..5177815 100644 --- a/src/app/system.h +++ b/src/app/system.h @@ -130,6 +130,12 @@ public: /** The difference is \a after - \a before. */ virtual long long TimeStampExactDiff(SystemTimeStamp *before, SystemTimeStamp *after) = 0; + //! Returns the data path (containing textures, levels, helpfiles, etc) + virtual std::string GetDataPath(); + + //! Returns the translations path + virtual std::string GetLangPath(); + //! Returns the save dir location virtual std::string GetSaveDir(); }; diff --git a/src/app/system_macosx.cpp b/src/app/system_macosx.cpp index 473a10c..06c67d3 100644 --- a/src/app/system_macosx.cpp +++ b/src/app/system_macosx.cpp @@ -87,10 +87,19 @@ void CSystemUtilsMacOSX::Init() m_dataPath += "/Contents/Resources"; } +std::string CSystemUtilsMacOSX::GetDataPath() +{ + return m_dataPath; +} + +std::string CSystemUtilsMacOSX::GetLangPath() +{ + return m_dataPath + "/i18n"; +} + std::string CSystemUtilsMacOSX::GetSaveDir() { std::string savegameDir = m_ASPath; - boost::filesystem::create_directories(savegameDir.c_str()); GetLogger()->Trace("Saved game files are going to %s\n", savegameDir.c_str()); return savegameDir; diff --git a/src/app/system_macosx.h b/src/app/system_macosx.h index 6423320..8ae233c 100644 --- a/src/app/system_macosx.h +++ b/src/app/system_macosx.h @@ -28,6 +28,8 @@ class CSystemUtilsMacOSX : public CSystemUtilsOther public: virtual void Init() override; + virtual std::string GetDataPath() override; + virtual std::string GetLangPath() override; virtual std::string GetSaveDir() override; private: std::string m_ASPath; diff --git a/src/common/resources/resourcemanager.cpp b/src/common/resources/resourcemanager.cpp index be5baa8..8119a6b 100644 --- a/src/common/resources/resourcemanager.cpp +++ b/src/common/resources/resourcemanager.cpp @@ -86,12 +86,6 @@ bool CResourceManager::SetSaveLocation(const std::string &location) } -std::string CResourceManager::GetLanguageLocation() -{ - return COLOBOT_I18N_DIR; -} - - SDL_RWops* CResourceManager::GetSDLFileHandler(const std::string &filename) { SDL_RWops *handler = SDL_AllocRW(); diff --git a/src/common/resources/resourcemanager.h b/src/common/resources/resourcemanager.h index 36f6fa5..4052047 100644 --- a/src/common/resources/resourcemanager.h +++ b/src/common/resources/resourcemanager.h @@ -30,7 +30,6 @@ public: static bool AddLocation(const std::string &location, bool prepend = true); static bool RemoveLocation(const std::string &location); static bool SetSaveLocation(const std::string &location); - static std::string GetLanguageLocation(); static SDL_RWops* GetSDLFileHandler(const std::string &filename); static CSNDFile* GetSNDFileHandler(const std::string &filename); static bool Exists(const std::string &filename); diff --git a/src/common/resources/sndfile.cpp b/src/common/resources/sndfile.cpp index 9e8e729..3f5a60d 100644 --- a/src/common/resources/sndfile.cpp +++ b/src/common/resources/sndfile.cpp @@ -52,18 +52,17 @@ CSNDFile::~CSNDFile() if (m_file) { PHYSFS_close(m_file); - } - - if (m_snd_file) - { - sf_close(m_snd_file); + if (m_snd_file) + { + sf_close(m_snd_file); + } } } bool CSNDFile::IsOpen() { - return m_snd_file; + return m_file && m_snd_file; } diff --git a/src/graphics/engine/text.cpp b/src/graphics/engine/text.cpp index 78cf7b8..6df8894 100644 --- a/src/graphics/engine/text.cpp +++ b/src/graphics/engine/text.cpp @@ -867,7 +867,13 @@ CachedFont* CText::GetOrOpenFont(FontType font, float size) } m_lastCachedFont = new CachedFont(); - m_lastCachedFont->font = TTF_OpenFontRW(CResourceManager::GetSDLFileHandler(mf->fileName), 1, pointSize); + SDL_RWops* file = CResourceManager::GetSDLFileHandler(mf->fileName); + if(file == nullptr) + { + m_error = std::string("Unable to open file"); + return nullptr; + } + m_lastCachedFont->font = TTF_OpenFontRW(file, 1, pointSize); if (m_lastCachedFont->font == nullptr) m_error = std::string("TTF_OpenFont error ") + std::string(TTF_GetError()); -- cgit v1.2.3-1-g7c22 From a56e69883fe74618db71b18b1748f15c06eafc29 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Wed, 6 Aug 2014 16:57:59 +0200 Subject: Removed some unused code --- src/CBot/ClassFILE.cpp | 426 ----------------------------------------------- src/object/robotmain.cpp | 193 --------------------- src/object/robotmain.h | 1 - 3 files changed, 620 deletions(-) delete mode 100644 src/CBot/ClassFILE.cpp diff --git a/src/CBot/ClassFILE.cpp b/src/CBot/ClassFILE.cpp deleted file mode 100644 index 6906bd4..0000000 --- a/src/CBot/ClassFILE.cpp +++ /dev/null @@ -1,426 +0,0 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. - -// definition of methods for class FILE - - - -// Static variables - -static CBotClass* m_pClassFILE; -static CBotProgram* m_pFuncFile; -static int m_CompteurFileOpen = 0; - - - -// Prepares a file name. - -void PrepareFilename(CBotString &filename) //DD! -{ - int pos; - - pos = filename.ReverseFind('\\'); - if ( pos > 0 ) - { - filename = filename.Mid(pos+1); // remove the records (files)?? - } - - pos = filename.ReverseFind('/'); - if ( pos > 0 ) - { - filename = filename.Mid(pos+1); // also those with / - } - - pos = filename.ReverseFind(':'); - if ( pos > 0 ) - { - filename = filename.Mid(pos+1); // also removes the drive letter C: - } - - filename = CBotString("files\\") + filename; -} - - -// constructor of the class -// gets the filename as a parameter - -// execution -bool rfconstruct (CBotVar* pThis, CBotVar* pVar, CBotVar* pResult, int& Exception) -{ - CBotString mode; - - // accepts no parameters - if ( pVar == NULL ) return true; - - // must be a string - if ( pVar->GetType() != CBotTypString ) { Exception = CBotErrBadString; return false; } - - CBotString filename = pVar->GetValString(); - PrepareFilename(filename); //DR - - // there may be a second parameter - pVar = pVar->GetNext(); - if ( pVar != NULL ) - { - // recovers the mode - mode = pVar->GetValString(); - if ( mode != "r" && mode != "w" ) { Exception = CBotErrBadParam; return false; } - - // no third parameter, only two or one possible - if ( pVar->GetNext() != NULL ) { Exception = CBotErrOverParam; return false; } - } - - // save the file name - pVar = pThis->GetItem("filename"); - pVar->SetValString(filename); - - if ( ! mode.IsEmpty() ) - { - // open the called file - FILE* pFile = fopen( filename, mode ); - if ( pFile == NULL ) { Exception = CBotErrFileOpen; return false; } - - m_CompteurFileOpen ++; - - // save the handle of file - pVar = pThis->GetItem("handle"); - pVar->SetValInt((long)pFile); - } - - return true; -} - -// compilation -CBotTypResult cfconstruct (CBotVar* pThis, CBotVar* &pVar) -{ - // accepts no parameters - if ( pVar == NULL ) return CBotTypResult( 0 ); - - // must be a string - if ( pVar->GetType() != CBotTypString ) - return CBotTypResult( CBotErrBadString ); - - // there may be a second parameter - pVar = pVar->GetNext(); - if ( pVar != NULL ) - { - // must be a string - if ( pVar->GetType() != CBotTypString ) - return CBotTypResult( CBotErrBadString ); - // no third parameter - if ( pVar->GetNext() != NULL ) return CBotTypResult( CBotErrOverParam ); - } - - // le r�sultat est de type void (constructeur) - return CBotTypResult( 0 ); -} - - -// destructor of the class - -// execution -bool rfdestruct (CBotVar* pThis, CBotVar* pVar, CBotVar* pResult, int& Exception) -{ - // retrieves the element "handle" - pVar = pThis->GetItem("handle"); - - // not open? no problem - if ( pVar->GetInit() != IS_DEF) return true; - - FILE* pFile= (FILE*)pVar->GetValInt(); - fclose(pFile); - m_CompteurFileOpen --; - - pVar->SetInit(IS_NAN); - - return true; -} - - -// FILE :: open method -// get the r / w mode as a parameter - -// execution -bool rfopen (CBotVar* pThis, CBotVar* pVar, CBotVar* pResult, int& Exception) -{ - // there must be a parameter - if ( pVar == NULL ) { Exception = CBotErrLowParam; return false; } - - // must be a string - if ( pVar->GetType() != CBotTypString ) { Exception = CBotErrBadString; return false; } - - // there may be a second parameter - if ( pVar->GetNext() != NULL ) - { - // in this case the first parameter is the file name - CBotString filename = pVar->GetValString(); - PrepareFilename(filename); //DR - - // saves the file name - CBotVar* pVar2 = pThis->GetItem("filename"); - pVar2->SetValString(filename); - - // next parameter is the mode - pVar = pVar -> GetNext(); - } - - CBotString mode = pVar->GetValString(); - if ( mode != "r" && mode != "w" ) { Exception = CBotErrBadParam; return false; } - - // No third parameter - if ( pVar->GetNext() != NULL ) { Exception = CBotErrOverParam; return false; } - - // retrieves the element "handle" - pVar = pThis->GetItem("handle"); - - // which must not be initialized - if ( pVar->GetInit() == IS_DEF) { Exception = CBotErrFileOpen; return false; } - - // contains filename - pVar = pThis->GetItem("filename"); - CBotString filename = pVar->GetValString(); - - PrepareFilename(filename); //DD! (if the name was assigned by h.filename = "..."; - - // open requsted file - FILE* pFile = fopen( filename, mode ); - if ( pFile == NULL ) //DR - { - pResult->SetValInt(false); //DR - return true; //DR - } - - m_CompteurFileOpen ++; - - // saves the handle of file - pVar = pThis->GetItem("handle"); - pVar->SetValInt((long)pFile); - - pResult->SetValInt(true); //DR - return true; -} - -// compilation -CBotTypResult cfopen (CBotVar* pThis, CBotVar* &pVar) -{ - // there must be a parameter - if ( pVar == NULL ) return CBotTypResult( CBotErrLowParam ); - - // must be a string - if ( pVar->GetType() != CBotTypString ) - return CBotTypResult( CBotErrBadString ); - - // there may be a second parameter - pVar = pVar->GetNext(); - if ( pVar != NULL ) - { - // must be a string - if ( pVar->GetType() != CBotTypString ) - return CBotTypResult( CBotErrBadString ); - - // no third parameter - if ( pVar->GetNext() != NULL ) return CBotTypResult( CBotErrOverParam ); - } - - // the result is of type bool - return CBotTypResult(CBotTypBoolean); //DR -} - - -// FILE :: close method - -// execution -bool rfclose (CBotVar* pThis, CBotVar* pVar, CBotVar* pResult, int& Exception) -{ - // it should not be any parameter - if ( pVar != NULL ) return CBotErrOverParam; - - // retrieves the element "handle" - pVar = pThis->GetItem("handle"); - - if ( pVar->GetInit() != IS_DEF) { Exception = CBotErrNotOpen; return false; } - - FILE* pFile= (FILE*)pVar->GetValInt(); - fclose(pFile); - m_CompteurFileOpen --; - - pVar->SetInit(IS_NAN); - - return true; -} - -// compilation -CBotTypResult cfclose (CBotVar* pThis, CBotVar* &pVar) -{ - // it should not be any parameter - if ( pVar != NULL ) return CBotTypResult( CBotErrOverParam ); - - // function returns a result "void" - return CBotTypResult( 0 ); -} - -// FILE :: writeln method - -// execution -bool rfwrite (CBotVar* pThis, CBotVar* pVar, CBotVar* pResult, int& Exception) -{ - // there must be a parameter - if ( pVar == NULL ) { Exception = CBotErrLowParam; return false; } - - // must be a string - if ( pVar->GetType() != CBotTypString ) { Exception = CBotErrBadString; return false; } - - CBotString param = pVar->GetValString(); - - //retrieves the element "handle" - pVar = pThis->GetItem("handle"); - - if ( pVar->GetInit() != IS_DEF) { Exception = CBotErrNotOpen; return false; } - - FILE* pFile= (FILE*)pVar->GetValInt(); - - int res = fputs(param+CBotString("\n"), pFile); - - // on error throws an exception - if ( res < 0 ) { Exception = CBotErrWrite; return false; } - - return true; -} - -// compilation -CBotTypResult cfwrite (CBotVar* pThis, CBotVar* &pVar) -{ - // there must be a parameter - if ( pVar == NULL ) return CBotTypResult( CBotErrLowParam ); - - // must be a string - if ( pVar->GetType() != CBotTypString ) return CBotTypResult( CBotErrBadString ); - - // no other parameter - if ( pVar->GetNext() != NULL ) return CBotTypResult( CBotErrOverParam ); - - // function returns "void" result - return CBotTypResult( 0 ); -} - -// FILE :: readln method - -// execution -bool rfread (CBotVar* pThis, CBotVar* pVar, CBotVar* pResult, int& Exception) -{ - // there shouldn't be any parameter - if ( pVar != NULL ) { Exception = CBotErrOverParam; return false; } - - //retrieves the element "handle" - pVar = pThis->GetItem("handle"); - - if ( pVar->GetInit() != IS_DEF) { Exception = CBotErrNotOpen; return false; } - - FILE* pFile= (FILE*)pVar->GetValInt(); - - char chaine[2000]; - int i; - for ( i = 0 ; i < 2000 ; i++ ) chaine[i] = 0; - - fgets(chaine, 1999, pFile); - - for ( i = 0 ; i < 2000 ; i++ ) if (chaine[i] == '\n') chaine[i] = 0; - - // on error throws an exception - if ( ferror(pFile) ) { Exception = CBotErrRead; return false; } - - pResult->SetValString( chaine ); - - return true; -} - -// compilation -CBotTypResult cfread (CBotVar* pThis, CBotVar* &pVar) -{ - // there shouldn't be any parameter - if ( pVar != NULL ) return CBotTypResult( CBotErrOverParam ); - - // function return "string" result - return CBotTypResult( CBotTypString ); -} -// FILE :: readln method - - -// execution -bool rfeof (CBotVar* pThis, CBotVar* pVar, CBotVar* pResult, int& Exception) -{ - // there shouldn't be any parameter - if ( pVar != NULL ) { Exception = CBotErrOverParam; return false; } - - // retrieves the element "handle" - pVar = pThis->GetItem("handle"); - - if ( pVar->GetInit() != IS_DEF) { Exception = CBotErrNotOpen; return false; } - - FILE* pFile= (FILE*)pVar->GetValInt(); - - pResult->SetValInt( feof( pFile ) ); - - return true; -} - -// compilation -CBotTypResult cfeof (CBotVar* pThis, CBotVar* &pVar) -{ - // there shouldn't be any parameter - if ( pVar != NULL ) return CBotTypResult( CBotErrOverParam ); - - // function return boolean result - return CBotTypResult( CBotTypBoolean ); -} - - - - - -void InitClassFILE() -{ -// creates a class for file management -// the usage is as follows: -// file canal( "NomFichier.txt" ) -// canal.open( "r" ); // open reading -// s = canal.readln( ); // reads a line -// canal.close(); // closes the file - - // create class FILE - m_pClassFILE = new CBotClass("file", NULL); - // add the component ".filename" - m_pClassFILE->AddItem("filename", CBotTypString); - // add the component ".handle" - m_pClassFILE->AddItem("handle", CBotTypInt, PR_PRIVATE); - - // define a constructor and destructor - m_pClassFILE->AddFunction("file", rfconstruct, cfconstruct ); - m_pClassFILE->AddFunction("~file", rfdestruct, NULL ); - - // defined associated methods - m_pClassFILE->AddFunction("open", rfopen, cfopen ); - m_pClassFILE->AddFunction("close", rfclose, cfclose ); - m_pClassFILE->AddFunction("writeln", rfwrite, cfwrite ); - m_pClassFILE->AddFunction("readln", rfread, cfread ); - m_pClassFILE->AddFunction("eof", rfeof, cfeof ); - - m_pFuncFile = new CBotProgram( ); - CBotStringArray ListFonctions; - m_pFuncFile->Compile( "public file openfile(string name, string mode) {return new file(name, mode);}", ListFonctions); - m_pFuncFile->SetIdent(-2); // restoreState as a special identifier for this function -} - diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp index 83b9fc9..fc15b26 100644 --- a/src/object/robotmain.cpp +++ b/src/object/robotmain.cpp @@ -3603,199 +3603,6 @@ char* SkipNum(char *p) return p; } -//! Conversion of units -void CRobotMain::Convert() -{ - char* base = m_dialog->GetSceneName(); - int rank = m_dialog->GetSceneRank(); - - //TODO change line to string - char line[500]; - std::string tempLine; - - m_dialog->BuildSceneName(tempLine, base, rank); - strcpy(line, tempLine.c_str()); - FILE* file = fopen(line, "r"); - if (file == NULL) return; - - strcpy(line+strlen(line)-4, ".new"); - FILE* fileNew = fopen(line, "w"); - if (fileNew == NULL) return; - - char lineNew[500]; - char s[200]; - - while (fgets(line, 500, file) != NULL) - { - strcpy(lineNew, line); - - if (Cmd(line, "DeepView")) - { - char* p = strstr(line, "air="); - if (p != 0) - { - float value = OpFloat(line, "air", 500.0f); - value /= g_unit; - p[0] = 0; - p = SkipNum(p+4); - strcpy(lineNew, line); - strcat(lineNew, "air="); - sprintf(s, "%.2f", value); - strcat(lineNew, s); - strcat(lineNew, " "); - strcat(lineNew, p); - } - strcpy(line, lineNew); - - p = strstr(line, "water="); - if (p != 0) - { - float value = OpFloat(line, "water", 100.0f); - value /= g_unit; - p[0] = 0; - p = SkipNum(p+6); - strcpy(lineNew, line); - strcat(lineNew, "water="); - sprintf(s, "%.2f", value); - strcat(lineNew, s); - strcat(lineNew, " "); - strcat(lineNew, p); - } - strcpy(line, lineNew); - } - - if (Cmd(line, "TerrainGenerate")) - { - char* p = strstr(line, "vision="); - if (p != 0) - { - float value = OpFloat(line, "vision", 500.0f); - value /= g_unit; - p[0] = 0; - p = SkipNum(p+7); - strcpy(lineNew, line); - strcat(lineNew, "vision="); - sprintf(s, "%.2f", value); - strcat(lineNew, s); - strcat(lineNew, " "); - strcat(lineNew, p); - } - } - - if (Cmd(line, "CreateObject") || - Cmd(line, "CreateSpot")) - { - char* p = strstr(line, "pos="); - if (p != 0) - { - Math::Vector pos = OpPos(line, "pos"); - pos.x /= g_unit; - pos.y /= g_unit; - pos.z /= g_unit; - p[0] = 0; - p = SkipNum(p+4); - p = SkipNum(p+1); - strcpy(lineNew, line); - strcat(lineNew, "pos="); - sprintf(s, "%.2f", pos.x); - strcat(lineNew, s); - strcat(lineNew, ";"); - sprintf(s, "%.2f", pos.z); - strcat(lineNew, s); - strcat(lineNew, " "); - strcat(lineNew, p); - } - } - - if (Cmd(line, "EndMissionTake") || Cmd(line, "AudioChange")) - { - char* p = strstr(line, "pos="); - if (p != 0) - { - Math::Vector pos = OpPos(line, "pos"); - pos.x /= g_unit; - pos.y /= g_unit; - pos.z /= g_unit; - p[0] = 0; - p = SkipNum(p+4); - p = SkipNum(p+1); - strcpy(lineNew, line); - strcat(lineNew, "pos="); - sprintf(s, "%.2f", pos.x); - strcat(lineNew, s); - strcat(lineNew, ";"); - sprintf(s, "%.2f", pos.z); - strcat(lineNew, s); - strcat(lineNew, " "); - strcat(lineNew, p); - } - strcpy(line, lineNew); - - p = strstr(line, "dist="); - if (p != 0) - { - float value = OpFloat(line, "dist", 32.0f); - value /= g_unit; - p[0] = 0; - p = SkipNum(p+5); - strcpy(lineNew, line); - strcat(lineNew, "dist="); - sprintf(s, "%.2f", value); - strcat(lineNew, s); - strcat(lineNew, " "); - strcat(lineNew, p); - } - strcpy(line, lineNew); - } - - if (Cmd(line, "Camera")) - { - char* p = strstr(line, "pos="); - if (p != 0) - { - Math::Vector pos = OpPos(line, "pos"); - pos.x /= g_unit; - pos.y /= g_unit; - pos.z /= g_unit; - p[0] = 0; - p = SkipNum(p+4); - p = SkipNum(p+1); - strcpy(lineNew, line); - strcat(lineNew, "pos="); - sprintf(s, "%.2f", pos.x); - strcat(lineNew, s); - strcat(lineNew, ";"); - sprintf(s, "%.2f", pos.z); - strcat(lineNew, s); - strcat(lineNew, " "); - strcat(lineNew, p); - } - strcpy(line, lineNew); - - p = strstr(line, "h="); - if (p != 0) - { - float value = OpFloat(line, "h", 32.0f); - value /= g_unit; - p[0] = 0; - p = SkipNum(p+2); - strcpy(lineNew, line); - strcat(lineNew, "h="); - sprintf(s, "%.2f", value); - strcat(lineNew, s); - strcat(lineNew, " "); - strcat(lineNew, p); - } - strcpy(line, lineNew); - } - - fputs(lineNew, fileNew); - } - - fclose(fileNew); - fclose(file); -} - //! Load the scene for the character void CRobotMain::ScenePerso() { diff --git a/src/object/robotmain.h b/src/object/robotmain.h index 19e9e7d..73ddc35 100644 --- a/src/object/robotmain.h +++ b/src/object/robotmain.h @@ -392,7 +392,6 @@ protected: bool EventObject(const Event &event); void InitEye(); - void Convert(); void CreateScene(bool soluce, bool fixScene, bool resetObject); Math::Vector LookatPoint(Math::Vector eye, float angleH, float angleV, float length); -- cgit v1.2.3-1-g7c22 From 4a202a086fd5ca0f2d84bdb3bf7d1e6f7deb84c0 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Wed, 6 Aug 2014 17:18:52 +0200 Subject: Fixed #314 --- src/graphics/engine/engine.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/graphics/engine/engine.cpp b/src/graphics/engine/engine.cpp index d0b37a5..e4bf068 100644 --- a/src/graphics/engine/engine.cpp +++ b/src/graphics/engine/engine.cpp @@ -1965,10 +1965,10 @@ bool CEngine::IsWithinLODLimit(float distance, LODLevel lodLevel) } min *= m_size.x / 640.0f; - min *= m_objectDetail*2.0f; + min *= 1.0f+m_objectDetail*2.0f; max *= m_size.x / 640.0f; - max *= m_objectDetail*2.0f; + max *= 1.0f+m_objectDetail*2.0f; } return distance >= min && distance < max; -- cgit v1.2.3-1-g7c22 From 78f69f61663d5005debd0fbfc40f686bb61322f1 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Thu, 7 Aug 2014 04:32:58 +0200 Subject: Auto-update from Pootle 2014-08-07 This commit was automatically generated from http://translations.colobot.info/ --- data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data b/data index ea18354..6a8c1ff 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit ea1835405d8b33ecc9d9f53848abb724eaf59a22 +Subproject commit 6a8c1ffefe3a14377b9786f6ac72f8516b62f67f -- cgit v1.2.3-1-g7c22 From b0dbfa3d157e52eaf1c66375e9389d35d11c56b1 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Fri, 8 Aug 2014 04:32:46 +0200 Subject: Auto-update from Pootle 2014-08-08 This commit was automatically generated from http://translations.colobot.info/ --- data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data b/data index 6a8c1ff..bbc351c 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit 6a8c1ffefe3a14377b9786f6ac72f8516b62f67f +Subproject commit bbc351c29b739b3031922aef06493fd4a404bbbf -- cgit v1.2.3-1-g7c22 From 17fe2b3d61ea14a083a6e077b827d3e41361a8f8 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Fri, 8 Aug 2014 13:41:31 +0200 Subject: Updated submodule --- data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data b/data index bbc351c..a521070 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit bbc351c29b739b3031922aef06493fd4a404bbbf +Subproject commit a521070bb17737e1d3990ba09d09d036749635ab -- cgit v1.2.3-1-g7c22 From ea0615ee05b0812f2bb5d7d8b970b3f83999a319 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Fri, 8 Aug 2014 14:03:43 +0200 Subject: Fixed #315 --- src/ui/edit.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ui/edit.cpp b/src/ui/edit.cpp index e2df62b..24d02e9 100644 --- a/src/ui/edit.cpp +++ b/src/ui/edit.cpp @@ -373,23 +373,23 @@ bool CEdit::EventProcess(const Event &event) MoveChar(1, bControl, bShift); return true; } - if ( event.key.key == KEY(UP) ) + if ( event.key.key == KEY(UP) && m_bMulti ) { MoveLine(-1, bControl, bShift); return true; } - if ( event.key.key == KEY(DOWN) ) + if ( event.key.key == KEY(DOWN) && m_bMulti ) { MoveLine(1, bControl, bShift); return true; } - if ( event.key.key == KEY(PAGEUP) ) // PageUp ? + if ( event.key.key == KEY(PAGEUP) && m_bMulti ) // PageUp ? { MoveLine(-(m_lineVisible-1), bControl, bShift); return true; } - if ( event.key.key == KEY(PAGEDOWN) ) // PageDown ? + if ( event.key.key == KEY(PAGEDOWN) && m_bMulti ) // PageDown ? { MoveLine(m_lineVisible-1, bControl, bShift); return true; -- cgit v1.2.3-1-g7c22 From ac019c263d7b41742934a9dafd58ac2e6171109c Mon Sep 17 00:00:00 2001 From: Piotr Dziwinski Date: Sat, 9 Aug 2014 22:45:07 +0200 Subject: Remove unnecessary delete checks (#318) --- src/CBot/CBotToken.cpp | 2 +- src/common/iman.cpp | 4 +--- src/common/singleton.h | 5 +---- src/sound/oalsound/alsound.cpp | 14 ++++---------- src/ui/interface.cpp | 7 ++----- 5 files changed, 9 insertions(+), 23 deletions(-) diff --git a/src/CBot/CBotToken.cpp b/src/CBot/CBotToken.cpp index 48033a3..17cdba1 100644 --- a/src/CBot/CBotToken.cpp +++ b/src/CBot/CBotToken.cpp @@ -105,7 +105,7 @@ void CBotToken::Free() const CBotToken& CBotToken::operator=(const CBotToken& src) { - if (m_next != NULL) delete(m_next); + delete m_next; m_next = NULL; m_prev = NULL; diff --git a/src/common/iman.cpp b/src/common/iman.cpp index 88fbb9b..edfa9c7 100644 --- a/src/common/iman.cpp +++ b/src/common/iman.cpp @@ -42,9 +42,7 @@ void CInstanceManager::Flush() { for (int i = 0; i < CLASS_MAX; i++) { - if (m_table[i].instances != nullptr) - delete[] m_table[i].instances; - + delete[] m_table[i].instances; m_table[i].instances = nullptr; } } diff --git a/src/common/singleton.h b/src/common/singleton.h index 841759d..bf5bc9d 100644 --- a/src/common/singleton.h +++ b/src/common/singleton.h @@ -62,10 +62,7 @@ public: static void ReplaceInstance(T* newInstance) { assert(newInstance != nullptr); - - if (m_instance != nullptr) - delete m_instance; - + delete m_instance; m_instance = newInstance; } #endif diff --git a/src/sound/oalsound/alsound.cpp b/src/sound/oalsound/alsound.cpp index 8afbdd2..327bb6f 100644 --- a/src/sound/oalsound/alsound.cpp +++ b/src/sound/oalsound/alsound.cpp @@ -58,20 +58,14 @@ void ALSound::CleanUp() delete channel.second; } - if (m_currentMusic) - { - delete m_currentMusic; - } - + delete m_currentMusic; + for (auto item : m_oldMusic) { delete item.music; } - - if (m_previousMusic.music) - { - delete m_previousMusic.music; - } + + delete m_previousMusic.music; for (auto item : m_sounds) { diff --git a/src/ui/interface.cpp b/src/ui/interface.cpp index ab2c01b..4a0c221 100644 --- a/src/ui/interface.cpp +++ b/src/ui/interface.cpp @@ -49,11 +49,8 @@ void CInterface::Flush() { for (int i = 0; i < MAXCONTROL; i++) { - if (m_table[i] != nullptr) - { - delete m_table[i]; - m_table[i] = nullptr; - } + delete m_table[i]; + m_table[i] = nullptr; } } -- cgit v1.2.3-1-g7c22 From 9de086390bc925b6eb8cbfe332c1985e4b715d61 Mon Sep 17 00:00:00 2001 From: Piotr Dziwinski Date: Sun, 10 Aug 2014 17:51:47 +0200 Subject: Remove some more delete checks (#318) --- src/app/app.cpp | 21 ++++++--------------- src/ui/edit.cpp | 17 +++++------------ src/ui/list.cpp | 6 ++---- src/ui/window.cpp | 53 +++++++++++++++-------------------------------------- 4 files changed, 28 insertions(+), 69 deletions(-) diff --git a/src/app/app.cpp b/src/app/app.cpp index 8b310c9..83a520a 100644 --- a/src/app/app.cpp +++ b/src/app/app.cpp @@ -598,23 +598,14 @@ void CApplication::Destroy() { m_joystickEnabled = false; - if (m_robotMain != nullptr) - { - delete m_robotMain; - m_robotMain = nullptr; - } + delete m_robotMain; + m_robotMain = nullptr; - if (m_sound != nullptr) - { - delete m_sound; - m_sound = nullptr; - } + delete m_sound; + m_sound = nullptr; - if (m_modelManager != nullptr) - { - delete m_modelManager; - m_modelManager = nullptr; - } + delete m_modelManager; + m_modelManager = nullptr; if (m_engine != nullptr) { diff --git a/src/ui/edit.cpp b/src/ui/edit.cpp index 24d02e9..4132896 100644 --- a/src/ui/edit.cpp +++ b/src/ui/edit.cpp @@ -115,21 +115,16 @@ CEdit::CEdit () : CControl () CEdit::~CEdit() { - int i; - FreeImage(); - for ( i=0 ; i Date: Sun, 10 Aug 2014 17:57:41 +0200 Subject: Fix task stopping checks in CBrain This possibly fixes some issues resulting from improperly stopping tasks (CTask::Abort() not called before deleting the task). Found while looking for instances of #318. --- src/object/brain.cpp | 161 ++++++++++++--------------------------------------- src/object/brain.h | 2 +- 2 files changed, 39 insertions(+), 124 deletions(-) diff --git a/src/object/brain.cpp b/src/object/brain.cpp index 4bd8742..ca578ba 100644 --- a/src/object/brain.cpp +++ b/src/object/brain.cpp @@ -812,11 +812,11 @@ void CBrain::StopProgram() void CBrain::StopTask() { - if ( m_primaryTask != 0 ) + if (m_primaryTask != nullptr) { m_primaryTask->Abort(); delete m_primaryTask; // stops the current task - m_primaryTask = 0; + m_primaryTask = nullptr; } } @@ -900,16 +900,10 @@ void CBrain::StopEditScript(bool bCancel) Error CBrain::StartTaskTake() { - Error err; - - if ( m_primaryTask != 0 ) - { - delete m_primaryTask; // stops the current task - m_primaryTask = 0; - } + StopTask(); m_primaryTask = new CTaskManager(m_object); - err = m_primaryTask->StartTaskTake(); + Error err = m_primaryTask->StartTaskTake(); UpdateInterface(); return err; } @@ -918,16 +912,10 @@ Error CBrain::StartTaskTake() Error CBrain::StartTaskManip(TaskManipOrder order, TaskManipArm arm) { - Error err; - - if ( m_primaryTask != 0 ) - { - delete m_primaryTask; // stops the current task - m_primaryTask = 0; - } + StopTask(); m_primaryTask = new CTaskManager(m_object); - err = m_primaryTask->StartTaskManip(order, arm); + Error err = m_primaryTask->StartTaskManip(order, arm); UpdateInterface(); return err; } @@ -936,16 +924,10 @@ Error CBrain::StartTaskManip(TaskManipOrder order, TaskManipArm arm) Error CBrain::StartTaskFlag(TaskFlagOrder order, int rank) { - Error err; - - if ( m_primaryTask != 0 ) - { - delete m_primaryTask; // stops the current task - m_primaryTask = 0; - } + StopTask(); m_primaryTask = new CTaskManager(m_object); - err = m_primaryTask->StartTaskFlag(order, rank); + Error err = m_primaryTask->StartTaskFlag(order, rank); UpdateInterface(); return err; } @@ -954,16 +936,10 @@ Error CBrain::StartTaskFlag(TaskFlagOrder order, int rank) Error CBrain::StartTaskBuild(ObjectType type) { - Error err; - - if ( m_primaryTask != 0 ) - { - delete m_primaryTask; // stops the current task - m_primaryTask = 0; - } + StopTask(); m_primaryTask = new CTaskManager(m_object); - err = m_primaryTask->StartTaskBuild(type); + Error err = m_primaryTask->StartTaskBuild(type); UpdateInterface(); return err; } @@ -972,16 +948,10 @@ Error CBrain::StartTaskBuild(ObjectType type) Error CBrain::StartTaskSearch() { - Error err; - - if ( m_primaryTask != 0 ) - { - delete m_primaryTask; // stops the current task - m_primaryTask = 0; - } + StopTask(); m_primaryTask = new CTaskManager(m_object); - err = m_primaryTask->StartTaskSearch(); + Error err = m_primaryTask->StartTaskSearch(); UpdateInterface(); return err; } @@ -990,38 +960,26 @@ Error CBrain::StartTaskSearch() Error CBrain::StartTaskTerraform() { - Error err; - - if ( m_primaryTask != 0 ) - { - delete m_primaryTask; // stops the current task - m_primaryTask = 0; - } + StopTask(); m_primaryTask = new CTaskManager(m_object); - err = m_primaryTask->StartTaskTerraform(); + Error err = m_primaryTask->StartTaskTerraform(); UpdateInterface(); return err; } // Change pencil. -Error CBrain::StartTaskPen(bool bDown, int color) +Error CBrain::StartTaskPen(bool down, int color) { - Error err; - m_physics->SetMotorSpeedX(0.0f); m_physics->SetMotorSpeedY(0.0f); m_physics->SetMotorSpeedZ(0.0f); - if ( m_primaryTask != 0 ) - { - delete m_primaryTask; // stops the current task - m_primaryTask = 0; - } + StopTask(); m_primaryTask = new CTaskManager(m_object); - err = m_primaryTask->StartTaskPen(bDown, color); + Error err = m_primaryTask->StartTaskPen(down, color); UpdateInterface(); return err; } @@ -1030,16 +988,10 @@ Error CBrain::StartTaskPen(bool bDown, int color) Error CBrain::StartTaskRecover() { - Error err; - - if ( m_primaryTask != 0 ) - { - delete m_primaryTask; // stops the current task - m_primaryTask = 0; - } + StopTask(); m_primaryTask = new CTaskManager(m_object); - err = m_primaryTask->StartTaskRecover(); + Error err = m_primaryTask->StartTaskRecover(); UpdateInterface(); return err; } @@ -1048,16 +1000,10 @@ Error CBrain::StartTaskRecover() Error CBrain::StartTaskShield(TaskShieldMode mode) { - Error err; - - if ( m_secondaryTask != 0 ) - { - delete m_secondaryTask; // stops the current task - m_secondaryTask = 0; - } + StopTask(); m_secondaryTask = new CTaskManager(m_object); - err = m_secondaryTask->StartTaskShield(mode, 1000.0f); + Error err = m_secondaryTask->StartTaskShield(mode, 1000.0f); UpdateInterface(); return err; } @@ -1066,16 +1012,10 @@ Error CBrain::StartTaskShield(TaskShieldMode mode) Error CBrain::StartTaskFire(float delay) { - Error err; - - if ( m_primaryTask != 0 ) - { - delete m_primaryTask; // stops the current task - m_primaryTask = 0; - } + StopTask(); m_primaryTask = new CTaskManager(m_object); - err = m_primaryTask->StartTaskFire(delay); + Error err = m_primaryTask->StartTaskFire(delay); UpdateInterface(); return err; } @@ -1084,16 +1024,10 @@ Error CBrain::StartTaskFire(float delay) Error CBrain::StartTaskSpiderExplo() { - Error err; - - if ( m_primaryTask != 0 ) - { - delete m_primaryTask; // stops the current task - m_primaryTask = 0; - } + StopTask(); m_primaryTask = new CTaskManager(m_object); - err = m_primaryTask->StartTaskSpiderExplo(); + Error err = m_primaryTask->StartTaskSpiderExplo(); UpdateInterface(); return err; } @@ -1102,16 +1036,10 @@ Error CBrain::StartTaskSpiderExplo() Error CBrain::StartTaskFireAnt(Math::Vector impact) { - Error err; - - if ( m_primaryTask != 0 ) - { - delete m_primaryTask; // stops the current task - m_primaryTask = 0; - } + StopTask(); m_primaryTask = new CTaskManager(m_object); - err = m_primaryTask->StartTaskFireAnt(impact); + Error err = m_primaryTask->StartTaskFireAnt(impact); UpdateInterface(); return err; } @@ -1120,16 +1048,10 @@ Error CBrain::StartTaskFireAnt(Math::Vector impact) Error CBrain::StartTaskGunGoal(float dirV, float dirH) { - Error err; - - if ( m_secondaryTask != 0 ) - { - delete m_secondaryTask; // stops the current task - m_secondaryTask = 0; - } + StopTask(); m_secondaryTask = new CTaskManager(m_object); - err = m_secondaryTask->StartTaskGunGoal(dirV, dirH); + Error err = m_secondaryTask->StartTaskGunGoal(dirV, dirH); UpdateInterface(); return err; } @@ -1138,16 +1060,10 @@ Error CBrain::StartTaskGunGoal(float dirV, float dirH) Error CBrain::StartTaskReset(Math::Vector goal, Math::Vector angle) { - Error err; - - if ( m_primaryTask != 0 ) - { - delete m_primaryTask; // stops the current task - m_primaryTask = 0; - } + StopTask(); m_primaryTask = new CTaskManager(m_object); - err = m_primaryTask->StartTaskReset(goal, angle); + Error err = m_primaryTask->StartTaskReset(goal, angle); UpdateInterface(); return err; } @@ -1156,30 +1072,29 @@ Error CBrain::StartTaskReset(Math::Vector goal, Math::Vector angle) Error CBrain::EndedTask() { - Error err; - - if ( m_secondaryTask != 0 ) // current task? + if (m_secondaryTask != nullptr) // current task? { - err = m_secondaryTask->IsEnded(); + Error err = m_secondaryTask->IsEnded(); if ( err != ERR_CONTINUE ) // job ended? { delete m_secondaryTask; - m_secondaryTask = 0; + m_secondaryTask = nullptr; UpdateInterface(); } } - if ( m_primaryTask != 0 ) // current task? + if (m_primaryTask != nullptr) // current task? { - err = m_primaryTask->IsEnded(); + Error err = m_primaryTask->IsEnded(); if ( err != ERR_CONTINUE ) // job ended? { delete m_primaryTask; - m_primaryTask = 0; + m_primaryTask = nullptr; UpdateInterface(); } return err; } + return ERR_STOP; } diff --git a/src/object/brain.h b/src/object/brain.h index a1f5da7..8a6b13e 100644 --- a/src/object/brain.h +++ b/src/object/brain.h @@ -128,7 +128,7 @@ public: Error StartTaskBuild(ObjectType type); Error StartTaskSearch(); Error StartTaskTerraform(); - Error StartTaskPen(bool bDown, int color); + Error StartTaskPen(bool down, int color); Error StartTaskRecover(); Error StartTaskShield(TaskShieldMode mode); Error StartTaskFire(float delay); -- cgit v1.2.3-1-g7c22 From 4bdfa0aa4ee3ad00429e8d68823532bdb2d72a97 Mon Sep 17 00:00:00 2001 From: Piotr Dziwinski Date: Tue, 12 Aug 2014 18:18:30 +0200 Subject: Remove unused accessors from CDevice --- src/graphics/core/device.h | 40 +------ src/graphics/opengl/gldevice.cpp | 211 +--------------------------------- src/graphics/opengl/gldevice.h | 112 ++++++++---------- test/unit/graphics/core/device_mock.h | 17 --- 4 files changed, 49 insertions(+), 331 deletions(-) diff --git a/src/graphics/core/device.h b/src/graphics/core/device.h index a896104..476136e 100644 --- a/src/graphics/core/device.h +++ b/src/graphics/core/device.h @@ -258,26 +258,16 @@ public: //! Sets the transform matrix of given type virtual void SetTransform(TransformType type, const Math::Matrix &matrix) = 0; - //! Returns the current transform matrix of given type - virtual const Math::Matrix& GetTransform(TransformType type) = 0; - //! Multiplies the current transform matrix of given type by given matrix - virtual void MultiplyTransform(TransformType type, const Math::Matrix &matrix) = 0; //! Sets the current material virtual void SetMaterial(const Material &material) = 0; - //! Returns the current material - virtual const Material& GetMaterial() = 0; //! Returns the maximum number of lights available virtual int GetMaxLightCount() = 0; //! Sets the light at given index virtual void SetLight(int index, const Light &light) = 0; - //! Returns the current light at given index - virtual const Light& GetLight(int index) = 0; //! Enables/disables the light at given index virtual void SetLightEnabled(int index, bool enabled) = 0; - //! Returns the current enable state of light at given index - virtual bool GetLightEnabled(int index) = 0; //! Creates a texture from image; the image can be safely removed after that virtual Texture CreateTexture(CImage *image, const TextureCreateParams ¶ms) = 0; @@ -294,17 +284,11 @@ public: virtual void SetTexture(int index, const Texture &texture) = 0; //! Sets the texture image by ID at given texture stage virtual void SetTexture(int index, unsigned int textureId) = 0; - //! Returns the (multi)texture at given index - virtual Texture GetTexture(int index) = 0; //! Enables/disables the given texture stage virtual void SetTextureEnabled(int index, bool enabled) = 0; - //! Returns the current enable state of given texture stage - virtual bool GetTextureEnabled(int index) = 0; //! Sets the params for texture stage with given index virtual void SetTextureStageParams(int index, const TextureStageParams ¶ms) = 0; - //! Returns the current params of texture stage with given index - virtual TextureStageParams GetTextureStageParams(int index) = 0; //! Sets only the texture wrap modes (for faster than thru stage params) virtual void SetTextureStageWrap(int index, TexWrapMode wrapS, TexWrapMode wrapT) = 0; @@ -348,61 +332,39 @@ public: //! Enables/disables the given render state virtual void SetRenderState(RenderState state, bool enabled) = 0; - //! Returns the current setting of given render state - virtual bool GetRenderState(RenderState state) = 0; //! Sets the function of depth test virtual void SetDepthTestFunc(CompFunc func) = 0; - //! Returns the current function of depth test - virtual CompFunc GetDepthTestFunc() = 0; //! Sets the depth bias (constant value added to Z-coords) virtual void SetDepthBias(float factor) = 0; - //! Returns the current depth bias - virtual float GetDepthBias() = 0; //! Sets the alpha test function and reference value virtual void SetAlphaTestFunc(CompFunc func, float refValue) = 0; - //! Returns the current alpha test function and reference value - virtual void GetAlphaTestFunc(CompFunc &func, float &refValue) = 0; //! Sets the blending functions for source and destination operations virtual void SetBlendFunc(BlendFunc srcBlend, BlendFunc dstBlend) = 0; - //! Returns the current blending functions for source and destination operations - virtual void GetBlendFunc(BlendFunc &srcBlend, BlendFunc &dstBlend) = 0; //! Sets the clear color virtual void SetClearColor(const Color &color) = 0; - //! Returns the current clear color - virtual Color GetClearColor() = 0; //! Sets the global ambient color virtual void SetGlobalAmbient(const Color &color) = 0; - //! Returns the global ambient color - virtual Color GetGlobalAmbient() = 0; //! Sets the fog parameters: mode, color, start distance, end distance and density (for exp models) virtual void SetFogParams(FogMode mode, const Color &color, float start, float end, float density) = 0; - //! Returns the current fog parameters: mode, color, start distance, end distance and density (for exp models) - virtual void GetFogParams(FogMode &mode, Color &color, float &start, float &end, float &density) = 0; //! Sets the current cull mode virtual void SetCullMode(CullMode mode) = 0; - //! Returns the current cull mode - virtual CullMode GetCullMode() = 0; //! Sets the shade model virtual void SetShadeModel(ShadeModel model) = 0; - //! Returns the current shade model - virtual ShadeModel GetShadeModel() = 0; //! Sets the current fill mode virtual void SetFillMode(FillMode mode) = 0; - //! Returns the current fill mode - virtual FillMode GetFillMode() = 0; //! Returns the pixels of the entire screen - virtual void* GetFrameBufferPixels()const = 0; + virtual void* GetFrameBufferPixels() const = 0; }; diff --git a/src/graphics/opengl/gldevice.cpp b/src/graphics/opengl/gldevice.cpp index b42f29d..10eec90 100644 --- a/src/graphics/opengl/gldevice.cpp +++ b/src/graphics/opengl/gldevice.cpp @@ -290,11 +290,6 @@ void CGLDevice::SetUseVbo(bool vboAvailable) m_vboAvailable = vboAvailable; } -bool CGLDevice::GetUseVbo() -{ - return m_vboAvailable; -} - void CGLDevice::BeginScene() { Clear(); @@ -339,44 +334,6 @@ void CGLDevice::SetTransform(TransformType type, const Math::Matrix &matrix) } } -const Math::Matrix& CGLDevice::GetTransform(TransformType type) -{ - if (type == TRANSFORM_WORLD) - return m_worldMat; - else if (type == TRANSFORM_VIEW) - return m_viewMat; - else if (type == TRANSFORM_PROJECTION) - return m_projectionMat; - else - assert(false); - - return m_worldMat; // to avoid warning -} - -void CGLDevice::MultiplyTransform(TransformType type, const Math::Matrix &matrix) -{ - if (type == TRANSFORM_WORLD) - { - m_worldMat = Math::MultiplyMatrices(m_worldMat, matrix); - UpdateModelviewMatrix(); - } - else if (type == TRANSFORM_VIEW) - { - m_viewMat = Math::MultiplyMatrices(m_viewMat, matrix); - UpdateModelviewMatrix(); - } - else if (type == TRANSFORM_PROJECTION) - { - m_projectionMat = Math::MultiplyMatrices(m_projectionMat, matrix); - glMatrixMode(GL_PROJECTION); - glLoadMatrixf(m_projectionMat.Array()); - } - else - { - assert(false); - } -} - void CGLDevice::UpdateModelviewMatrix() { m_modelviewMat = Math::MultiplyMatrices(m_viewMat, m_worldMat); @@ -402,11 +359,6 @@ void CGLDevice::SetMaterial(const Material &material) glMaterialfv(GL_FRONT, GL_SPECULAR, m_material.specular.Array()); } -const Material& CGLDevice::GetMaterial() -{ - return m_material; -} - int CGLDevice::GetMaxLightCount() { return m_lights.size(); @@ -482,14 +434,6 @@ void CGLDevice::UpdateLightPosition(int index) glPopMatrix(); } -const Light& CGLDevice::GetLight(int index) -{ - assert(index >= 0); - assert(index < static_cast( m_lights.size() )); - - return m_lights[index]; -} - void CGLDevice::SetLightEnabled(int index, bool enabled) { assert(index >= 0); @@ -503,14 +447,6 @@ void CGLDevice::SetLightEnabled(int index, bool enabled) glDisable(GL_LIGHT0 + index); } -bool CGLDevice::GetLightEnabled(int index) -{ - assert(index >= 0); - assert(index < static_cast( m_lights.size() )); - - return m_lightsEnabled[index]; -} - /** If image is invalid, returns invalid texture. Otherwise, returns pointer to new Texture struct. This struct must not be deleted in other way than through DeleteTexture() */ @@ -781,15 +717,6 @@ void CGLDevice::SetTexture(int index, unsigned int textureId) UpdateTextureParams(index); } -/** - Returns the previously assigned texture or invalid texture if the given stage is not enabled. */ -Texture CGLDevice::GetTexture(int index) -{ - assert(index >= 0 && index < static_cast( m_currentTextures.size() )); - - return m_currentTextures[index]; -} - void CGLDevice::SetTextureEnabled(int index, bool enabled) { assert(index >= 0 && index < static_cast( m_currentTextures.size() )); @@ -813,13 +740,6 @@ void CGLDevice::SetTextureEnabled(int index, bool enabled) glDisable(GL_TEXTURE_2D); } -bool CGLDevice::GetTextureEnabled(int index) -{ - assert(index >= 0 && index < static_cast( m_currentTextures.size() )); - - return m_texturesEnabled[index]; -} - /** Sets the texture parameters for the given texture stage. If the given texture was not set (bound) yet, nothing happens. @@ -1002,13 +922,6 @@ void CGLDevice::SetTextureStageWrap(int index, TexWrapMode wrapS, TexWrapMode wr else assert(false); } -TextureStageParams CGLDevice::GetTextureStageParams(int index) -{ - assert(index >= 0 && index < static_cast( m_currentTextures.size() )); - - return m_textureStageParams[index]; -} - GLenum TranslateGfxPrimitive(PrimitiveType type) { GLenum flag = 0; @@ -1529,30 +1442,6 @@ void CGLDevice::SetRenderState(RenderState state, bool enabled) glDisable(flag); } -bool CGLDevice::GetRenderState(RenderState state) -{ - if (state == RENDER_STATE_LIGHTING) - return m_lighting; - - GLenum flag = 0; - - switch (state) - { - case RENDER_STATE_DEPTH_WRITE: flag = GL_DEPTH_WRITEMASK; break; - case RENDER_STATE_BLENDING: flag = GL_BLEND; break; - case RENDER_STATE_FOG: flag = GL_FOG; break; - case RENDER_STATE_DEPTH_TEST: flag = GL_DEPTH_TEST; break; - case RENDER_STATE_ALPHA_TEST: flag = GL_ALPHA_TEST; break; - case RENDER_STATE_CULLING: flag = GL_CULL_FACE; break; - default: assert(false); break; - } - - GLboolean result = GL_FALSE; - glGetBooleanv(flag, &result); - - return result == GL_TRUE; -} - CompFunc TranslateGLCompFunc(GLenum flag) { switch (flag) @@ -1592,39 +1481,16 @@ void CGLDevice::SetDepthTestFunc(CompFunc func) glDepthFunc(TranslateGfxCompFunc(func)); } -CompFunc CGLDevice::GetDepthTestFunc() -{ - GLint flag = 0; - glGetIntegerv(GL_DEPTH_FUNC, &flag); - return TranslateGLCompFunc(static_cast(flag)); -} - void CGLDevice::SetDepthBias(float factor) { glPolygonOffset(factor, 0.0f); } -float CGLDevice::GetDepthBias() -{ - GLfloat result = 0.0f; - glGetFloatv(GL_POLYGON_OFFSET_FACTOR, &result); - return result; -} - void CGLDevice::SetAlphaTestFunc(CompFunc func, float refValue) { glAlphaFunc(TranslateGfxCompFunc(func), refValue); } -void CGLDevice::GetAlphaTestFunc(CompFunc &func, float &refValue) -{ - GLint flag = 0; - glGetIntegerv(GL_ALPHA_TEST_FUNC, &flag); - func = TranslateGLCompFunc(static_cast(flag)); - - glGetFloatv(GL_ALPHA_TEST_REF, static_cast(&refValue)); -} - BlendFunc TranslateGLBlendFunc(GLenum flag) { switch (flag) @@ -1671,41 +1537,16 @@ void CGLDevice::SetBlendFunc(BlendFunc srcBlend, BlendFunc dstBlend) glBlendFunc(TranslateGfxBlendFunc(srcBlend), TranslateGfxBlendFunc(dstBlend)); } -void CGLDevice::GetBlendFunc(BlendFunc &srcBlend, BlendFunc &dstBlend) -{ - GLint srcFlag = 0; - glGetIntegerv(GL_ALPHA_TEST_FUNC, &srcFlag); - srcBlend = TranslateGLBlendFunc(static_cast(srcFlag)); - - GLint dstFlag = 0; - glGetIntegerv(GL_ALPHA_TEST_FUNC, &dstFlag); - dstBlend = TranslateGLBlendFunc(static_cast(dstFlag)); -} - void CGLDevice::SetClearColor(const Color &color) { glClearColor(color.r, color.g, color.b, color.a); } -Color CGLDevice::GetClearColor() -{ - GLfloat color[4] = { 0.0f }; - glGetFloatv(GL_COLOR_CLEAR_VALUE, color); - return Color(color[0], color[1], color[2], color[3]); -} - void CGLDevice::SetGlobalAmbient(const Color &color) { glLightModelfv(GL_LIGHT_MODEL_AMBIENT, color.Array()); } -Color CGLDevice::GetGlobalAmbient() -{ - GLfloat color[4] = { 0.0f }; - glGetFloatv(GL_LIGHT_MODEL_AMBIENT, color); - return Color(color[0], color[1], color[2], color[3]); -} - void CGLDevice::SetFogParams(FogMode mode, const Color &color, float start, float end, float density) { if (mode == FOG_LINEAR) glFogi(GL_FOG_MODE, GL_LINEAR); @@ -1719,23 +1560,6 @@ void CGLDevice::SetFogParams(FogMode mode, const Color &color, float start, floa glFogfv(GL_FOG_COLOR, color.Array()); } -void CGLDevice::GetFogParams(FogMode &mode, Color &color, float &start, float &end, float &density) -{ - GLint flag = 0; - glGetIntegerv(GL_FOG_MODE, &flag); - if (flag == GL_LINEAR) mode = FOG_LINEAR; - else if (flag == GL_EXP) mode = FOG_EXP; - else if (flag == GL_EXP2) mode = FOG_EXP2; - else assert(false); - - glGetFloatv(GL_FOG_START, static_cast(&start)); - glGetFloatv(GL_FOG_END, static_cast(&end)); - glGetFloatv(GL_FOG_DENSITY, static_cast(&density)); - GLfloat col[4] = { 0.0f }; - glGetFloatv(GL_FOG_COLOR, col); - color = Color(col[0], col[1], col[2], col[3]); -} - void CGLDevice::SetCullMode(CullMode mode) { // Cull clockwise back faces, so front face is the opposite @@ -1745,16 +1569,6 @@ void CGLDevice::SetCullMode(CullMode mode) else assert(false); } -CullMode CGLDevice::GetCullMode() -{ - GLint flag = 0; - glGetIntegerv(GL_FRONT_FACE, &flag); - if (flag == GL_CW) return CULL_CCW; - else if (flag == GL_CCW) return CULL_CW; - else assert(false); - return CULL_CW; -} - void CGLDevice::SetShadeModel(ShadeModel model) { if (model == SHADE_FLAT) glShadeModel(GL_FLAT); @@ -1762,16 +1576,6 @@ void CGLDevice::SetShadeModel(ShadeModel model) else assert(false); } -ShadeModel CGLDevice::GetShadeModel() -{ - GLint flag = 0; - glGetIntegerv(GL_SHADE_MODEL, &flag); - if (flag == GL_FLAT) return SHADE_FLAT; - else if (flag == GL_SMOOTH) return SHADE_SMOOTH; - else assert(false); - return SHADE_FLAT; -} - void CGLDevice::SetFillMode(FillMode mode) { if (mode == FILL_POINT) glPolygonMode(GL_FRONT_AND_BACK, GL_POINT); @@ -1780,21 +1584,10 @@ void CGLDevice::SetFillMode(FillMode mode) else assert(false); } -FillMode CGLDevice::GetFillMode() -{ - GLint flag = 0; - glGetIntegerv(GL_POLYGON_MODE, &flag); - if (flag == GL_POINT) return FILL_POINT; - else if (flag == GL_LINE) return FILL_LINES; - else if (flag == GL_FILL) return FILL_POLY; - else assert(false); - return FILL_POINT; -} - void* CGLDevice::GetFrameBufferPixels()const{ - GLubyte* pixels = new GLubyte [4 * m_config.size.x * m_config.size.y]; - + GLubyte* pixels = new GLubyte[4 * m_config.size.x * m_config.size.y]; + glReadPixels(0, 0, m_config.size.x, m_config.size.y, GL_RGBA, GL_UNSIGNED_BYTE, pixels); unsigned int* p = static_cast ( static_cast(pixels) ); diff --git a/src/graphics/opengl/gldevice.h b/src/graphics/opengl/gldevice.h index 267ee73..ef9d1a6 100644 --- a/src/graphics/opengl/gldevice.h +++ b/src/graphics/opengl/gldevice.h @@ -92,103 +92,83 @@ public: CGLDevice(const GLDeviceConfig &config); virtual ~CGLDevice(); - virtual void DebugHook(); - virtual void DebugLights(); + virtual void DebugHook() override; + virtual void DebugLights() override; - virtual bool Create(); - virtual void Destroy(); + virtual bool Create() override; + virtual void Destroy() override; void ConfigChanged(const GLDeviceConfig &newConfig); void SetUseVbo(bool useVbo); - bool GetUseVbo(); - virtual void BeginScene(); - virtual void EndScene(); + virtual void BeginScene() override; + virtual void EndScene() override; - virtual void Clear(); + virtual void Clear() override; - virtual void SetTransform(TransformType type, const Math::Matrix &matrix); - virtual const Math::Matrix& GetTransform(TransformType type); - virtual void MultiplyTransform(TransformType type, const Math::Matrix &matrix); + virtual void SetTransform(TransformType type, const Math::Matrix &matrix) override; - virtual void SetMaterial(const Material &material); - virtual const Material& GetMaterial(); + virtual void SetMaterial(const Material &material) override; - virtual int GetMaxLightCount(); - virtual void SetLight(int index, const Light &light); - virtual const Light& GetLight(int index); - virtual void SetLightEnabled(int index, bool enabled); - virtual bool GetLightEnabled(int index); + virtual int GetMaxLightCount() override; + virtual void SetLight(int index, const Light &light) override; + virtual void SetLightEnabled(int index, bool enabled) override; - virtual Texture CreateTexture(CImage *image, const TextureCreateParams ¶ms); - virtual Texture CreateTexture(ImageData *data, const TextureCreateParams ¶ms); - virtual void DestroyTexture(const Texture &texture); - virtual void DestroyAllTextures(); + virtual Texture CreateTexture(CImage *image, const TextureCreateParams ¶ms) override; + virtual Texture CreateTexture(ImageData *data, const TextureCreateParams ¶ms) override; + virtual void DestroyTexture(const Texture &texture) override; + virtual void DestroyAllTextures() override; - virtual int GetMaxTextureStageCount(); - virtual void SetTexture(int index, const Texture &texture); - virtual void SetTexture(int index, unsigned int textureId); - virtual Texture GetTexture(int index); - virtual void SetTextureEnabled(int index, bool enabled); - virtual bool GetTextureEnabled(int index); + virtual int GetMaxTextureStageCount() override; + virtual void SetTexture(int index, const Texture &texture) override; + virtual void SetTexture(int index, unsigned int textureId) override; + virtual void SetTextureEnabled(int index, bool enabled) override; - virtual void SetTextureStageParams(int index, const TextureStageParams ¶ms); - virtual TextureStageParams GetTextureStageParams(int index); + virtual void SetTextureStageParams(int index, const TextureStageParams ¶ms) override; - virtual void SetTextureStageWrap(int index, Gfx::TexWrapMode wrapS, Gfx::TexWrapMode wrapT); + virtual void SetTextureStageWrap(int index, Gfx::TexWrapMode wrapS, Gfx::TexWrapMode wrapT) override; virtual void DrawPrimitive(PrimitiveType type, const Vertex *vertices , int vertexCount, - Color color = Color(1.0f, 1.0f, 1.0f, 1.0f)); + Color color = Color(1.0f, 1.0f, 1.0f, 1.0f)) override; virtual void DrawPrimitive(PrimitiveType type, const VertexTex2 *vertices, int vertexCount, - Color color = Color(1.0f, 1.0f, 1.0f, 1.0f)); - virtual void DrawPrimitive(PrimitiveType type, const VertexCol *vertices , int vertexCount); + Color color = Color(1.0f, 1.0f, 1.0f, 1.0f)) override; + virtual void DrawPrimitive(PrimitiveType type, const VertexCol *vertices , int vertexCount) override; - virtual unsigned int CreateStaticBuffer(PrimitiveType primitiveType, const Vertex* vertices, int vertexCount); - virtual unsigned int CreateStaticBuffer(PrimitiveType primitiveType, const VertexTex2* vertices, int vertexCount); - virtual unsigned int CreateStaticBuffer(PrimitiveType primitiveType, const VertexCol* vertices, int vertexCount); - virtual void UpdateStaticBuffer(unsigned int bufferId, PrimitiveType primitiveType, const Vertex* vertices, int vertexCount); - virtual void UpdateStaticBuffer(unsigned int bufferId, PrimitiveType primitiveType, const VertexTex2* vertices, int vertexCount); - virtual void UpdateStaticBuffer(unsigned int bufferId, PrimitiveType primitiveType, const VertexCol* vertices, int vertexCount); - virtual void DrawStaticBuffer(unsigned int bufferId); - virtual void DestroyStaticBuffer(unsigned int bufferId); + virtual unsigned int CreateStaticBuffer(PrimitiveType primitiveType, const Vertex* vertices, int vertexCount) override; + virtual unsigned int CreateStaticBuffer(PrimitiveType primitiveType, const VertexTex2* vertices, int vertexCount) override; + virtual unsigned int CreateStaticBuffer(PrimitiveType primitiveType, const VertexCol* vertices, int vertexCount) override; + virtual void UpdateStaticBuffer(unsigned int bufferId, PrimitiveType primitiveType, const Vertex* vertices, int vertexCount) override; + virtual void UpdateStaticBuffer(unsigned int bufferId, PrimitiveType primitiveType, const VertexTex2* vertices, int vertexCount) override; + virtual void UpdateStaticBuffer(unsigned int bufferId, PrimitiveType primitiveType, const VertexCol* vertices, int vertexCount) override; + virtual void DrawStaticBuffer(unsigned int bufferId) override; + virtual void DestroyStaticBuffer(unsigned int bufferId) override; - virtual int ComputeSphereVisibility(const Math::Vector ¢er, float radius); + virtual int ComputeSphereVisibility(const Math::Vector ¢er, float radius) override; - virtual void SetRenderState(RenderState state, bool enabled); - virtual bool GetRenderState(RenderState state); + virtual void SetRenderState(RenderState state, bool enabled) override; - virtual void SetDepthTestFunc(CompFunc func); - virtual CompFunc GetDepthTestFunc(); + virtual void SetDepthTestFunc(CompFunc func) override; - virtual void SetDepthBias(float factor); - virtual float GetDepthBias(); + virtual void SetDepthBias(float factor) override; - virtual void SetAlphaTestFunc(CompFunc func, float refValue); - virtual void GetAlphaTestFunc(CompFunc &func, float &refValue); + virtual void SetAlphaTestFunc(CompFunc func, float refValue) override; - virtual void SetBlendFunc(BlendFunc srcBlend, BlendFunc dstBlend); - virtual void GetBlendFunc(BlendFunc &srcBlend, BlendFunc &dstBlend); + virtual void SetBlendFunc(BlendFunc srcBlend, BlendFunc dstBlend) override; - virtual void SetClearColor(const Color &color); - virtual Color GetClearColor(); + virtual void SetClearColor(const Color &color) override; - virtual void SetGlobalAmbient(const Color &color); - virtual Color GetGlobalAmbient(); + virtual void SetGlobalAmbient(const Color &color) override; - virtual void SetFogParams(FogMode mode, const Color &color, float start, float end, float density); - virtual void GetFogParams(FogMode &mode, Color &color, float &start, float &end, float &density); + virtual void SetFogParams(FogMode mode, const Color &color, float start, float end, float density) override; - virtual void SetCullMode(CullMode mode); - virtual CullMode GetCullMode(); + virtual void SetCullMode(CullMode mode) override; - virtual void SetShadeModel(ShadeModel model); - virtual ShadeModel GetShadeModel(); + virtual void SetShadeModel(ShadeModel model) override; - virtual void SetFillMode(FillMode mode) ; - virtual FillMode GetFillMode(); + virtual void SetFillMode(FillMode mode) override; - virtual void* GetFrameBufferPixels()const; + virtual void* GetFrameBufferPixels() const override; private: //! Updates internal modelview matrix diff --git a/test/unit/graphics/core/device_mock.h b/test/unit/graphics/core/device_mock.h index 498239f..78c8502 100644 --- a/test/unit/graphics/core/device_mock.h +++ b/test/unit/graphics/core/device_mock.h @@ -21,11 +21,8 @@ public: MOCK_METHOD0(Clear, void()); MOCK_METHOD2(SetTransform, void(Gfx::TransformType type, const Math::Matrix &matrix)); - MOCK_METHOD1(GetTransform, const Math::Matrix& (Gfx::TransformType type)); - MOCK_METHOD2(MultiplyTransform, void(Gfx::TransformType type, const Math::Matrix &matrix)); MOCK_METHOD1(SetMaterial, void(const Gfx::Material &material)); - MOCK_METHOD0(GetMaterial, const Gfx::Material&()); MOCK_METHOD0(GetMaxLightCount, int()); @@ -33,7 +30,6 @@ public: MOCK_METHOD1(GetLight, const Gfx::Light&(int index)); MOCK_METHOD2(SetLightEnabled, void(int index, bool enabled)); - MOCK_METHOD1(GetLightEnabled, bool(int index)); MOCK_METHOD2(CreateTexture, Gfx::Texture(CImage *image, const Gfx::TextureCreateParams ¶ms)); MOCK_METHOD2(CreateTexture, Gfx::Texture(ImageData *data, const Gfx::TextureCreateParams ¶ms)); @@ -45,13 +41,10 @@ public: MOCK_METHOD2(SetTexture, void(int index, const Gfx::Texture &texture)); MOCK_METHOD2(SetTexture, void(int index, unsigned int textureId)); - MOCK_METHOD1(GetTexture, Gfx::Texture(int index)); MOCK_METHOD2(SetTextureEnabled, void(int index, bool enabled)); - MOCK_METHOD1(GetTextureEnabled, bool(int index)); MOCK_METHOD2(SetTextureStageParams, void(int index, const Gfx::TextureStageParams ¶ms)); - MOCK_METHOD1(GetTextureStageParams, Gfx::TextureStageParams(int index)); MOCK_METHOD3(SetTextureStageWrap, void(int index, Gfx::TexWrapMode wrapS, Gfx::TexWrapMode wrapT)); @@ -77,34 +70,24 @@ public: MOCK_METHOD1(GetRenderState, bool(Gfx::RenderState state)); MOCK_METHOD1(SetDepthTestFunc, void(Gfx::CompFunc func)); - MOCK_METHOD0(GetDepthTestFunc, Gfx::CompFunc()); MOCK_METHOD1(SetDepthBias, void(float factor)); - MOCK_METHOD0(GetDepthBias, float()); MOCK_METHOD2(SetAlphaTestFunc, void(Gfx::CompFunc func, float refValue)); - MOCK_METHOD2(GetAlphaTestFunc, void(Gfx::CompFunc &func, float &refValue)); MOCK_METHOD2(SetBlendFunc, void(Gfx::BlendFunc srcBlend, Gfx::BlendFunc dstBlend)); - MOCK_METHOD2(GetBlendFunc, void(Gfx::BlendFunc &srcBlend, Gfx::BlendFunc &dstBlend)); MOCK_METHOD1(SetClearColor, void(const Gfx::Color &color)); - MOCK_METHOD0(GetClearColor, Gfx::Color()); MOCK_METHOD1(SetGlobalAmbient, void(const Gfx::Color &color)); - MOCK_METHOD0(GetGlobalAmbient, Gfx::Color()); MOCK_METHOD5(SetFogParams, void(Gfx::FogMode mode, const Gfx::Color &color, float start, float end, float density)); - MOCK_METHOD5(GetFogParams, void(Gfx::FogMode &mode, Gfx::Color &color, float &start, float &end, float &density)); MOCK_METHOD1(SetCullMode, void(Gfx::CullMode mode)); - MOCK_METHOD0(GetCullMode, Gfx::CullMode()); MOCK_METHOD1(SetShadeModel, void(Gfx::ShadeModel model)); - MOCK_METHOD0(GetShadeModel, Gfx::ShadeModel()); MOCK_METHOD1(SetFillMode, void(Gfx::FillMode mode)); - MOCK_METHOD0(GetFillMode, Gfx::FillMode()); MOCK_CONST_METHOD0(GetFrameBufferPixels, void*()); }; -- cgit v1.2.3-1-g7c22 From 74312b0405d6fb5ed75c675ceed471e1e5086f00 Mon Sep 17 00:00:00 2001 From: Piotr Dziwinski Date: Tue, 12 Aug 2014 20:03:56 +0200 Subject: Better CMake organization and unit test cleanups * created a static library containing most source modules to avoid compiling source modules twice in code and unit tests * moved profile_test to main unit tests executable * removed image_test and edit_test as not really useful --- CMakeLists.txt | 74 ++++---- src/CMakeLists.txt | 339 ++++++++++++++++++---------------- src/common/profile.cpp | 26 +-- src/common/profile.h | 7 + test/unit/CMakeLists.txt | 258 ++++---------------------- test/unit/common/CMakeLists.txt | 21 --- test/unit/common/image_test.cpp | 57 ------ test/unit/common/profile_test.cpp | 9 +- test/unit/ui/CMakeLists.txt | 46 ----- test/unit/ui/edit_test.cpp | 90 --------- test/unit/ui/mocks/text_mock.h | 35 ---- test/unit/ui/stubs/app_stub.cpp | 42 ----- test/unit/ui/stubs/engine_stub.cpp | 104 ----------- test/unit/ui/stubs/particle_stub.cpp | 205 -------------------- test/unit/ui/stubs/restext_stub.cpp | 12 -- test/unit/ui/stubs/robotmain_stub.cpp | 25 --- 16 files changed, 280 insertions(+), 1070 deletions(-) delete mode 100644 test/unit/common/CMakeLists.txt delete mode 100644 test/unit/common/image_test.cpp delete mode 100644 test/unit/ui/CMakeLists.txt delete mode 100644 test/unit/ui/edit_test.cpp delete mode 100644 test/unit/ui/mocks/text_mock.h delete mode 100644 test/unit/ui/stubs/app_stub.cpp delete mode 100644 test/unit/ui/stubs/engine_stub.cpp delete mode 100644 test/unit/ui/stubs/particle_stub.cpp delete mode 100644 test/unit/ui/stubs/restext_stub.cpp delete mode 100644 test/unit/ui/stubs/robotmain_stub.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index bf1e12e..6deed31 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -294,43 +294,6 @@ endif() # Targets ## -if(TESTS) - # Google Test library - find_path(GTEST_SRC_DIR NAMES src/gtest.cc src/gtest-all.cc PATHS /usr/src PATH_SUFFIXES gtest) - find_path(GTEST_INCLUDE_DIR gtest/gtest.h PATHS /usr/include) - if(NOT(FORCE_BUNDLED_GTEST) AND GTEST_SRC_DIR AND GTEST_INCLUDE_DIR) - message(STATUS "Using system gtest library in ${GTEST_SRC_DIR}") - else() - message(STATUS "Using bundled gtest library") - set(GTEST_SRC_DIR ${colobot_SOURCE_DIR}/lib/gtest) - set(GTEST_INCLUDE_DIR ${colobot_SOURCE_DIR}/lib/gtest/include) - endif() - - add_subdirectory(${GTEST_SRC_DIR} lib/gtest) - - # Google Mock library - find_path(GMOCK_SRC_DIR NAMES src/gmock.cc src/gmock-all.cc PATHS /usr/src PATH_SUFFIXES gmock) - find_path(GMOCK_INCLUDE_DIR gmock/gmock.h PATHS /usr/include) - if(NOT(FORCE_BUNDLED_GMOCK) AND GMOCK_SRC_DIR AND GMOCK_INCLUDE_DIR) - message(STATUS "Using system gmock library in ${GMOCK_SRC_DIR}") - - include_directories(${GMOCK_SRC_DIR}) - # gmock-all.cc includes all other sources - add_library(gmock STATIC ${GMOCK_SRC_DIR}/src/gmock-all.cc) - else() - message(STATUS "Using bundled gmock library") - set(GMOCK_SRC_DIR ${colobot_SOURCE_DIR}/lib/gmock) - set(GMOCK_INCLUDE_DIR ${colobot_SOURCE_DIR}/lib/gmock/include) - add_subdirectory(${GMOCK_SRC_DIR} lib/gmock) - endif() - - - # Tests targets - enable_testing() - add_subdirectory(test) - -endif() - # Installation paths defined before compiling sources if(PLATFORM_WINDOWS) if(MXE) @@ -370,6 +333,43 @@ if(DESKTOP) add_subdirectory(desktop) endif() +if(TESTS) + # Google Test library + find_path(GTEST_SRC_DIR NAMES src/gtest.cc src/gtest-all.cc PATHS /usr/src PATH_SUFFIXES gtest) + find_path(GTEST_INCLUDE_DIR gtest/gtest.h PATHS /usr/include) + if(NOT(FORCE_BUNDLED_GTEST) AND GTEST_SRC_DIR AND GTEST_INCLUDE_DIR) + message(STATUS "Using system gtest library in ${GTEST_SRC_DIR}") + else() + message(STATUS "Using bundled gtest library") + set(GTEST_SRC_DIR ${colobot_SOURCE_DIR}/lib/gtest) + set(GTEST_INCLUDE_DIR ${colobot_SOURCE_DIR}/lib/gtest/include) + endif() + + add_subdirectory(${GTEST_SRC_DIR} lib/gtest) + + # Google Mock library + find_path(GMOCK_SRC_DIR NAMES src/gmock.cc src/gmock-all.cc PATHS /usr/src PATH_SUFFIXES gmock) + find_path(GMOCK_INCLUDE_DIR gmock/gmock.h PATHS /usr/include) + if(NOT(FORCE_BUNDLED_GMOCK) AND GMOCK_SRC_DIR AND GMOCK_INCLUDE_DIR) + message(STATUS "Using system gmock library in ${GMOCK_SRC_DIR}") + + include_directories(${GMOCK_SRC_DIR}) + # gmock-all.cc includes all other sources + add_library(gmock STATIC ${GMOCK_SRC_DIR}/src/gmock-all.cc) + else() + message(STATUS "Using bundled gmock library") + set(GMOCK_SRC_DIR ${colobot_SOURCE_DIR}/lib/gmock) + set(GMOCK_INCLUDE_DIR ${colobot_SOURCE_DIR}/lib/gmock/include) + add_subdirectory(${GMOCK_SRC_DIR} lib/gmock) + endif() + + + # Tests targets + enable_testing() + add_subdirectory(test) + +endif() + ## # Installation diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 12171f3..fbbaa37 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -59,178 +59,197 @@ if(PLATFORM_WINDOWS) endif() # Source files -set(SOURCES -app/app.cpp -app/gamedata.cpp -app/main.cpp -app/pausemanager.cpp -app/system.cpp -app/${SYSTEM_CPP_MODULE} -app/system_other.cpp -common/event.cpp -common/image.cpp -common/iman.cpp -common/logger.cpp -common/misc.cpp -common/profile.cpp -common/restext.cpp -common/stringutils.cpp -graphics/core/color.cpp -graphics/engine/camera.cpp -graphics/engine/cloud.cpp -graphics/engine/engine.cpp -graphics/engine/lightman.cpp -graphics/engine/lightning.cpp -graphics/engine/modelfile.cpp -graphics/engine/modelmanager.cpp -graphics/engine/particle.cpp -graphics/engine/planet.cpp -graphics/engine/pyro.cpp -graphics/engine/terrain.cpp -graphics/engine/text.cpp -graphics/engine/water.cpp -graphics/opengl/gldevice.cpp -object/auto/auto.cpp -object/auto/autobase.cpp -object/auto/autoconvert.cpp -object/auto/autoderrick.cpp -object/auto/autodestroyer.cpp -object/auto/autoegg.cpp -object/auto/autoenergy.cpp -object/auto/autofactory.cpp -object/auto/autoflag.cpp -object/auto/autohuston.cpp -object/auto/autoinfo.cpp -object/auto/autojostle.cpp -object/auto/autokid.cpp -object/auto/autolabo.cpp -object/auto/automush.cpp -object/auto/autonest.cpp -object/auto/autonuclear.cpp -object/auto/autopara.cpp -object/auto/autoportico.cpp -object/auto/autoradar.cpp -object/auto/autorepair.cpp -object/auto/autoresearch.cpp -object/auto/autoroot.cpp -object/auto/autosafe.cpp -object/auto/autostation.cpp -object/auto/autotower.cpp -object/brain.cpp -object/mainmovie.cpp -object/motion/motion.cpp -object/motion/motionant.cpp -object/motion/motionbee.cpp -object/motion/motiondummy.cpp -object/motion/motionhuman.cpp -object/motion/motionmother.cpp -object/motion/motionspider.cpp -object/motion/motiontoto.cpp -object/motion/motionvehicle.cpp -object/motion/motionworm.cpp -object/object.cpp -object/robotmain.cpp -object/objman.cpp -object/task/task.cpp -object/task/taskadvance.cpp -object/task/taskbuild.cpp -object/task/taskfire.cpp -object/task/taskfireant.cpp -object/task/taskflag.cpp -object/task/taskgoto.cpp -object/task/taskgungoal.cpp -object/task/taskinfo.cpp -object/task/taskmanager.cpp -object/task/taskmanip.cpp -object/task/taskpen.cpp -object/task/taskrecover.cpp -object/task/taskreset.cpp -object/task/tasksearch.cpp -object/task/taskshield.cpp -object/task/taskspiderexplo.cpp -object/task/tasktake.cpp -object/task/taskterraform.cpp -object/task/taskturn.cpp -object/task/taskwait.cpp -physics/physics.cpp -script/cbottoken.cpp -script/cmdtoken.cpp -script/script.cpp -sound/sound.cpp -ui/button.cpp -ui/check.cpp -ui/color.cpp -ui/compass.cpp -ui/control.cpp -ui/displayinfo.cpp -ui/displaytext.cpp -ui/edit.cpp -ui/editvalue.cpp -ui/gauge.cpp -ui/group.cpp -ui/image.cpp -ui/interface.cpp -ui/key.cpp -ui/label.cpp -ui/list.cpp -ui/maindialog.cpp -ui/mainmap.cpp -ui/mainshort.cpp -ui/map.cpp -ui/scroll.cpp -ui/shortcut.cpp -ui/slider.cpp -ui/studio.cpp -ui/target.cpp -ui/window.cpp -${OPENAL_SRC} -${RES_FILES} +set(BASE_SOURCES + app/app.cpp + app/gamedata.cpp + app/pausemanager.cpp + app/system.cpp + app/${SYSTEM_CPP_MODULE} + app/system_other.cpp + common/event.cpp + common/image.cpp + common/iman.cpp + common/logger.cpp + common/misc.cpp + common/profile.cpp + common/restext.cpp + common/stringutils.cpp + graphics/core/color.cpp + graphics/engine/camera.cpp + graphics/engine/cloud.cpp + graphics/engine/engine.cpp + graphics/engine/lightman.cpp + graphics/engine/lightning.cpp + graphics/engine/modelfile.cpp + graphics/engine/modelmanager.cpp + graphics/engine/particle.cpp + graphics/engine/planet.cpp + graphics/engine/pyro.cpp + graphics/engine/terrain.cpp + graphics/engine/text.cpp + graphics/engine/water.cpp + graphics/opengl/gldevice.cpp + object/auto/auto.cpp + object/auto/autobase.cpp + object/auto/autoconvert.cpp + object/auto/autoderrick.cpp + object/auto/autodestroyer.cpp + object/auto/autoegg.cpp + object/auto/autoenergy.cpp + object/auto/autofactory.cpp + object/auto/autoflag.cpp + object/auto/autohuston.cpp + object/auto/autoinfo.cpp + object/auto/autojostle.cpp + object/auto/autokid.cpp + object/auto/autolabo.cpp + object/auto/automush.cpp + object/auto/autonest.cpp + object/auto/autonuclear.cpp + object/auto/autopara.cpp + object/auto/autoportico.cpp + object/auto/autoradar.cpp + object/auto/autorepair.cpp + object/auto/autoresearch.cpp + object/auto/autoroot.cpp + object/auto/autosafe.cpp + object/auto/autostation.cpp + object/auto/autotower.cpp + object/brain.cpp + object/mainmovie.cpp + object/motion/motion.cpp + object/motion/motionant.cpp + object/motion/motionbee.cpp + object/motion/motiondummy.cpp + object/motion/motionhuman.cpp + object/motion/motionmother.cpp + object/motion/motionspider.cpp + object/motion/motiontoto.cpp + object/motion/motionvehicle.cpp + object/motion/motionworm.cpp + object/object.cpp + object/robotmain.cpp + object/objman.cpp + object/task/task.cpp + object/task/taskadvance.cpp + object/task/taskbuild.cpp + object/task/taskfire.cpp + object/task/taskfireant.cpp + object/task/taskflag.cpp + object/task/taskgoto.cpp + object/task/taskgungoal.cpp + object/task/taskinfo.cpp + object/task/taskmanager.cpp + object/task/taskmanip.cpp + object/task/taskpen.cpp + object/task/taskrecover.cpp + object/task/taskreset.cpp + object/task/tasksearch.cpp + object/task/taskshield.cpp + object/task/taskspiderexplo.cpp + object/task/tasktake.cpp + object/task/taskterraform.cpp + object/task/taskturn.cpp + object/task/taskwait.cpp + physics/physics.cpp + script/cbottoken.cpp + script/cmdtoken.cpp + script/script.cpp + sound/sound.cpp + ui/button.cpp + ui/check.cpp + ui/color.cpp + ui/compass.cpp + ui/control.cpp + ui/displayinfo.cpp + ui/displaytext.cpp + ui/edit.cpp + ui/editvalue.cpp + ui/gauge.cpp + ui/group.cpp + ui/image.cpp + ui/interface.cpp + ui/key.cpp + ui/label.cpp + ui/list.cpp + ui/maindialog.cpp + ui/mainmap.cpp + ui/mainshort.cpp + ui/map.cpp + ui/scroll.cpp + ui/shortcut.cpp + ui/slider.cpp + ui/studio.cpp + ui/target.cpp + ui/window.cpp + ${OPENAL_SRC} + ${RES_FILES} +) + +set(MAIN_SOURCES + app/main.cpp ) +# Libraries set(LIBS -CBot -clipboard -localename -${SDL_LIBRARY} -${SDLIMAGE_LIBRARY} -${SDLTTF_LIBRARY} -${OPENGL_LIBRARY} -${PNG_LIBRARIES} -${GLEW_LIBRARY} -${Boost_LIBRARIES} -${LIBSNDFILE_LIBRARY} -${OPTIONAL_LIBS} -${PLATFORM_LIBS} + CBot + clipboard + localename + ${SDL_LIBRARY} + ${SDLIMAGE_LIBRARY} + ${SDLTTF_LIBRARY} + ${OPENGL_LIBRARY} + ${PNG_LIBRARIES} + ${GLEW_LIBRARY} + ${Boost_LIBRARIES} + ${LIBSNDFILE_LIBRARY} + ${OPTIONAL_LIBS} + ${PLATFORM_LIBS} +) + +set(COLOBOT_LIBS ${LIBS} PARENT_SCOPE) + + +# Includes +set(LOCAL_INCLUDES + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/.. + ${CMAKE_CURRENT_BINARY_DIR} ) -# Local -include_directories( -. -.. -${CMAKE_CURRENT_BINARY_DIR} +set(SYSTEM_INCLUDES + ${SDL_INCLUDE_DIR} + ${SDLIMAGE_INCLUDE_DIR} + ${SDLTTF_INCLUDE_DIR} + ${PNG_INCLUDE_DIRS} + ${GLEW_INCLUDE_PATH} + ${Boost_INCLUDE_DIRS} + ${LIBSNDFILE_INCLUDE_DIR} + ${LOCALENAME_INCLUDE_DIR} + ${OPTIONAL_INCLUDE_DIRS} + ${CLIPBOARD_INCLUDE_DIR} ) -# System -include_directories( -SYSTEM -${SDL_INCLUDE_DIR} -${SDLIMAGE_INCLUDE_DIR} -${SDLTTF_INCLUDE_DIR} -${PNG_INCLUDE_DIRS} -${GLEW_INCLUDE_PATH} -${Boost_INCLUDE_DIRS} -${LIBSNDFILE_INCLUDE_DIR} -${LOCALENAME_INCLUDE_DIR} -${OPTIONAL_INCLUDE_DIRS} -${CLIPBOARD_INCLUDE_DIR} +set(COLOBOT_LOCAL_INCLUDES ${LOCAL_INCLUDES} PARENT_SCOPE) +set(COLOBOT_SYSTEM_INCLUDES ${SYSTEM_INCLUDES} PARENT_SCOPE) + +include_directories(${LOCAL_INCLUDES}) +include_directories(SYSTEM ${SYSTEM_INCLUDES}) + + +# Link directories +link_directories( + ${CMAKE_CURRENT_SOURCE_DIR}/CBot ) -link_directories(${CMAKE_CURRENT_SOURCE_DIR}/CBot) -add_executable(colobot ${SOURCES}) +# Targets + +add_library(colobotbase STATIC ${BASE_SOURCES}) -target_link_libraries(colobot ${LIBS}) +add_executable(colobot ${MAIN_SOURCES}) +target_link_libraries(colobot colobotbase ${LIBS}) install(TARGETS colobot RUNTIME DESTINATION ${COLOBOT_INSTALL_BIN_DIR}) if(NOT CBOT_STATIC) diff --git a/src/common/profile.cpp b/src/common/profile.cpp index ee3e873..a63a772 100644 --- a/src/common/profile.cpp +++ b/src/common/profile.cpp @@ -31,8 +31,9 @@ template<> CProfile* CSingleton::m_instance = nullptr; namespace bp = boost::property_tree; -CProfile::CProfile() : - m_profileNeedSave(false) +CProfile::CProfile() + : m_profileNeedSave(false) + , m_useLocalDirectory(false) { } @@ -42,16 +43,21 @@ CProfile::~CProfile() SaveCurrentDirectory(); } +void CProfile::SetUseLocalDirectory(bool useLocalDirectory) +{ + m_useLocalDirectory = useLocalDirectory; +} + +std::string CProfile::GetIniFileLocation() +{ + return m_useLocalDirectory ? "colobot.ini" : GetSystemUtils()->GetProfileFileLocation(); +} bool CProfile::InitCurrentDirectory() { try { - #if DEV_BUILD - bp::ini_parser::read_ini("colobot.ini", m_propertyTree); - #else - bp::ini_parser::read_ini(GetSystemUtils()->GetProfileFileLocation(), m_propertyTree); - #endif + bp::ini_parser::read_ini(GetIniFileLocation(), m_propertyTree); } catch (std::exception & e) { @@ -67,11 +73,7 @@ bool CProfile::SaveCurrentDirectory() { try { - #if DEV_BUILD - bp::ini_parser::write_ini("colobot.ini", m_propertyTree); - #else - bp::ini_parser::write_ini(GetSystemUtils()->GetProfileFileLocation(), m_propertyTree); - #endif + bp::ini_parser::write_ini(GetIniFileLocation(), m_propertyTree); } catch (std::exception & e) { diff --git a/src/common/profile.h b/src/common/profile.h index f084ece..52f9f15 100644 --- a/src/common/profile.h +++ b/src/common/profile.h @@ -45,6 +45,9 @@ public: CProfile(); virtual ~CProfile(); + /** Set flag to force using ini file from local directory */ + void SetUseLocalDirectory(bool useLocalDirectory); + /** Loads colobot.ini from current directory * \return return true on success */ @@ -129,10 +132,14 @@ public: */ bool CopyFileToTemp(std::string filename); +private: + std::string GetIniFileLocation(); + private: boost::property_tree::ptree m_propertyTree; bool m_profileNeedSave; std::string m_userDirectory; + bool m_useLocalDirectory; }; //! Global function to get profile instance diff --git a/test/unit/CMakeLists.txt b/test/unit/CMakeLists.txt index bdb5a67..cd745c3 100644 --- a/test/unit/CMakeLists.txt +++ b/test/unit/CMakeLists.txt @@ -1,170 +1,3 @@ -set(SRC_DIR ${colobot_SOURCE_DIR}/src) - -# Additional libraries per platform -if(MXE) # MXE requires special treatment - set(PLATFORM_LIBS ${MXE_LIBS}) -elseif(PLATFORM_WINDOWS) - # because it isn't included in standard linking libraries - set(PLATFORM_LIBS "-lintl") -elseif(PLATFORM_GNU) - set(PLATFORM_LIBS "-lX11") -elseif(PLATFORM_LINUX) - # for clock_gettime - set(PLATFORM_LIBS "-lrt -lX11") -elseif(PLATFORM_MACOSX) - find_library(LIBINTL_LIBRARY NAMES intl libintl ) - set(PLATFORM_LIBS ${LIBINTL_LIBRARY} ${X11_X11_LIB}) -endif() - - -# Configure file -configure_file(${SRC_DIR}/common/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/common/config.h) - -# Code sources -set(COLOBOT_SOURCES -${SRC_DIR}/app/app.cpp -${SRC_DIR}/app/gamedata.cpp -${SRC_DIR}/app/pausemanager.cpp -${SRC_DIR}/app/system.cpp -${SRC_DIR}/app/${SYSTEM_CPP_MODULE} -${SRC_DIR}/app/system_other.cpp -${SRC_DIR}/common/event.cpp -${SRC_DIR}/common/image.cpp -${SRC_DIR}/common/iman.cpp -${SRC_DIR}/common/logger.cpp -${SRC_DIR}/common/misc.cpp -${SRC_DIR}/common/profile.cpp -${SRC_DIR}/common/restext.cpp -${SRC_DIR}/common/stringutils.cpp -${SRC_DIR}/graphics/core/color.cpp -${SRC_DIR}/graphics/engine/camera.cpp -${SRC_DIR}/graphics/engine/cloud.cpp -${SRC_DIR}/graphics/engine/engine.cpp -${SRC_DIR}/graphics/engine/lightman.cpp -${SRC_DIR}/graphics/engine/lightning.cpp -${SRC_DIR}/graphics/engine/modelfile.cpp -${SRC_DIR}/graphics/engine/modelmanager.cpp -${SRC_DIR}/graphics/engine/particle.cpp -${SRC_DIR}/graphics/engine/planet.cpp -${SRC_DIR}/graphics/engine/pyro.cpp -${SRC_DIR}/graphics/engine/terrain.cpp -${SRC_DIR}/graphics/engine/text.cpp -${SRC_DIR}/graphics/engine/water.cpp -${SRC_DIR}/graphics/opengl/gldevice.cpp -${SRC_DIR}/object/auto/auto.cpp -${SRC_DIR}/object/auto/autobase.cpp -${SRC_DIR}/object/auto/autoconvert.cpp -${SRC_DIR}/object/auto/autoderrick.cpp -${SRC_DIR}/object/auto/autodestroyer.cpp -${SRC_DIR}/object/auto/autoegg.cpp -${SRC_DIR}/object/auto/autoenergy.cpp -${SRC_DIR}/object/auto/autofactory.cpp -${SRC_DIR}/object/auto/autoflag.cpp -${SRC_DIR}/object/auto/autohuston.cpp -${SRC_DIR}/object/auto/autoinfo.cpp -${SRC_DIR}/object/auto/autojostle.cpp -${SRC_DIR}/object/auto/autokid.cpp -${SRC_DIR}/object/auto/autolabo.cpp -${SRC_DIR}/object/auto/automush.cpp -${SRC_DIR}/object/auto/autonest.cpp -${SRC_DIR}/object/auto/autonuclear.cpp -${SRC_DIR}/object/auto/autopara.cpp -${SRC_DIR}/object/auto/autoportico.cpp -${SRC_DIR}/object/auto/autoradar.cpp -${SRC_DIR}/object/auto/autorepair.cpp -${SRC_DIR}/object/auto/autoresearch.cpp -${SRC_DIR}/object/auto/autoroot.cpp -${SRC_DIR}/object/auto/autosafe.cpp -${SRC_DIR}/object/auto/autostation.cpp -${SRC_DIR}/object/auto/autotower.cpp -${SRC_DIR}/object/brain.cpp -${SRC_DIR}/object/mainmovie.cpp -${SRC_DIR}/object/motion/motion.cpp -${SRC_DIR}/object/motion/motionant.cpp -${SRC_DIR}/object/motion/motionbee.cpp -${SRC_DIR}/object/motion/motionhuman.cpp -${SRC_DIR}/object/motion/motionmother.cpp -${SRC_DIR}/object/motion/motionspider.cpp -${SRC_DIR}/object/motion/motiontoto.cpp -${SRC_DIR}/object/motion/motionvehicle.cpp -${SRC_DIR}/object/motion/motionworm.cpp -${SRC_DIR}/object/motion/motiondummy.cpp -${SRC_DIR}/object/object.cpp -${SRC_DIR}/object/objman.cpp -${SRC_DIR}/object/robotmain.cpp -${SRC_DIR}/object/task/task.cpp -${SRC_DIR}/object/task/taskadvance.cpp -${SRC_DIR}/object/task/taskbuild.cpp -${SRC_DIR}/object/task/taskfire.cpp -${SRC_DIR}/object/task/taskfireant.cpp -${SRC_DIR}/object/task/taskflag.cpp -${SRC_DIR}/object/task/taskgoto.cpp -${SRC_DIR}/object/task/taskgungoal.cpp -${SRC_DIR}/object/task/taskinfo.cpp -${SRC_DIR}/object/task/taskmanager.cpp -${SRC_DIR}/object/task/taskmanip.cpp -${SRC_DIR}/object/task/taskpen.cpp -${SRC_DIR}/object/task/taskrecover.cpp -${SRC_DIR}/object/task/taskreset.cpp -${SRC_DIR}/object/task/tasksearch.cpp -${SRC_DIR}/object/task/taskshield.cpp -${SRC_DIR}/object/task/taskspiderexplo.cpp -${SRC_DIR}/object/task/tasktake.cpp -${SRC_DIR}/object/task/taskterraform.cpp -${SRC_DIR}/object/task/taskturn.cpp -${SRC_DIR}/object/task/taskwait.cpp -${SRC_DIR}/physics/physics.cpp -${SRC_DIR}/script/cbottoken.cpp -${SRC_DIR}/script/cmdtoken.cpp -${SRC_DIR}/script/script.cpp -${SRC_DIR}/sound/sound.cpp -${SRC_DIR}/ui/button.cpp -${SRC_DIR}/ui/check.cpp -${SRC_DIR}/ui/color.cpp -${SRC_DIR}/ui/compass.cpp -${SRC_DIR}/ui/control.cpp -${SRC_DIR}/ui/displayinfo.cpp -${SRC_DIR}/ui/displaytext.cpp -${SRC_DIR}/ui/edit.cpp -${SRC_DIR}/ui/editvalue.cpp -${SRC_DIR}/ui/gauge.cpp -${SRC_DIR}/ui/group.cpp -${SRC_DIR}/ui/image.cpp -${SRC_DIR}/ui/interface.cpp -${SRC_DIR}/ui/key.cpp -${SRC_DIR}/ui/label.cpp -${SRC_DIR}/ui/list.cpp -${SRC_DIR}/ui/maindialog.cpp -${SRC_DIR}/ui/mainmap.cpp -${SRC_DIR}/ui/mainshort.cpp -${SRC_DIR}/ui/map.cpp -${SRC_DIR}/ui/scroll.cpp -${SRC_DIR}/ui/shortcut.cpp -${SRC_DIR}/ui/slider.cpp -${SRC_DIR}/ui/studio.cpp -${SRC_DIR}/ui/target.cpp -${SRC_DIR}/ui/window.cpp -) - -set(OPENAL_SOURCES "") - -if(OPENAL_SOUND) - set(OPENAL_SOURCES - ${SRC_DIR}/sound/oalsound/alsound.cpp - ${SRC_DIR}/sound/oalsound/buffer.cpp - ${SRC_DIR}/sound/oalsound/channel.cpp - ) -endif() - -# Optional libraries -set(OPTIONAL_LIBS "") - -if(OPENAL_SOUND) - set(OPTIONAL_LIBS ${OPENAL_LIBRARY}) - set(OPTIONAL_INCLUDES ${OPENAL_INCLUDE_DIR}) -endif() - - # Platform-dependent tests if(PLATFORM_WINDOWS) set(PLATFORM_TESTS app/system_windows_test.cpp) @@ -172,67 +5,58 @@ elseif(PLATFORM_LINUX) set(PLATFORM_TESTS app/system_linux_test.cpp) endif() -# Tests +# Sources set(UT_SOURCES -main.cpp -app/app_test.cpp -graphics/engine/lightman_test.cpp -math/func_test.cpp -math/geometry_test.cpp -math/matrix_test.cpp -math/vector_test.cpp -${PLATFORM_TESTS} + main.cpp + app/app_test.cpp + common/profile_test.cpp + graphics/engine/lightman_test.cpp + math/func_test.cpp + math/geometry_test.cpp + math/matrix_test.cpp + math/vector_test.cpp + ${PLATFORM_TESTS} ) -# Local +# Includes include_directories( -. -common -math -${SRC_DIR} -${CMAKE_CURRENT_BINARY_DIR} + common + math + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_CURRENT_BINARY_DIR} + ${COLOBOT_LOCAL_INCLUDES} ) -# System include_directories( -SYSTEM -${GTEST_INCLUDE_DIR} -${GMOCK_INCLUDE_DIR} -${SDL_INCLUDE_DIR} -${SDLIMAGE_INCLUDE_DIR} -${SDLTTF_INCLUDE_DIR} -${PNG_INCLUDE_DIRS} -${GLEW_INCLUDE_PATH} -${Boost_INCLUDE_DIRS} -${OPTIONAL_INCLUDE_DIRS} -${LIBSNDFILE_INCLUDE_DIR} -${CLIPBOARD_INCLUDE_DIR} -${LOCALENAME_INCLUDE_DIR} + SYSTEM + ${GTEST_INCLUDE_DIR} + ${GMOCK_INCLUDE_DIR} + ${COLOBOT_SYSTEM_INCLUDES} ) +# Libraries set(LIBS -gtest -gmock -CBot -clipboard -localename -${SDL_LIBRARY} -${SDLIMAGE_LIBRARY} -${SDLTTF_LIBRARY} -${OPENGL_LIBRARY} -${PNG_LIBRARIES} -${GLEW_LIBRARY} -${Boost_LIBRARIES} -${OPTIONAL_LIBS} -${PLATFORM_LIBS} -${LIBSNDFILE_LIBRARY} + gtest + gmock + colobotbase + ${COLOBOT_LIBS} ) -add_executable(colobot_ut ${COLOBOT_SOURCES} ${UT_SOURCES} ${OPENAL_SOURCES}) -target_link_libraries(colobot_ut ${LIBS}) +# Test files -add_test(colobot_ut ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/colobot_ut) +set(TEST_FILES + common/colobot.ini +) -# TODO: change the unit cases to independent automated tests to be included in colobot_ut -add_subdirectory(common) -add_subdirectory(ui) +file(COPY ${TEST_FILES} DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) + +# Targets + +add_executable(colobot_ut ${UT_SOURCES}) +target_link_libraries(colobot_ut ${LIBS}) + +add_test( + NAME colobot_ut + COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/colobot_ut + WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} +) diff --git a/test/unit/common/CMakeLists.txt b/test/unit/common/CMakeLists.txt deleted file mode 100644 index cf37961..0000000 --- a/test/unit/common/CMakeLists.txt +++ /dev/null @@ -1,21 +0,0 @@ -set(SRC_DIR ${colobot_SOURCE_DIR}/src) - -include_directories( -${SRC_DIR} -${GTEST_INCLUDE_DIR} -) - -add_executable(image_test ${SRC_DIR}/common/image.cpp image_test.cpp) -target_link_libraries(image_test ${SDL_LIBRARY} ${SDLIMAGE_LIBRARY} ${PNG_LIBRARIES}) -add_test(NAME image_test - COMMAND ${CMAKE_BINARY_DIR}/image_test ${CMAKE_SOURCE_DIR}/test/envs/opengl/tex1.png ${CMAKE_BINARY_DIR}/tex1_test.png) - -file(COPY colobot.ini DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) - -add_executable(profile_test ${SRC_DIR}/common/profile.cpp ${SRC_DIR}/common/logger.cpp profile_test.cpp) -set_target_properties(profile_test PROPERTIES COMPILE_DEFINITIONS "DEV_BUILD=1") -target_link_libraries(profile_test gtest ${Boost_LIBRARIES}) - -add_test(NAME profile_test - COMMAND ${CMAKE_BINARY_DIR}/profile_test - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) diff --git a/test/unit/common/image_test.cpp b/test/unit/common/image_test.cpp deleted file mode 100644 index 2b20a17..0000000 --- a/test/unit/common/image_test.cpp +++ /dev/null @@ -1,57 +0,0 @@ -#include "common/image.h" - -#include -#include - -/* For now, just a simple test: loading a file from image - * and saving it to another in PNG. */ - -int main(int argc, char *argv[]) -{ - if (argc != 3) - { - printf("Usage: %s in_image out_image\n", argv[0]); - return 0; - } - - CImage image; - - if (! image.Load(argv[1])) - { - std::string err = image.GetError(); - printf("Error loading '%s': %s\n", argv[1], err.c_str()); - return 1; - } - Gfx::Color color; - std::string str; - - color = image.GetPixel(Math::IntPoint(0, 0)); - str = color.ToString(); - printf("pixel @ (0,0): %s\n", str.c_str()); - - color = image.GetPixel(Math::IntPoint(0, 1)); - str = color.ToString(); - printf("pixel @ (0,1): %s\n", str.c_str()); - - color = image.GetPixel(Math::IntPoint(1, 0)); - str = color.ToString(); - printf("pixel @ (1,0): %s\n", str.c_str()); - - color = image.GetPixel(Math::IntPoint(1, 1)); - str = color.ToString(); - printf("pixel @ (1,1): %s\n", str.c_str()); - - image.SetPixel(Math::IntPoint(0, 0), Gfx::Color(0.1f, 0.2f, 0.3f, 0.0f)); - image.SetPixel(Math::IntPoint(1, 0), Gfx::Color(0.3f, 0.2f, 0.1f, 1.0f)); - image.SetPixel(Math::IntPoint(0, 1), Gfx::Color(1.0f, 1.0f, 1.0f, 1.0f)); - image.SetPixel(Math::IntPoint(1, 1), Gfx::Color(0.0f, 0.0f, 0.0f, 1.0f)); - - if (! image.SavePNG(argv[2])) - { - std::string err = image.GetError(); - printf("Error saving PNG '%s': %s\n", argv[2], err.c_str()); - return 2; - } - - return 0; -} diff --git a/test/unit/common/profile_test.cpp b/test/unit/common/profile_test.cpp index dabcba6..1a4f239 100644 --- a/test/unit/common/profile_test.cpp +++ b/test/unit/common/profile_test.cpp @@ -11,13 +11,14 @@ class CProfileTest : public testing::Test { protected: - CLogger m_logger; CProfile m_profile; }; TEST_F(CProfileTest, ReadTest) { + m_profile.SetUseLocalDirectory(true); + ASSERT_TRUE(m_profile.InitCurrentDirectory()); // load colobot.ini file std::string result; @@ -36,9 +37,3 @@ TEST_F(CProfileTest, ReadTest) list = m_profile.GetLocalProfileSection("test_multi", "entry"); ASSERT_EQ(5u, list.size()); } - -int main(int argc, char *argv[]) -{ - ::testing::InitGoogleTest(&argc, argv); - return RUN_ALL_TESTS(); -} diff --git a/test/unit/ui/CMakeLists.txt b/test/unit/ui/CMakeLists.txt deleted file mode 100644 index 7f7b2f8..0000000 --- a/test/unit/ui/CMakeLists.txt +++ /dev/null @@ -1,46 +0,0 @@ -set(SRC_DIR ${colobot_SOURCE_DIR}/src) - -include_directories( -. -${SRC_DIR} -${GTEST_INCLUDE_DIR} -${GMOCK_INCLUDE_DIR} -${CLIPBOARD_INCLUDE_DIR} -) - -# Platform-dependent implementation of CSystemUtils -if(PLATFORM_WINDOWS) -elseif(PLATFORM_MACOSX) - set(ADDITIONAL_LIB "${X11_X11_LIB}") -else() - set(ADDITIONAL_LIB "-lX11") -endif() - -add_executable(edit_test -${SRC_DIR}/app/gamedata.cpp -${SRC_DIR}/app/system.cpp -${SRC_DIR}/app/${SYSTEM_CPP_MODULE} -${SRC_DIR}/app/system_other.cpp -${SRC_DIR}/common/event.cpp -${SRC_DIR}/common/logger.cpp -${SRC_DIR}/common/misc.cpp -${SRC_DIR}/common/profile.cpp -${SRC_DIR}/common/iman.cpp -${SRC_DIR}/common/stringutils.cpp -${SRC_DIR}/graphics/engine/text.cpp -${SRC_DIR}/ui/button.cpp -${SRC_DIR}/ui/control.cpp -${SRC_DIR}/ui/edit.cpp -${SRC_DIR}/ui/scroll.cpp -stubs/app_stub.cpp -stubs/engine_stub.cpp -stubs/particle_stub.cpp -stubs/restext_stub.cpp -stubs/robotmain_stub.cpp -edit_test.cpp) - -target_link_libraries(edit_test gtest gmock clipboard ${SDL_LIBRARY} ${SDLTTF_LIBRARY} ${Boost_LIBRARIES} ${ADDITIONAL_LIB}) - - - -add_test(edit_test ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/edit_test) diff --git a/test/unit/ui/edit_test.cpp b/test/unit/ui/edit_test.cpp deleted file mode 100644 index 34af013..0000000 --- a/test/unit/ui/edit_test.cpp +++ /dev/null @@ -1,90 +0,0 @@ -#include "app/app.h" -#include "app/gamedata.h" - -#include "ui/edit.h" - -#include "mocks/text_mock.h" - -#include - -#include -#include - -class CEditTest : public testing::Test -{ -public: - CEditTest() - : m_robotMain(nullptr) - , m_gameData(nullptr) - , m_engine(nullptr) - , m_edit(nullptr) - {} - - virtual void SetUp() - { - m_robotMain = new CRobotMain(&m_app, false); - - m_gameData = new CGameData(); - - m_engine = new Gfx::CEngine(nullptr); - - m_edit = new Ui::CEdit; - } - - virtual void TearDown() - { - delete m_edit; - m_edit = nullptr; - delete m_engine; - m_engine = nullptr; - delete m_gameData; - m_gameData = nullptr; - delete m_robotMain; - m_robotMain = nullptr; - } - virtual ~CEditTest() - { - - }; - -protected: - CApplication m_app; - CRobotMain* m_robotMain; - CGameData * m_gameData; - Gfx::CEngine * m_engine; - Ui::CEdit * m_edit; - CLogger m_logger; -}; - -using ::testing::_; -using ::testing::An; -using ::testing::Return; - -TEST_F(CEditTest, WriteTest) -{ - ASSERT_TRUE(true); - CTextMock * text = dynamic_cast(m_engine->GetText()); - EXPECT_CALL(*text, GetCharWidth(_, _, _, _)).WillRepeatedly(Return(1.0f)); - EXPECT_CALL(*text, GetStringWidth(An(), _, _, _)).WillOnce(Return(1.0f)); - std::string filename = "test.file"; - m_edit->SetMaxChar(Ui::EDITSTUDIOMAX); - m_edit->SetAutoIndent(true); - std::string inputScript = "{\ntext1\ntext2\n\ntext3\n{\ntext4\n}\n}"; - std::string expectedScript = "{\r\n\ttext1\r\n\ttext2\r\n\t\r\n\ttext3\r\n\t{\r\n\t\ttext4\r\n\t}\r\n}"; - m_edit->SetText(inputScript.c_str(), true); - GetLogger()->Info("Writing text \n"); - m_edit->WriteText("script.txt"); - - std::fstream scriptFile; - - scriptFile.open("script.txt", std::ios_base::binary | std::ios_base::in); - std::string outputScript((std::istreambuf_iterator(scriptFile)), std::istreambuf_iterator()); - ASSERT_STREQ(expectedScript.c_str(), outputScript.c_str()); -} - -int main(int argc, char *argv[]) -{ - ::testing::InitGoogleTest(&argc, argv); - return RUN_ALL_TESTS(); -} - diff --git a/test/unit/ui/mocks/text_mock.h b/test/unit/ui/mocks/text_mock.h deleted file mode 100644 index b9af6d3..0000000 --- a/test/unit/ui/mocks/text_mock.h +++ /dev/null @@ -1,35 +0,0 @@ -#include "common/logger.h" - -#include "graphics/engine/text.h" - -#include - -class CTextMock : public Gfx::CText -{ -public: - CTextMock(Gfx::CEngine* engine) : CText(engine) - { - } - - virtual ~CTextMock() - { - }; - - MOCK_METHOD4(GetCharWidth, float(Gfx::UTF8Char ch, - Gfx::FontType type, - float size, - float offset)); - MOCK_METHOD4(GetStringWidth, float(const std::string &text, - std::vector::iterator format, - std::vector::iterator end, - float size)); - MOCK_METHOD3(GetStringWidth, float(std::string text, - Gfx::FontType font, - float size)); - MOCK_METHOD4(GetStringWidth, float(Gfx::UTF8Char ch, - Gfx::FontType font, - float size, - float offset)); - -}; - diff --git a/test/unit/ui/stubs/app_stub.cpp b/test/unit/ui/stubs/app_stub.cpp deleted file mode 100644 index 95430d8..0000000 --- a/test/unit/ui/stubs/app_stub.cpp +++ /dev/null @@ -1,42 +0,0 @@ -#include "app/app.h" - -#include "graphics/opengl/gldevice.h" - -template<> CApplication* CSingleton::m_instance = nullptr; - -namespace Gfx { - -GLDeviceConfig::GLDeviceConfig() -{ -} - -} /* Gfx */ - - -CApplication::CApplication() -{ -} - -CApplication::~CApplication() -{ -} - -CSoundInterface* CApplication::GetSound() -{ - return nullptr; -} - -CEventQueue* CApplication::GetEventQueue() -{ - return nullptr; -} - -Event CApplication::CreateUpdateEvent() -{ - return Event(EVENT_NULL); -} - -char CApplication::GetLanguageChar() const -{ - return 'E'; -} diff --git a/test/unit/ui/stubs/engine_stub.cpp b/test/unit/ui/stubs/engine_stub.cpp deleted file mode 100644 index 0a2777c..0000000 --- a/test/unit/ui/stubs/engine_stub.cpp +++ /dev/null @@ -1,104 +0,0 @@ -#include "graphics/engine/engine.h" -#include "graphics/engine/text.h" - -#include "mocks/text_mock.h" - -template<> Gfx::CEngine* CSingleton::m_instance = nullptr; - -namespace Gfx { - -CEngine::CEngine(CApplication* app) : - m_app(app) -{ - m_text = new CTextMock(this); - m_text->Create(); -} - -CEngine::~CEngine() -{ - delete m_text; - m_text = nullptr; -} - -CParticle* CEngine::GetParticle() -{ - return nullptr; -} - -Math::Point CEngine::WindowToInterfaceSize(Math::IntPoint size) -{ - return Math::Point(size.x, size.y); -} - -void CEngine::SetState(int state, const Color& color) -{ - if (state == m_lastState && color == m_lastColor) - return; - - m_lastState = state; - m_lastColor = color; -} - -Math::IntPoint CEngine::GetWindowSize() -{ - return m_size; -} - -void CEngine::AddStatisticTriangle(int count) -{ - m_statisticTriangle += count; -} - -void CEngine::SetMouseType(EngineMouseType type) -{ - m_mouseType = type; -} - -bool CEngine::SetTexture(const std::string& /* name */, int /* stage */) -{ - return true; -} - -CText* CEngine::GetText() -{ - return m_text; -} - -CDevice* CEngine::GetDevice() -{ - return m_device; -} - -int CEngine::GetEditIndentValue() -{ - return m_editIndentValue; -} - -void CEngine::DeleteTexture(const std::string& /* texName */) -{ -} - -Texture CEngine::LoadTexture(const std::string& /* name */) -{ - Texture texture; - return texture; -} - -Math::Vector CEngine::GetEyePt() -{ - return Math::Vector(); -} - -Math::Vector CEngine::GetLookatPt() -{ - return Math::Vector(); -} - -bool CEngine::GetPause() -{ - return false; -} - - -} /* Gfx */ - diff --git a/test/unit/ui/stubs/particle_stub.cpp b/test/unit/ui/stubs/particle_stub.cpp deleted file mode 100644 index 34cf973..0000000 --- a/test/unit/ui/stubs/particle_stub.cpp +++ /dev/null @@ -1,205 +0,0 @@ -#include "graphics/engine/particle.h" - -#include "common/logger.h" - - -// Graphics module namespace -namespace Gfx { - - -CParticle::CParticle(CEngine* /*engine*/) -{ -} - -CParticle::~CParticle() -{ -} - -void CParticle::SetDevice(CDevice* /*device*/) -{ -} - -void CParticle::FlushParticle() -{ -} - -void CParticle::FlushParticle(int /*sheet*/) -{ -} - -int CParticle::CreateParticle(Math::Vector /*pos*/, Math::Vector /*speed*/, Math::Point /*dim*/, - ParticleType /*type*/, float /*duration*/, float /*mass*/, - float /*windSensitivity*/, int /*sheet*/) -{ - return 0; -} - -int CParticle::CreateFrag(Math::Vector /*pos*/, Math::Vector /*speed*/, EngineTriangle */*triangle*/, - ParticleType /*type*/, float /*duration*/, float /*mass*/, - float /*windSensitivity*/, int /*sheet*/) -{ - return 0; -} - -int CParticle::CreatePart(Math::Vector /*pos*/, Math::Vector /*speed*/, ParticleType /*type*/, - float /*duration*/, float /*mass*/, float /*weight*/, - float /*windSensitivity*/, int /*sheet*/) -{ - return 0; -} - -int CParticle::CreateRay(Math::Vector /*pos*/, Math::Vector /*goal*/, ParticleType /*type*/, Math::Point /*dim*/, - float /*duration*/, int /*sheet*/) -{ - return 0; -} - -int CParticle::CreateTrack(Math::Vector /*pos*/, Math::Vector /*speed*/, Math::Point /*dim*/, ParticleType /*type*/, - float /*duration*/, float /*mass*/, float /*length*/, float /*width*/) -{ - return 0; -} - -void CParticle::CreateWheelTrace(const Math::Vector &/*p1*/, const Math::Vector &/*p2*/, const Math::Vector &/*p3*/, - const Math::Vector &/*p4*/, ParticleType /*type*/) -{ -} - -void CParticle::DeleteParticle(ParticleType /*type*/) -{ -} - -void CParticle::DeleteParticle(int /*channel*/) -{ -} - -void CParticle::SetObjectLink(int /*channel*/, CObject */*object*/) -{ -} - -void CParticle::SetObjectFather(int /*channel*/, CObject */*object*/) -{ -} - -void CParticle::SetPosition(int /*channel*/, Math::Vector /*pos*/) -{ -} - -void CParticle::SetDimension(int /*channel*/, Math::Point /*dim*/) -{ -} - -void CParticle::SetZoom(int /*channel*/, float /*zoom*/) -{ -} - -void CParticle::SetAngle(int /*channel*/, float /*angle*/) -{ -} - -void CParticle::SetIntensity(int /*channel*/, float /*intensity*/) -{ -} - -void CParticle::SetParam(int /*channel*/, Math::Vector /*pos*/, Math::Point /*dim*/, float /*zoom*/, float /*angle*/, float /*intensity*/) -{ -} - -void CParticle::SetPhase(int /*channel*/, ParticlePhase /*phase*/, float /*duration*/) -{ -} - -bool CParticle::GetPosition(int /*channel*/, Math::Vector &/*pos*/) -{ - return true; -} - -Color CParticle::GetFogColor(Math::Vector /*pos*/) -{ - return Color(); -} - -void CParticle::SetFrameUpdate(int /*sheet*/, bool /*update*/) -{ -} - -void CParticle::FrameParticle(float /*rTime*/) -{ -} - -void CParticle::DrawParticle(int /*sheet*/) -{ -} - -bool CParticle::WriteWheelTrace(const char */*filename*/, int /*width*/, int /*height*/, Math::Vector /*dl*/, Math::Vector /*ur*/) -{ - return true; -} - -void CParticle::DeleteRank(int /*rank*/) -{ -} - -bool CParticle::CheckChannel(int &/*channel*/) -{ - return true; -} - -void CParticle::DrawParticleTriangle(int /*i*/) -{ -} - -void CParticle::DrawParticleNorm(int /*i*/) -{ -} - -void CParticle::DrawParticleFlat(int /*i*/) -{ -} - -void CParticle::DrawParticleFog(int /*i*/) -{ -} - -void CParticle::DrawParticleRay(int /*i*/) -{ -} - -void CParticle::DrawParticleSphere(int /*i*/) -{ -} - -void CParticle::DrawParticleCylinder(int /*i*/) -{ -} - -void CParticle::DrawParticleWheel(int /*i*/) -{ -} - -CObject* CParticle::SearchObjectGun(Math::Vector /*old*/, Math::Vector /*pos*/, ParticleType /*type*/, CObject */*father*/) -{ - return nullptr; -} - -CObject* CParticle::SearchObjectRay(Math::Vector /*pos*/, Math::Vector /*goal*/, ParticleType /*type*/, CObject */*father*/) -{ - return nullptr; -} - -void CParticle::Play(Sound /*sound*/, Math::Vector /*pos*/, float /*amplitude*/) -{ -} - -bool CParticle::TrackMove(int /*i*/, Math::Vector /*pos*/, float /*progress*/) -{ - return true; -} - -void CParticle::TrackDraw(int /*i*/, ParticleType /*type*/) -{ -} - - -} // namespace Gfx - diff --git a/test/unit/ui/stubs/restext_stub.cpp b/test/unit/ui/stubs/restext_stub.cpp deleted file mode 100644 index fa47da6..0000000 --- a/test/unit/ui/stubs/restext_stub.cpp +++ /dev/null @@ -1,12 +0,0 @@ -#include "common/restext.h" - -bool GetResource(ResType /* type */, int /* num */, std::string& /* text */) -{ - return true; -} - -bool SearchKey(const char * /* cmd */, InputSlot & /* key */) -{ - return true; -} - diff --git a/test/unit/ui/stubs/robotmain_stub.cpp b/test/unit/ui/stubs/robotmain_stub.cpp deleted file mode 100644 index 692f67f..0000000 --- a/test/unit/ui/stubs/robotmain_stub.cpp +++ /dev/null @@ -1,25 +0,0 @@ -#include "object/robotmain.h" - - -template<> CRobotMain* CSingleton::m_instance = nullptr; - -CRobotMain::CRobotMain(CApplication* app, bool loadProfile) -{ -} - -CRobotMain::~CRobotMain() -{ -} - -bool CRobotMain::GetGlint() -{ - return false; -} - -const InputBinding& CRobotMain::GetInputBinding(InputSlot slot) -{ - unsigned int index = static_cast(slot); - assert(index >= 0 && index < INPUT_SLOT_MAX); - return m_inputBindings[index]; -} - -- cgit v1.2.3-1-g7c22 From e4d52d9afbf6aeb090b225cc4852936dd3be5017 Mon Sep 17 00:00:00 2001 From: Piotr Dziwinski Date: Tue, 12 Aug 2014 21:24:33 +0200 Subject: CProfile refactoring --- src/app/app.cpp | 10 +-- src/common/profile.cpp | 38 +++++----- src/common/profile.h | 126 +++++++++++++++--------------- src/object/robotmain.cpp | 64 ++++++++-------- src/ui/maindialog.cpp | 156 +++++++++++++++++++------------------- test/unit/common/profile_test.cpp | 12 +-- 6 files changed, 203 insertions(+), 203 deletions(-) diff --git a/src/app/app.cpp b/src/app/app.cpp index 83a520a..42ebd39 100644 --- a/src/app/app.cpp +++ b/src/app/app.cpp @@ -386,14 +386,14 @@ bool CApplication::Create() GetLogger()->Info("Creating CApplication\n"); - if (!GetProfile().InitCurrentDirectory()) + if (!GetProfile().Init()) { GetLogger()->Warn("Config not found. Default values will be used!\n"); defaultValues = true; } else { - if (!m_customDataPath && GetProfile().GetLocalProfileString("Resources", "Data", path)) + if (!m_customDataPath && GetProfile().GetStringProperty("Resources", "Data", path)) m_dataPath = path; } @@ -411,7 +411,7 @@ bool CApplication::Create() m_gameData->SetDataDir(std::string(m_dataPath)); m_gameData->Init(); - if (GetProfile().GetLocalProfileString("Language", "Lang", path)) { + if (GetProfile().GetStringProperty("Language", "Lang", path)) { Language language; if (ParseLanguage(path, language)) { m_language = language; @@ -472,7 +472,7 @@ bool CApplication::Create() // load settings from profile int iValue; - if ( GetProfile().GetLocalProfileInt("Setup", "Resolution", iValue) ) + if ( GetProfile().GetIntProperty("Setup", "Resolution", iValue) ) { std::vector modes; GetVideoResolutionList(modes, true, true); @@ -480,7 +480,7 @@ bool CApplication::Create() m_deviceConfig.size = modes.at(iValue); } - if ( GetProfile().GetLocalProfileInt("Setup", "Fullscreen", iValue) ) + if ( GetProfile().GetIntProperty("Setup", "Fullscreen", iValue) ) { m_deviceConfig.fullScreen = (iValue == 1); } diff --git a/src/common/profile.cpp b/src/common/profile.cpp index a63a772..79d7152 100644 --- a/src/common/profile.cpp +++ b/src/common/profile.cpp @@ -17,10 +17,10 @@ #include "common/profile.h" -#include "common/logger.h" - #include "app/system.h" +#include "common/logger.h" + #include #include #include @@ -33,27 +33,27 @@ namespace bp = boost::property_tree; CProfile::CProfile() : m_profileNeedSave(false) - , m_useLocalDirectory(false) + , m_useCurrentDirectory(false) { } CProfile::~CProfile() { - SaveCurrentDirectory(); + Save(); } -void CProfile::SetUseLocalDirectory(bool useLocalDirectory) +void CProfile::SetUseCurrentDirectory(bool useCurrentDirectory) { - m_useLocalDirectory = useLocalDirectory; + m_useCurrentDirectory = useCurrentDirectory; } std::string CProfile::GetIniFileLocation() { - return m_useLocalDirectory ? "colobot.ini" : GetSystemUtils()->GetProfileFileLocation(); + return m_useCurrentDirectory ? "colobot.ini" : GetSystemUtils()->GetProfileFileLocation(); } -bool CProfile::InitCurrentDirectory() +bool CProfile::Init() { try { @@ -67,7 +67,7 @@ bool CProfile::InitCurrentDirectory() return true; } -bool CProfile::SaveCurrentDirectory() +bool CProfile::Save() { if (m_profileNeedSave) { @@ -84,7 +84,7 @@ bool CProfile::SaveCurrentDirectory() return true; } -bool CProfile::SetLocalProfileString(std::string section, std::string key, std::string value) +bool CProfile::SetStringProperty(std::string section, std::string key, std::string value) { try { @@ -100,7 +100,7 @@ bool CProfile::SetLocalProfileString(std::string section, std::string key, std:: } -bool CProfile::GetLocalProfileString(std::string section, std::string key, std::string &buffer) +bool CProfile::GetStringProperty(std::string section, std::string key, std::string &buffer) { try { @@ -115,7 +115,7 @@ bool CProfile::GetLocalProfileString(std::string section, std::string key, std:: } -bool CProfile::SetLocalProfileInt(std::string section, std::string key, int value) +bool CProfile::SetIntProperty(std::string section, std::string key, int value) { try { @@ -131,7 +131,7 @@ bool CProfile::SetLocalProfileInt(std::string section, std::string key, int valu } -bool CProfile::GetLocalProfileInt(std::string section, std::string key, int &value) +bool CProfile::GetIntProperty(std::string section, std::string key, int &value) { try { @@ -146,7 +146,7 @@ bool CProfile::GetLocalProfileInt(std::string section, std::string key, int &val } -bool CProfile::SetLocalProfileFloat(std::string section, std::string key, float value) +bool CProfile::SetFloatProperty(std::string section, std::string key, float value) { try { @@ -162,7 +162,7 @@ bool CProfile::SetLocalProfileFloat(std::string section, std::string key, float } -bool CProfile::GetLocalProfileFloat(std::string section, std::string key, float &value) +bool CProfile::GetFloatProperty(std::string section, std::string key, float &value) { try { @@ -177,7 +177,7 @@ bool CProfile::GetLocalProfileFloat(std::string section, std::string key, float } -std::vector< std::string > CProfile::GetLocalProfileSection(std::string section, std::string key) +std::vector< std::string > CProfile::GetSection(std::string section, std::string key) { std::vector< std::string > ret_list; boost::regex re(key + "[0-9]*"); //we want to match all key followed by any number @@ -207,13 +207,13 @@ void CProfile::SetUserDir(std::string dir) } -std::string CProfile::GetUserBasedPath(std::string dir, std::string default_dir) +std::string CProfile::GetUserBasedPath(std::string dir, std::string defaultDir) { std::string path = dir; boost::replace_all(path, "\\", "/"); if (dir.find("/") == std::string::npos) { - path = default_dir + "/" + dir; + path = defaultDir + "/" + dir; } if (m_userDirectory.length() > 0) @@ -222,7 +222,7 @@ std::string CProfile::GetUserBasedPath(std::string dir, std::string default_dir) } else { - boost::replace_all(path, "%user%", default_dir); + boost::replace_all(path, "%user%", defaultDir); } return fs::path(path).make_preferred().string(); diff --git a/src/common/profile.h b/src/common/profile.h index 52f9f15..ad0458e 100644 --- a/src/common/profile.h +++ b/src/common/profile.h @@ -45,91 +45,91 @@ public: CProfile(); virtual ~CProfile(); - /** Set flag to force using ini file from local directory */ - void SetUseLocalDirectory(bool useLocalDirectory); + /** Set flag to force using ini file from current directory */ + void SetUseCurrentDirectory(bool useCurrentDirectory); /** Loads colobot.ini from current directory - * \return return true on success - */ - bool InitCurrentDirectory(); + * \return return true on success + */ + bool Init(); /** Saves colobot.ini to current directory - * \return return true on success - */ - bool SaveCurrentDirectory(); + * \return return true on success + */ + bool Save(); /** Sets string value in section under specified key - * \param section - * \param key - * \param value - * \return return true on success - */ - bool SetLocalProfileString(std::string section, std::string key, std::string value); + * \param section + * \param key + * \param value + * \return return true on success + */ + bool SetStringProperty(std::string section, std::string key, std::string value); /** Gets string value in section under specified key - * \param section - * \param key - * \param buffer - * \return return true on success - */ - bool GetLocalProfileString(std::string section, std::string key, std::string& buffer); + * \param section + * \param key + * \param buffer + * \return return true on success + */ + bool GetStringProperty(std::string section, std::string key, std::string& buffer); /** Sets int value in section under specified key - * \param section - * \param key - * \param value - * \return return true on success - */ - bool SetLocalProfileInt(std::string section, std::string key, int value); + * \param section + * \param key + * \param value + * \return return true on success + */ + bool SetIntProperty(std::string section, std::string key, int value); /** Gets int value in section under specified key - * \param section - * \param key - * \param value - * \return return true on success - */ - bool GetLocalProfileInt(std::string section, std::string key, int &value); + * \param section + * \param key + * \param value + * \return return true on success + */ + bool GetIntProperty(std::string section, std::string key, int &value); /** Sets float value in section under specified key - * \param section - * \param key - * \param value - * \return return true on success - */ - bool SetLocalProfileFloat(std::string section, std::string key, float value); + * \param section + * \param key + * \param value + * \return return true on success + */ + bool SetFloatProperty(std::string section, std::string key, float value); /** Gets float value in section under specified key - * \param section - * \param key - * \param value - * \return return true on success - */ - bool GetLocalProfileFloat(std::string section, std::string key, float &value); + * \param section + * \param key + * \param value + * \return return true on success + */ + bool GetFloatProperty(std::string section, std::string key, float &value); /** Gets all values in section under specified key - * \param section - * \param key - * \return vector of values - */ - std::vector< std::string > GetLocalProfileSection(std::string section, std::string key); + * \param section + * \param key + * \return vector of values + */ + std::vector< std::string > GetSection(std::string section, std::string key); /** Sets current user directory - * \param dir - */ + * \param dir + */ void SetUserDir(std::string dir); /** Returns path based on current user. Replaces %user% in path with current user dir or - * uses default_dir param if no user dir is specified - * \param dir - * \param default_dir - * \return path - */ - std::string GetUserBasedPath(std::string dir, std::string default_dir); - - /** opy a file into the temporary folder. - * \param filename - * \return true on success - */ + * uses default_dir param if no user dir is specified + * \param dir + * \param default_dir + * \return path + */ + std::string GetUserBasedPath(std::string dir, std::string defaultDir); + + /** Copy a file into the temporary folder. + * \param filename + * \return true on success + */ bool CopyFileToTemp(std::string filename); private: @@ -139,7 +139,7 @@ private: boost::property_tree::ptree m_propertyTree; bool m_profileNeedSave; std::string m_userDirectory; - bool m_useLocalDirectory; + bool m_useCurrentDirectory; }; //! Global function to get profile instance diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp index fc15b26..d33ea27 100644 --- a/src/object/robotmain.cpp +++ b/src/object/robotmain.cpp @@ -721,11 +721,11 @@ CRobotMain::CRobotMain(CApplication* app, bool loadProfile) if (loadProfile) { - if (GetProfile().GetLocalProfileFloat("Edit", "FontSize", fValue)) m_fontSize = fValue; - if (GetProfile().GetLocalProfileFloat("Edit", "WindowPosX", fValue)) m_windowPos.x = fValue; - if (GetProfile().GetLocalProfileFloat("Edit", "WindowPosY", fValue)) m_windowPos.y = fValue; - if (GetProfile().GetLocalProfileFloat("Edit", "WindowDimX", fValue)) m_windowDim.x = fValue; - if (GetProfile().GetLocalProfileFloat("Edit", "WindowDimY", fValue)) m_windowDim.y = fValue; + if (GetProfile().GetFloatProperty("Edit", "FontSize", fValue)) m_fontSize = fValue; + if (GetProfile().GetFloatProperty("Edit", "WindowPosX", fValue)) m_windowPos.x = fValue; + if (GetProfile().GetFloatProperty("Edit", "WindowPosY", fValue)) m_windowPos.y = fValue; + if (GetProfile().GetFloatProperty("Edit", "WindowDimX", fValue)) m_windowDim.x = fValue; + if (GetProfile().GetFloatProperty("Edit", "WindowDimY", fValue)) m_windowDim.y = fValue; } m_IOPublic = false; @@ -735,11 +735,11 @@ CRobotMain::CRobotMain(CApplication* app, bool loadProfile) if (loadProfile) { - if (GetProfile().GetLocalProfileInt ("Edit", "IOPublic", iValue)) m_IOPublic = iValue; - if (GetProfile().GetLocalProfileFloat("Edit", "IOPosX", fValue)) m_IOPos.x = fValue; - if (GetProfile().GetLocalProfileFloat("Edit", "IOPosY", fValue)) m_IOPos.y = fValue; - if (GetProfile().GetLocalProfileFloat("Edit", "IODimX", fValue)) m_IODim.x = fValue; - if (GetProfile().GetLocalProfileFloat("Edit", "IODimY", fValue)) m_IODim.y = fValue; + if (GetProfile().GetIntProperty ("Edit", "IOPublic", iValue)) m_IOPublic = iValue; + if (GetProfile().GetFloatProperty("Edit", "IOPosX", fValue)) m_IOPos.x = fValue; + if (GetProfile().GetFloatProperty("Edit", "IOPosY", fValue)) m_IOPos.y = fValue; + if (GetProfile().GetFloatProperty("Edit", "IODimX", fValue)) m_IODim.x = fValue; + if (GetProfile().GetFloatProperty("Edit", "IODimY", fValue)) m_IODim.y = fValue; } m_short->FlushShortcuts(); @@ -757,7 +757,7 @@ CRobotMain::CRobotMain(CApplication* app, bool loadProfile) g_unit = UNIT; m_gamerName = ""; - if (loadProfile) GetProfile().GetLocalProfileString("Gamer", "LastName", m_gamerName); + if (loadProfile) GetProfile().GetStringProperty("Gamer", "LastName", m_gamerName); SetGlobalGamerName(m_gamerName); ReadFreeParam(); if (loadProfile) m_dialog->SetupRecall(); @@ -966,18 +966,18 @@ void CRobotMain::CreateIni() { m_dialog->SetupMemorize(); - GetProfile().SetLocalProfileFloat("Edit", "FontSize", m_fontSize); - GetProfile().SetLocalProfileFloat("Edit", "WindowPosX", m_windowPos.x); - GetProfile().SetLocalProfileFloat("Edit", "WindowPosY", m_windowPos.y); - GetProfile().SetLocalProfileFloat("Edit", "WindowDimX", m_windowDim.x); - GetProfile().SetLocalProfileFloat("Edit", "WindowDimY", m_windowDim.y); - GetProfile().SetLocalProfileInt("Edit", "IOPublic", m_IOPublic); - GetProfile().SetLocalProfileFloat("Edit", "IOPosX", m_IOPos.x); - GetProfile().SetLocalProfileFloat("Edit", "IOPosY", m_IOPos.y); - GetProfile().SetLocalProfileFloat("Edit", "IODimX", m_IODim.x); - GetProfile().SetLocalProfileFloat("Edit", "IODimY", m_IODim.y); + GetProfile().SetFloatProperty("Edit", "FontSize", m_fontSize); + GetProfile().SetFloatProperty("Edit", "WindowPosX", m_windowPos.x); + GetProfile().SetFloatProperty("Edit", "WindowPosY", m_windowPos.y); + GetProfile().SetFloatProperty("Edit", "WindowDimX", m_windowDim.x); + GetProfile().SetFloatProperty("Edit", "WindowDimY", m_windowDim.y); + GetProfile().SetIntProperty("Edit", "IOPublic", m_IOPublic); + GetProfile().SetFloatProperty("Edit", "IOPosX", m_IOPos.x); + GetProfile().SetFloatProperty("Edit", "IOPosY", m_IOPos.y); + GetProfile().SetFloatProperty("Edit", "IODimX", m_IODim.x); + GetProfile().SetFloatProperty("Edit", "IODimY", m_IODim.y); - GetProfile().SaveCurrentDirectory(); + GetProfile().Save(); } void CRobotMain::SetDefaultInputBindings() @@ -2258,7 +2258,7 @@ float CRobotMain::GetGameTime() void CRobotMain::SetFontSize(float size) { m_fontSize = size; - GetProfile().SetLocalProfileFloat("Edit", "FontSize", m_fontSize); + GetProfile().SetFloatProperty("Edit", "FontSize", m_fontSize); } float CRobotMain::GetFontSize() @@ -2270,8 +2270,8 @@ float CRobotMain::GetFontSize() void CRobotMain::SetWindowPos(Math::Point pos) { m_windowPos = pos; - GetProfile().SetLocalProfileFloat("Edit", "WindowPosX", m_windowPos.x); - GetProfile().SetLocalProfileFloat("Edit", "WindowPosY", m_windowPos.y); + GetProfile().SetFloatProperty("Edit", "WindowPosX", m_windowPos.x); + GetProfile().SetFloatProperty("Edit", "WindowPosY", m_windowPos.y); } Math::Point CRobotMain::GetWindowPos() @@ -2282,8 +2282,8 @@ Math::Point CRobotMain::GetWindowPos() void CRobotMain::SetWindowDim(Math::Point dim) { m_windowDim = dim; - GetProfile().SetLocalProfileFloat("Edit", "WindowDimX", m_windowDim.x); - GetProfile().SetLocalProfileFloat("Edit", "WindowDimY", m_windowDim.y); + GetProfile().SetFloatProperty("Edit", "WindowDimX", m_windowDim.x); + GetProfile().SetFloatProperty("Edit", "WindowDimY", m_windowDim.y); } Math::Point CRobotMain::GetWindowDim() @@ -2296,7 +2296,7 @@ Math::Point CRobotMain::GetWindowDim() void CRobotMain::SetIOPublic(bool mode) { m_IOPublic = mode; - GetProfile().SetLocalProfileInt("Edit", "IOPublic", m_IOPublic); + GetProfile().SetIntProperty("Edit", "IOPublic", m_IOPublic); } bool CRobotMain::GetIOPublic() @@ -2307,8 +2307,8 @@ bool CRobotMain::GetIOPublic() void CRobotMain::SetIOPos(Math::Point pos) { m_IOPos = pos; - GetProfile().SetLocalProfileFloat("Edit", "IOPosX", m_IOPos.x); - GetProfile().SetLocalProfileFloat("Edit", "IOPosY", m_IOPos.y); + GetProfile().SetFloatProperty("Edit", "IOPosX", m_IOPos.x); + GetProfile().SetFloatProperty("Edit", "IOPosY", m_IOPos.y); } Math::Point CRobotMain::GetIOPos() @@ -2319,8 +2319,8 @@ Math::Point CRobotMain::GetIOPos() void CRobotMain::SetIODim(Math::Point dim) { m_IODim = dim; - GetProfile().SetLocalProfileFloat("Edit", "IODimX", m_IODim.x); - GetProfile().SetLocalProfileFloat("Edit", "IODimY", m_IODim.y); + GetProfile().SetFloatProperty("Edit", "IODimX", m_IODim.x); + GetProfile().SetFloatProperty("Edit", "IODimY", m_IODim.y); } Math::Point CRobotMain::GetIODim() diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index 39e7aa9..1b0facb 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -3541,7 +3541,7 @@ void CMainDialog::NameSelect() GetGamerFace(m_main->GetGamerName()); - GetProfile().SetLocalProfileString("Gamer", "LastName", m_main->GetGamerName()); + GetProfile().SetStringProperty("Gamer", "LastName", m_main->GetGamerName()); } // Creates a new player. @@ -5164,46 +5164,46 @@ void CMainDialog::ChangeSetupButtons() void CMainDialog::SetupMemorize() { - GetProfile().SetLocalProfileString("Directory", "scene", m_sceneDir); - GetProfile().SetLocalProfileString("Directory", "savegame", m_savegameDir); - GetProfile().SetLocalProfileString("Directory", "public", m_publicDir); - GetProfile().SetLocalProfileString("Directory", "user", m_userDir); - GetProfile().SetLocalProfileString("Directory", "files", m_filesDir); - GetProfile().SetLocalProfileInt("Setup", "Tooltips", m_bTooltip); - GetProfile().SetLocalProfileInt("Setup", "InterfaceGlint", m_bGlint); - GetProfile().SetLocalProfileInt("Setup", "InterfaceGlint", m_bRain); - GetProfile().SetLocalProfileInt("Setup", "Soluce4", m_bSoluce4); - GetProfile().SetLocalProfileInt("Setup", "Movies", m_bMovies); - GetProfile().SetLocalProfileInt("Setup", "NiceReset", m_bNiceReset); - GetProfile().SetLocalProfileInt("Setup", "HimselfDamage", m_bHimselfDamage); - GetProfile().SetLocalProfileInt("Setup", "CameraScroll", m_bCameraScroll); - GetProfile().SetLocalProfileInt("Setup", "CameraInvertX", m_bCameraInvertX); - GetProfile().SetLocalProfileInt("Setup", "CameraInvertY", m_bCameraInvertY); - GetProfile().SetLocalProfileInt("Setup", "InterfaceEffect", m_bEffect); - GetProfile().SetLocalProfileInt("Setup", "GroundShadow", m_engine->GetShadow()); - GetProfile().SetLocalProfileInt("Setup", "GroundSpot", m_engine->GetGroundSpot()); - GetProfile().SetLocalProfileInt("Setup", "ObjectDirty", m_engine->GetDirty()); - GetProfile().SetLocalProfileInt("Setup", "FogMode", m_engine->GetFog()); - GetProfile().SetLocalProfileInt("Setup", "LensMode", m_engine->GetLensMode()); - GetProfile().SetLocalProfileInt("Setup", "SkyMode", m_engine->GetSkyMode()); - GetProfile().SetLocalProfileInt("Setup", "PlanetMode", m_engine->GetPlanetMode()); - GetProfile().SetLocalProfileInt("Setup", "LightMode", m_engine->GetLightMode()); - GetProfile().SetLocalProfileFloat("Setup", "ParticleDensity", m_engine->GetParticleDensity()); - GetProfile().SetLocalProfileFloat("Setup", "ClippingDistance", m_engine->GetClippingDistance()); - GetProfile().SetLocalProfileFloat("Setup", "ObjectDetail", m_engine->GetObjectDetail()); - GetProfile().SetLocalProfileFloat("Setup", "GadgetQuantity", m_engine->GetGadgetQuantity()); - GetProfile().SetLocalProfileInt("Setup", "TextureQuality", m_engine->GetTextureQuality()); - GetProfile().SetLocalProfileInt("Setup", "TotoMode", m_engine->GetTotoMode()); - GetProfile().SetLocalProfileInt("Setup", "AudioVolume", m_sound->GetAudioVolume()); - GetProfile().SetLocalProfileInt("Setup", "MusicVolume", m_sound->GetMusicVolume()); - GetProfile().SetLocalProfileInt("Setup", "EditIndentMode", m_engine->GetEditIndentMode()); - GetProfile().SetLocalProfileInt("Setup", "EditIndentValue", m_engine->GetEditIndentValue()); + GetProfile().SetStringProperty("Directory", "scene", m_sceneDir); + GetProfile().SetStringProperty("Directory", "savegame", m_savegameDir); + GetProfile().SetStringProperty("Directory", "public", m_publicDir); + GetProfile().SetStringProperty("Directory", "user", m_userDir); + GetProfile().SetStringProperty("Directory", "files", m_filesDir); + GetProfile().SetIntProperty("Setup", "Tooltips", m_bTooltip); + GetProfile().SetIntProperty("Setup", "InterfaceGlint", m_bGlint); + GetProfile().SetIntProperty("Setup", "InterfaceGlint", m_bRain); + GetProfile().SetIntProperty("Setup", "Soluce4", m_bSoluce4); + GetProfile().SetIntProperty("Setup", "Movies", m_bMovies); + GetProfile().SetIntProperty("Setup", "NiceReset", m_bNiceReset); + GetProfile().SetIntProperty("Setup", "HimselfDamage", m_bHimselfDamage); + GetProfile().SetIntProperty("Setup", "CameraScroll", m_bCameraScroll); + GetProfile().SetIntProperty("Setup", "CameraInvertX", m_bCameraInvertX); + GetProfile().SetIntProperty("Setup", "CameraInvertY", m_bCameraInvertY); + GetProfile().SetIntProperty("Setup", "InterfaceEffect", m_bEffect); + GetProfile().SetIntProperty("Setup", "GroundShadow", m_engine->GetShadow()); + GetProfile().SetIntProperty("Setup", "GroundSpot", m_engine->GetGroundSpot()); + GetProfile().SetIntProperty("Setup", "ObjectDirty", m_engine->GetDirty()); + GetProfile().SetIntProperty("Setup", "FogMode", m_engine->GetFog()); + GetProfile().SetIntProperty("Setup", "LensMode", m_engine->GetLensMode()); + GetProfile().SetIntProperty("Setup", "SkyMode", m_engine->GetSkyMode()); + GetProfile().SetIntProperty("Setup", "PlanetMode", m_engine->GetPlanetMode()); + GetProfile().SetIntProperty("Setup", "LightMode", m_engine->GetLightMode()); + GetProfile().SetFloatProperty("Setup", "ParticleDensity", m_engine->GetParticleDensity()); + GetProfile().SetFloatProperty("Setup", "ClippingDistance", m_engine->GetClippingDistance()); + GetProfile().SetFloatProperty("Setup", "ObjectDetail", m_engine->GetObjectDetail()); + GetProfile().SetFloatProperty("Setup", "GadgetQuantity", m_engine->GetGadgetQuantity()); + GetProfile().SetIntProperty("Setup", "TextureQuality", m_engine->GetTextureQuality()); + GetProfile().SetIntProperty("Setup", "TotoMode", m_engine->GetTotoMode()); + GetProfile().SetIntProperty("Setup", "AudioVolume", m_sound->GetAudioVolume()); + GetProfile().SetIntProperty("Setup", "MusicVolume", m_sound->GetMusicVolume()); + GetProfile().SetIntProperty("Setup", "EditIndentMode", m_engine->GetEditIndentMode()); + GetProfile().SetIntProperty("Setup", "EditIndentValue", m_engine->GetEditIndentValue()); /* screen setup */ if (m_setupFull) - GetProfile().SetLocalProfileInt("Setup", "Fullscreen", 1); + GetProfile().SetIntProperty("Setup", "Fullscreen", 1); else - GetProfile().SetLocalProfileInt("Setup", "Fullscreen", 0); + GetProfile().SetIntProperty("Setup", "Fullscreen", 0); CList *pl; CWindow *pw; @@ -5213,7 +5213,7 @@ void CMainDialog::SetupMemorize() pl = static_cast(pw->SearchControl(EVENT_LIST2)); if ( pl != 0 ) { - GetProfile().SetLocalProfileInt("Setup", "Resolution", pl->GetSelect()); + GetProfile().SetIntProperty("Setup", "Resolution", pl->GetSelect()); } } else @@ -5230,9 +5230,9 @@ void CMainDialog::SetupMemorize() key << b.secondary << " "; } - GetProfile().SetLocalProfileString("Setup", "KeyMap", key.str()); + GetProfile().SetStringProperty("Setup", "KeyMap", key.str()); - GetProfile().SetLocalProfileInt("Setup", "DeleteGamer", m_bDeleteGamer); + GetProfile().SetIntProperty("Setup", "DeleteGamer", m_bDeleteGamer); } // Remember all the settings. @@ -5243,48 +5243,48 @@ void CMainDialog::SetupRecall() int iValue; std::string key; - if ( GetProfile().GetLocalProfileString("Directory", "scene", key) ) + if ( GetProfile().GetStringProperty("Directory", "scene", key) ) { m_sceneDir = key; } - if ( GetProfile().GetLocalProfileString("Directory", "savegame", key) ) + if ( GetProfile().GetStringProperty("Directory", "savegame", key) ) { m_savegameDir = key; } - if ( GetProfile().GetLocalProfileString("Directory", "public", key) ) + if ( GetProfile().GetStringProperty("Directory", "public", key) ) { m_publicDir = key; } - if ( GetProfile().GetLocalProfileString("Directory", "user", key) ) + if ( GetProfile().GetStringProperty("Directory", "user", key) ) { m_userDir = key; } - if ( GetProfile().GetLocalProfileString("Directory", "files", key) ) + if ( GetProfile().GetStringProperty("Directory", "files", key) ) { m_filesDir = key; } - if ( GetProfile().GetLocalProfileInt("Setup", "TotoMode", iValue) ) + if ( GetProfile().GetIntProperty("Setup", "TotoMode", iValue) ) { m_engine->SetTotoMode(iValue); } - if ( GetProfile().GetLocalProfileInt("Setup", "Tooltips", iValue) ) + if ( GetProfile().GetIntProperty("Setup", "Tooltips", iValue) ) { m_bTooltip = iValue; } - if ( GetProfile().GetLocalProfileInt("Setup", "InterfaceGlint", iValue) ) + if ( GetProfile().GetIntProperty("Setup", "InterfaceGlint", iValue) ) { m_bGlint = iValue; } - if ( GetProfile().GetLocalProfileInt("Setup", "InterfaceGlint", iValue) ) + if ( GetProfile().GetIntProperty("Setup", "InterfaceGlint", iValue) ) { m_bRain = iValue; } @@ -5295,86 +5295,86 @@ void CMainDialog::SetupRecall() // m_engine->SetNiceMouse(iValue); // } - if ( GetProfile().GetLocalProfileInt("Setup", "Soluce4", iValue) ) + if ( GetProfile().GetIntProperty("Setup", "Soluce4", iValue) ) { m_bSoluce4 = iValue; } - if ( GetProfile().GetLocalProfileInt("Setup", "Movies", iValue) ) + if ( GetProfile().GetIntProperty("Setup", "Movies", iValue) ) { m_bMovies = iValue; } - if ( GetProfile().GetLocalProfileInt("Setup", "NiceReset", iValue) ) + if ( GetProfile().GetIntProperty("Setup", "NiceReset", iValue) ) { m_bNiceReset = iValue; } - if ( GetProfile().GetLocalProfileInt("Setup", "HimselfDamage", iValue) ) + if ( GetProfile().GetIntProperty("Setup", "HimselfDamage", iValue) ) { m_bHimselfDamage = iValue; } - if ( GetProfile().GetLocalProfileInt("Setup", "CameraScroll", iValue) ) + if ( GetProfile().GetIntProperty("Setup", "CameraScroll", iValue) ) { m_bCameraScroll = iValue; m_camera->SetCameraScroll(m_bCameraScroll); } - if ( GetProfile().GetLocalProfileInt("Setup", "CameraInvertX", iValue) ) + if ( GetProfile().GetIntProperty("Setup", "CameraInvertX", iValue) ) { m_bCameraInvertX = iValue; m_camera->SetCameraInvertX(m_bCameraInvertX); } - if ( GetProfile().GetLocalProfileInt("Setup", "CameraInvertY", iValue) ) + if ( GetProfile().GetIntProperty("Setup", "CameraInvertY", iValue) ) { m_bCameraInvertY = iValue; m_camera->SetCameraInvertY(m_bCameraInvertY); } - if ( GetProfile().GetLocalProfileInt("Setup", "InterfaceEffect", iValue) ) + if ( GetProfile().GetIntProperty("Setup", "InterfaceEffect", iValue) ) { m_bEffect = iValue; } - if ( GetProfile().GetLocalProfileInt("Setup", "GroundShadow", iValue) ) + if ( GetProfile().GetIntProperty("Setup", "GroundShadow", iValue) ) { m_engine->SetShadow(iValue); } - if ( GetProfile().GetLocalProfileInt("Setup", "GroundSpot", iValue) ) + if ( GetProfile().GetIntProperty("Setup", "GroundSpot", iValue) ) { m_engine->SetGroundSpot(iValue); } - if ( GetProfile().GetLocalProfileInt("Setup", "ObjectDirty", iValue) ) + if ( GetProfile().GetIntProperty("Setup", "ObjectDirty", iValue) ) { m_engine->SetDirty(iValue); } - if ( GetProfile().GetLocalProfileInt("Setup", "FogMode", iValue) ) + if ( GetProfile().GetIntProperty("Setup", "FogMode", iValue) ) { m_engine->SetFog(iValue); m_camera->SetOverBaseColor(Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f)); // TODO: color ok? } - if ( GetProfile().GetLocalProfileInt("Setup", "LensMode", iValue) ) + if ( GetProfile().GetIntProperty("Setup", "LensMode", iValue) ) { m_engine->SetLensMode(iValue); } - if ( GetProfile().GetLocalProfileInt("Setup", "SkyMode", iValue) ) + if ( GetProfile().GetIntProperty("Setup", "SkyMode", iValue) ) { m_engine->SetSkyMode(iValue); } - if ( GetProfile().GetLocalProfileInt("Setup", "PlanetMode", iValue) ) + if ( GetProfile().GetIntProperty("Setup", "PlanetMode", iValue) ) { m_engine->SetPlanetMode(iValue); } - if ( GetProfile().GetLocalProfileInt("Setup", "LightMode", iValue) ) + if ( GetProfile().GetIntProperty("Setup", "LightMode", iValue) ) { m_engine->SetLightMode(iValue); } @@ -5384,52 +5384,52 @@ void CMainDialog::SetupRecall() // m_engine->SetJoystick(iValue); // } - if ( GetProfile().GetLocalProfileFloat("Setup", "ParticleDensity", fValue) ) + if ( GetProfile().GetFloatProperty("Setup", "ParticleDensity", fValue) ) { m_engine->SetParticleDensity(fValue); } - if ( GetProfile().GetLocalProfileFloat("Setup", "ClippingDistance", fValue) ) + if ( GetProfile().GetFloatProperty("Setup", "ClippingDistance", fValue) ) { m_engine->SetClippingDistance(fValue); } - if ( GetProfile().GetLocalProfileFloat("Setup", "ObjectDetail", fValue) ) + if ( GetProfile().GetFloatProperty("Setup", "ObjectDetail", fValue) ) { m_engine->SetObjectDetail(fValue); } - if ( GetProfile().GetLocalProfileFloat("Setup", "GadgetQuantity", fValue) ) + if ( GetProfile().GetFloatProperty("Setup", "GadgetQuantity", fValue) ) { m_engine->SetGadgetQuantity(fValue); } - if ( GetProfile().GetLocalProfileInt("Setup", "TextureQuality", iValue) ) + if ( GetProfile().GetIntProperty("Setup", "TextureQuality", iValue) ) { m_engine->SetTextureQuality(iValue); } - if ( GetProfile().GetLocalProfileInt("Setup", "AudioVolume", iValue) ) + if ( GetProfile().GetIntProperty("Setup", "AudioVolume", iValue) ) { m_sound->SetAudioVolume(iValue); } - if ( GetProfile().GetLocalProfileInt("Setup", "MusicVolume", iValue) ) + if ( GetProfile().GetIntProperty("Setup", "MusicVolume", iValue) ) { m_sound->SetMusicVolume(iValue); } - if ( GetProfile().GetLocalProfileInt("Setup", "EditIndentMode", iValue) ) + if ( GetProfile().GetIntProperty("Setup", "EditIndentMode", iValue) ) { m_engine->SetEditIndentMode(iValue); } - if ( GetProfile().GetLocalProfileInt("Setup", "EditIndentValue", iValue) ) + if ( GetProfile().GetIntProperty("Setup", "EditIndentValue", iValue) ) { m_engine->SetEditIndentValue(iValue); } - if (GetProfile().GetLocalProfileString("Setup", "KeyMap", key)) + if (GetProfile().GetStringProperty("Setup", "KeyMap", key)) { std::stringstream skey; skey.str(key); @@ -5442,17 +5442,17 @@ void CMainDialog::SetupRecall() } } - if ( GetProfile().GetLocalProfileInt("Setup", "DeleteGamer", iValue) ) + if ( GetProfile().GetIntProperty("Setup", "DeleteGamer", iValue) ) { m_bDeleteGamer = iValue; } - if ( GetProfile().GetLocalProfileInt("Setup", "Resolution", iValue) ) + if ( GetProfile().GetIntProperty("Setup", "Resolution", iValue) ) { m_setupSelMode = iValue; } - if ( GetProfile().GetLocalProfileInt("Setup", "Fullscreen", iValue) ) + if ( GetProfile().GetIntProperty("Setup", "Fullscreen", iValue) ) { m_setupFull = (iValue == 1); } diff --git a/test/unit/common/profile_test.cpp b/test/unit/common/profile_test.cpp index 1a4f239..2d21a90 100644 --- a/test/unit/common/profile_test.cpp +++ b/test/unit/common/profile_test.cpp @@ -17,23 +17,23 @@ protected: TEST_F(CProfileTest, ReadTest) { - m_profile.SetUseLocalDirectory(true); + m_profile.SetUseCurrentDirectory(true); - ASSERT_TRUE(m_profile.InitCurrentDirectory()); // load colobot.ini file + ASSERT_TRUE(m_profile.Init()); // load colobot.ini file std::string result; - ASSERT_TRUE(m_profile.GetLocalProfileString("test_string", "string_value", result)); + ASSERT_TRUE(m_profile.GetStringProperty("test_string", "string_value", result)); ASSERT_STREQ("Hello world", result.c_str()); int int_value; - ASSERT_TRUE(m_profile.GetLocalProfileInt("test_int", "int_value", int_value)); + ASSERT_TRUE(m_profile.GetIntProperty("test_int", "int_value", int_value)); ASSERT_EQ(42, int_value); float float_value; - ASSERT_TRUE(m_profile.GetLocalProfileFloat("test_float", "float_value", float_value)); + ASSERT_TRUE(m_profile.GetFloatProperty("test_float", "float_value", float_value)); ASSERT_FLOAT_EQ(1.5, float_value); std::vector list; - list = m_profile.GetLocalProfileSection("test_multi", "entry"); + list = m_profile.GetSection("test_multi", "entry"); ASSERT_EQ(5u, list.size()); } -- cgit v1.2.3-1-g7c22 From 80bb5857784b4b2085c4bba7a22cc9627ca66725 Mon Sep 17 00:00:00 2001 From: MrSimbax Date: Sun, 24 Aug 2014 20:56:12 +0200 Subject: Add po4a to the command installing dependencies There is an one-line command in the INSTALL.md for Ubuntu/Debian users which installs all dependencies. po4a was listed above it, but it wasn't in the command itself. --- INSTALL.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/INSTALL.md b/INSTALL.md index 81037c5..e61d4f0 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -119,7 +119,7 @@ You will need: On Ubuntu (and probably any other Debian-based system), you can use the following command to install all required packages: ``` - $ apt-get install build-essential cmake libsdl1.2debian libsdl1.2-dev libsdl-image1.2 libsdl-image1.2-dev libsdl-ttf2.0-0 libsdl-ttf2.0-dev libsdl-mixer1.2 libsdl-mixer1.2-dev libsndfile1-dev libvorbis-dev libogg-dev libpng12-dev libglew-dev libopenal-dev libboost-dev libboost-system-dev libboost-filesystem-dev libboost-regex-dev git + $ apt-get install build-essential cmake libsdl1.2debian libsdl1.2-dev libsdl-image1.2 libsdl-image1.2-dev libsdl-ttf2.0-0 libsdl-ttf2.0-dev libsdl-mixer1.2 libsdl-mixer1.2-dev libsndfile1-dev libvorbis-dev libogg-dev libpng12-dev libglew-dev libopenal-dev libboost-dev libboost-system-dev libboost-filesystem-dev libboost-regex-dev git po4a ``` Make sure you install the packages along with header files (often distributed in separate *-dev packages). If you miss any requirements, -- cgit v1.2.3-1-g7c22 From 7557b888bc8cb1b1de4dd1b330a81cd5ac50af04 Mon Sep 17 00:00:00 2001 From: koocotte Date: Tue, 2 Sep 2014 21:02:40 +0200 Subject: Add missing dependency "gettext" for Ubuntu Conflicts: INSTALL.md --- INSTALL.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/INSTALL.md b/INSTALL.md index e61d4f0..ec7b152 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -119,7 +119,7 @@ You will need: On Ubuntu (and probably any other Debian-based system), you can use the following command to install all required packages: ``` - $ apt-get install build-essential cmake libsdl1.2debian libsdl1.2-dev libsdl-image1.2 libsdl-image1.2-dev libsdl-ttf2.0-0 libsdl-ttf2.0-dev libsdl-mixer1.2 libsdl-mixer1.2-dev libsndfile1-dev libvorbis-dev libogg-dev libpng12-dev libglew-dev libopenal-dev libboost-dev libboost-system-dev libboost-filesystem-dev libboost-regex-dev git po4a + $ apt-get install build-essential cmake libsdl1.2debian libsdl1.2-dev libsdl-image1.2 libsdl-image1.2-dev libsdl-ttf2.0-0 libsdl-ttf2.0-dev libsdl-mixer1.2 libsdl-mixer1.2-dev libsndfile1-dev libvorbis-dev libogg-dev libpng12-dev libglew-dev libopenal-dev libboost-dev libboost-system-dev libboost-filesystem-dev libboost-regex-dev gettext git po4a ``` Make sure you install the packages along with header files (often distributed in separate *-dev packages). If you miss any requirements, -- cgit v1.2.3-1-g7c22 From f0b38721e05dbda1d3562abc06fec535d1aa5a07 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Wed, 6 Aug 2014 12:59:27 +0200 Subject: Loading all mods found in "mods" directory --- data | 2 +- src/app/app.cpp | 24 +++++++++++++++++++++++- src/app/app.h | 3 +++ src/common/resources/resourcemanager.cpp | 15 +++++++++++++++ src/common/resources/resourcemanager.h | 2 ++ 5 files changed, 44 insertions(+), 2 deletions(-) diff --git a/data b/data index bacf4c9..b457f36 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit bacf4c9dac9efc817907ab4e172231d3396a421d +Subproject commit b457f36f0667997c2e1d30e556e933d19c781006 diff --git a/src/app/app.cpp b/src/app/app.cpp index 429a9d4..628b7a9 100644 --- a/src/app/app.cpp +++ b/src/app/app.cpp @@ -401,8 +401,13 @@ bool CApplication::Create() return false; } - CResourceManager::AddLocation(m_dataPath, false); boost::filesystem::create_directories(m_savePath); + boost::filesystem::create_directories(m_savePath+"/mods"); + + LoadModsFromDir(m_dataPath+"/mods"); + LoadModsFromDir(m_savePath+"/mods"); + + CResourceManager::AddLocation(m_dataPath, false); CResourceManager::SetSaveLocation(m_savePath); CResourceManager::AddLocation(m_savePath, true); @@ -595,6 +600,23 @@ bool CApplication::CreateVideoSurface() return true; } +void CApplication::LoadModsFromDir(const std::string &dir) +{ + try { + boost::filesystem::directory_iterator iterator(dir); + for(; iterator != boost::filesystem::directory_iterator(); ++iterator) + { + std::string fn = iterator->path().string(); + CLogger::GetInstancePointer()->Info("Loading mod: '%s'\n", fn.c_str()); + CResourceManager::AddLocation(fn, false); + } + } + catch(std::exception &e) + { + CLogger::GetInstancePointer()->Warn("Unable to load mods from directory '%s': %s\n", dir.c_str(), e.what()); + } +} + void CApplication::Destroy() { m_joystickEnabled = false; diff --git a/src/app/app.h b/src/app/app.h index 0df3096..2049fb2 100644 --- a/src/app/app.h +++ b/src/app/app.h @@ -354,6 +354,9 @@ public: protected: //! Creates the window's SDL_Surface bool CreateVideoSurface(); + + //! Loads all mods from given directory + void LoadModsFromDir(const std::string &dir); //! Processes the captured SDL event to Event struct Event ProcessSystemEvent(); diff --git a/src/common/resources/resourcemanager.cpp b/src/common/resources/resourcemanager.cpp index 8119a6b..0741c70 100644 --- a/src/common/resources/resourcemanager.cpp +++ b/src/common/resources/resourcemanager.cpp @@ -130,6 +130,21 @@ bool CResourceManager::Exists(const std::string &filename) return PHYSFS_exists(filename.c_str()); } +std::vector CResourceManager::ListFiles(const std::string &directory) +{ + std::vector result; + + char **files = PHYSFS_enumerateFiles(directory.c_str()); + + for (char **i = files; *i != nullptr; i++) { + result.push_back(*i); + } + + PHYSFS_freeList(files); + + return result; +} + int CResourceManager::SDLClose(SDL_RWops *context) { diff --git a/src/common/resources/resourcemanager.h b/src/common/resources/resourcemanager.h index 4052047..b222048 100644 --- a/src/common/resources/resourcemanager.h +++ b/src/common/resources/resourcemanager.h @@ -16,6 +16,7 @@ #pragma once +#include #include #include @@ -33,6 +34,7 @@ public: static SDL_RWops* GetSDLFileHandler(const std::string &filename); static CSNDFile* GetSNDFileHandler(const std::string &filename); static bool Exists(const std::string &filename); + static std::vector ListFiles(const std::string &directory); private: static int SDLSeek(SDL_RWops *context, int offset, int whence); -- cgit v1.2.3-1-g7c22 From 6a1ceba8c0914691ebc873fd666e7cde1cffdb64 Mon Sep 17 00:00:00 2001 From: Piotr Dziwinski Date: Sun, 7 Sep 2014 19:26:06 +0200 Subject: Some cleaning up --- src/app/app.cpp | 12 +++---- src/app/pausemanager.cpp | 18 ++++++---- src/app/system.h | 4 +-- src/app/system_linux.cpp | 6 ++-- src/app/system_macosx.cpp | 2 +- src/app/system_windows.cpp | 4 +-- src/common/resources/inputstream.h | 4 +-- src/common/resources/inputstreambuffer.cpp | 8 ++--- src/common/resources/inputstreambuffer.h | 4 +-- src/common/resources/outputstream.h | 2 +- src/common/resources/outputstreambuffer.cpp | 4 +-- src/common/resources/outputstreambuffer.h | 2 -- src/common/resources/resourcemanager.cpp | 51 +++++++++++++++------------ src/common/resources/resourcestreambuffer.cpp | 0 src/common/resources/resourcestreambuffer.h | 0 src/common/resources/sndfile.cpp | 2 -- src/common/resources/sndfile.h | 1 - 17 files changed, 64 insertions(+), 60 deletions(-) delete mode 100644 src/common/resources/resourcestreambuffer.cpp delete mode 100644 src/common/resources/resourcestreambuffer.h diff --git a/src/app/app.cpp b/src/app/app.cpp index 628b7a9..80f178b 100644 --- a/src/app/app.cpp +++ b/src/app/app.cpp @@ -146,14 +146,14 @@ CApplication::CApplication() m_kmodState = 0; m_mouseButtonsState = 0; m_trackedKeys = 0; - + m_dataPath = GetSystemUtils()->GetDataPath(); m_langPath = GetSystemUtils()->GetLangPath(); m_savePath = GetSystemUtils()->GetSaveDir(); m_runSceneName = ""; m_runSceneRank = 0; - + m_sceneTest = false; m_language = LANGUAGE_ENV; @@ -389,7 +389,7 @@ bool CApplication::Create() bool defaultValues = false; GetLogger()->Info("Creating CApplication\n"); - + boost::filesystem::path dataPath(m_dataPath); if (! (boost::filesystem::exists(dataPath) && boost::filesystem::is_directory(dataPath)) ) { @@ -400,13 +400,13 @@ bool CApplication::Create() m_exitCode = 1; return false; } - + boost::filesystem::create_directories(m_savePath); boost::filesystem::create_directories(m_savePath+"/mods"); - + LoadModsFromDir(m_dataPath+"/mods"); LoadModsFromDir(m_savePath+"/mods"); - + CResourceManager::AddLocation(m_dataPath, false); CResourceManager::SetSaveLocation(m_savePath); CResourceManager::AddLocation(m_savePath, true); diff --git a/src/app/pausemanager.cpp b/src/app/pausemanager.cpp index d357bba..1135126 100644 --- a/src/app/pausemanager.cpp +++ b/src/app/pausemanager.cpp @@ -29,7 +29,7 @@ template<> CPauseManager* CSingleton::m_instance = nullptr; CPauseManager::CPauseManager() { m_sound = CApplication::GetInstancePointer()->GetSound(); - + m_pause = PAUSE_NONE; } @@ -40,24 +40,28 @@ CPauseManager::~CPauseManager() void CPauseManager::SetPause(PauseType pause) { - if(pause != PAUSE_NONE) { - if(m_pause != pause) { + if (pause != PAUSE_NONE) + { + if (m_pause != pause) + { CLogger::GetInstancePointer()->Info("Game paused - %s\n", GetPauseName(pause).c_str()); CRobotMain::GetInstancePointer()->StartPauseMusic(pause); } - + m_pause = pause; - } else + } + else ClearPause(); } void CPauseManager::ClearPause() { - if(m_pause != PAUSE_NONE) { + if(m_pause != PAUSE_NONE) + { CLogger::GetInstancePointer()->Info("Game resumed\n"); m_sound->StopPauseMusic(); } - + m_pause = PAUSE_NONE; } diff --git a/src/app/system.h b/src/app/system.h index 5177815..4b4440f 100644 --- a/src/app/system.h +++ b/src/app/system.h @@ -132,10 +132,10 @@ public: //! Returns the data path (containing textures, levels, helpfiles, etc) virtual std::string GetDataPath(); - + //! Returns the translations path virtual std::string GetLangPath(); - + //! Returns the save dir location virtual std::string GetSaveDir(); }; diff --git a/src/app/system_linux.cpp b/src/app/system_linux.cpp index 485d7c2..837c03e 100644 --- a/src/app/system_linux.cpp +++ b/src/app/system_linux.cpp @@ -25,7 +25,7 @@ void CSystemUtilsLinux::Init() { m_zenityAvailable = true; - if (system("zenity --version") != 0) + if (system("zenity --version >& /dev/null") != 0) { m_zenityAvailable = false; GetLogger()->Warn("Zenity not available, will fallback to console users dialogs.\n"); @@ -98,7 +98,7 @@ long long CSystemUtilsLinux::TimeStampExactDiff(SystemTimeStamp *before, SystemT std::string CSystemUtilsLinux::GetSaveDir() { std::string savegameDir; - + // Determine savegame dir according to XDG Base Directory Specification char *envXDG_DATA_HOME = getenv("XDG_CONFIG_DATA"); if (envXDG_DATA_HOME == NULL) @@ -118,6 +118,6 @@ std::string CSystemUtilsLinux::GetSaveDir() savegameDir = std::string(envXDG_DATA_HOME) + "/colobot"; } GetLogger()->Trace("Saved game files are going to %s\n", savegameDir.c_str()); - + return savegameDir; } diff --git a/src/app/system_macosx.cpp b/src/app/system_macosx.cpp index 06c67d3..fd29667 100644 --- a/src/app/system_macosx.cpp +++ b/src/app/system_macosx.cpp @@ -101,6 +101,6 @@ std::string CSystemUtilsMacOSX::GetSaveDir() { std::string savegameDir = m_ASPath; GetLogger()->Trace("Saved game files are going to %s\n", savegameDir.c_str()); - + return savegameDir; } diff --git a/src/app/system_windows.cpp b/src/app/system_windows.cpp index e35f83f..a300bc4 100644 --- a/src/app/system_windows.cpp +++ b/src/app/system_windows.cpp @@ -114,7 +114,7 @@ std::wstring CSystemUtilsWindows::UTF8_Decode(const std::string& str) std::string CSystemUtilsWindows::GetSaveDir() { std::string savegameDir; - + char* envUSERPROFILE = getenv("USERPROFILE"); if (envUSERPROFILE == NULL) { @@ -125,6 +125,6 @@ std::string CSystemUtilsWindows::GetSaveDir() savegameDir = std::string(envUSERPROFILE) + "\\colobot"; } GetLogger()->Trace("Saved game files are going to %s\n", savegameDir.c_str()); - + return savegameDir; } diff --git a/src/common/resources/inputstream.h b/src/common/resources/inputstream.h index 9d1c578..9573f2c 100644 --- a/src/common/resources/inputstream.h +++ b/src/common/resources/inputstream.h @@ -25,9 +25,9 @@ class CInputStream : public std::istream public: CInputStream(); virtual ~CInputStream(); - + void open(const std::string &filename); void close(); - bool is_open(); + bool is_open(); size_t size(); }; diff --git a/src/common/resources/inputstreambuffer.cpp b/src/common/resources/inputstreambuffer.cpp index b8710e9..cfa06fb 100644 --- a/src/common/resources/inputstreambuffer.cpp +++ b/src/common/resources/inputstreambuffer.cpp @@ -68,14 +68,14 @@ std::streambuf::int_type CInputStreamBuffer::underflow() { if (gptr() < egptr()) return traits_type::to_int_type(*gptr()); - + if (PHYSFS_eof(m_file)) return traits_type::eof(); - + PHYSFS_sint64 read_count = PHYSFS_read(m_file, m_buffer, sizeof(char), m_buffer_size); if (read_count <= 0) return traits_type::eof(); - + setg(m_buffer, m_buffer, m_buffer + read_count); return traits_type::to_int_type(*gptr()); @@ -98,7 +98,7 @@ std::streampos CInputStreamBuffer::seekoff(std::streamoff off, std::ios_base::se off argument is relative to way */ std::streamoff new_position; - + switch (way) { case std::ios_base::beg: diff --git a/src/common/resources/inputstreambuffer.h b/src/common/resources/inputstreambuffer.h index 93cb43c..384ebfb 100644 --- a/src/common/resources/inputstreambuffer.h +++ b/src/common/resources/inputstreambuffer.h @@ -25,7 +25,7 @@ class CInputStreamBuffer : public std::streambuf public: CInputStreamBuffer(size_t buffer_size = 512); virtual ~CInputStreamBuffer(); - + void open(const std::string &filename); void close(); bool is_open(); @@ -41,7 +41,7 @@ private: // copying not allowed CInputStreamBuffer(const CInputStreamBuffer &); CInputStreamBuffer &operator= (const CInputStreamBuffer &); - + PHYSFS_File *m_file; char *m_buffer; size_t m_buffer_size; diff --git a/src/common/resources/outputstream.h b/src/common/resources/outputstream.h index 4f4cd72..bedbbbd 100644 --- a/src/common/resources/outputstream.h +++ b/src/common/resources/outputstream.h @@ -25,7 +25,7 @@ class COutputStream : public std::ostream public: COutputStream(); virtual ~COutputStream(); - + void open(const std::string &filename); void close(); bool is_open(); diff --git a/src/common/resources/outputstreambuffer.cpp b/src/common/resources/outputstreambuffer.cpp index 22ed7cb..38979db 100644 --- a/src/common/resources/outputstreambuffer.cpp +++ b/src/common/resources/outputstreambuffer.cpp @@ -59,7 +59,7 @@ std::streambuf::int_type COutputStreamBuffer::overflow(std::streambuf::int_type { /* This function should be called when pptr() == epptr(). We use it also in sync() so we also have to write data if buffer is not full. */ - + if (pbase() == pptr()) // no data to write, sync() called with empty buffer return 0; @@ -68,7 +68,7 @@ std::streambuf::int_type COutputStreamBuffer::overflow(std::streambuf::int_type if (bytes_written <= 0) return traits_type::eof(); - pbump(-bytes_written); + pbump(-bytes_written); // write final char if (ch != traits_type::eof()) { bytes_written = PHYSFS_write(m_file, &ch, 1, 1); diff --git a/src/common/resources/outputstreambuffer.h b/src/common/resources/outputstreambuffer.h index 1d98791..1318530 100644 --- a/src/common/resources/outputstreambuffer.h +++ b/src/common/resources/outputstreambuffer.h @@ -25,7 +25,6 @@ class COutputStreamBuffer : public std::streambuf public: COutputStreamBuffer(size_t buffer_size = 512); virtual ~COutputStreamBuffer(); - void open(const std::string &filename); void close(); bool is_open(); @@ -38,7 +37,6 @@ private: // copying not allowed COutputStreamBuffer(const COutputStreamBuffer &); COutputStreamBuffer &operator= (const COutputStreamBuffer &); - PHYSFS_File *m_file; char *m_buffer; size_t m_buffer_size; diff --git a/src/common/resources/resourcemanager.cpp b/src/common/resources/resourcemanager.cpp index 0741c70..6459df0 100644 --- a/src/common/resources/resourcemanager.cpp +++ b/src/common/resources/resourcemanager.cpp @@ -22,6 +22,11 @@ #include +namespace +{ + const Uint32 PHYSFS_RWOPS_TYPE = 0xc010b04f; +} + CResourceManager::CResourceManager(const char *argv0) { @@ -53,7 +58,7 @@ bool CResourceManager::AddLocation(const std::string &location, bool prepend) CLogger::GetInstancePointer()->Error("Error while mounting \"%s\"\n", location.c_str()); } } - + return false; } @@ -67,7 +72,7 @@ bool CResourceManager::RemoveLocation(const std::string &location) CLogger::GetInstancePointer()->Error("Error while unmounting \"%s\"\n", location.c_str()); } } - + return false; } @@ -81,7 +86,7 @@ bool CResourceManager::SetSaveLocation(const std::string &location) CLogger::GetInstancePointer()->Error("Error while setting save location to \"%s\"\n", location.c_str()); } } - + return false; } @@ -94,13 +99,13 @@ SDL_RWops* CResourceManager::GetSDLFileHandler(const std::string &filename) CLogger::GetInstancePointer()->Error("Unable to allocate SDL_RWops for \"%s\"\n", filename.c_str()); return nullptr; } - + if (!PHYSFS_isInit()) { SDL_FreeRW(handler); return nullptr; } - + PHYSFS_File *file = PHYSFS_openRead(filename.c_str()); if (!file) { @@ -112,15 +117,15 @@ SDL_RWops* CResourceManager::GetSDLFileHandler(const std::string &filename) handler->read = SDLRead; handler->write = SDLWrite; handler->close = SDLClose; - handler->type = 0xc010b04f; + handler->type = PHYSFS_RWOPS_TYPE; handler->hidden.unknown.data1 = file; - + return handler; } CSNDFile* CResourceManager::GetSNDFileHandler(const std::string &filename) -{ +{ return new CSNDFile(filename); } @@ -133,15 +138,15 @@ bool CResourceManager::Exists(const std::string &filename) std::vector CResourceManager::ListFiles(const std::string &directory) { std::vector result; - + char **files = PHYSFS_enumerateFiles(directory.c_str()); - + for (char **i = files; *i != nullptr; i++) { result.push_back(*i); } - + PHYSFS_freeList(files); - + return result; } @@ -152,10 +157,10 @@ int CResourceManager::SDLClose(SDL_RWops *context) { PHYSFS_close(static_cast(context->hidden.unknown.data1)); SDL_FreeRW(context); - + return 0; } - + return 1; } @@ -166,10 +171,10 @@ int CResourceManager::SDLRead(SDL_RWops *context, void *ptr, int size, int maxnu { PHYSFS_File *file = static_cast(context->hidden.unknown.data1); SDL_memset(ptr, 0, size * maxnum); - + return PHYSFS_read(file, ptr, size, maxnum); } - + return 0; } @@ -186,37 +191,37 @@ int CResourceManager::SDLSeek(SDL_RWops *context, int offset, int whence) { PHYSFS_File *file = static_cast(context->hidden.unknown.data1); int position, result; - + switch (whence) { default: case RW_SEEK_SET: result = PHYSFS_seek(file, offset); return result > 0 ? offset : -1; - + case RW_SEEK_CUR: position = offset + PHYSFS_tell(file); result = PHYSFS_seek(file, position); return result > 0 ? position : -1; - + case RW_SEEK_END: position = PHYSFS_fileLength(file) - offset; result = PHYSFS_seek(file, position); - return result > 0 ? position : -1; + return result > 0 ? position : -1; } } - + return -1; } bool CResourceManager::CheckSDLContext(SDL_RWops *context) { - if (context->type != 0xc010b04f) + if (context->type != PHYSFS_RWOPS_TYPE) { SDL_SetError("Wrong kind of RWops"); return false; } - + return true; } diff --git a/src/common/resources/resourcestreambuffer.cpp b/src/common/resources/resourcestreambuffer.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/src/common/resources/resourcestreambuffer.h b/src/common/resources/resourcestreambuffer.h deleted file mode 100644 index e69de29..0000000 diff --git a/src/common/resources/sndfile.cpp b/src/common/resources/sndfile.cpp index 3f5a60d..b71f06a 100644 --- a/src/common/resources/sndfile.cpp +++ b/src/common/resources/sndfile.cpp @@ -31,7 +31,6 @@ CSNDFile::CSNDFile(const std::string& filename) { m_last_error = "Resource system not started!"; } - if (m_file) { m_snd_file = sf_open_virtual(&snd_callbacks, SFM_READ, &m_file_info, m_file); @@ -99,7 +98,6 @@ sf_count_t CSNDFile::SNDRead(void *ptr, sf_count_t count, void *data) sf_count_t CSNDFile::SNDSeek(sf_count_t offset, int whence, void *data) { PHYSFS_File *file = static_cast(data); - switch(whence) { case SEEK_CUR: diff --git a/src/common/resources/sndfile.h b/src/common/resources/sndfile.h index 5ea6ccc..5fc00f4 100644 --- a/src/common/resources/sndfile.h +++ b/src/common/resources/sndfile.h @@ -38,7 +38,6 @@ private: static sf_count_t SNDRead(void *ptr, sf_count_t count, void *data); static sf_count_t SNDWrite(const void *ptr, sf_count_t count, void *data); static sf_count_t SNDTell(void *data); - SF_INFO m_file_info; SNDFILE *m_snd_file; PHYSFS_File *m_file; -- cgit v1.2.3-1-g7c22 From 2b86e6e9d9be5cecc17eb509ee6fb1e2e73b184d Mon Sep 17 00:00:00 2001 From: Piotr Dziwinski Date: Sun, 7 Sep 2014 22:07:48 +0200 Subject: Rewrite CMainDialog to use physfs --- src/common/resources/resourcemanager.cpp | 52 ++++++- src/common/resources/resourcemanager.h | 15 ++ src/ui/maindialog.cpp | 248 +++++++++---------------------- src/ui/maindialog.h | 7 +- 4 files changed, 139 insertions(+), 183 deletions(-) diff --git a/src/common/resources/resourcemanager.cpp b/src/common/resources/resourcemanager.cpp index 6459df0..8e7f09f 100644 --- a/src/common/resources/resourcemanager.cpp +++ b/src/common/resources/resourcemanager.cpp @@ -22,6 +22,10 @@ #include +#include + +namespace fs = boost::filesystem; + namespace { const Uint32 PHYSFS_RWOPS_TYPE = 0xc010b04f; @@ -135,13 +139,39 @@ bool CResourceManager::Exists(const std::string &filename) return PHYSFS_exists(filename.c_str()); } +bool CResourceManager::DirectoryExists(const std::string& directory) +{ + return PHYSFS_exists(directory.c_str()) && PHYSFS_isDirectory(directory.c_str()); +} + +bool CResourceManager::CreateDirectory(const std::string& directory) +{ + return PHYSFS_mkdir(directory.c_str()); +} + +bool CResourceManager::RemoveDirectory(const std::string& directory) +{ + bool success = true; + std::string writeDir = PHYSFS_getWriteDir(); + try + { + fs::remove_all(writeDir + "/" + directory); + } + catch (std::exception & e) + { + success = false; + } + return success; +} + std::vector CResourceManager::ListFiles(const std::string &directory) { std::vector result; char **files = PHYSFS_enumerateFiles(directory.c_str()); - for (char **i = files; *i != nullptr; i++) { + for (char **i = files; *i != nullptr; i++) + { result.push_back(*i); } @@ -150,6 +180,26 @@ std::vector CResourceManager::ListFiles(const std::string &director return result; } +std::vector CResourceManager::ListDirectories(const std::string &directory) +{ + std::vector result; + + char **files = PHYSFS_enumerateFiles(directory.c_str()); + + for (char **i = files; *i != nullptr; i++) + { + std::string path = directory + "/" + (*i); + if (PHYSFS_isDirectory(path.c_str())) + { + result.push_back(*i); + } + } + + PHYSFS_freeList(files); + + return result; +} + int CResourceManager::SDLClose(SDL_RWops *context) { diff --git a/src/common/resources/resourcemanager.h b/src/common/resources/resourcemanager.h index b222048..7f99210 100644 --- a/src/common/resources/resourcemanager.h +++ b/src/common/resources/resourcemanager.h @@ -30,11 +30,26 @@ public: static bool AddLocation(const std::string &location, bool prepend = true); static bool RemoveLocation(const std::string &location); + static bool SetSaveLocation(const std::string &location); + static SDL_RWops* GetSDLFileHandler(const std::string &filename); static CSNDFile* GetSNDFileHandler(const std::string &filename); + + //! Check if file exists static bool Exists(const std::string &filename); + //! Check if file exists and is a directory + static bool DirectoryExists(const std::string& directory); + + //! Create directory in write directory + static bool CreateDirectory(const std::string& directory); + //! Remove directory in write directory, recursively + static bool RemoveDirectory(const std::string& directory); + + //! List files contained in directory static std::vector ListFiles(const std::string &directory); + //! List directories contained in directory + static std::vector ListDirectories(const std::string &directory); private: static int SDLSeek(SDL_RWops *context, int offset, int whence); diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index 068732d..ba8da9e 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -52,15 +52,12 @@ #include "ui/window.h" #include "ui/edit.h" #include "ui/editvalue.h" -#include #include #include #include #include #include -#include -#include //TODO Get rid of all sprintf's @@ -111,8 +108,6 @@ static int perso_color[3*10*3] = 0, 0, 0, // }; -namespace fs = boost::filesystem; - // Constructor of robot application. CMainDialog::CMainDialog() @@ -177,12 +172,7 @@ CMainDialog::CMainDialog() m_partiTime[i] = 0.0f; } - #if DEV_BUILD - m_savegameDir = "savegame"; - #else m_savegameDir = "savegame"; - #endif - m_publicDir = "program"; m_userDir = "user"; m_filesDir = m_savegameDir; @@ -3356,50 +3346,16 @@ std::string & CMainDialog::GetFilesDir() void CMainDialog::ReadNameList() { - CWindow* pw; - CList* pl; - //struct _finddata_t fBuffer; - char dir[MAX_FNAME]; - // char filenames[MAX_FNAME][100]; - std::vector fileNames; - - pw = static_cast(m_interface->SearchControl(EVENT_WINDOW5)); - if ( pw == 0 ) return; - pl = static_cast(pw->SearchControl(EVENT_INTERFACE_NLIST)); - if ( pl == 0 ) return; + CWindow* pw = static_cast(m_interface->SearchControl(EVENT_WINDOW5)); + if (pw == nullptr) return; + CList* pl = static_cast(pw->SearchControl(EVENT_INTERFACE_NLIST)); + if (pl == nullptr) return; pl->Flush(); - - try + auto userSaveDirs = CResourceManager::ListDirectories(m_savegameDir); + for (int i = 0; i < static_cast(userSaveDirs.size()); ++i) { - if (! fs::exists(m_savegameDir) && fs::is_directory(m_savegameDir)) - { - GetLogger()->Error("Savegame dir does not exist %s\n",dir); - } - else - { - fs::directory_iterator dirIt(m_savegameDir), dirEndIt; - - for (; dirIt != dirEndIt; ++dirIt) - { - const fs::path& p = *dirIt; - if (fs::is_directory(p)) - { - fileNames.push_back(p.leaf().string()); - } - } - } - } - catch (std::exception & e) - { - GetLogger()->Error("Error on listing savegame directory : %s\n", e.what()); - return; - } - - - for (size_t i=0 ; iSetItemName(i, fileNames.at(i).c_str()); + pl->SetItemName(i, userSaveDirs.at(i).c_str()); } } @@ -3582,7 +3538,6 @@ void CMainDialog::NameCreate() CWindow* pw; CEdit* pe; char name[100]; - std::string dir; char c; int len, i, j; @@ -3623,13 +3578,10 @@ void CMainDialog::NameCreate() return; } - // TODO: _mkdir(m_savegameDir); // if does not exist yet! - - - dir = m_savegameDir + "/" + name; - if (!fs::exists(dir)) + std::string userSaveDir = m_savegameDir + "/" + name; + if (!CResourceManager::DirectoryExists(userSaveDir)) { - fs::create_directories(dir); + CResourceManager::CreateDirectory(userSaveDir); } else { @@ -3646,58 +3598,26 @@ void CMainDialog::NameCreate() m_main->ChangePhase(PHASE_INIT); } -// Deletes a folder and all its offspring. - -bool RemoveDir(char *dirName) -{ - try - { - - if (!fs::exists(dirName) && fs::is_directory(dirName)) - { - GetLogger()->Error("Directory does not exist %s\n",dirName); - return false; - } - else - { - fs::remove_all(dirName); - } - - } - catch (std::exception & e) - { - GetLogger()->Error("Error on removing directory %s : %s\n", dirName, e.what()); - return false; - } - return true; -} - // Removes a player. void CMainDialog::NameDelete() { - CWindow* pw; - CList* pl; - int sel; - char* gamer; - char dir[100]; - - pw = static_cast(m_interface->SearchControl(EVENT_WINDOW5)); - if ( pw == 0 ) return; - pl = static_cast(pw->SearchControl(EVENT_INTERFACE_NLIST)); - if ( pl == 0 ) return; + CWindow* pw = static_cast(m_interface->SearchControl(EVENT_WINDOW5)); + if (pw == nullptr) return; + CList* pl = static_cast(pw->SearchControl(EVENT_INTERFACE_NLIST)); + if (pl == nullptr) return; - sel = pl->GetSelect(); - if ( sel == -1 ) + int sel = pl->GetSelect(); + if (sel == -1) { m_sound->Play(SOUND_TZOING); return; } - gamer = pl->GetItemName(sel); - // Deletes all the contents of the file. - sprintf(dir, "%s/%s", m_savegameDir.c_str(), gamer); - if ( !RemoveDir(dir) ) + char* gamer = pl->GetItemName(sel); + + std::string userSaveDir = m_savegameDir + "/" + gamer; + if (!CResourceManager::RemoveDirectory(userSaveDir)) { m_sound->Play(SOUND_TZOING); return; @@ -4007,17 +3927,13 @@ void CMainDialog::DefPerso() bool CMainDialog::IsIOReadScene() { - fs::directory_iterator end_iter; - - fs::path saveDir(m_savegameDir + "/" + m_main->GetGamerName()); - if (fs::exists(saveDir) && fs::is_directory(saveDir)) + std::string userSaveDir = m_savegameDir + "/" + m_main->GetGamerName(); + auto saveDirs = CResourceManager::ListDirectories(userSaveDir); + for (auto dir : saveDirs) { - for( fs::directory_iterator dir_iter(saveDir) ; dir_iter != end_iter ; ++dir_iter) + if (CResourceManager::Exists(userSaveDir + "/" + dir + "/" + "data.sav")) { - if ( fs::is_directory(dir_iter->status()) && fs::exists(dir_iter->path() / "data.sav") ) - { - return true; - } + return true; } } @@ -4091,59 +4007,53 @@ void CMainDialog::IOReadName() void CMainDialog::IOReadList() { - FILE* file = NULL; - CWindow* pw; - CList* pl; - char line[500]; - char name[100]; - int i; - std::vector v; - - pw = static_cast(m_interface->SearchControl(EVENT_WINDOW5)); - if ( pw == 0 ) return; - pl = static_cast(pw->SearchControl(EVENT_INTERFACE_IOLIST)); - if ( pl == 0 ) return; + CWindow* pw = static_cast(m_interface->SearchControl(EVENT_WINDOW5)); + if (pw == nullptr) return; + CList* pl = static_cast(pw->SearchControl(EVENT_INTERFACE_IOLIST)); + if (pl == nullptr) return; pl->Flush(); - fs::path saveDir(m_savegameDir + "/" + m_main->GetGamerName()); m_saveList.clear(); - if (fs::exists(saveDir) && fs::is_directory(saveDir)) + std::string userSaveDir = m_savegameDir + "/" + m_main->GetGamerName(); + + auto saveDirs = CResourceManager::ListDirectories(userSaveDir); + std::sort(saveDirs.begin(), saveDirs.end()); + + for (auto dir : saveDirs) { - copy(fs::directory_iterator(saveDir), fs::directory_iterator(), back_inserter(v)); - std::sort(v.begin(), v.end()); - for( std::vector::iterator iter = v.begin(); iter != v.end(); ++iter) + std::string savegameFile = userSaveDir + "/" + dir + "/" + "data.sav"; + if (CResourceManager::Exists(savegameFile)) { - if ( fs::is_directory(*iter) && fs::exists(*iter / "data.sav") ) - { + char line[500]; + char name[100]; - file = fopen((*iter / "data.sav").make_preferred().string().c_str(), "r"); - if ( file == NULL ) continue; + FILE* file = fopen(savegameFile.c_str(), "r"); + if ( file == NULL ) continue; - while ( fgets(line, 500, file) != NULL ) + while ( fgets(line, 500, file) != NULL ) + { + for (int i=0 ; i<500 ; i++ ) { - for ( i=0 ; i<500 ; i++ ) - { - if ( line[i] == '\t' ) line[i] = ' '; // replaces tab by space - if ( line[i] == '/' && line[i+1] == '/' ) - { - line[i] = 0; - break; - } - } - - if ( Cmd(line, "Title") ) + if ( line[i] == '\t' ) line[i] = ' '; // replaces tab by space + if ( line[i] == '/' && line[i+1] == '/' ) { - OpString(line, "text", name); + line[i] = 0; break; } } - fclose(file); - pl->SetItemName(m_saveList.size(), name); - m_saveList.push_back(*iter); + if ( Cmd(line, "Title") ) + { + OpString(line, "text", name); + break; + } } + fclose(file); + + pl->SetItemName(m_saveList.size(), name); + m_saveList.push_back(userSaveDir + "/" + dir); } } @@ -4182,7 +4092,7 @@ void CMainDialog::IOUpdateList() if (m_saveList.size() <= static_cast(sel)) return; - std::string filename = (m_saveList.at(sel) / "screen.png").make_preferred().string(); + std::string filename = m_saveList.at(sel) + "/" + "screen.png"; if ( m_phase == PHASE_WRITE || m_phase == PHASE_WRITEs ) { if ( sel < max-1 ) @@ -4226,16 +4136,9 @@ void CMainDialog::IODeleteScene() return; } - try - { - if (fs::exists(m_saveList.at(sel)) && fs::is_directory(m_saveList.at(sel))) - { - fs::remove_all(m_saveList.at(sel)); - } - } - catch (std::exception & e) + if (CResourceManager::DirectoryExists(m_saveList.at(sel))) { - GetLogger()->Error("Error removing save %s : %s\n", pl->GetItemName(sel), e.what()); + CResourceManager::RemoveDirectory(m_saveList.at(sel)); } IOReadList(); @@ -4279,28 +4182,28 @@ bool CMainDialog::IOWriteScene() return false; } - fs::path dir; + std::string dir; pe->GetText(info, 100); if (static_cast(sel) >= m_saveList.size()) { - dir = fs::path(m_savegameDir) / m_main->GetGamerName() / ("save" + clearName(info)); + dir = m_savegameDir + "/" + m_main->GetGamerName() + "/" + "save" + clearName(info); } else { dir = m_saveList.at(sel); } - if (!fs::exists(dir)) + if (!CResourceManager::DirectoryExists(dir)) { - fs::create_directories(dir); + CResourceManager::CreateDirectory(dir); } - std::string fileName = (dir / "data.sav").make_preferred().string(); - std::string fileCBot = (dir / "cbot.run").make_preferred().string(); - m_main->IOWriteScene(fileName.c_str(), fileCBot.c_str(), info); + std::string savegameFileName = dir + "/" + "data.sav"; + std::string fileCBot = dir + "/" + "cbot.run"; + m_main->IOWriteScene(savegameFileName.c_str(), fileCBot.c_str(), info); m_shotDelay = 3; - m_shotName = (dir / "screen.png").make_preferred().string(); + m_shotName = dir + "/" + "screen.png"; return true; } @@ -4327,8 +4230,8 @@ bool CMainDialog::IOReadScene() return false; } - std::string fileName = (m_saveList.at(sel) / "data.sav").make_preferred().string(); - std::string fileCbot = (m_saveList.at(sel) / "cbot.run").make_preferred().string(); + std::string fileName = m_saveList.at(sel) + "/" + "data.sav"; + std::string fileCbot = m_saveList.at(sel) + "/" + "cbot.run"; file = fopen(fileName.c_str(), "r"); if ( file == NULL ) @@ -4448,17 +4351,10 @@ void CMainDialog::UpdateSceneChap(int &chap) if ( m_phase == PHASE_USER ) { j = 0; - fs::directory_iterator dirIt(m_savegameDir), dirEndIt; - m_userList.clear(); - for (; dirIt != dirEndIt; ++dirIt) - { - const fs::path& p = *dirIt; - if (fs::is_directory(p)) - { - m_userList.push_back(p.leaf().string()); - } - } + auto userSaveDirs = CResourceManager::ListDirectories(m_savegameDir); + std::sort(userSaveDirs.begin(), userSaveDirs.end()); + m_userList = userSaveDirs; m_userTotal = m_userList.size(); for ( j=0 ; j -#include - #include -namespace fs = boost::filesystem; - class CEventQueue; class CSoundInterface; @@ -265,7 +260,7 @@ protected: SceneInfo m_sceneInfo[MAXSCENE]; - std::vector m_saveList; + std::vector m_saveList; }; } // namespace Ui -- cgit v1.2.3-1-g7c22 From 8433feb8bb2589d496ad6accd58d42ac86974144 Mon Sep 17 00:00:00 2001 From: Piotr Dziwinski Date: Sun, 21 Sep 2014 11:58:30 +0200 Subject: Update .gitignore files --- .gitignore | 2 ++ desktop/.gitignore | 3 +++ lib/localename/.gitignore | 1 + 3 files changed, 6 insertions(+) create mode 100644 lib/localename/.gitignore diff --git a/.gitignore b/.gitignore index 6a031c6..3dae3d9 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,8 @@ Makefile /install_manifest.txt /Testing /CTestTestfile.cmake +/CPackConfig.cmake +/CPackSourceConfig.cmake # Ignore the generated documentation /doc diff --git a/desktop/.gitignore b/desktop/.gitignore index e6649e0..b3d4193 100644 --- a/desktop/.gitignore +++ b/desktop/.gitignore @@ -3,5 +3,8 @@ fr/ 16/ 32/ 48/ +128/ +256/ +512/ colobot.6 colobot.desktop diff --git a/lib/localename/.gitignore b/lib/localename/.gitignore new file mode 100644 index 0000000..c42756f --- /dev/null +++ b/lib/localename/.gitignore @@ -0,0 +1 @@ +liblocalename.a -- cgit v1.2.3-1-g7c22 From d3a4d75c23a1dd72a1bba9b47e4dd5c6177b4157 Mon Sep 17 00:00:00 2001 From: Piotr Dziwinski Date: Sun, 21 Sep 2014 12:31:34 +0200 Subject: Updated data submodule --- data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data b/data index b457f36..97366e7 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit b457f36f0667997c2e1d30e556e933d19c781006 +Subproject commit 97366e7f8bdb781bbda78290a0146887990e5624 -- cgit v1.2.3-1-g7c22 From 9f2d544b27171c89eceedbb83bfcb26f5702dadb Mon Sep 17 00:00:00 2001 From: Piotr Dziwinski Date: Sun, 21 Sep 2014 21:28:59 +0200 Subject: Fix zenity version checking problems --- src/app/system_linux.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/system_linux.cpp b/src/app/system_linux.cpp index 837c03e..5a39679 100644 --- a/src/app/system_linux.cpp +++ b/src/app/system_linux.cpp @@ -25,7 +25,7 @@ void CSystemUtilsLinux::Init() { m_zenityAvailable = true; - if (system("zenity --version >& /dev/null") != 0) + if (system("zenity --version 1> /dev/null 2> /dev/null") != 0) { m_zenityAvailable = false; GetLogger()->Warn("Zenity not available, will fallback to console users dialogs.\n"); -- cgit v1.2.3-1-g7c22 From 740036e430d98afe487313bb5be8c5e72968eb94 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Wed, 24 Sep 2014 22:54:26 +0200 Subject: New level parser Known issues: * TerrainLevel for some reason doesn't work * %lvl% is not yet implemented everywhere because of hardcoded directories in functions --- src/CMakeLists.txt | 4 + src/object/level/parser.cpp | 221 ++++++ src/object/level/parser.h | 66 ++ src/object/level/parserexceptions.cpp | 40 + src/object/level/parserexceptions.h | 49 ++ src/object/level/parserline.cpp | 87 +++ src/object/level/parserline.h | 59 ++ src/object/level/parserparam.cpp | 930 +++++++++++++++++++++++ src/object/level/parserparam.h | 133 ++++ src/object/robotmain.cpp | 1296 +++++++++++++++------------------ src/script/cmdtoken.cpp | 2 + src/script/script.cpp | 1 - 12 files changed, 2179 insertions(+), 709 deletions(-) create mode 100644 src/object/level/parser.cpp create mode 100644 src/object/level/parser.h create mode 100644 src/object/level/parserexceptions.cpp create mode 100644 src/object/level/parserexceptions.h create mode 100644 src/object/level/parserline.cpp create mode 100644 src/object/level/parserline.h create mode 100644 src/object/level/parserparam.cpp create mode 100644 src/object/level/parserparam.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e02a30b..0440c5f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -122,6 +122,10 @@ object/auto/autosafe.cpp object/auto/autostation.cpp object/auto/autotower.cpp object/brain.cpp +object/level/parser.cpp +object/level/parserline.cpp +object/level/parserparam.cpp +object/level/parserexceptions.cpp object/mainmovie.cpp object/motion/motion.cpp object/motion/motionant.cpp diff --git a/src/object/level/parser.cpp b/src/object/level/parser.cpp new file mode 100644 index 0000000..89059d0 --- /dev/null +++ b/src/object/level/parser.cpp @@ -0,0 +1,221 @@ +// * This file is part of the COLOBOT source code +// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch +// * +// * 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 http://www.gnu.org/licenses/. + +#include "object/level/parser.h" + + +#include "app/app.h" + +#include "common/resources/inputstream.h" + +#include "object/level/parserexceptions.h" + +#include +#include +#include +#include + +#include +#include + +CLevelParser::CLevelParser() +{ + m_filename = ""; +} + +CLevelParser::CLevelParser(std::string filename) +{ + m_filename = filename; +} + +CLevelParser::CLevelParser(std::string category, int chapter, int rank) +{ + m_filename = BuildSceneName(category, chapter, rank); +} + +CLevelParser::~CLevelParser() +{ + for(auto line : m_lines) + { + delete line; + } +} + +std::string CLevelParser::BuildSceneName(std::string category, int chapter, int rank, bool sceneFile) +{ + std::ostringstream outstream; + if(category == "user") + { + //TODO: Change this to point user dir according to operating system + /*rankStream << std::setfill('0') << std::setw(2) << rank%100; + filename = m_userDir + "/" + m_userList[rank/100-1] + "/" + rankStream.str() + ".txt";*/ + assert(false); //TODO: Userlevel support + } + else if(category == "perso") + { + outstream << "levels/other/perso.txt"; + } + else if(category == "win" || category == "lost") + { + outstream << "levels/other/"; + outstream << category << std::setfill('0') << std::setw(3) << chapter*100+rank << ".txt"; + } + else + { + outstream << "levels/" << category << "/"; + outstream << "chapter" << std::setfill('0') << std::setw(3) << chapter; + if(rank == 000) + { + if(sceneFile) + { + outstream << "/chaptertitle.txt"; + } + } + else + { + outstream << "/level" << std::setfill('0') << std::setw(3) << rank; + if(sceneFile) + { + outstream << "/scene.txt"; + } + } + } + return outstream.str(); +} + +void CLevelParser::Load() +{ + CInputStream file; + file.open(m_filename); + if(!file.is_open()) + throw CLevelParserException("Failed to open file: "+m_filename); + + char lang = CApplication::GetInstancePointer()->GetLanguageChar(); + + std::string line; + int lineNumber = 0; + std::map translatableLines; + while(getline(file,line)) + { + lineNumber++; + + boost::replace_all(line, "\t", " "); // replace tab by space + + // ignore comments + std::size_t comment = line.find("//"); + if(comment != std::string::npos) + line = line.substr(0, comment); + + boost::algorithm::trim(line); + + std::size_t pos = line.find_first_of(" \t\n"); + std::string command = line.substr(0, pos); + if(pos != std::string::npos) { + line = line.substr(pos+1); + boost::algorithm::trim(line); + } else { + line = ""; + } + if(command.empty()) continue; + + CLevelParserLine* parserLine = new CLevelParserLine(lineNumber, command); + + std::string baseCommand = command; + if(command[command.length()-2] == '.') { + baseCommand = command.substr(0, command.length()-2); + if(command[command.length()-1] == 'E' && translatableLines[baseCommand] == nullptr) { + parserLine->SetCommand(baseCommand); + translatableLines[baseCommand] = parserLine; + } else if(command[command.length()-1] == lang) { + if(translatableLines[baseCommand] != nullptr) { + m_lines.erase(std::remove(m_lines.begin(), m_lines.end(), translatableLines[baseCommand]), m_lines.end()); + delete translatableLines[baseCommand]; + } + parserLine->SetCommand(baseCommand); + translatableLines[baseCommand] = parserLine; + } else { + delete parserLine; + continue; + } + } + + while(!line.empty()) { + pos = line.find_first_of("="); + std::string paramName = line.substr(0, pos); + boost::algorithm::trim(paramName); + line = line.substr(pos+1); + boost::algorithm::trim(line); + + if(line[0] == '\"') { + pos = line.find_first_of("\"", 1); + if(pos == std::string::npos) + throw CLevelParserException("Unclosed \" in "+m_filename+":"+std::to_string(lineNumber)); + } else if(line[0] == '\'') { + pos = line.find_first_of("'", 1); + if(pos == std::string::npos) + throw CLevelParserException("Unclosed ' in "+m_filename+":"+std::to_string(lineNumber)); + } else { + pos = line.find_first_of("="); + if(pos != std::string::npos) { + std::size_t pos2 = line.find_last_of(" \t\n", line.find_last_not_of(" \t\n", pos-1)); + if(pos2 != std::string::npos) + pos = pos2; + } else { + pos = line.length()-1; + } + } + std::string paramValue = line.substr(0, pos+1); + boost::algorithm::trim(paramValue); + + parserLine->AddParam(paramName, new CLevelParserParam(paramName, paramValue)); + + if(pos == std::string::npos) + break; + line = line.substr(pos+1); + boost::algorithm::trim(line); + } + + AddLine(parserLine); + } + + file.close(); +} + +void CLevelParser::Save(std::string filename) +{ + assert(false); //TODO +} + +const std::string& CLevelParser::GetFilename() +{ + return m_filename; +} + +std::vector CLevelParser::GetLines() +{ + return m_lines; +} + +void CLevelParser::AddLine(CLevelParserLine* line) +{ + line->SetLevel(this); + m_lines.push_back(line); +} + +CLevelParserLine* CLevelParser::Get(std::string command) +{ + assert(false); //TODO +} \ No newline at end of file diff --git a/src/object/level/parser.h b/src/object/level/parser.h new file mode 100644 index 0000000..3bae2eb --- /dev/null +++ b/src/object/level/parser.h @@ -0,0 +1,66 @@ +// * This file is part of the COLOBOT source code +// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch +// * +// * 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 http://www.gnu.org/licenses/. + +/** + * \file object/level/parser.h + * \brief Parser for level files + */ + +#pragma once + +#include "object/level/parserline.h" +#include "object/level/parserparam.h" +#include "object/level/parserexceptions.h" + +#include +#include + +class CLevelParser +{ +public: + //! Create an empty level file + CLevelParser(); + //! Load level from file + CLevelParser(std::string filename); + //! Load given level + CLevelParser(std::string category, int chapter, int rank); + + ~CLevelParser(); + + //! Build level filename + static std::string BuildSceneName(std::string category, int chapter, int rank, bool sceneFile = true); + + //! Load file + void Load(); + //! Save file + void Save(std::string filename); + + //! Get filename + const std::string& GetFilename(); + + //! Get all lines from file + std::vector GetLines(); + //! Insert new line to file + void AddLine(CLevelParserLine* line); + + //! Find first line with given command + CLevelParserLine* Get(std::string command); + +private: + + std::string m_filename; + std::vector m_lines; +}; \ No newline at end of file diff --git a/src/object/level/parserexceptions.cpp b/src/object/level/parserexceptions.cpp new file mode 100644 index 0000000..d5c4620 --- /dev/null +++ b/src/object/level/parserexceptions.cpp @@ -0,0 +1,40 @@ +// * This file is part of the COLOBOT source code +// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch +// * +// * 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 http://www.gnu.org/licenses/. + +#include "object/level/parserexceptions.h" + + +#include "object/level/parser.h" + +CLevelParserException::CLevelParserException(std::string message) noexcept +{ + m_message = message; +} + +const char* CLevelParserException::what() const noexcept +{ + return m_message.c_str(); +} + +CLevelParserExceptionMissingParam::CLevelParserExceptionMissingParam(CLevelParserParam* thisParam) noexcept +: CLevelParserException("Missing required param "+thisParam->GetName()+" (in "+thisParam->GetLine()->GetLevel()->GetFilename()+":"+std::to_string(thisParam->GetLine()->GetLineNumber())+")") +{ +} + +CLevelParserExceptionBadParam::CLevelParserExceptionBadParam(CLevelParserParam* thisParam, std::string requestedType) noexcept +: CLevelParserException("Unable to parse '"+thisParam->GetValue()+"' as "+requestedType+" (param '"+thisParam->GetName()+"' in "+thisParam->GetLine()->GetLevel()->GetFilename()+":"+std::to_string(thisParam->GetLine()->GetLineNumber())+")") +{ +} \ No newline at end of file diff --git a/src/object/level/parserexceptions.h b/src/object/level/parserexceptions.h new file mode 100644 index 0000000..813467f --- /dev/null +++ b/src/object/level/parserexceptions.h @@ -0,0 +1,49 @@ +// * This file is part of the COLOBOT source code +// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch +// * +// * 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 http://www.gnu.org/licenses/. + +/** + * \file object/level/parserexceptions.h + * \brief Exceptions that could be thrown in level parser + */ + +#pragma once + +#include +#include + +class CLevelParserParam; + +class CLevelParserException : public std::exception +{ +public: + CLevelParserException(std::string message) noexcept; + const char* what() const noexcept; + +protected: + std::string m_message; +}; + +class CLevelParserExceptionMissingParam : public CLevelParserException +{ +public: + CLevelParserExceptionMissingParam(CLevelParserParam* thisParam) noexcept; +}; + +class CLevelParserExceptionBadParam : public CLevelParserException +{ +public: + CLevelParserExceptionBadParam(CLevelParserParam* thisParam, std::string requestedType) noexcept; +}; \ No newline at end of file diff --git a/src/object/level/parserline.cpp b/src/object/level/parserline.cpp new file mode 100644 index 0000000..37f6397 --- /dev/null +++ b/src/object/level/parserline.cpp @@ -0,0 +1,87 @@ +// * This file is part of the COLOBOT source code +// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch +// * +// * 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 http://www.gnu.org/licenses/. + +#include "object/level/parserline.h" + + +#include "object/level/parser.h" +#include "common/logger.h" + +CLevelParserLine::CLevelParserLine(std::string command) +{ + m_command = command; + m_lineNumber = 0; +} + +CLevelParserLine::CLevelParserLine(int lineNumber, std::string command) +{ + m_command = command; + m_lineNumber = lineNumber; +} + +CLevelParserLine::~CLevelParserLine() +{ + for(auto param : m_params) + { + delete param.second; + } +} + +std::string CLevelParserLine::GetLine() +{ + assert(false); //TODO +} + +int CLevelParserLine::GetLineNumber() +{ + return m_lineNumber; +} + +CLevelParser* CLevelParserLine::GetLevel() +{ + return m_level; +} + +void CLevelParserLine::SetLevel(CLevelParser* level) +{ + m_level = level; +} + +std::string CLevelParserLine::GetCommand() +{ + return m_command; +} + +void CLevelParserLine::SetCommand(std::string command) +{ + m_command = command; +} + +CLevelParserParam* CLevelParserLine::GetParam(std::string name) +{ + if(m_params[name] == nullptr) { + CLevelParserParam* param = new CLevelParserParam(name, true); + param->SetLine(this); + m_params[name] = param; + } + return m_params[name]; +} + +void CLevelParserLine::AddParam(std::string name, CLevelParserParam* value) +{ + value->SetLine(this); + m_params[name] = value; +} \ No newline at end of file diff --git a/src/object/level/parserline.h b/src/object/level/parserline.h new file mode 100644 index 0000000..e8da34f --- /dev/null +++ b/src/object/level/parserline.h @@ -0,0 +1,59 @@ +// * This file is part of the COLOBOT source code +// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch +// * +// * 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 http://www.gnu.org/licenses/. + +/** + * \file object/level/parserline.h + * \brief Class for one line from level file + */ + +#pragma once + +#include +#include + +class CLevelParser; +class CLevelParserParam; + +class CLevelParserLine +{ +public: + CLevelParserLine(int lineNumber, std::string command); + CLevelParserLine(std::string command); + ~CLevelParserLine(); + + //! Get line to be saved in level file + std::string GetLine(); + + //! Get line number + int GetLineNumber(); + + //! Get CLevelParser this line is part of + CLevelParser* GetLevel(); + //! Set CLevelParser this line is part of + void SetLevel(CLevelParser* level); + + std::string GetCommand(); + void SetCommand(std::string command); + + CLevelParserParam* GetParam(std::string name); + void AddParam(std::string name, CLevelParserParam* value); + +private: + CLevelParser* m_level; + int m_lineNumber; + std::string m_command; + std::map m_params; +}; \ No newline at end of file diff --git a/src/object/level/parserparam.cpp b/src/object/level/parserparam.cpp new file mode 100644 index 0000000..ec043b4 --- /dev/null +++ b/src/object/level/parserparam.cpp @@ -0,0 +1,930 @@ +// * This file is part of the COLOBOT source code +// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch +// * +// * 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 http://www.gnu.org/licenses/. + +#include "object/level/parserline.h" + + +#include "app/app.h" +#include "common/logger.h" +#include "object/level/parser.h" +#include "object/robotmain.h" + +#include +#include + +CLevelParserParam::CLevelParserParam(std::string name, std::string value) +{ + m_name = name; + m_value = value; + m_empty = false; +} + +CLevelParserParam::CLevelParserParam(std::string name, bool empty) +{ + assert(empty == true); // we need a second argument because we don't want to create param with value "name" + m_name = name; + m_value = ""; + m_empty = true; +} + +CLevelParserParam::~CLevelParserParam() +{ + for(auto& a : m_array) + delete a; +} + +void CLevelParserParam::SetLine(CLevelParserLine* line) +{ + m_line = line; +} + +CLevelParserLine* CLevelParserParam::GetLine() +{ + return m_line; +} + +std::string CLevelParserParam::GetName() +{ + return m_name; +} + +std::string CLevelParserParam::GetValue() +{ + return m_value; +} + +bool CLevelParserParam::IsDefined() +{ + return !m_empty; +} + +template +T CLevelParserParam::Cast(std::string value, std::string requestedType) +{ + try { + return boost::lexical_cast(value); + } + catch(...) + { + throw CLevelParserExceptionBadParam(this, requestedType); + } +} + +template +T CLevelParserParam::Cast(std::string requestedType) +{ + return Cast(m_value, requestedType); +} + + +int CLevelParserParam::AsInt() +{ + if(m_empty) + throw CLevelParserExceptionMissingParam(this); + return Cast("int"); +} + + +int CLevelParserParam::AsInt(int def) +{ + if(m_empty) + return def; + return AsInt(); +} + + +float CLevelParserParam::AsFloat() +{ + if(m_empty) + throw CLevelParserExceptionMissingParam(this); + return Cast("float"); +} + +float CLevelParserParam::AsFloat(float def) +{ + if(m_empty) + return def; + return AsFloat(); +} + + +std::string CLevelParserParam::AsString() +{ + if(m_empty) + throw CLevelParserExceptionMissingParam(this); + if((m_value[0] == '\"' && m_value[m_value.length()-1] == '\"') || (m_value[0] == '\'' && m_value[m_value.length()-1] == '\'')) + { + return m_value.substr(1, m_value.length()-2); + } else { + throw CLevelParserExceptionBadParam(this, "string"); + } +} + +std::string CLevelParserParam::AsString(std::string def) +{ + if(m_empty) + return def; + return AsString(); +} + + +bool CLevelParserParam::AsBool() +{ + if(m_empty) + throw CLevelParserExceptionMissingParam(this); + std::string value = m_value; + boost::to_lower(value); + if(value == "true") return true; + if(value == "false") return false; + return Cast("bool"); +} + +bool CLevelParserParam::AsBool(bool def) +{ + if(m_empty) + return def; + return AsBool(); +} + + +std::string CLevelParserParam::InjectLevelDir(std::string path, const std::string defaultDir) +{ + std::string newPath = path; + std::string lvlDir = CLevelParser::BuildSceneName(CRobotMain::GetInstancePointer()->GetSceneName(), CRobotMain::GetInstancePointer()->GetSceneRank()/100, CRobotMain::GetInstancePointer()->GetSceneRank()%100, false); + boost::replace_all(newPath, "%lvl%", lvlDir); + if(newPath == path) + { + newPath = defaultDir + (!defaultDir.empty() ? "/" : "") + newPath; + } else { + if(defaultDir == "") + throw CLevelParserException("TODO: Param "+m_name+" does not yet support %lvl%! :("); + } + //TODO: Fallback to English + std::string langStr(1, CApplication::GetInstancePointer()->GetLanguageChar()); + boost::replace_all(newPath, "%lng%", langStr); + return newPath; +} + +std::string CLevelParserParam::AsPath(const std::string defaultDir) +{ + if(m_empty) + throw CLevelParserExceptionMissingParam(this); + + return InjectLevelDir(AsString(), defaultDir); +} + +std::string CLevelParserParam::AsPath(const std::string defaultDir, std::string def) +{ + if(m_empty) + return InjectLevelDir(def, defaultDir); + + return InjectLevelDir(AsString(def), defaultDir); +} + + +Gfx::Color CLevelParserParam::AsColor() +{ + if(m_empty) + throw CLevelParserExceptionMissingParam(this); + + ParseArray(); + + if(m_array.size() == 3) { //RGB + return Gfx::Color(m_array[0]->AsFloat(), m_array[1]->AsFloat(), m_array[2]->AsFloat()); + } else if(m_array.size() == 4) { //RGBA + return Gfx::Color(m_array[0]->AsFloat(), m_array[1]->AsFloat(), m_array[2]->AsFloat(), m_array[3]->AsFloat()); + } else { + throw CLevelParserExceptionBadParam(this, "color"); + } +} + +Gfx::Color CLevelParserParam::AsColor(Gfx::Color def) +{ + if(m_empty) + return def; + return AsColor(); +} + + +Math::Vector CLevelParserParam::AsPoint() +{ + if(m_empty) + throw CLevelParserExceptionMissingParam(this); + + ParseArray(); + + if(m_array.size() == 2) { //XZ + return Math::Vector(m_array[0]->AsFloat(), 0.0f, m_array[1]->AsFloat()); + } else if(m_array.size() == 3) { //XYZ + return Math::Vector(m_array[0]->AsFloat(), m_array[1]->AsFloat(), m_array[2]->AsFloat()); + } else { + throw CLevelParserExceptionBadParam(this, "point"); + } +} + +Math::Vector CLevelParserParam::AsPoint(Math::Vector def) +{ + if(m_empty) + return def; + return AsPoint(); +} + + +ObjectType CLevelParserParam::ToObjectType(std::string value) +{ + if(value == "All" ) return OBJECT_NULL; + if(value == "Portico" ) return OBJECT_PORTICO; + if(value == "SpaceShip" ) return OBJECT_BASE; + if(value == "PracticeBot" ) return OBJECT_MOBILEwt; + if(value == "WingedGrabber" ) return OBJECT_MOBILEfa; + if(value == "TrackedGrabber" ) return OBJECT_MOBILEta; + if(value == "WheeledGrabber" ) return OBJECT_MOBILEwa; + if(value == "LeggedGrabber" ) return OBJECT_MOBILEia; + if(value == "WingedShooter" ) return OBJECT_MOBILEfc; + if(value == "TrackedShooter" ) return OBJECT_MOBILEtc; + if(value == "WheeledShooter" ) return OBJECT_MOBILEwc; + if(value == "LeggedShooter" ) return OBJECT_MOBILEic; + if(value == "WingedOrgaShooter" ) return OBJECT_MOBILEfi; + if(value == "TrackedOrgaShooter") return OBJECT_MOBILEti; + if(value == "WheeledOrgaShooter") return OBJECT_MOBILEwi; + if(value == "LeggedOrgaShooter" ) return OBJECT_MOBILEii; + if(value == "WingedSniffer" ) return OBJECT_MOBILEfs; + if(value == "TrackedSniffer" ) return OBJECT_MOBILEts; + if(value == "WheeledSniffer" ) return OBJECT_MOBILEws; + if(value == "LeggedSniffer" ) return OBJECT_MOBILEis; + if(value == "Thumper" ) return OBJECT_MOBILErt; + if(value == "PhazerShooter" ) return OBJECT_MOBILErc; + if(value == "Recycler" ) return OBJECT_MOBILErr; + if(value == "Shielder" ) return OBJECT_MOBILErs; + if(value == "Subber" ) return OBJECT_MOBILEsa; + if(value == "TargetBot" ) return OBJECT_MOBILEtg; + if(value == "Scribbler" ) return OBJECT_MOBILEdr; + if(value == "PowerSpot" ) return OBJECT_MARKPOWER; + if(value == "TitaniumSpot" ) return OBJECT_MARKSTONE; + if(value == "UraniumSpot" ) return OBJECT_MARKURANIUM; + if(value == "PlatinumSpot" ) return OBJECT_MARKURANIUM; + if(value == "KeyASpot" ) return OBJECT_MARKKEYa; + if(value == "KeyBSpot" ) return OBJECT_MARKKEYb; + if(value == "KeyCSpot" ) return OBJECT_MARKKEYc; + if(value == "KeyDSpot" ) return OBJECT_MARKKEYd; + if(value == "WayPoint" ) return OBJECT_WAYPOINT; + if(value == "BlueFlag" ) return OBJECT_FLAGb; + if(value == "RedFlag" ) return OBJECT_FLAGr; + if(value == "GreenFlag" ) return OBJECT_FLAGg; + if(value == "YellowFlag" ) return OBJECT_FLAGy; + if(value == "VioletFlag" ) return OBJECT_FLAGv; + if(value == "PowerCell" ) return OBJECT_POWER; + if(value == "FuelCellPlant" ) return OBJECT_NUCLEAR; + if(value == "FuelCell" ) return OBJECT_ATOMIC; + if(value == "NuclearCell" ) return OBJECT_ATOMIC; + if(value == "TitaniumOre" ) return OBJECT_STONE; + if(value == "UraniumOre" ) return OBJECT_URANIUM; + if(value == "PlatinumOre" ) return OBJECT_URANIUM; + if(value == "Titanium" ) return OBJECT_METAL; + if(value == "OrgaMatter" ) return OBJECT_BULLET; + if(value == "BlackBox" ) return OBJECT_BBOX; + if(value == "KeyA" ) return OBJECT_KEYa; + if(value == "KeyB" ) return OBJECT_KEYb; + if(value == "KeyC" ) return OBJECT_KEYc; + if(value == "KeyD" ) return OBJECT_KEYd; + if(value == "TNT" ) return OBJECT_TNT; + if(value == "Scrap1" ) return OBJECT_SCRAP1; + if(value == "Scrap2" ) return OBJECT_SCRAP2; + if(value == "Scrap3" ) return OBJECT_SCRAP3; + if(value == "Scrap4" ) return OBJECT_SCRAP4; + if(value == "Scrap5" ) return OBJECT_SCRAP5; + if(value == "Mine" ) return OBJECT_BOMB; + if(value == "Firework" ) return OBJECT_WINFIRE; + if(value == "Bag" ) return OBJECT_BAG; + if(value == "Greenery0" ) return OBJECT_PLANT0; + if(value == "Greenery1" ) return OBJECT_PLANT1; + if(value == "Greenery2" ) return OBJECT_PLANT2; + if(value == "Greenery3" ) return OBJECT_PLANT3; + if(value == "Greenery4" ) return OBJECT_PLANT4; + if(value == "Greenery5" ) return OBJECT_PLANT5; + if(value == "Greenery6" ) return OBJECT_PLANT6; + if(value == "Greenery7" ) return OBJECT_PLANT7; + if(value == "Greenery8" ) return OBJECT_PLANT8; + if(value == "Greenery9" ) return OBJECT_PLANT9; + if(value == "Greenery10" ) return OBJECT_PLANT10; + if(value == "Greenery11" ) return OBJECT_PLANT11; + if(value == "Greenery12" ) return OBJECT_PLANT12; + if(value == "Greenery13" ) return OBJECT_PLANT13; + if(value == "Greenery14" ) return OBJECT_PLANT14; + if(value == "Greenery15" ) return OBJECT_PLANT15; + if(value == "Greenery16" ) return OBJECT_PLANT16; + if(value == "Greenery17" ) return OBJECT_PLANT17; + if(value == "Greenery18" ) return OBJECT_PLANT18; + if(value == "Greenery19" ) return OBJECT_PLANT19; + if(value == "Tree0" ) return OBJECT_TREE0; + if(value == "Tree1" ) return OBJECT_TREE1; + if(value == "Tree2" ) return OBJECT_TREE2; + if(value == "Tree3" ) return OBJECT_TREE3; + if(value == "Tree4" ) return OBJECT_TREE4; + if(value == "Tree5" ) return OBJECT_TREE5; + if(value == "Mushroom1" ) return OBJECT_MUSHROOM1; + if(value == "Mushroom2" ) return OBJECT_MUSHROOM2; + if(value == "Home" ) return OBJECT_HOME1; + if(value == "Derrick" ) return OBJECT_DERRICK; + if(value == "BotFactory" ) return OBJECT_FACTORY; + if(value == "PowerStation" ) return OBJECT_STATION; + if(value == "Converter" ) return OBJECT_CONVERT; + if(value == "RepairCenter" ) return OBJECT_REPAIR; + if(value == "Destroyer" ) return OBJECT_DESTROYER; + if(value == "DefenseTower" ) return OBJECT_TOWER; + if(value == "AlienNest" ) return OBJECT_NEST; + if(value == "ResearchCenter" ) return OBJECT_RESEARCH; + if(value == "RadarStation" ) return OBJECT_RADAR; + if(value == "ExchangePost" ) return OBJECT_INFO; + if(value == "PowerPlant" ) return OBJECT_ENERGY; + if(value == "AutoLab" ) return OBJECT_LABO; + if(value == "NuclearPlant" ) return OBJECT_NUCLEAR; + if(value == "PowerCaptor" ) return OBJECT_PARA; + if(value == "Vault" ) return OBJECT_SAFE; + if(value == "Houston" ) return OBJECT_HUSTON; + if(value == "Target1" ) return OBJECT_TARGET1; + if(value == "Target2" ) return OBJECT_TARGET2; + if(value == "StartArea" ) return OBJECT_START; + if(value == "GoalArea" ) return OBJECT_END; + if(value == "AlienQueen" ) return OBJECT_MOTHER; + if(value == "AlienEgg" ) return OBJECT_EGG; + if(value == "AlienAnt" ) return OBJECT_ANT; + if(value == "AlienSpider" ) return OBJECT_SPIDER; + if(value == "AlienWasp" ) return OBJECT_BEE; + if(value == "AlienWorm" ) return OBJECT_WORM; + if(value == "WreckBotw1" ) return OBJECT_RUINmobilew1; + if(value == "WreckBotw2" ) return OBJECT_RUINmobilew2; + if(value == "WreckBott1" ) return OBJECT_RUINmobilet1; + if(value == "WreckBott2" ) return OBJECT_RUINmobilet2; + if(value == "WreckBotr1" ) return OBJECT_RUINmobiler1; + if(value == "WreckBotr2" ) return OBJECT_RUINmobiler2; + if(value == "RuinBotFactory" ) return OBJECT_RUINfactory; + if(value == "RuinDoor" ) return OBJECT_RUINdoor; + if(value == "RuinSupport" ) return OBJECT_RUINsupport; + if(value == "RuinRadar" ) return OBJECT_RUINradar; + if(value == "RuinConvert" ) return OBJECT_RUINconvert; + if(value == "RuinBaseCamp" ) return OBJECT_RUINbase; + if(value == "RuinHeadCamp" ) return OBJECT_RUINhead; + if(value == "Barrier0" ) return OBJECT_BARRIER0; + if(value == "Barrier1" ) return OBJECT_BARRIER1; + if(value == "Barrier2" ) return OBJECT_BARRIER2; + if(value == "Barrier3" ) return OBJECT_BARRIER3; + if(value == "Teen0" ) return OBJECT_TEEN0; + if(value == "Teen1" ) return OBJECT_TEEN1; + if(value == "Teen2" ) return OBJECT_TEEN2; + if(value == "Teen3" ) return OBJECT_TEEN3; + if(value == "Teen4" ) return OBJECT_TEEN4; + if(value == "Teen5" ) return OBJECT_TEEN5; + if(value == "Teen6" ) return OBJECT_TEEN6; + if(value == "Teen7" ) return OBJECT_TEEN7; + if(value == "Teen8" ) return OBJECT_TEEN8; + if(value == "Teen9" ) return OBJECT_TEEN9; + if(value == "Teen10" ) return OBJECT_TEEN10; + if(value == "Teen11" ) return OBJECT_TEEN11; + if(value == "Teen12" ) return OBJECT_TEEN12; + if(value == "Teen13" ) return OBJECT_TEEN13; + if(value == "Teen14" ) return OBJECT_TEEN14; + if(value == "Teen15" ) return OBJECT_TEEN15; + if(value == "Teen16" ) return OBJECT_TEEN16; + if(value == "Teen17" ) return OBJECT_TEEN17; + if(value == "Teen18" ) return OBJECT_TEEN18; + if(value == "Teen19" ) return OBJECT_TEEN19; + if(value == "Teen20" ) return OBJECT_TEEN20; + if(value == "Teen21" ) return OBJECT_TEEN21; + if(value == "Teen22" ) return OBJECT_TEEN22; + if(value == "Teen23" ) return OBJECT_TEEN23; + if(value == "Teen24" ) return OBJECT_TEEN24; + if(value == "Teen25" ) return OBJECT_TEEN25; + if(value == "Teen26" ) return OBJECT_TEEN26; + if(value == "Teen27" ) return OBJECT_TEEN27; + if(value == "Teen28" ) return OBJECT_TEEN28; + if(value == "Teen29" ) return OBJECT_TEEN29; + if(value == "Teen30" ) return OBJECT_TEEN30; + if(value == "Teen31" ) return OBJECT_TEEN31; + if(value == "Teen32" ) return OBJECT_TEEN32; + if(value == "Teen33" ) return OBJECT_TEEN33; + if(value == "Stone" ) return OBJECT_TEEN34; + if(value == "Teen35" ) return OBJECT_TEEN35; + if(value == "Teen36" ) return OBJECT_TEEN36; + if(value == "Teen37" ) return OBJECT_TEEN37; + if(value == "Teen38" ) return OBJECT_TEEN38; + if(value == "Teen39" ) return OBJECT_TEEN39; + if(value == "Teen40" ) return OBJECT_TEEN40; + if(value == "Teen41" ) return OBJECT_TEEN41; + if(value == "Teen42" ) return OBJECT_TEEN42; + if(value == "Teen43" ) return OBJECT_TEEN43; + if(value == "Teen44" ) return OBJECT_TEEN44; + if(value == "Quartz0" ) return OBJECT_QUARTZ0; + if(value == "Quartz1" ) return OBJECT_QUARTZ1; + if(value == "Quartz2" ) return OBJECT_QUARTZ2; + if(value == "Quartz3" ) return OBJECT_QUARTZ3; + if(value == "MegaStalk0" ) return OBJECT_ROOT0; + if(value == "MegaStalk1" ) return OBJECT_ROOT1; + if(value == "MegaStalk2" ) return OBJECT_ROOT2; + if(value == "MegaStalk3" ) return OBJECT_ROOT3; + if(value == "MegaStalk4" ) return OBJECT_ROOT4; + if(value == "MegaStalk5" ) return OBJECT_ROOT5; + if(value == "ApolloLEM" ) return OBJECT_APOLLO1; + if(value == "ApolloJeep" ) return OBJECT_APOLLO2; + if(value == "ApolloFlag" ) return OBJECT_APOLLO3; + if(value == "ApolloModule" ) return OBJECT_APOLLO4; + if(value == "ApolloAntenna" ) return OBJECT_APOLLO5; + if(value == "Me" ) return OBJECT_HUMAN; + if(value == "Tech" ) return OBJECT_TECH; + if(value == "MissionController" ) return OBJECT_CONTROLLER; + return static_cast(Cast(value, "object")); +} + +const std::string CLevelParserParam::FromObjectType(ObjectType value) +{ + if(value == OBJECT_PORTICO ) return "Portico"; + if(value == OBJECT_BASE ) return "SpaceShip"; + if(value == OBJECT_MOBILEwt ) return "PracticeBot"; + if(value == OBJECT_MOBILEfa ) return "WingedGrabber"; + if(value == OBJECT_MOBILEta ) return "TrackedGrabber"; + if(value == OBJECT_MOBILEwa ) return "WheeledGrabber"; + if(value == OBJECT_MOBILEia ) return "LeggedGrabber"; + if(value == OBJECT_MOBILEfc ) return "WingedShooter"; + if(value == OBJECT_MOBILEtc ) return "TrackedShooter"; + if(value == OBJECT_MOBILEwc ) return "WheeledShooter"; + if(value == OBJECT_MOBILEic ) return "LeggedShooter"; + if(value == OBJECT_MOBILEfi ) return "WingedOrgaShooter"; + if(value == OBJECT_MOBILEti ) return "TrackedOrgaShooter"; + if(value == OBJECT_MOBILEwi ) return "WheeledOrgaShooter"; + if(value == OBJECT_MOBILEii ) return "LeggedOrgaShooter"; + if(value == OBJECT_MOBILEfs ) return "WingedSniffer"; + if(value == OBJECT_MOBILEts ) return "TrackedSniffer"; + if(value == OBJECT_MOBILEws ) return "WheeledSniffer"; + if(value == OBJECT_MOBILEis ) return "LeggedSniffer"; + if(value == OBJECT_MOBILErt ) return "Thumper"; + if(value == OBJECT_MOBILErc ) return "PhazerShooter"; + if(value == OBJECT_MOBILErr ) return "Recycler"; + if(value == OBJECT_MOBILErs ) return "Shielder"; + if(value == OBJECT_MOBILEsa ) return "Subber"; + if(value == OBJECT_MOBILEtg ) return "TargetBot"; + if(value == OBJECT_MOBILEdr ) return "Scribbler"; + if(value == OBJECT_MARKPOWER ) return "PowerSpot"; + if(value == OBJECT_MARKSTONE ) return "TitaniumSpot"; + if(value == OBJECT_MARKURANIUM ) return "UraniumSpot"; + if(value == OBJECT_MARKKEYa ) return "KeyASpot"; + if(value == OBJECT_MARKKEYb ) return "KeyBSpot"; + if(value == OBJECT_MARKKEYc ) return "KeyCSpot"; + if(value == OBJECT_MARKKEYd ) return "KeyDSpot"; + if(value == OBJECT_WAYPOINT ) return "WayPoint"; + if(value == OBJECT_FLAGb ) return "BlueFlag"; + if(value == OBJECT_FLAGr ) return "RedFlag"; + if(value == OBJECT_FLAGg ) return "GreenFlag"; + if(value == OBJECT_FLAGy ) return "YellowFlag"; + if(value == OBJECT_FLAGv ) return "VioletFlag"; + if(value == OBJECT_POWER ) return "PowerCell"; + if(value == OBJECT_ATOMIC ) return "NuclearCell"; + if(value == OBJECT_STONE ) return "TitaniumOre"; + if(value == OBJECT_URANIUM ) return "UraniumOre"; + if(value == OBJECT_METAL ) return "Titanium"; + if(value == OBJECT_BULLET ) return "OrgaMatter"; + if(value == OBJECT_BBOX ) return "BlackBox"; + if(value == OBJECT_KEYa ) return "KeyA"; + if(value == OBJECT_KEYb ) return "KeyB"; + if(value == OBJECT_KEYc ) return "KeyC"; + if(value == OBJECT_KEYd ) return "KeyD"; + if(value == OBJECT_TNT ) return "TNT"; + if(value == OBJECT_SCRAP1 ) return "Scrap1"; + if(value == OBJECT_SCRAP2 ) return "Scrap2"; + if(value == OBJECT_SCRAP3 ) return "Scrap3"; + if(value == OBJECT_SCRAP4 ) return "Scrap4"; + if(value == OBJECT_SCRAP5 ) return "Scrap5"; + if(value == OBJECT_BOMB ) return "Mine"; + if(value == OBJECT_WINFIRE ) return "Firework"; + if(value == OBJECT_BAG ) return "Bag"; + if(value == OBJECT_PLANT0 ) return "Greenery0"; + if(value == OBJECT_PLANT1 ) return "Greenery1"; + if(value == OBJECT_PLANT2 ) return "Greenery2"; + if(value == OBJECT_PLANT3 ) return "Greenery3"; + if(value == OBJECT_PLANT4 ) return "Greenery4"; + if(value == OBJECT_PLANT5 ) return "Greenery5"; + if(value == OBJECT_PLANT6 ) return "Greenery6"; + if(value == OBJECT_PLANT7 ) return "Greenery7"; + if(value == OBJECT_PLANT8 ) return "Greenery8"; + if(value == OBJECT_PLANT9 ) return "Greenery9"; + if(value == OBJECT_PLANT10 ) return "Greenery10"; + if(value == OBJECT_PLANT11 ) return "Greenery11"; + if(value == OBJECT_PLANT12 ) return "Greenery12"; + if(value == OBJECT_PLANT13 ) return "Greenery13"; + if(value == OBJECT_PLANT14 ) return "Greenery14"; + if(value == OBJECT_PLANT15 ) return "Greenery15"; + if(value == OBJECT_PLANT16 ) return "Greenery16"; + if(value == OBJECT_PLANT17 ) return "Greenery17"; + if(value == OBJECT_PLANT18 ) return "Greenery18"; + if(value == OBJECT_PLANT19 ) return "Greenery19"; + if(value == OBJECT_TREE0 ) return "Tree0"; + if(value == OBJECT_TREE1 ) return "Tree1"; + if(value == OBJECT_TREE2 ) return "Tree2"; + if(value == OBJECT_TREE3 ) return "Tree3"; + if(value == OBJECT_TREE4 ) return "Tree4"; + if(value == OBJECT_TREE5 ) return "Tree5"; + if(value == OBJECT_MUSHROOM1 ) return "Mushroom1"; + if(value == OBJECT_MUSHROOM2 ) return "Mushroom2"; + if(value == OBJECT_HOME1 ) return "Home"; + if(value == OBJECT_DERRICK ) return "Derrick"; + if(value == OBJECT_FACTORY ) return "BotFactory"; + if(value == OBJECT_STATION ) return "PowerStation"; + if(value == OBJECT_CONVERT ) return "Converter"; + if(value == OBJECT_REPAIR ) return "RepairCenter"; + if(value == OBJECT_DESTROYER ) return "Destroyer"; + if(value == OBJECT_TOWER ) return "DefenseTower"; + if(value == OBJECT_NEST ) return "AlienNest"; + if(value == OBJECT_RESEARCH ) return "ResearchCenter"; + if(value == OBJECT_RADAR ) return "RadarStation"; + if(value == OBJECT_INFO ) return "ExchangePost"; + if(value == OBJECT_ENERGY ) return "PowerPlant"; + if(value == OBJECT_LABO ) return "AutoLab"; + if(value == OBJECT_NUCLEAR ) return "NuclearPlant"; + if(value == OBJECT_PARA ) return "PowerCaptor"; + if(value == OBJECT_SAFE ) return "Vault"; + if(value == OBJECT_HUSTON ) return "Houston"; + if(value == OBJECT_TARGET1 ) return "Target1"; + if(value == OBJECT_TARGET2 ) return "Target2"; + if(value == OBJECT_START ) return "StartArea"; + if(value == OBJECT_END ) return "GoalArea"; + if(value == OBJECT_MOTHER ) return "AlienQueen"; + if(value == OBJECT_EGG ) return "AlienEgg"; + if(value == OBJECT_ANT ) return "AlienAnt"; + if(value == OBJECT_SPIDER ) return "AlienSpider"; + if(value == OBJECT_BEE ) return "AlienWasp"; + if(value == OBJECT_WORM ) return "AlienWorm"; + if(value == OBJECT_RUINmobilew1) return "WreckBotw1"; + if(value == OBJECT_RUINmobilew2) return "WreckBotw2"; + if(value == OBJECT_RUINmobilet1) return "WreckBott1"; + if(value == OBJECT_RUINmobilet2) return "WreckBott2"; + if(value == OBJECT_RUINmobiler1) return "WreckBotr1"; + if(value == OBJECT_RUINmobiler2) return "WreckBotr2"; + if(value == OBJECT_RUINfactory ) return "RuinBotFactory"; + if(value == OBJECT_RUINdoor ) return "RuinDoor"; + if(value == OBJECT_RUINsupport ) return "RuinSupport"; + if(value == OBJECT_RUINradar ) return "RuinRadar"; + if(value == OBJECT_RUINconvert ) return "RuinConvert"; + if(value == OBJECT_RUINbase ) return "RuinBaseCamp"; + if(value == OBJECT_RUINhead ) return "RuinHeadCamp"; + if(value == OBJECT_BARRIER0 ) return "Barrier0"; + if(value == OBJECT_BARRIER1 ) return "Barrier1"; + if(value == OBJECT_BARRIER2 ) return "Barrier2"; + if(value == OBJECT_BARRIER3 ) return "Barrier3"; + if(value == OBJECT_TEEN0 ) return "Teen0"; + if(value == OBJECT_TEEN1 ) return "Teen1"; + if(value == OBJECT_TEEN2 ) return "Teen2"; + if(value == OBJECT_TEEN3 ) return "Teen3"; + if(value == OBJECT_TEEN4 ) return "Teen4"; + if(value == OBJECT_TEEN5 ) return "Teen5"; + if(value == OBJECT_TEEN6 ) return "Teen6"; + if(value == OBJECT_TEEN7 ) return "Teen7"; + if(value == OBJECT_TEEN8 ) return "Teen8"; + if(value == OBJECT_TEEN9 ) return "Teen9"; + if(value == OBJECT_TEEN10 ) return "Teen10"; + if(value == OBJECT_TEEN11 ) return "Teen11"; + if(value == OBJECT_TEEN12 ) return "Teen12"; + if(value == OBJECT_TEEN13 ) return "Teen13"; + if(value == OBJECT_TEEN14 ) return "Teen14"; + if(value == OBJECT_TEEN15 ) return "Teen15"; + if(value == OBJECT_TEEN16 ) return "Teen16"; + if(value == OBJECT_TEEN17 ) return "Teen17"; + if(value == OBJECT_TEEN18 ) return "Teen18"; + if(value == OBJECT_TEEN19 ) return "Teen19"; + if(value == OBJECT_TEEN20 ) return "Teen20"; + if(value == OBJECT_TEEN21 ) return "Teen21"; + if(value == OBJECT_TEEN22 ) return "Teen22"; + if(value == OBJECT_TEEN23 ) return "Teen23"; + if(value == OBJECT_TEEN24 ) return "Teen24"; + if(value == OBJECT_TEEN25 ) return "Teen25"; + if(value == OBJECT_TEEN26 ) return "Teen26"; + if(value == OBJECT_TEEN27 ) return "Teen27"; + if(value == OBJECT_TEEN28 ) return "Teen28"; + if(value == OBJECT_TEEN29 ) return "Teen29"; + if(value == OBJECT_TEEN30 ) return "Teen30"; + if(value == OBJECT_TEEN31 ) return "Teen31"; + if(value == OBJECT_TEEN32 ) return "Teen32"; + if(value == OBJECT_TEEN33 ) return "Teen33"; + if(value == OBJECT_TEEN34 ) return "Stone"; + if(value == OBJECT_TEEN35 ) return "Teen35"; + if(value == OBJECT_TEEN36 ) return "Teen36"; + if(value == OBJECT_TEEN37 ) return "Teen37"; + if(value == OBJECT_TEEN38 ) return "Teen38"; + if(value == OBJECT_TEEN39 ) return "Teen39"; + if(value == OBJECT_TEEN40 ) return "Teen40"; + if(value == OBJECT_TEEN41 ) return "Teen41"; + if(value == OBJECT_TEEN42 ) return "Teen42"; + if(value == OBJECT_TEEN43 ) return "Teen43"; + if(value == OBJECT_TEEN44 ) return "Teen44"; + if(value == OBJECT_QUARTZ0 ) return "Quartz0"; + if(value == OBJECT_QUARTZ1 ) return "Quartz1"; + if(value == OBJECT_QUARTZ2 ) return "Quartz2"; + if(value == OBJECT_QUARTZ3 ) return "Quartz3"; + if(value == OBJECT_ROOT0 ) return "MegaStalk0"; + if(value == OBJECT_ROOT1 ) return "MegaStalk1"; + if(value == OBJECT_ROOT2 ) return "MegaStalk2"; + if(value == OBJECT_ROOT3 ) return "MegaStalk3"; + if(value == OBJECT_ROOT4 ) return "MegaStalk4"; + if(value == OBJECT_ROOT5 ) return "MegaStalk5"; + if(value == OBJECT_APOLLO1 ) return "ApolloLEM"; + if(value == OBJECT_APOLLO2 ) return "ApolloJeep"; + if(value == OBJECT_APOLLO3 ) return "ApolloFlag"; + if(value == OBJECT_APOLLO4 ) return "ApolloModule"; + if(value == OBJECT_APOLLO5 ) return "ApolloAntenna"; + if(value == OBJECT_HUMAN ) return "Me"; + if(value == OBJECT_TECH ) return "Tech"; + if(value == OBJECT_CONTROLLER ) return "MissionController"; + return std::to_string(static_cast(value)); +} + +ObjectType CLevelParserParam::AsObjectType() +{ + if(m_empty) + throw CLevelParserExceptionMissingParam(this); + return ToObjectType(m_value); +} + +ObjectType CLevelParserParam::AsObjectType(ObjectType def) +{ + if(m_empty) + return def; + return AsObjectType(); +} + + +DriveType CLevelParserParam::ToDriveType(std::string value) +{ + if(value == "Wheeled") return DRIVE_WHEELED; + if(value == "Tracked") return DRIVE_TRACKED; + if(value == "Winged" ) return DRIVE_WINGED; + if(value == "Legged" ) return DRIVE_LEGGED; + if(value == "Other" ) return DRIVE_OTHER; + return static_cast(Cast(value, "drive")); +} + +DriveType CLevelParserParam::AsDriveType() +{ + if(m_empty) + throw CLevelParserExceptionMissingParam(this); + return ToDriveType(m_value); +} + +DriveType CLevelParserParam::AsDriveType(DriveType def) +{ + if(m_empty) + return def; + return AsDriveType(); +} + + +ToolType CLevelParserParam::ToToolType(std::string value) +{ + if(value == "Grabber" ) return TOOL_GRABBER; + if(value == "Shiffer" ) return TOOL_SNIFFER; + if(value == "Shooter" ) return TOOL_SHOOTER; + if(value == "OrgaShooter") return TOOL_ORGASHOOTER; + if(value == "Other" ) return TOOL_OTHER; + return static_cast(Cast(value, "tool")); +} + +ToolType CLevelParserParam::AsToolType() +{ + if(m_empty) + throw CLevelParserExceptionMissingParam(this); + return ToToolType(m_value); +} + +ToolType CLevelParserParam::AsToolType(ToolType def) +{ + if(m_empty) + return def; + return AsToolType(); +} + + +Gfx::WaterType CLevelParserParam::ToWaterType(std::string value) +{ + if(value == "NULL") return Gfx::WATER_NULL; + if(value == "TT" ) return Gfx::WATER_TT; + if(value == "TO" ) return Gfx::WATER_TO; + if(value == "CT" ) return Gfx::WATER_CT; + if(value == "CO" ) return Gfx::WATER_CO; + return static_cast(Cast(value, "watertype")); +} + +Gfx::WaterType CLevelParserParam::AsWaterType() +{ + if(m_empty) + throw CLevelParserExceptionMissingParam(this); + return ToWaterType(m_value); +} + +Gfx::WaterType CLevelParserParam::AsWaterType(Gfx::WaterType def) +{ + if(m_empty) + return def; + return AsWaterType(); +} + + +Gfx::EngineObjectType CLevelParserParam::ToTerrainType(std::string value) +{ + if(value == "Terrain") return Gfx::ENG_OBJTYPE_TERRAIN; + if(value == "Object" ) return Gfx::ENG_OBJTYPE_FIX; + if(value == "Quartz" ) return Gfx::ENG_OBJTYPE_QUARTZ; + if(value == "Metal" ) return Gfx::ENG_OBJTYPE_METAL; + return static_cast(Cast(value, "terraintype")); +} + +Gfx::EngineObjectType CLevelParserParam::AsTerrainType() +{ + if(m_empty) + throw CLevelParserExceptionMissingParam(this); + return ToTerrainType(m_value); +} + +Gfx::EngineObjectType CLevelParserParam::AsTerrainType(Gfx::EngineObjectType def) +{ + if(m_empty) + return def; + return AsTerrainType(); +} + + +int CLevelParserParam::ToBuildFlag(std::string value) +{ + if(value == "BotFactory" ) return BUILD_FACTORY; + if(value == "Derrick" ) return BUILD_DERRICK; + if(value == "Converter" ) return BUILD_CONVERT; + if(value == "RadarStation" ) return BUILD_RADAR; + if(value == "PowerPlant" ) return BUILD_ENERGY; + if(value == "NuclearPlant" ) return BUILD_NUCLEAR; + if(value == "FuelCellPlant" ) return BUILD_NUCLEAR; + if(value == "PowerStation" ) return BUILD_STATION; + if(value == "RepairCenter" ) return BUILD_REPAIR; + if(value == "DefenseTower" ) return BUILD_TOWER; + if(value == "ResearchCenter") return BUILD_RESEARCH; + if(value == "AutoLab" ) return BUILD_LABO; + if(value == "PowerCaptor" ) return BUILD_PARA; + if(value == "ExchangePost" ) return BUILD_INFO; + if(value == "Destroyer" ) return BUILD_DESTROYER; + if(value == "FlatGround" ) return BUILD_GFLAT; + if(value == "Flag" ) return BUILD_FLAG; + return Cast(value, "buildflag"); +} + +int CLevelParserParam::AsBuildFlag() +{ + if(m_empty) + throw CLevelParserExceptionMissingParam(this); + return ToBuildFlag(m_value); +} + +int CLevelParserParam::AsBuildFlag(int def) +{ + if(m_empty) + return def; + return AsBuildFlag(); +} + + +int CLevelParserParam::ToResearchFlag(std::string value) +{ + if(value == "TRACKER" ) return RESEARCH_TANK; + if(value == "WINGER" ) return RESEARCH_FLY; + if(value == "THUMPER" ) return RESEARCH_THUMP; + if(value == "SHOOTER" ) return RESEARCH_CANON; + if(value == "TOWER" ) return RESEARCH_TOWER; + if(value == "PHAZER" ) return RESEARCH_PHAZER; + if(value == "SHIELDER") return RESEARCH_SHIELD; + if(value == "ATOMIC" ) return RESEARCH_ATOMIC; + if(value == "iPAW" ) return RESEARCH_iPAW; + if(value == "iGUN" ) return RESEARCH_iGUN; + if(value == "RECYCLER") return RESEARCH_RECYCLER; + if(value == "SUBBER" ) return RESEARCH_SUBM; + if(value == "SNIFFER" ) return RESEARCH_SNIFFER; + return Cast(value, "researchflag"); +} + +int CLevelParserParam::AsResearchFlag() +{ + if(m_empty) + throw CLevelParserExceptionMissingParam(this); + return ToResearchFlag(m_value); +} + +int CLevelParserParam::AsResearchFlag(int def) +{ + if(m_empty) + return def; + return AsResearchFlag(); +} + + +Gfx::PyroType CLevelParserParam::ToPyroType(std::string value) +{ + if(value == "FRAGt" ) return Gfx::PT_FRAGT; + if(value == "FRAGo" ) return Gfx::PT_FRAGO; + if(value == "FRAGw" ) return Gfx::PT_FRAGW; + if(value == "EXPLOt") return Gfx::PT_EXPLOT; + if(value == "EXPLOo") return Gfx::PT_EXPLOO; + if(value == "EXPLOw") return Gfx::PT_EXPLOW; + if(value == "SHOTt" ) return Gfx::PT_SHOTT; + if(value == "SHOTh" ) return Gfx::PT_SHOTH; + if(value == "SHOTm" ) return Gfx::PT_SHOTM; + if(value == "SHOTw" ) return Gfx::PT_SHOTW; + if(value == "EGG" ) return Gfx::PT_EGG; + if(value == "BURNt" ) return Gfx::PT_BURNT; + if(value == "BURNo" ) return Gfx::PT_BURNO; + if(value == "SPIDER") return Gfx::PT_SPIDER; + if(value == "FALL" ) return Gfx::PT_FALL; + if(value == "RESET" ) return Gfx::PT_RESET; + if(value == "WIN" ) return Gfx::PT_WIN; + if(value == "LOST" ) return Gfx::PT_LOST; + return static_cast(Cast(value, "pyrotype")); +} + +Gfx::PyroType CLevelParserParam::AsPyroType() +{ + if(m_empty) + throw CLevelParserExceptionMissingParam(this); + return ToPyroType(m_value); +} + +Gfx::PyroType CLevelParserParam::AsPyroType(Gfx::PyroType def) +{ + if(m_empty) + return def; + return AsPyroType(); +} + + +Gfx::CameraType CLevelParserParam::ToCameraType(std::string value) +{ + if(value == "BACK" ) return Gfx::CAM_TYPE_BACK; + if(value == "PLANE" ) return Gfx::CAM_TYPE_PLANE; + if(value == "ONBOARD") return Gfx::CAM_TYPE_ONBOARD; + if(value == "FIX" ) return Gfx::CAM_TYPE_FIX; + return static_cast(Cast(value, "camera")); +} + +const std::string CLevelParserParam::FromCameraType(Gfx::CameraType value) +{ + if(value == Gfx::CAM_TYPE_ONBOARD) return "ONBOARD"; + if(value == Gfx::CAM_TYPE_FIX ) return "FIX"; + return std::to_string(static_cast(value)); +} + +Gfx::CameraType CLevelParserParam::AsCameraType() +{ + if(m_empty) + throw CLevelParserExceptionMissingParam(this); + return ToCameraType(m_value); +} + +Gfx::CameraType CLevelParserParam::AsCameraType(Gfx::CameraType def) +{ + if(m_empty) + return def; + return AsCameraType(); +} + + +void CLevelParserParam::ParseArray() +{ + if(m_array.size() != 0) + return; + + std::vector values; + boost::split(values, m_value, boost::is_any_of(";")); + int i = 0; + for(auto& value : values) { + boost::algorithm::trim(value); + if(value.empty()) continue; + CLevelParserParam* param = new CLevelParserParam(m_name+"["+std::to_string(i)+"]", value); + param->SetLine(m_line); + m_array.push_back(param); + i++; + } +} + +const std::vector& CLevelParserParam::AsArray() +{ + if(m_empty) + throw CLevelParserExceptionMissingParam(this); + + ParseArray(); + + return m_array; +} \ No newline at end of file diff --git a/src/object/level/parserparam.h b/src/object/level/parserparam.h new file mode 100644 index 0000000..9d5ba99 --- /dev/null +++ b/src/object/level/parserparam.h @@ -0,0 +1,133 @@ +// * This file is part of the COLOBOT source code +// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch +// * +// * 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 http://www.gnu.org/licenses/. + +/** + * \file object/level/parserparam.h + * \brief Value of command argument in level file + */ + +#pragma once + +#include +#include +#include +#include +#include + +#include + +class CLevelParserLine; + +class CLevelParserParam +{ +public: + //! Create param with given value + //@{ + CLevelParserParam(int value); + CLevelParserParam(float value); + CLevelParserParam(std::string value); + CLevelParserParam(bool value); + CLevelParserParam(Gfx::Color value); + CLevelParserParam(Math::Point value); + CLevelParserParam(ObjectType value); + CLevelParserParam(Gfx::CameraType value); + CLevelParserParam(const std::vector& value); + //@} + //! Create param from string + CLevelParserParam(std::string name, std::string value); + //! Create empty parser param + CLevelParserParam(std::string name, bool empty); + + ~CLevelParserParam(); + + //! Get value (throws exception if not found or unable to process) + //@{ + int AsInt(); + float AsFloat(); + std::string AsString(); + bool AsBool(); + std::string AsPath(const std::string defaultDir); + Gfx::Color AsColor(); + Math::Vector AsPoint(); + ObjectType AsObjectType(); + DriveType AsDriveType(); + ToolType AsToolType(); + Gfx::WaterType AsWaterType(); + Gfx::EngineObjectType AsTerrainType(); + int AsBuildFlag(); + int AsResearchFlag(); + Gfx::PyroType AsPyroType(); + Gfx::CameraType AsCameraType(); + const std::vector& AsArray(); + //@} + + //! Get value (returns default if not found, throws exception if unable to process) + //@{ + int AsInt(int def); + float AsFloat(float def); + std::string AsString(std::string def); + bool AsBool(bool def); + std::string AsPath(const std::string defaultDir, std::string def); + Gfx::Color AsColor(Gfx::Color def); + Math::Vector AsPoint(Math::Vector def); + ObjectType AsObjectType(ObjectType def); + DriveType AsDriveType(DriveType def); + ToolType AsToolType(ToolType def); + Gfx::WaterType AsWaterType(Gfx::WaterType def); + Gfx::EngineObjectType AsTerrainType(Gfx::EngineObjectType def); + int AsBuildFlag(int def); + int AsResearchFlag(int def); + Gfx::PyroType AsPyroType(Gfx::PyroType def); + Gfx::CameraType AsCameraType(Gfx::CameraType def); + //@} + + //! Set line this param is part of + void SetLine(CLevelParserLine* line); + //! Get line this param is part of + CLevelParserLine* GetLine(); + + std::string GetName(); + std::string GetValue(); + bool IsDefined(); + +private: + void ParseArray(); + + template T Cast(std::string value, std::string requestedType); + template T Cast(std::string requestedType); + + std::string InjectLevelDir(std::string path, const std::string defaultDir); + + ObjectType ToObjectType(std::string value); + DriveType ToDriveType(std::string value); + ToolType ToToolType(std::string value); + Gfx::WaterType ToWaterType(std::string value); + Gfx::EngineObjectType ToTerrainType(std::string value); + int ToBuildFlag(std::string value); + int ToResearchFlag(std::string value); + Gfx::PyroType ToPyroType(std::string value); + Gfx::CameraType ToCameraType(std::string value); + + const std::string FromObjectType(ObjectType value); + const std::string FromCameraType(Gfx::CameraType value); + +private: + CLevelParserLine* m_line; + bool m_empty; + std::string m_name; + std::string m_value; + std::vector m_array; +}; \ No newline at end of file diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp index 407a1ec..ce7f8d0 100644 --- a/src/object/robotmain.cpp +++ b/src/object/robotmain.cpp @@ -58,6 +58,7 @@ #include "object/task/task.h" #include "object/task/taskbuild.h" #include "object/task/taskmanip.h" +#include "object/level/parser.h" #include "physics/physics.h" @@ -83,7 +84,7 @@ #include -#include +#include template<> CRobotMain* CSingleton::m_instance = nullptr; @@ -1208,18 +1209,27 @@ void CRobotMain::ChangePhase(Phase phase) bool loading = (m_dialog->GetSceneRead()[0] != 0); m_map->CreateMap(); - CreateScene(m_dialog->GetSceneSoluce(), false, false); // interactive scene - if (m_mapImage) - m_map->SetFixImage(m_mapFilename); + + try { + CreateScene(m_dialog->GetSceneSoluce(), false, false); // interactive scene + if (m_mapImage) + m_map->SetFixImage(m_mapFilename); - m_app->ResetTimeAfterLoading(); + m_app->ResetTimeAfterLoading(); - if (m_immediatSatCom && !loading && - m_infoFilename[SATCOM_HUSTON][0] != 0) - StartDisplayInfo(SATCOM_HUSTON, false); // shows the instructions + if (m_immediatSatCom && !loading && + m_infoFilename[SATCOM_HUSTON][0] != 0) + StartDisplayInfo(SATCOM_HUSTON, false); // shows the instructions - m_sound->StopMusic(0.0f); - if (!m_base || loading) StartMusic(); + m_sound->StopMusic(0.0f); + if (!m_base || loading) StartMusic(); + } + catch(const CLevelParserException& e) + { + CLogger::GetInstancePointer()->Error("An error occured while trying to load a level\n"); + CLogger::GetInstancePointer()->Error("%s\n", e.what()); + ChangePhase(PHASE_INIT); + } } if (m_phase == PHASE_WIN) @@ -1235,29 +1245,37 @@ void CRobotMain::ChangePhase(Phase phase) m_dialog->SetSceneName("win"); m_dialog->SetSceneRank(m_endingWinRank); - CreateScene(false, true, false); // sets scene + try { + CreateScene(false, true, false); // sets scene - pos.x = ox+sx*1; pos.y = oy+sy*1; - Math::Point ddim; - ddim.x = dim.x*2; ddim.y = dim.y*2; - m_interface->CreateButton(pos, ddim, 16, EVENT_BUTTON_OK); + pos.x = ox+sx*1; pos.y = oy+sy*1; + Math::Point ddim; + ddim.x = dim.x*2; ddim.y = dim.y*2; + m_interface->CreateButton(pos, ddim, 16, EVENT_BUTTON_OK); - if (m_winTerminate) - { - pos.x = ox+sx*3; pos.y = oy+sy*0.2f; - ddim.x = dim.x*15; ddim.y = dim.y*3.0f; - pe = m_interface->CreateEdit(pos, ddim, 0, EVENT_EDIT0); - pe->SetGenericMode(true); - pe->SetFontType(Gfx::FONT_COLOBOT); - pe->SetEditCap(false); - pe->SetHighlightCap(false); - pe->ReadText(std::string("help/") + m_app->GetLanguageChar() + std::string("/win.txt")); + if (m_winTerminate) + { + pos.x = ox+sx*3; pos.y = oy+sy*0.2f; + ddim.x = dim.x*15; ddim.y = dim.y*3.0f; + pe = m_interface->CreateEdit(pos, ddim, 0, EVENT_EDIT0); + pe->SetGenericMode(true); + pe->SetFontType(Gfx::FONT_COLOBOT); + pe->SetEditCap(false); + pe->SetHighlightCap(false); + pe->ReadText(std::string("help/") + m_app->GetLanguageChar() + std::string("/win.txt")); + } + else + { + m_displayText->DisplayError(INFO_WIN, Math::Vector(0.0f,0.0f,0.0f), 15.0f, 60.0f, 1000.0f); + } + StartMusic(); } - else + catch(const CLevelParserException& e) { - m_displayText->DisplayError(INFO_WIN, Math::Vector(0.0f,0.0f,0.0f), 15.0f, 60.0f, 1000.0f); + CLogger::GetInstancePointer()->Error("An error occured while trying to load win scene\n"); + CLogger::GetInstancePointer()->Error("%s\n", e.what()); + ChangePhase(PHASE_TERM); } - StartMusic(); } } @@ -1273,15 +1291,23 @@ void CRobotMain::ChangePhase(Phase phase) m_winTerminate = false; m_dialog->SetSceneName("lost"); m_dialog->SetSceneRank(m_endingLostRank); - CreateScene(false, true, false); // sets scene + try { + CreateScene(false, true, false); // sets scene - pos.x = ox+sx*1; pos.y = oy+sy*1; - Math::Point ddim; - ddim.x = dim.x*2; ddim.y = dim.y*2; - m_interface->CreateButton(pos, ddim, 16, EVENT_BUTTON_OK); - m_displayText->DisplayError(INFO_LOST, Math::Vector(0.0f,0.0f,0.0f), 15.0f, 60.0f, 1000.0f); + pos.x = ox+sx*1; pos.y = oy+sy*1; + Math::Point ddim; + ddim.x = dim.x*2; ddim.y = dim.y*2; + m_interface->CreateButton(pos, ddim, 16, EVENT_BUTTON_OK); + m_displayText->DisplayError(INFO_LOST, Math::Vector(0.0f,0.0f,0.0f), 15.0f, 60.0f, 1000.0f); - StartMusic(); + StartMusic(); + } + catch(const CLevelParserException& e) + { + CLogger::GetInstancePointer()->Error("An error occured while trying to load lost scene\n"); + CLogger::GetInstancePointer()->Error("%s\n", e.what()); + ChangePhase(PHASE_TERM); + } } } @@ -3819,7 +3845,14 @@ void CRobotMain::ScenePerso() m_dialog->SetSceneName("perso"); m_dialog->SetSceneRank(0); - CreateScene(false, true, false); // sets scene + try { + CreateScene(false, true, false); // sets scene + } + catch(const CLevelParserException& e) + { + CLogger::GetInstancePointer()->Error("An error occured while trying to load apperance scene\n"); + CLogger::GetInstancePointer()->Error("%s\n", e.what()); + } m_engine->SetDrawWorld(false); // does not draw anything on the interface m_engine->SetDrawFront(true); // draws on the human interface @@ -3924,27 +3957,9 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) m_missionResult = ERR_MISSION_NOTERM; } - - char line[500]; - char name[200]; - char dir[100]; - char op[100]; - char filename[500]; - int lineNum = 0; - - memset(line, 0, 500); - memset(name, 0, 200); - memset(dir, 0, 100); - memset(op, 0, 100); - memset(filename, 0, 500); - std::string tempLine; - m_dialog->BuildSceneName(tempLine, base, rank); - strcpy(filename, tempLine.c_str()); - - CInputStream stream; - stream.open(filename); - if (!stream.is_open()) return; + CLevelParser* level = new CLevelParser(base, rank/100, rank%100); + level->Load(); int rankObj = 0; int rankGadget = 0; @@ -3957,584 +3972,445 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) * may speed up loading */ - while (stream.getline(line, 500)) + for(auto& line : level->GetLines()) { - lineNum++; - for (int i = 0; i < 500; i++) + if (line->GetCommand() == "MissionFile" && !resetObject) { - if (line[i] == '\t' ) line[i] = ' '; // replace tab by space - if (line[i] == '/' && line[i+1] == '/') - { - line[i] = 0; - break; - } - } - - if (Cmd(line, "MissionFile") && !resetObject) { - m_version = OpInt(line, "version", 1); - continue; + m_version = line->GetParam("version")->AsInt(1); + continue; } - - // TODO: Fallback to an non-localized entry - sprintf(op, "Title.%c", m_app->GetLanguageChar()); - if (Cmd(line, op) && !resetObject) + + if(line->GetCommand() == "Title" && !resetObject) { - OpString(line, "text", m_title); + strcpy(m_title, line->GetParam("text")->AsString().c_str()); continue; } - - sprintf(op, "Resume.%c", m_app->GetLanguageChar()); - if (Cmd(line, op) && !resetObject) + + if(line->GetCommand() == "Resume" && !resetObject) { - OpString(line, "text", m_resume); + strcpy(m_resume, line->GetParam("text")->AsString().c_str()); continue; } - - sprintf(op, "ScriptName.%c", m_app->GetLanguageChar()); - if (Cmd(line, op) && !resetObject) + + if(line->GetCommand() == "ScriptName" && !resetObject) { - OpString(line, "text", m_scriptName); + strcpy(m_scriptName, line->GetParam("text")->AsString().c_str()); continue; } - - static const boost::regex titleCmdRe("Title\\.[A-Z]"); - static const boost::regex resumeCmdRe("Resume\\.[A-Z]"); - static const boost::regex scriptNameCmdRe("ScriptName\\.[A-Z]"); - - if (boost::regex_match(GetCmd(line), titleCmdRe)) continue; // Ignore - if (boost::regex_match(GetCmd(line), resumeCmdRe)) continue; // Ignore - if (boost::regex_match(GetCmd(line), scriptNameCmdRe)) continue; // Ignore - - - if (Cmd(line, "ScriptFile") && !resetObject) + + if (line->GetCommand() == "ScriptFile" && !resetObject) { - OpString(line, "name", m_scriptFile); + strcpy(m_scriptFile, line->GetParam("name")->AsString().c_str()); continue; } - - if (Cmd(line, "Instructions") && !resetObject) + + if (line->GetCommand() == "Instructions" && !resetObject) { - OpString(line, "name", name); - std::string path = name; - InjectLevelDir(path, "help/%lng%"); - strcpy(m_infoFilename[SATCOM_HUSTON], path.c_str()); - - m_immediatSatCom = OpInt(line, "immediat", 0); - if (m_version >= 2) m_beginSatCom = m_lockedSatCom = OpInt(line, "lock", 0); + strcpy(m_infoFilename[SATCOM_HUSTON], line->GetParam("name")->AsPath("help/%lng%").c_str()); + + m_immediatSatCom = line->GetParam("immediat")->AsBool(false); + if (m_version >= 2) m_beginSatCom = m_lockedSatCom = line->GetParam("lock")->AsBool(false); if (m_app->GetSceneTestMode()) m_immediatSatCom = false; continue; } - - if (Cmd(line, "Satellite") && !resetObject) + + if (line->GetCommand() == "Satellite" && !resetObject) { - OpString(line, "name", name); - std::string path = name; - InjectLevelDir(path, "help/%lng%"); - strcpy(m_infoFilename[SATCOM_SAT], path.c_str()); + strcpy(m_infoFilename[SATCOM_SAT], line->GetParam("name")->AsPath("help/%lng%").c_str()); continue; } - - if (Cmd(line, "Loading") && !resetObject) + + if (line->GetCommand() == "Loading" && !resetObject) { - OpString(line, "name", name); - std::string path = name; - InjectLevelDir(path, "help/%lng%"); - strcpy(m_infoFilename[SATCOM_LOADING], path.c_str()); + strcpy(m_infoFilename[SATCOM_LOADING], line->GetParam("name")->AsPath("help/%lng%").c_str()); continue; } - - if (Cmd(line, "HelpFile") && !resetObject) + + if (line->GetCommand() == "HelpFile" && !resetObject) { - OpString(line, "name", name); - std::string path = name; - InjectLevelDir(path, "help/%lng%"); - strcpy(m_infoFilename[SATCOM_PROG], path.c_str()); + strcpy(m_infoFilename[SATCOM_PROG], line->GetParam("name")->AsPath("help/%lng%").c_str()); continue; } - if (Cmd(line, "SoluceFile") && !resetObject) + if (line->GetCommand() == "SoluceFile" && !resetObject) { - OpString(line, "name", name); - std::string path = name; - InjectLevelDir(path, "help/%lng%"); - strcpy(m_infoFilename[SATCOM_SOLUCE], path.c_str()); + strcpy(m_infoFilename[SATCOM_SOLUCE], line->GetParam("name")->AsPath("help/%lng%").c_str()); continue; } - - if (Cmd(line, "EndingFile") && !resetObject) + + if (line->GetCommand() == "EndingFile" && !resetObject) { - m_endingWinRank = OpInt(line, "win", 0); - m_endingLostRank = OpInt(line, "lost", 0); + // NOTE: The old default was 0, but I think -1 is more correct - 0 means "ending file 000", while -1 means "no ending file" + m_endingWinRank = line->GetParam("win")->AsInt(-1); + m_endingLostRank = line->GetParam("lost")->AsInt(-1); continue; } - - if (Cmd(line, "MessageDelay") && !resetObject) + + if (line->GetCommand() == "MessageDelay" && !resetObject) { - m_displayText->SetDelay(OpFloat(line, "factor", 1.0f)); + m_displayText->SetDelay(line->GetParam("factor")->AsFloat()); continue; } - - if (Cmd(line, "CacheAudio") && !resetObject && m_version >= 2) + + if (line->GetCommand() == "CacheAudio" && !resetObject && m_version >= 2) { - OpString(line, "filename", name); - m_sound->CacheMusic(name); + m_sound->CacheMusic(line->GetParam("filename")->AsPath("").c_str()); //TODO: don't make this relative to music/ continue; } - - if (Cmd(line, "AudioChange") && !resetObject && m_version >= 2 && m_controller == nullptr) + + if (line->GetCommand() == "AudioChange" && !resetObject && m_version >= 2 && m_controller == nullptr) { int i = m_audioChangeTotal; if (i < 10) { - m_audioChange[i].pos = OpPos(line, "pos")*g_unit; - m_audioChange[i].dist = OpFloat(line, "dist", 1000.0f)*g_unit; - m_audioChange[i].type = OpTypeObject(line, "type", OBJECT_NULL); - m_audioChange[i].min = OpInt(line, "min", 1); - m_audioChange[i].max = OpInt(line, "max", 9999); - m_audioChange[i].powermin = OpFloat(line, "powermin", -1); - m_audioChange[i].powermax = OpFloat(line, "powermax", 100); - m_audioChange[i].tool = OpTool(line, "tool"); - m_audioChange[i].drive = OpDrive(line, "drive"); - OpString(line, "filename", m_audioChange[i].music); - m_audioChange[i].repeat = OpInt(line, "repeat", 1); + m_audioChange[i].pos = line->GetParam("pos")->AsPoint(Math::Vector(0.0f, 0.0f, 0.0f))*g_unit; + m_audioChange[i].dist = line->GetParam("dist")->AsFloat(1000.0f)*g_unit; + m_audioChange[i].type = line->GetParam("type")->AsObjectType(OBJECT_NULL); + m_audioChange[i].min = line->GetParam("min")->AsInt(1); + m_audioChange[i].max = line->GetParam("max")->AsInt(9999); + m_audioChange[i].powermin = line->GetParam("powermin")->AsFloat(-1); + m_audioChange[i].powermax = line->GetParam("powermax")->AsFloat(100); + m_audioChange[i].tool = line->GetParam("tool")->AsToolType(TOOL_OTHER); + m_audioChange[i].drive = line->GetParam("drive")->AsDriveType(DRIVE_OTHER); + strcpy(m_audioChange[i].music, line->GetParam("filename")->AsPath("").c_str()); //TODO: don't make this relative to music/ + m_audioChange[i].repeat = line->GetParam("repeat")->AsBool(true); m_audioChange[i].changed = false; m_sound->CacheMusic(m_audioChange[i].music); m_audioChangeTotal ++; } continue; } - - if (Cmd(line, "Audio") && !resetObject && m_controller == nullptr) + + if (line->GetCommand() == "Audio" && !resetObject && m_controller == nullptr) { if (m_version < 2) { - int trackid = OpInt(line, "track", 0); + int trackid = line->GetParam("track")->AsInt(); if (trackid != 0) { std::stringstream filenameStr; filenameStr << "music" << std::setfill('0') << std::setw(3) << trackid << ".ogg"; m_audioTrack = filenameStr.str(); } - m_audioRepeat = OpInt(line, "repeat", 1); + m_audioRepeat = line->GetParam("repeat")->AsBool(true); } else { - char trackname[100]; + m_audioTrack = line->GetParam("main")->AsPath("", ""); //TODO: don't make this relative to music/ + m_audioRepeat = line->GetParam("mainRepeat")->AsBool(true); - OpString(line, "main", trackname); - m_audioTrack = trackname; - m_audioRepeat = OpInt(line, "mainRepeat", 1); + m_satcomTrack = line->GetParam("satcom")->AsPath("", ""); //TODO: don't make this relative to music/ + m_satcomRepeat = line->GetParam("satcomRepeat")->AsBool(true); - OpString(line, "satcom", trackname); - m_satcomTrack = trackname; - m_satcomRepeat = OpInt(line, "satcomRepeat", 1); - - OpString(line, "editor", trackname); - m_editorTrack = trackname; - m_editorRepeat = OpInt(line, "editorRepeat", 1); + m_editorTrack = line->GetParam("editor")->AsPath("", ""); //TODO: don't make this relative to music/ + m_editorRepeat = line->GetParam("editorRepeat")->AsBool(true); } if (m_audioTrack != "") m_sound->CacheMusic(m_audioTrack); if (m_satcomTrack != "") m_sound->CacheMusic(m_satcomTrack); if (m_editorTrack != "") m_sound->CacheMusic(m_editorTrack); continue; } - - if (Cmd(line, "AmbientColor") && !resetObject) + + if (line->GetCommand() == "AmbientColor" && !resetObject) { - m_engine->SetAmbientColor(OpColor(line, "air", Gfx::Color(0.533f, 0.533f, 0.533f, 0.533f)), 0); - m_engine->SetAmbientColor(OpColor(line, "water", Gfx::Color(0.533f, 0.533f, 0.533f, 0.533f)), 1); + m_engine->SetAmbientColor(line->GetParam("air")->AsColor(Gfx::Color(0.533f, 0.533f, 0.533f, 0.533f)), 0); + m_engine->SetAmbientColor(line->GetParam("water")->AsColor(Gfx::Color(0.533f, 0.533f, 0.533f, 0.533f)), 1); continue; } - - if (Cmd(line, "FogColor") && !resetObject) + + if (line->GetCommand() == "FogColor" && !resetObject) { - m_engine->SetFogColor(OpColor(line, "air", Gfx::Color(0.533f, 0.533f, 0.533f, 0.533f)), 0); - m_engine->SetFogColor(OpColor(line, "water", Gfx::Color(0.533f, 0.533f, 0.533f, 0.533f)), 1); + m_engine->SetFogColor(line->GetParam("air")->AsColor(Gfx::Color(0.533f, 0.533f, 0.533f, 0.533f)), 0); + m_engine->SetFogColor(line->GetParam("water")->AsColor(Gfx::Color(0.533f, 0.533f, 0.533f, 0.533f)), 1); continue; } - - if (Cmd(line, "VehicleColor") && !resetObject) + + if (line->GetCommand() == "VehicleColor" && !resetObject) { - m_colorNewBot = OpColor(line, "color", Gfx::Color(0.533f, 0.533f, 0.533f, 0.533f)); + m_colorNewBot = line->GetParam("color")->AsColor(Gfx::Color(0.533f, 0.533f, 0.533f, 0.533f)); continue; } - - if (Cmd(line, "InsectColor") && !resetObject) + + if (line->GetCommand() == "InsectColor" && !resetObject) { - m_colorNewAlien = OpColor(line, "color", Gfx::Color(0.533f, 0.533f, 0.533f, 0.533f)); + m_colorNewAlien = line->GetParam("color")->AsColor(Gfx::Color(0.533f, 0.533f, 0.533f, 0.533f)); continue; } - - if (Cmd(line, "GreeneryColor") && !resetObject) + + if (line->GetCommand() == "GreeneryColor" && !resetObject) { - m_colorNewGreen = OpColor(line, "color", Gfx::Color(0.533f, 0.533f, 0.533f, 0.533f)); + m_colorNewGreen = line->GetParam("color")->AsColor(Gfx::Color(0.533f, 0.533f, 0.533f, 0.533f)); continue; } - - if (Cmd(line, "DeepView") && !resetObject) + + if (line->GetCommand() == "DeepView" && !resetObject) { - m_engine->SetDeepView(OpFloat(line, "air", 500.0f)*g_unit, 0, true); - m_engine->SetDeepView(OpFloat(line, "water", 100.0f)*g_unit, 1, true); + m_engine->SetDeepView(line->GetParam("air")->AsFloat(500.0f)*g_unit, 0, true); + m_engine->SetDeepView(line->GetParam("water")->AsFloat(100.0f)*g_unit, 1, true); continue; } - - if (Cmd(line, "FogStart") && !resetObject) + + if (line->GetCommand() == "FogStart" && !resetObject) { - m_engine->SetFogStart(OpFloat(line, "air", 0.5f), 0); - m_engine->SetFogStart(OpFloat(line, "water", 0.5f), 1); + m_engine->SetFogStart(line->GetParam("air")->AsFloat(0.5f), 0); + m_engine->SetFogStart(line->GetParam("water")->AsFloat(0.5f), 1); continue; } - - if (Cmd(line, "SecondTexture") && !resetObject) + + if (line->GetCommand() == "SecondTexture" && !resetObject) { - m_engine->SetSecondTexture(OpInt(line, "rank", 1)); + m_engine->SetSecondTexture(line->GetParam("rank")->AsInt()); continue; } - - if (Cmd(line, "Background") && !resetObject) - { - OpString(line, "image", name); - m_engine->SetBackground(name, - OpColor(line, "up", Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f)), - OpColor(line, "down", Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f)), - OpColor(line, "cloudUp", Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f)), - OpColor(line, "cloudDown", Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f)), - OpInt(line, "full", 0)); + + if (line->GetCommand() == "Background" && !resetObject) + { + m_engine->SetBackground(line->GetParam("image")->AsPath("", "").c_str(), //TODO: don't make this relative to textures/ + line->GetParam("up")->AsColor(Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f)), + line->GetParam("down")->AsColor(Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f)), + line->GetParam("cloudUp")->AsColor(Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f)), + line->GetParam("cloudDown")->AsColor(Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f)), + line->GetParam("full")->AsBool(false)); continue; } - - if (Cmd(line, "Planet") && !resetObject) + + if (line->GetCommand() == "Planet" && !resetObject) { Math::Vector ppos, uv1, uv2; - - ppos = OpPos(line, "pos"); - uv1 = OpPos(line, "uv1"); - uv2 = OpPos(line, "uv2"); - OpString(line, "image", name); - m_planet->Create(OpInt(line, "mode", 0), + + ppos = line->GetParam("pos")->AsPoint(); + uv1 = line->GetParam("uv1")->AsPoint(); + uv2 = line->GetParam("uv2")->AsPoint(); + m_planet->Create(line->GetParam("mode")->AsInt(0), Math::Point(ppos.x, ppos.z), - OpFloat(line, "dim", 0.2f), - OpFloat(line, "speed", 0.0f), - OpFloat(line, "dir", 0.0f), - name, + line->GetParam("dim")->AsFloat(0.2f), + line->GetParam("speed")->AsFloat(0.0f), + line->GetParam("dir")->AsFloat(0.0f), + line->GetParam("image")->AsPath(""), //TODO: don't make this relative to textures/ Math::Point(uv1.x, uv1.z), Math::Point(uv2.x, uv2.z), - strstr(name, "planet") != nullptr // TODO: add transparent op or modify textures - ); + line->GetParam("image")->AsPath("").find("planet") != std::string::npos // TODO: add transparent op or modify textures + ); continue; } - - if (Cmd(line, "ForegroundName") && !resetObject) + + if (line->GetCommand() == "ForegroundName" && !resetObject) { - OpString(line, "image", name); - m_engine->SetForegroundName(name); + m_engine->SetForegroundName(line->GetParam("image")->AsPath("")); //TODO: don't make this relative to textures/ continue; } - - if (((m_version == 1 && Cmd(line, "Global")) || (m_version >= 2 && Cmd(line, "Mission"))) && !resetObject) + + if (((line->GetCommand() == "Global") || (m_version >= 2 && line->GetCommand() == "Mission")) && !resetObject) { - g_unit = OpFloat(line, "unitScale", 4.0f); - m_engine->SetTracePrecision(OpFloat(line, "traceQuality", 1.0f)); - m_shortCut = OpInt(line, "shortcut", 1); + g_unit = line->GetParam("unitScale")->AsFloat(4.0f); + m_engine->SetTracePrecision(line->GetParam("traceQuality")->AsFloat(1.0f)); + m_shortCut = line->GetParam("shortcut")->AsBool(true); if (m_version >= 2) { - m_retroStyle = OpInt(line, "retro", 0); + m_retroStyle = line->GetParam("retro")->AsBool(false); if (m_retroStyle) GetLogger()->Info("Retro mode enabled.\n"); } continue; } - - if (Cmd(line, "TerrainGenerate") && !resetObject) - { - if (m_terrainCreate) - { - GetLogger()->Error("Syntax error in file '%s' (line %d): TerrainGenerate after TerrainCreate\n", filename, lineNum); - continue; - } - - if (m_terrainInit) - { - GetLogger()->Error("Syntax error in file '%s' (line %d): TerrainGenerate after TerrainInit\n", filename, lineNum); - continue; - } - - m_terrain->Generate(OpInt(line, "mosaic", 20), - OpInt(line, "brick", 3), - OpFloat(line, "size", 20.0f), - OpFloat(line, "vision", 500.0f)*g_unit, - OpInt(line, "depth", 2), - OpFloat(line, "hard", 0.5f)); - - m_terrainGenerate = true; + + if (line->GetCommand() == "TerrainGenerate" && !resetObject) + { + m_terrain->Generate(line->GetParam("mosaic")->AsInt(20), + line->GetParam("brick")->AsInt(3), + line->GetParam("size")->AsFloat(20.0f), + line->GetParam("vision")->AsFloat(500.0f)*g_unit, + line->GetParam("depth")->AsInt(2), + line->GetParam("hard")->AsFloat(0.5f)); continue; } - - if (Cmd(line, "TerrainWind") && !resetObject) + + if (line->GetCommand() == "TerrainWind" && !resetObject) { - if (m_terrainCreate) - { - GetLogger()->Error("Syntax error in file '%s' (line %d): TerrainWind after TerrainCreate\n", filename, lineNum); - continue; - } - - if (m_terrainInit) - { - GetLogger()->Error("Syntax error in file '%s' (line %d): TerrainWind after TerrainInit\n", filename, lineNum); - continue; - } - - if (!m_terrainGenerate) - { - GetLogger()->Error("Syntax error in file '%s' (line %d): TerrainWind before TerrainGenerate\n", filename, lineNum); - continue; - } - - m_terrain->SetWind(OpPos(line, "speed")); + m_terrain->SetWind(line->GetParam("speed")->AsPoint()); continue; } - - if (Cmd(line, "TerrainRelief") && !resetObject) + + if (line->GetCommand() == "TerrainRelief" && !resetObject) { - if (m_terrainCreate) - { - GetLogger()->Error("Syntax error in file '%s' (line %d): TerrainRelief after TerrainCreate\n", filename, lineNum); - continue; - } - - if (m_terrainInit) - { - GetLogger()->Error("Syntax error in file '%s' (line %d): TerrainRelief after TerrainInit\n", filename, lineNum); - continue; - } - - if (!m_terrainGenerate) - { - GetLogger()->Error("Syntax error in file '%s' (line %d): TerrainRelief before TerrainGenerate\n", filename, lineNum); - continue; - } - - OpString(line, "image", name); - m_terrain->LoadRelief(std::string("textures/")+name, OpFloat(line, "factor", 1.0f), OpInt(line, "border", 1)); + m_terrain->LoadRelief( + line->GetParam("image")->AsPath("textures"), + line->GetParam("factor")->AsFloat(1.0f), + line->GetParam("border")->AsBool(true)); continue; } - if (Cmd(line, "TerrainRandomRelief") && !resetObject) + if (line->GetCommand() == "TerrainRandomRelief" && !resetObject) { m_terrain->RandomizeRelief(); continue; } - - if (Cmd(line, "TerrainResource") && !resetObject) + + if (line->GetCommand() == "TerrainResource" && !resetObject) { - if (m_terrainCreate) - { - GetLogger()->Error("Syntax error in file '%s' (line %d): TerrainResource after TerrainCreate\n", filename, lineNum); - continue; - } - - if (m_terrainInit) - { - GetLogger()->Error("Syntax error in file '%s' (line %d): TerrainResource after TerrainInit\n", filename, lineNum); - continue; - } - - if (!m_terrainGenerate) - { - GetLogger()->Error("Syntax error in file '%s' (line %d): TerrainResource before TerrainGenerate\n", filename, lineNum); - continue; - } - - OpString(line, "image", name); - m_terrain->LoadResources(std::string("textures/")+name); + m_terrain->LoadResources(line->GetParam("image")->AsPath("textures")); continue; } - - if (Cmd(line, "TerrainWater") && !resetObject) + + if (line->GetCommand() == "TerrainWater" && !resetObject) { - OpString(line, "image", name); Math::Vector pos; - pos.x = OpFloat(line, "moveX", 0.0f); - pos.y = OpFloat(line, "moveY", 0.0f); + pos.x = line->GetParam("moxeX")->AsFloat(0.0f); + pos.y = line->GetParam("moxeY")->AsFloat(0.0f); pos.z = pos.x; - m_water->Create(OpTypeWater(line, "air", Gfx::WATER_TT), - OpTypeWater(line, "water", Gfx::WATER_TT), - name, - OpColor(line, "diffuse", Gfx::Color(1.0f, 1.0f, 1.0f, 1.0f)), - OpColor(line, "ambient", Gfx::Color(1.0f, 1.0f, 1.0f, 1.0f)), - OpFloat(line, "level", 100.0f)*g_unit, - OpFloat(line, "glint", 1.0f), + m_water->Create(line->GetParam("air")->AsWaterType(Gfx::WATER_TT), + line->GetParam("water")->AsWaterType(Gfx::WATER_TT), + line->GetParam("image")->AsPath(""), //TODO: don't make this relative to textures/ + line->GetParam("diffuse")->AsColor(Gfx::Color(1.0f, 1.0f, 1.0f, 1.0f)), + line->GetParam("ambient")->AsColor(Gfx::Color(1.0f, 1.0f, 1.0f, 1.0f)), + line->GetParam("level")->AsFloat(100.0f)*g_unit, + line->GetParam("glint")->AsFloat(1.0f), pos); - m_colorNewWater = OpColor(line, "color", m_colorRefWater); - m_colorShiftWater = OpFloat(line, "brightness", 0.0f); + m_colorNewWater = line->GetParam("color")->AsColor(m_colorRefWater); + m_colorShiftWater = line->GetParam("brightness")->AsFloat(0.0f); continue; } - - if (Cmd(line, "TerrainLava") && !resetObject) + + if (line->GetCommand() == "TerrainLava" && !resetObject) { - m_water->SetLava(OpInt(line, "mode", 0)); + m_water->SetLava(line->GetParam("mode")->AsBool()); continue; } - - if (Cmd(line, "TerrainCloud") && !resetObject) + + if (line->GetCommand() == "TerrainCloud" && !resetObject) { - OpString(line, "image", name); - m_cloud->Create(name, - OpColor(line, "diffuse", Gfx::Color(1.0f, 1.0f, 1.0f, 1.0f)), - OpColor(line, "ambient", Gfx::Color(1.0f, 1.0f, 1.0f, 1.0f)), - OpFloat(line, "level", 500.0f) * g_unit); + m_cloud->Create(line->GetParam("image")->AsPath("", ""), //TODO: don't make this relative to textures/ + line->GetParam("diffuse")->AsColor(Gfx::Color(1.0f, 1.0f, 1.0f, 1.0f)), + line->GetParam("ambient")->AsColor(Gfx::Color(1.0f, 1.0f, 1.0f, 1.0f)), + line->GetParam("level")->AsFloat(500.0f)*g_unit); continue; } - - if (Cmd(line, "TerrainBlitz") && !resetObject) + + if (line->GetCommand() == "TerrainBlitz" && !resetObject) { - m_lightning->Create(OpFloat(line, "sleep", 0.0f), - OpFloat(line, "delay", 3.0f), - OpFloat(line, "magnetic", 50.0f) * g_unit); + m_lightning->Create(line->GetParam("sleep")->AsFloat(0.0f), + line->GetParam("delay")->AsFloat(3.0f), + line->GetParam("magnetic")->AsFloat(50.0f)*g_unit); continue; } - - if (Cmd(line, "TerrainInitTextures") && !resetObject) + + if (line->GetCommand() == "TerrainInitTextures" && !resetObject) { - if (m_terrainInit) - { - GetLogger()->Error("Syntax error in file '%s' (line %d): TerrainInitTextures and TerrainInit at same time\n", filename, lineNum); - continue; + std::string name = line->GetParam("image")->AsPath(""); //TODO: don't make this relative to textures/ + if(name.find(".") == std::string::npos) + name += ".png"; + int dx = line->GetParam("dx")->AsInt(1); + int dy = line->GetParam("dy")->AsInt(1); + + int tt[100]; //TODO: I have no idea how TerrainInitTextures works, but maybe we shuld remove the limit to 100? + if(dx*dy > 100) + throw CLevelParserException("In TerrainInitTextures: dx*dy must be <100"); + if(line->GetParam("table")->IsDefined()) { + const std::vector& table = line->GetParam("table")->AsArray(); + + if(table.size() > dx*dy) + throw CLevelParserException("In TerrainInitTextures: table size must be dx*dy"); + + for (int i = 0; i < dx*dy; i++) + { + if(i >= table.size()) + { + tt[i] = 0; + } else { + tt[i] = table[i]->AsInt(); + } + } + } else { + for (int i = 0; i < dx*dy; i++) + { + tt[i] = 0; + } } - - OpString(line, "image", name); - AddExt(name, ".png"); - int dx = OpInt(line, "dx", 1); - int dy = OpInt(line, "dy", 1); - char* opTable = SearchOp(line, "table"); - int tt[100]; - for (int i = 0; i < dx*dy; i++) - tt[i] = GetInt(opTable, i, 0); - + + /*TODO: ??? if (strstr(name, "%user%") != 0) CopyFileListToTemp(name, tt, dx*dy); - - m_terrain->InitTextures(name, tt, dx, dy); - - m_terrainInitTextures = true; + */ + + m_terrain->InitTextures(name.c_str(), tt, dx, dy); continue; } - - if (Cmd(line, "TerrainInit") && !resetObject) + + if (line->GetCommand() == "TerrainInit" && !resetObject) { - if (m_terrainInitTextures) - { - GetLogger()->Error("Syntax error in file '%s' (line %d): TerrainInit and TerrainInitTextures at same time\n", filename, lineNum); - continue; - } - - m_terrain->InitMaterials(OpInt(line, "id", 1)); + m_terrain->InitMaterials(line->GetParam("id")->AsInt(1)); m_terrainInit = true; continue; } - - if (Cmd(line, "TerrainMaterial") && !resetObject) + + if (line->GetCommand() == "TerrainMaterial" && !resetObject) { - if (m_terrainCreate) - { - GetLogger()->Error("Syntax error in file '%s' (line %d): TerrainMaterial after TerrainCreate\n", filename, lineNum); - continue; - } - - if (m_terrainInit) - { - GetLogger()->Error("Syntax error in file '%s' (line %d): TerrainMaterial after TerrainInit\n", filename, lineNum); - continue; - } - - if (m_terrainInitTextures) - { - GetLogger()->Error("Syntax error in file '%s' (line %d): TerrainMaterial and TerrainInitTextures at same time\n", filename, lineNum); - continue; - } - - OpString(line, "image", name); - AddExt(name, ".png"); + std::string name = line->GetParam("image")->AsPath(""); //TODO: don't make this relative to textures/ + if(name.find(".") == std::string::npos) + name += ".png"; + /*TODO: ??? if (strstr(name, "%user%") != 0) { GetProfile().CopyFileToTemp(std::string(name)); } - - m_terrain->AddMaterial(OpInt(line, "id", 0), - name, - Math::Point(OpFloat(line, "u", 0.0f), - OpFloat(line, "v", 0.0f)), - OpInt(line, "up", 1), - OpInt(line, "right", 1), - OpInt(line, "down", 1), - OpInt(line, "left", 1), - OpFloat(line, "hard", 0.5f)); + */ + + m_terrain->AddMaterial(line->GetParam("id")->AsInt(0), + name.c_str(), + Math::Point(line->GetParam("u")->AsFloat(), + line->GetParam("v")->AsFloat()), + line->GetParam("up")->AsInt(), + line->GetParam("right")->AsInt(), + line->GetParam("down")->AsInt(), + line->GetParam("left")->AsInt(), + line->GetParam("hard")->AsFloat(0.5f)); continue; } - - if (Cmd(line, "TerrainLevel") && !resetObject) + + if (line->GetCommand() == "TerrainLevel" && !resetObject) { - if (m_terrainCreate) - { - GetLogger()->Error("Syntax error in file '%s' (line %d): TerrainLevel after TerrainCreate\n", filename, lineNum); - continue; - } - - if (!m_terrainInit) - { - GetLogger()->Error("Syntax error in file '%s' (line %d): TerrainLevel before TerrainInit\n", filename, lineNum); - continue; - } - - if (m_terrainInitTextures) - { - GetLogger()->Error("Syntax error in file '%s' (line %d): TerrainLevel and TerrainInitTextures at same time\n", filename, lineNum); - continue; - } - - if (!m_terrainGenerate) - { - GetLogger()->Error("Syntax error in file '%s' (line %d): TerrainLevel before TerrainGenerate\n", filename, lineNum); - continue; - } - - char* opId = SearchOp(line, "id"); - int id[50]; - int i = 0; - while (i < 50) - { - id[i] = GetInt(opId, i, 0); - if (id[i++] == 0) break; + int id[50]; //TODO: I have no idea how TerrainLevel works, but maybe we should remove the limit to 50? + if(line->GetParam("id")->IsDefined()) { + const std::vector& id_array = line->GetParam("id")->AsArray(); + + if(id_array.size() > 50) + throw CLevelParserException("In TerrainLevel: id array size must be < 50"); + + int i = 0; + while (i < 50) + { + id[i] = id_array[i]->AsInt(); + i++; + if(i >= id_array.size()) break; + } } - + m_terrain->GenerateMaterials(id, - OpFloat(line, "min", 0.0f)*g_unit, - OpFloat(line, "max", 100.0f)*g_unit, - OpFloat(line, "slope", 5.0f), - OpFloat(line, "freq", 100.0f), - OpPos(line, "center")*g_unit, - OpFloat(line, "radius", 0.0f)*g_unit); + line->GetParam("min")->AsFloat(0.0f)*g_unit, + line->GetParam("max")->AsFloat(100.0f)*g_unit, + line->GetParam("slope")->AsFloat(5.0f), + line->GetParam("freq")->AsFloat(100.0f), + line->GetParam("center")->AsPoint(Math::Vector(0.0f, 0.0f, 0.0f))*g_unit, + line->GetParam("radius")->AsFloat(0.0f)*g_unit); continue; } - - if (Cmd(line, "TerrainCreate") && !resetObject) + + if (line->GetCommand() == "TerrainCreate" && !resetObject) { m_terrain->CreateObjects(); - m_terrainCreate = true; continue; } - - if (Cmd(line, "BeginObject")) + + if (line->GetCommand() == "BeginObject") { InitEye(); SetMovieLock(false); - + if (read[0] != 0) // loading file ? sel = IOReadScene(read, stack); - - m_beginObject = true; + continue; } - - if (Cmd(line, "MissionController") && read[0] == 0 && m_version >= 2) + + if (line->GetCommand() == "MissionController" && read[0] == 0 && m_version >= 2) { m_controller = CObjectManager::GetInstancePointer()->CreateObject(Math::Vector(0.0f, 0.0f, 0.0f), 0.0f, OBJECT_CONTROLLER, 100.0f); m_controller->SetMagnifyDamage(100.0f); @@ -4542,48 +4418,42 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) CBrain* brain = m_controller->GetBrain(); if (brain != nullptr) { - OpString(line, "script", name); - if (name[0] != 0) - brain->SetScriptName(0, name); + std::string name = line->GetParam("script")->AsPath(""); //TODO: Don't make this relative to ai/ + if (!name.empty()) + brain->SetScriptName(0, const_cast(name.c_str())); brain->SetScriptRun(0); } continue; } - - if (Cmd(line, "CreateObject") && read[0] == 0) + + if (line->GetCommand() == "CreateObject" && read[0] == 0) { - if (!m_beginObject) - { - GetLogger()->Error("Syntax error in file '%s' (line %d): CreateObject before BeginObject\n", filename, lineNum); - continue; - } - - ObjectType type = OpTypeObject(line, "type", OBJECT_NULL); - - int gadget = OpInt(line, "gadget", -1); + ObjectType type = line->GetParam("type")->AsObjectType(); + + int gadget = line->GetParam("gadget")->AsInt(-1); if ( gadget == -1 ) { gadget = 0; if ( type == OBJECT_TECH || - (type >= OBJECT_PLANT0 && - type <= OBJECT_PLANT19 ) || - (type >= OBJECT_TREE0 && - type <= OBJECT_TREE5 ) || - (type >= OBJECT_TEEN0 && - type <= OBJECT_TEEN44 ) || - (type >= OBJECT_QUARTZ0 && - type <= OBJECT_QUARTZ3 ) || - (type >= OBJECT_ROOT0 && - type <= OBJECT_ROOT4 ) ) // not ROOT5! + (type >= OBJECT_PLANT0 && + type <= OBJECT_PLANT19 ) || + (type >= OBJECT_TREE0 && + type <= OBJECT_TREE5 ) || + (type >= OBJECT_TEEN0 && + type <= OBJECT_TEEN44 ) || + (type >= OBJECT_QUARTZ0 && + type <= OBJECT_QUARTZ3 ) || + (type >= OBJECT_ROOT0 && + type <= OBJECT_ROOT4 ) ) // not ROOT5! { if ( type != OBJECT_TEEN11 && // lamp? - type != OBJECT_TEEN12 && // coke? - type != OBJECT_TEEN20 && // wall? - type != OBJECT_TEEN21 && // wall? - type != OBJECT_TEEN22 && // wall? - type != OBJECT_TEEN26 && // lamp? - type != OBJECT_TEEN28 && // bottle? - type != OBJECT_TEEN34 ) // stone? + type != OBJECT_TEEN12 && // coke? + type != OBJECT_TEEN20 && // wall? + type != OBJECT_TEEN21 && // wall? + type != OBJECT_TEEN22 && // wall? + type != OBJECT_TEEN26 && // lamp? + type != OBJECT_TEEN28 && // bottle? + type != OBJECT_TEEN34 ) // stone? { gadget = 1; } @@ -4593,19 +4463,20 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) { if (!TestGadgetQuantity(rankGadget++)) continue; } - - Math::Vector pos = OpPos(line, "pos")*g_unit; - float dirAngle = OpFloat(line, "dir", 0.0f)*Math::PI; + + Math::Vector pos = line->GetParam("pos")->AsPoint()*g_unit; + float dirAngle = line->GetParam("dir")->AsFloat(0.0f)*Math::PI; bool trainer; CObject* obj = CObjectManager::GetInstancePointer()->CreateObject( - pos, dirAngle, - type, - OpFloat(line, "power", 1.0f), - OpFloat(line, "z", 1.0f), - OpFloat(line, "h", 0.0f), - trainer = OpInt(line, "trainer", 0), - OpInt(line, "toy", 0), - OpInt(line, "option", 0)); + pos, dirAngle, + type, + line->GetParam("power")->AsFloat(1.0f), + line->GetParam("z")->AsFloat(1.0f), + line->GetParam("h")->AsFloat(0.0f), + trainer = line->GetParam("trainer")->AsBool(false), + line->GetParam("toy")->AsBool(false), + line->GetParam("option")->AsInt(0) + ); if (m_fixScene && type == OBJECT_HUMAN) { @@ -4613,108 +4484,112 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) if (m_phase == PHASE_WIN ) motion->SetAction(MHS_WIN, 0.4f); if (m_phase == PHASE_LOST) motion->SetAction(MHS_LOST, 0.5f); } - + if (obj != nullptr) { obj->SetDefRank(rankObj); - + if (type == OBJECT_BASE) m_base = true; - - Gfx::CameraType cType = OpCamera(line, "camera"); + + Gfx::CameraType cType = line->GetParam("camera")->AsCameraType(Gfx::CAM_TYPE_NULL); if (cType != Gfx::CAM_TYPE_NULL) obj->SetCameraType(cType); - - obj->SetCameraDist(OpFloat(line, "cameraDist", 50.0f)); - obj->SetCameraLock(OpInt(line, "cameraLock", 0)); - - Gfx::PyroType pType = OpPyro(line, "pyro"); + + obj->SetCameraDist(line->GetParam("cameraDist")->AsFloat(50.0f)); + obj->SetCameraLock(line->GetParam("cameraLock")->AsBool(false)); + + Gfx::PyroType pType = line->GetParam("pyro")->AsPyroType(Gfx::PT_NULL); if (pType != Gfx::PT_NULL) { Gfx::CPyro* pyro = new Gfx::CPyro(); pyro->Create(pType, obj); } - + // Puts information in terminal (OBJECT_INFO). for (int i = 0; i < OBJECTMAXINFO; i++) { - sprintf(op, "info%d", i+1); - char text[100]; - OpString(line, op, text); - if (text[0] == 0) break; - char* p = strchr(text, '='); - if (p == 0) break; - *p = 0; + std::string op = "info"+std::to_string(i+1); + if(!line->GetParam(op)->IsDefined()) break; + std::string text = line->GetParam(op)->AsString(); + std::size_t p = text.find_first_of("="); + if(p == std::string::npos) + throw CLevelParserExceptionBadParam(line->GetParam(op), "info"); Info info; - strcpy(info.name, text); - sscanf(p+1, "%f", &info.value); + strcpy(info.name, text.substr(0, p).c_str()); + try { + info.value = boost::lexical_cast(text.substr(p+1).c_str()); + } + catch(...) + { + throw CLevelParserExceptionBadParam(line->GetParam(op), "info.value (float)"); + } obj->SetInfo(i, info); } - + // Sets the parameters of the command line. - char* p = SearchOp(line, "cmdline"); - for (int i = 0; i < OBJECTMAXCMDLINE; i++) - { - float value = GetFloat(p, i, NAN); - if (value == NAN) break; - obj->SetCmdLine(i, value); + if(line->GetParam("cmdline")->IsDefined()) { + const std::vector& cmdline = line->GetParam("cmdline")->AsArray(); + for (int i = 0; i < OBJECTMAXCMDLINE && i < cmdline.size(); i++) //TODO: get rid of the limit + { + obj->SetCmdLine(i, cmdline[i]->AsFloat()); + } } - - if (OpInt(line, "select", 0) == 1) + + if (line->GetParam("select")->AsBool(false)) { sel = obj; } - - bool selectable = OpInt(line, "selectable", 1); + + bool selectable = line->GetParam("selectable")->AsBool(true); obj->SetSelectable(selectable); - obj->SetIgnoreBuildCheck(OpInt(line, "ignoreBuildCheck", 0)); - obj->SetEnable(OpInt(line, "enable", 1)); - obj->SetProxyActivate(OpInt(line, "proxyActivate", 0)); - obj->SetProxyDistance(OpFloat(line, "proxyDistance", 15.0f)*g_unit); - obj->SetRange(OpFloat(line, "range", 30.0f)); - obj->SetShield(OpFloat(line, "shield", 1.0f)); - obj->SetMagnifyDamage(OpFloat(line, "magnifyDamage", 1.0f)); - obj->SetClip(OpInt(line, "clip", 1)); - obj->SetCheckToken(m_version >= 2 ? trainer || !selectable : OpInt(line, "checkToken", 1)); + obj->SetIgnoreBuildCheck(line->GetParam("ignoreBuildCheck")->AsBool(false)); + obj->SetEnable(line->GetParam("enable")->AsBool(true)); + obj->SetProxyActivate(line->GetParam("proxyActivate")->AsBool(false)); + if(line->GetParam("proxyActivate")->AsBool(false)) + obj->SetProxyDistance(line->GetParam("proxyDistance")->AsFloat()*g_unit); + obj->SetRange(line->GetParam("range")->AsFloat(30.0f)); + obj->SetShield(line->GetParam("shield")->AsFloat(1.0f)); + obj->SetMagnifyDamage(line->GetParam("magnifyDamage")->AsFloat(1.0f)); + obj->SetClip(line->GetParam("clip")->AsBool(true)); + obj->SetCheckToken(m_version >= 2 ? trainer || !selectable : line->GetParam("checkToken")->AsBool(true)); // SetManual will affect bot speed if (type == OBJECT_MOBILEdr) { - obj->SetManual(m_version >= 2 ? !trainer : OpInt(line, "manual", 0)); + obj->SetManual(m_version >= 2 ? !trainer : line->GetParam("manual")->AsBool(false)); } - + if (m_version >= 2) { - Math::Vector zoom = OpDir(line, "zoom"); + Math::Vector zoom = line->GetParam("zoom")->AsPoint(Math::Vector(0.0f, 0.0f, 0.0f)); if (zoom.x != 0.0f || zoom.y != 0.0f || zoom.z != 0.0f) obj->SetZoom(0, zoom); } - + + //TODO: I don't remember what this is used for CMotion* motion = obj->GetMotion(); - if (motion != nullptr) + if (motion != nullptr && line->GetParam("param")->IsDefined()) { - p = SearchOp(line, "param"); - for (int i = 0; i < 10; i++) + const std::vector& p = line->GetParam("param")->AsArray(); + for (int i = 0; i < 10 && i < p.size(); i++) { - float value; - value = GetFloat(p, i, NAN); - if (value == NAN) break; - motion->SetParam(i, value); + motion->SetParam(i, p[i]->AsFloat()); } } - + int run = -1; CBrain* brain = obj->GetBrain(); if (brain != nullptr) { for (int i = 0; i < 10; i++) { - sprintf(op, "script%d", i+1); // script1..script10 - OpString(line, op, name); - if (name[0] != 0) - brain->SetScriptName(i, name); - + std::string op = "script"+std::to_string(i+1); // script1..script10 + if(line->GetParam(op)->IsDefined()) { + brain->SetScriptName(i, const_cast(line->GetParam(op)->AsPath("").c_str())); //TODO: don't make this relative to ai/ + } + } - - int i = OpInt(line, "run", 0); + + int i = line->GetParam("run")->AsInt(0); if (i != 0) { run = i-1; @@ -4724,17 +4599,16 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) CAuto* automat = obj->GetAuto(); if (automat != nullptr) { - type = OpTypeObject(line, "autoType", OBJECT_NULL); + type = line->GetParam("autoType")->AsObjectType(OBJECT_NULL); automat->SetType(type); for (int i = 0; i < 5; i++) { - sprintf(op, "autoValue%d", i+1); // autoValue1..autoValue5 - automat->SetValue(i, OpFloat(line, op, 0.0f)); + std::string op = "autoValue"+std::to_string(i+1); // autoValue1..autoValue5 + automat->SetValue(i, line->GetParam(op)->AsFloat(0.0f)); } - OpString(line, "autoString", name); - automat->SetString(name); - - int i = OpInt(line, "run", -1); + automat->SetString(const_cast(line->GetParam("autoString")->AsString("").c_str())); + + int i = line->GetParam("run")->AsInt(-1); if (i != -1) { if (i != PARAM_FIXSCENE && @@ -4742,30 +4616,29 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) automat->Start(i); // starts the film } } - - OpString(line, "soluce", name); - if (soluce && brain != 0 && name[0] != 0) - brain->SetSoluceName(name); - + + if (soluce && brain != nullptr && line->GetParam("soluce")->IsDefined()) + brain->SetSoluceName(const_cast(line->GetParam("soluce")->AsString().c_str())); + obj->SetResetPosition(obj->GetPosition(0)); obj->SetResetAngle(obj->GetAngle(0)); obj->SetResetRun(run); - - if (OpInt(line, "reset", 0) == 1) + + if (line->GetParam("reset")->AsBool(false)) obj->SetResetCap(RESET_MOVE); } - + rankObj ++; continue; } - - if (Cmd(line, "CreateFog") && !resetObject) + + if (line->GetCommand() == "CreateFog" && !resetObject) { - Gfx::ParticleType type = static_cast((Gfx::PARTIFOG0+OpInt(line, "type", 0))); - Math::Vector pos = OpPos(line, "pos")*g_unit; - float height = OpFloat(line, "height", 1.0f)*g_unit; - float ddim = OpFloat(line, "dim", 50.0f)*g_unit; - float delay = OpFloat(line, "delay", 2.0f); + Gfx::ParticleType type = static_cast(Gfx::PARTIFOG0+(line->GetParam("type")->AsInt())); + Math::Vector pos = line->GetParam("pos")->AsPoint()*g_unit; + float height = line->GetParam("height")->AsFloat(1.0f)*g_unit; + float ddim = line->GetParam("dim")->AsFloat(50.0f)*g_unit; + float delay = line->GetParam("delay")->AsFloat(2.0f); m_terrain->AdjustToFloor(pos); pos.y += height; Math::Point dim; @@ -4774,149 +4647,150 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) m_particle->CreateParticle(pos, Math::Vector(0.0f, 0.0f, 0.0f), dim, type, delay, 0.0f, 0.0f); continue; } - - if (Cmd(line, "CreateLight") && !resetObject) + + if (line->GetCommand() == "CreateLight" && !resetObject) { Gfx::EngineObjectType type; - - int lightRank = CreateLight(OpDir(line, "dir"), - OpColor(line, "color", Gfx::Color(0.5f, 0.5f, 0.5f, 1.0f))); - - type = OpTypeTerrain(line, "type", Gfx::ENG_OBJTYPE_NULL); + + int lightRank = CreateLight(line->GetParam("dir")->AsPoint(), + line->GetParam("color")->AsColor(Gfx::Color(0.5f, 0.5f, 0.5f, 1.0f))); + + type = line->GetParam("type")->AsTerrainType(Gfx::ENG_OBJTYPE_NULL); + if (type == Gfx::ENG_OBJTYPE_TERRAIN) { m_lightMan->SetLightPriority(lightRank, Gfx::LIGHT_PRI_HIGHEST); m_lightMan->SetLightIncludeType(lightRank, Gfx::ENG_OBJTYPE_TERRAIN); } - + if (type == Gfx::ENG_OBJTYPE_QUARTZ) m_lightMan->SetLightIncludeType(lightRank, Gfx::ENG_OBJTYPE_QUARTZ); - + if (type == Gfx::ENG_OBJTYPE_METAL) m_lightMan->SetLightIncludeType(lightRank, Gfx::ENG_OBJTYPE_METAL); - + if (type == Gfx::ENG_OBJTYPE_FIX) m_lightMan->SetLightExcludeType(lightRank, Gfx::ENG_OBJTYPE_TERRAIN); - + continue; } - if (Cmd(line, "CreateSpot") && !resetObject) + if (line->GetCommand() == "CreateSpot" && !resetObject) { Gfx::EngineObjectType type; - - int rankLight = CreateSpot(OpDir(line, "pos")*g_unit, - OpColor(line, "color", Gfx::Color(0.5f, 0.5f, 0.5f, 1.0f))); - - type = OpTypeTerrain(line, "type", Gfx::ENG_OBJTYPE_NULL); + + int rankLight = CreateSpot(line->GetParam("pos")->AsPoint()*g_unit, + line->GetParam("color")->AsColor(Gfx::Color(0.5f, 0.5f, 0.5f, 1.0f))); + + type = line->GetParam("type")->AsTerrainType(Gfx::ENG_OBJTYPE_NULL); if (type == Gfx::ENG_OBJTYPE_TERRAIN) m_lightMan->SetLightIncludeType(rankLight, Gfx::ENG_OBJTYPE_TERRAIN); - + if (type == Gfx::ENG_OBJTYPE_QUARTZ) m_lightMan->SetLightIncludeType(rankLight, Gfx::ENG_OBJTYPE_QUARTZ); - + if (type == Gfx::ENG_OBJTYPE_METAL) m_lightMan->SetLightIncludeType(rankLight, Gfx::ENG_OBJTYPE_METAL); - + if (type == Gfx::ENG_OBJTYPE_FIX) m_lightMan->SetLightExcludeType(rankLight, Gfx::ENG_OBJTYPE_TERRAIN); - + continue; } - - if (Cmd(line, "GroundSpot") && !resetObject) + + if (line->GetCommand() == "GroundSpot" && !resetObject) { rank = m_engine->CreateGroundSpot(); if (rank != -1) { - m_engine->SetObjectGroundSpotPos(rank, OpPos(line, "pos")*g_unit); - m_engine->SetObjectGroundSpotRadius(rank, OpFloat(line, "radius", 10.0f)*g_unit); - m_engine->SetObjectGroundSpotColor(rank, OpColor(line, "color", Gfx::Color(0.533f, 0.533f, 0.533f, 0.533f))); - m_engine->SetObjectGroundSpotSmooth(rank, OpFloat(line, "smooth", 1.0f)); - m_engine->SetObjectGroundSpotMinMax(rank, OpFloat(line, "min", 0.0f)*g_unit, - OpFloat(line, "max", 0.0f)*g_unit); + m_engine->SetObjectGroundSpotPos(rank, line->GetParam("pos")->AsPoint()*g_unit); + m_engine->SetObjectGroundSpotRadius(rank, line->GetParam("radius")->AsFloat(10.0f)*g_unit); + m_engine->SetObjectGroundSpotColor(rank, line->GetParam("color")->AsColor(Gfx::Color(0.533f, 0.533f, 0.533f, 0.533f))); + m_engine->SetObjectGroundSpotSmooth(rank, line->GetParam("smooth")->AsFloat(1.0f)); + m_engine->SetObjectGroundSpotMinMax(rank, line->GetParam("min")->AsFloat(0.0f)*g_unit, + line->GetParam("max")->AsFloat(0.0f)*g_unit); } continue; } - - if (Cmd(line, "WaterColor") && !resetObject) + + if (line->GetCommand() == "WaterColor" && !resetObject) { - m_engine->SetWaterAddColor(OpColor(line, "color", Gfx::Color(0.0f, 0.0f, 0.0f, 1.0f))); + m_engine->SetWaterAddColor(line->GetParam("color")->AsColor()); continue; } - - if (Cmd(line, "MapColor") && !resetObject) + + if (line->GetCommand() == "MapColor" && !resetObject) { - m_map->FloorColorMap(OpColor(line, "floor", Gfx::Color(0.533f, 0.533f, 0.533f, 0.533f)), - OpColor(line, "water", Gfx::Color(0.533f, 0.533f, 0.533f, 0.533f))); - m_mapShow = OpInt(line, "show", 1); + m_map->FloorColorMap(line->GetParam("floor")->AsColor(Gfx::Color(0.533f, 0.533f, 0.533f, 0.533f)), + line->GetParam("water")->AsColor(Gfx::Color(0.533f, 0.533f, 0.533f, 0.533f))); + m_mapShow = line->GetParam("show")->AsBool(true); m_map->ShowMap(m_mapShow); - m_map->SetToy(OpInt(line, "toyIcon", 0)); - m_mapImage = OpInt(line, "image", 0); + m_map->SetToy(line->GetParam("toyIcon")->AsBool(false)); + m_mapImage = line->GetParam("image")->AsBool(false); if (m_mapImage) { - Math::Vector offset; - OpString(line, "filename", m_mapFilename); - offset = OpPos(line, "offset"); - m_map->SetFixParam(OpFloat(line, "zoom", 1.0f), + Math::Vector offset; + strcpy(m_mapFilename, line->GetParam("filename")->AsPath("").c_str()); //TODO: don't make this relative to textures/ + offset = line->GetParam("offset")->AsPoint(Math::Vector(0.0f, 0.0f, 0.0f)); + m_map->SetFixParam(line->GetParam("zoom")->AsFloat(1.0f), offset.x, offset.z, - OpFloat(line, "angle", 0.0f)*Math::PI/180.0f, - OpInt(line, "mode", 0), - OpInt(line, "debug", 0)); + line->GetParam("angle")->AsFloat(0.0f)*Math::PI/180.0f, + line->GetParam("mode")->AsInt(0), + line->GetParam("debug")->AsBool(false)); } continue; } - - if (Cmd(line, "MapZoom") && !resetObject) + + if (line->GetCommand() == "MapZoom" && !resetObject) { - m_map->ZoomMap(OpFloat(line, "factor", 2.0f)); - m_map->MapEnable(OpInt(line, "enable", 1)); + m_map->ZoomMap(line->GetParam("factor")->AsFloat(2.0f)); + m_map->MapEnable(line->GetParam("enable")->AsBool(true)); continue; } - - if (Cmd(line, "MaxFlyingHeight") && !resetObject) + + if (line->GetCommand() == "MaxFlyingHeight" && !resetObject) { - m_terrain->SetFlyingMaxHeight(OpFloat(line, "max", 280.0f)*g_unit); + m_terrain->SetFlyingMaxHeight(line->GetParam("max")->AsFloat(280.0f)*g_unit); continue; } - - if (Cmd(line, "AddFlyingHeight") && !resetObject) + + if (line->GetCommand() == "AddFlyingHeight" && !resetObject) { - m_terrain->AddFlyingLimit(OpPos(line, "center")*g_unit, - OpFloat(line, "extRadius", 20.0f)*g_unit, - OpFloat(line, "intRadius", 10.0f)*g_unit, - OpFloat(line, "maxHeight", 200.0f)); + m_terrain->AddFlyingLimit(line->GetParam("center")->AsPoint()*g_unit, + line->GetParam("extRadius")->AsFloat(20.0f)*g_unit, + line->GetParam("intRadius")->AsFloat(10.0f)*g_unit, + line->GetParam("maxHeight")->AsFloat(200.0f)); continue; } - - if (Cmd(line, "Camera")) + + if (line->GetCommand() == "Camera") { - m_camera->Init(OpDir(line, "eye")*g_unit, - OpDir(line, "lookat")*g_unit, - resetObject?0.0f:OpFloat(line, "delay", 0.0f)); - - if (OpInt(line, "fadeIn", 0) == 1) + m_camera->Init(line->GetParam("eye")->AsPoint(Math::Vector(0.0f, 0.0f, 0.0f))*g_unit, + line->GetParam("lookat")->AsPoint(Math::Vector(0.0f, 0.0f, 0.0f))*g_unit, + resetObject ? 0.0f : line->GetParam("delay")->AsFloat(0.0f)); + + if (line->GetParam("fadeIn")->AsBool(false)) m_camera->StartOver(Gfx::CAM_OVER_EFFECT_FADEIN_WHITE, Math::Vector(0.0f, 0.0f, 0.0f), 1.0f); - - m_camera->SetFixDirection(OpFloat(line, "fixDirection", 0.25f)*Math::PI); + + m_camera->SetFixDirection(line->GetParam("fixDirection")->AsFloat(0.25f)*Math::PI); continue; } - - if (Cmd(line, "EndMissionTake") && !resetObject && m_controller == nullptr) + + if (line->GetCommand() == "EndMissionTake" && !resetObject && m_controller == nullptr) { int i = m_endTakeTotal; if (i < 10) { - m_endTake[i].pos = OpPos(line, "pos")*g_unit; - m_endTake[i].dist = OpFloat(line, "dist", (m_version < 2 ? 8.0f : 100.0f))*g_unit; - m_endTake[i].type = OpTypeObject(line, "type", OBJECT_NULL); - m_endTake[i].min = OpInt(line, "min", 1); - m_endTake[i].max = OpInt(line, "max", 9999); + m_endTake[i].pos = line->GetParam("pos")->AsPoint(Math::Vector(0.0f, 0.0f, 0.0f))*g_unit; + m_endTake[i].dist = line->GetParam("dist")->AsFloat(m_version < 2 ? 8.0f : 100.0f)*g_unit; + m_endTake[i].type = line->GetParam("type")->AsObjectType(OBJECT_NULL); + m_endTake[i].min = line->GetParam("min")->AsInt(1); + m_endTake[i].max = line->GetParam("max")->AsInt(9999); if (m_version >= 2) { - m_endTake[i].powermin = OpFloat(line, "powermin", -1); - m_endTake[i].powermax = OpFloat(line, "powermax", 100); - m_endTake[i].tool = OpTool(line, "tool"); - m_endTake[i].drive = OpDrive(line, "drive"); + m_endTake[i].powermin = line->GetParam("powermin")->AsFloat(-1); + m_endTake[i].powermax = line->GetParam("powermax")->AsFloat(100); + m_endTake[i].tool = line->GetParam("tool")->AsToolType(TOOL_OTHER); + m_endTake[i].drive = line->GetParam("drive")->AsDriveType(DRIVE_OTHER); } else { @@ -4925,93 +4799,91 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) m_endTake[i].tool = TOOL_OTHER; m_endTake[i].drive = DRIVE_OTHER; } - m_endTake[i].lost = OpInt(line, "lost", -1); - m_endTake[i].immediat = OpInt(line, "immediat", 0); - OpString(line, "message", m_endTake[i].message); + m_endTake[i].lost = line->GetParam("lost")->AsInt(-1); + m_endTake[i].immediat = line->GetParam("immediat")->AsBool(false); + strcpy(m_endTake[i].message, line->GetParam("message")->AsString("").c_str()); //TODO: Really, ending mission on message()? Is this used anywhere? Do we need that? m_endTakeTotal ++; } continue; } - if (Cmd(line, "EndMissionDelay") && !resetObject && m_controller == nullptr) + if (line->GetCommand() == "EndMissionDelay" && !resetObject && m_controller == nullptr) { - m_endTakeWinDelay = OpFloat(line, "win", 2.0f); - m_endTakeLostDelay = OpFloat(line, "lost", 2.0f); + m_endTakeWinDelay = line->GetParam("win")->AsFloat(2.0f); + m_endTakeLostDelay = line->GetParam("lost")->AsFloat(2.0f); continue; } - if (Cmd(line, "EndMissionResearch") && !resetObject && m_controller == nullptr) + if (line->GetCommand() == "EndMissionResearch" && !resetObject && m_controller == nullptr) //TODO: Is this used anywhere? { - m_endTakeResearch |= OpResearch(line, "type"); + m_endTakeResearch |= line->GetParam("type")->AsResearchFlag(); continue; } - if (Cmd(line, "EndMissionNever") && !resetObject && m_controller == nullptr) + if (line->GetCommand() == "EndMissionNever" && !resetObject && m_controller == nullptr) { m_endTakeNever = true; continue; } - - if (Cmd(line, "ObligatoryToken") && !resetObject) + + if (line->GetCommand() == "ObligatoryToken" && !resetObject) //NOTE: This was used only in CeeBot, maybe we should add this to some Colobot exercises? { int i = m_obligatoryTotal; - if (i < 100) + if (i < 100) //TODO: remove the limit { - OpString(line, "text", m_obligatoryToken[i]); + strcpy(m_obligatoryToken[i], line->GetParam("text")->AsString().c_str()); m_obligatoryTotal ++; } continue; } - - if (Cmd(line, "ProhibitedToken") && !resetObject) + + if (line->GetCommand() == "ProhibitedToken" && !resetObject) //NOTE: This was used only in CeeBot, maybe we should add this to some Colobot exercises? { int i = m_prohibitedTotal; - if (i < 100) + if (i < 100) //TODO: remove the limit { - OpString(line, "text", m_prohibitedToken[i]); + strcpy(m_prohibitedToken[i], line->GetParam("text")->AsString().c_str()); m_prohibitedTotal ++; } continue; } - - if (Cmd(line, "EnableBuild") && !resetObject) + + if (line->GetCommand() == "EnableBuild" && !resetObject) { - g_build |= OpBuild(line, "type"); + g_build |= line->GetParam("type")->AsBuildFlag(); continue; } - - if (Cmd(line, "EnableResearch") && !resetObject) + + if (line->GetCommand() == "EnableResearch" && !resetObject) { - g_researchEnable |= OpResearch(line, "type"); + g_researchEnable |= line->GetParam("type")->AsResearchFlag(); continue; } - - if (Cmd(line, "DoneResearch") && read[0] == 0 && !resetObject) // not loading file? + + if (line->GetCommand() == "DoneResearch" && read[0] == 0 && !resetObject) // not loading file? { - g_researchDone |= OpResearch(line, "type"); + g_researchDone |= line->GetParam("type")->AsResearchFlag(); continue; } - - if (Cmd(line, "NewScript") && !resetObject) + + if (line->GetCommand() == "NewScript" && !resetObject) { - OpString(line, "name", name); - AddNewScriptName(OpTypeObject(line, "type", OBJECT_NULL), name); + char name[200]; + strcpy(name, line->GetParam("name")->AsPath("").c_str()); //TODO: don't make this relative to ai/ + AddNewScriptName(line->GetParam("type")->AsObjectType(OBJECT_NULL), name); continue; } - - if (line[0] == '\n') continue; // Ignore empty lines - if (line[0] == '\0') continue; // Ignore empty lines - if (read[0] != 0) continue; // Ignore when loading saved game - - GetLogger()->Error("Syntax error in file '%s' (line %d): Unknown command: %s", filename, lineNum, line); // Don't add \n at the end of log message - it's included in line variable + + if(read[0] != 0) continue; // ignore errors when loading saevd game (TODO: don't report ones that are just not loaded when loading saved game) + if(resetObject) continue; // ignore when reseting just objects (TODO: see above) + + throw CLevelParserException("Unknown command: '"+line->GetCommand()+"' in "+line->GetLevel()->GetFilename()+":"+std::to_string(line->GetLineNumber())); } - stream.close(); - if (read[0] == 0) CompileScript(soluce); // compiles all scripts - if (strcmp(base, "scene") == 0 && !resetObject) // mission? + if (strcmp(base, "missions") == 0 && !resetObject) // mission? WriteFreeParam(); - if (strcmp(base, "free") == 0 && !resetObject) // free play? + if (strcmp(base, "freemissions") == 0 && !resetObject) // free play? { g_researchDone = m_freeResearch; @@ -6541,20 +6413,28 @@ void CRobotMain::ResetCreate() m_camera->SetType(Gfx::CAM_TYPE_DIALOG); - CreateScene(m_dialog->GetSceneSoluce(), false, true); + try { + CreateScene(m_dialog->GetSceneSoluce(), false, true); - if (!GetNiceReset()) return; + if (!GetNiceReset()) return; - for (int i = 0; i < 1000000; i++) - { - CObject* obj = static_cast(iMan->SearchInstance(CLASS_OBJECT, i)); - if (obj == nullptr) break; + for (int i = 0; i < 1000000; i++) + { + CObject* obj = static_cast(iMan->SearchInstance(CLASS_OBJECT, i)); + if (obj == nullptr) break; - ResetCap cap = obj->GetResetCap(); - if (cap == RESET_NONE) continue; + ResetCap cap = obj->GetResetCap(); + if (cap == RESET_NONE) continue; - Gfx::CPyro* pyro = new Gfx::CPyro(); - pyro->Create(Gfx::PT_RESET, obj); + Gfx::CPyro* pyro = new Gfx::CPyro(); + pyro->Create(Gfx::PT_RESET, obj); + } + } + catch(const CLevelParserException& e) + { + CLogger::GetInstancePointer()->Error("An error occured while trying to reset scene\n"); + CLogger::GetInstancePointer()->Error("%s\n", e.what()); + ChangePhase(PHASE_TERM); } } diff --git a/src/script/cmdtoken.cpp b/src/script/cmdtoken.cpp index 6393505..3a84bb3 100644 --- a/src/script/cmdtoken.cpp +++ b/src/script/cmdtoken.cpp @@ -23,6 +23,8 @@ #include +// TODO: Remove these functions + // Skips spaces. diff --git a/src/script/script.cpp b/src/script/script.cpp index 578c07d..605df71 100644 --- a/src/script/script.cpp +++ b/src/script/script.cpp @@ -53,7 +53,6 @@ #include "ui/edit.h" #include "ui/list.h" #include "ui/displaytext.h" -#include #include -- cgit v1.2.3-1-g7c22 From 3b1cfdbfb4e57aff7c4d651ea2a14aceab36be14 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Fri, 26 Sep 2014 19:48:53 +0200 Subject: Don't use physfs in saving code for now This requires too much refactoring and we want to release 0.1.5 soon. We'll need to rewrite saving/loading code to fully implement new level parser anyway. --- src/ui/maindialog.cpp | 248 +++++++++++++++++++++++++++++++++++--------------- src/ui/maindialog.h | 7 +- 2 files changed, 182 insertions(+), 73 deletions(-) diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index ba8da9e..068732d 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -52,12 +52,15 @@ #include "ui/window.h" #include "ui/edit.h" #include "ui/editvalue.h" +#include #include #include #include #include #include +#include +#include //TODO Get rid of all sprintf's @@ -108,6 +111,8 @@ static int perso_color[3*10*3] = 0, 0, 0, // }; +namespace fs = boost::filesystem; + // Constructor of robot application. CMainDialog::CMainDialog() @@ -172,7 +177,12 @@ CMainDialog::CMainDialog() m_partiTime[i] = 0.0f; } + #if DEV_BUILD + m_savegameDir = "savegame"; + #else m_savegameDir = "savegame"; + #endif + m_publicDir = "program"; m_userDir = "user"; m_filesDir = m_savegameDir; @@ -3346,16 +3356,50 @@ std::string & CMainDialog::GetFilesDir() void CMainDialog::ReadNameList() { - CWindow* pw = static_cast(m_interface->SearchControl(EVENT_WINDOW5)); - if (pw == nullptr) return; - CList* pl = static_cast(pw->SearchControl(EVENT_INTERFACE_NLIST)); - if (pl == nullptr) return; + CWindow* pw; + CList* pl; + //struct _finddata_t fBuffer; + char dir[MAX_FNAME]; + // char filenames[MAX_FNAME][100]; + std::vector fileNames; + + pw = static_cast(m_interface->SearchControl(EVENT_WINDOW5)); + if ( pw == 0 ) return; + pl = static_cast(pw->SearchControl(EVENT_INTERFACE_NLIST)); + if ( pl == 0 ) return; pl->Flush(); - auto userSaveDirs = CResourceManager::ListDirectories(m_savegameDir); - for (int i = 0; i < static_cast(userSaveDirs.size()); ++i) + + try { - pl->SetItemName(i, userSaveDirs.at(i).c_str()); + if (! fs::exists(m_savegameDir) && fs::is_directory(m_savegameDir)) + { + GetLogger()->Error("Savegame dir does not exist %s\n",dir); + } + else + { + fs::directory_iterator dirIt(m_savegameDir), dirEndIt; + + for (; dirIt != dirEndIt; ++dirIt) + { + const fs::path& p = *dirIt; + if (fs::is_directory(p)) + { + fileNames.push_back(p.leaf().string()); + } + } + } + } + catch (std::exception & e) + { + GetLogger()->Error("Error on listing savegame directory : %s\n", e.what()); + return; + } + + + for (size_t i=0 ; iSetItemName(i, fileNames.at(i).c_str()); } } @@ -3538,6 +3582,7 @@ void CMainDialog::NameCreate() CWindow* pw; CEdit* pe; char name[100]; + std::string dir; char c; int len, i, j; @@ -3578,10 +3623,13 @@ void CMainDialog::NameCreate() return; } - std::string userSaveDir = m_savegameDir + "/" + name; - if (!CResourceManager::DirectoryExists(userSaveDir)) + // TODO: _mkdir(m_savegameDir); // if does not exist yet! + + + dir = m_savegameDir + "/" + name; + if (!fs::exists(dir)) { - CResourceManager::CreateDirectory(userSaveDir); + fs::create_directories(dir); } else { @@ -3598,26 +3646,58 @@ void CMainDialog::NameCreate() m_main->ChangePhase(PHASE_INIT); } +// Deletes a folder and all its offspring. + +bool RemoveDir(char *dirName) +{ + try + { + + if (!fs::exists(dirName) && fs::is_directory(dirName)) + { + GetLogger()->Error("Directory does not exist %s\n",dirName); + return false; + } + else + { + fs::remove_all(dirName); + } + + } + catch (std::exception & e) + { + GetLogger()->Error("Error on removing directory %s : %s\n", dirName, e.what()); + return false; + } + return true; +} + // Removes a player. void CMainDialog::NameDelete() { - CWindow* pw = static_cast(m_interface->SearchControl(EVENT_WINDOW5)); - if (pw == nullptr) return; - CList* pl = static_cast(pw->SearchControl(EVENT_INTERFACE_NLIST)); - if (pl == nullptr) return; + CWindow* pw; + CList* pl; + int sel; + char* gamer; + char dir[100]; + + pw = static_cast(m_interface->SearchControl(EVENT_WINDOW5)); + if ( pw == 0 ) return; + pl = static_cast(pw->SearchControl(EVENT_INTERFACE_NLIST)); + if ( pl == 0 ) return; - int sel = pl->GetSelect(); - if (sel == -1) + sel = pl->GetSelect(); + if ( sel == -1 ) { m_sound->Play(SOUND_TZOING); return; } + gamer = pl->GetItemName(sel); - char* gamer = pl->GetItemName(sel); - - std::string userSaveDir = m_savegameDir + "/" + gamer; - if (!CResourceManager::RemoveDirectory(userSaveDir)) + // Deletes all the contents of the file. + sprintf(dir, "%s/%s", m_savegameDir.c_str(), gamer); + if ( !RemoveDir(dir) ) { m_sound->Play(SOUND_TZOING); return; @@ -3927,13 +4007,17 @@ void CMainDialog::DefPerso() bool CMainDialog::IsIOReadScene() { - std::string userSaveDir = m_savegameDir + "/" + m_main->GetGamerName(); - auto saveDirs = CResourceManager::ListDirectories(userSaveDir); - for (auto dir : saveDirs) + fs::directory_iterator end_iter; + + fs::path saveDir(m_savegameDir + "/" + m_main->GetGamerName()); + if (fs::exists(saveDir) && fs::is_directory(saveDir)) { - if (CResourceManager::Exists(userSaveDir + "/" + dir + "/" + "data.sav")) + for( fs::directory_iterator dir_iter(saveDir) ; dir_iter != end_iter ; ++dir_iter) { - return true; + if ( fs::is_directory(dir_iter->status()) && fs::exists(dir_iter->path() / "data.sav") ) + { + return true; + } } } @@ -4007,53 +4091,59 @@ void CMainDialog::IOReadName() void CMainDialog::IOReadList() { - CWindow* pw = static_cast(m_interface->SearchControl(EVENT_WINDOW5)); - if (pw == nullptr) return; - CList* pl = static_cast(pw->SearchControl(EVENT_INTERFACE_IOLIST)); - if (pl == nullptr) return; + FILE* file = NULL; + CWindow* pw; + CList* pl; + char line[500]; + char name[100]; + int i; + std::vector v; + + pw = static_cast(m_interface->SearchControl(EVENT_WINDOW5)); + if ( pw == 0 ) return; + pl = static_cast(pw->SearchControl(EVENT_INTERFACE_IOLIST)); + if ( pl == 0 ) return; pl->Flush(); + fs::path saveDir(m_savegameDir + "/" + m_main->GetGamerName()); m_saveList.clear(); - std::string userSaveDir = m_savegameDir + "/" + m_main->GetGamerName(); - - auto saveDirs = CResourceManager::ListDirectories(userSaveDir); - std::sort(saveDirs.begin(), saveDirs.end()); - - for (auto dir : saveDirs) + if (fs::exists(saveDir) && fs::is_directory(saveDir)) { - std::string savegameFile = userSaveDir + "/" + dir + "/" + "data.sav"; - if (CResourceManager::Exists(savegameFile)) + copy(fs::directory_iterator(saveDir), fs::directory_iterator(), back_inserter(v)); + std::sort(v.begin(), v.end()); + for( std::vector::iterator iter = v.begin(); iter != v.end(); ++iter) { - char line[500]; - char name[100]; + if ( fs::is_directory(*iter) && fs::exists(*iter / "data.sav") ) + { - FILE* file = fopen(savegameFile.c_str(), "r"); - if ( file == NULL ) continue; + file = fopen((*iter / "data.sav").make_preferred().string().c_str(), "r"); + if ( file == NULL ) continue; - while ( fgets(line, 500, file) != NULL ) - { - for (int i=0 ; i<500 ; i++ ) + while ( fgets(line, 500, file) != NULL ) { - if ( line[i] == '\t' ) line[i] = ' '; // replaces tab by space - if ( line[i] == '/' && line[i+1] == '/' ) + for ( i=0 ; i<500 ; i++ ) { - line[i] = 0; + if ( line[i] == '\t' ) line[i] = ' '; // replaces tab by space + if ( line[i] == '/' && line[i+1] == '/' ) + { + line[i] = 0; + break; + } + } + + if ( Cmd(line, "Title") ) + { + OpString(line, "text", name); break; } } + fclose(file); - if ( Cmd(line, "Title") ) - { - OpString(line, "text", name); - break; - } + pl->SetItemName(m_saveList.size(), name); + m_saveList.push_back(*iter); } - fclose(file); - - pl->SetItemName(m_saveList.size(), name); - m_saveList.push_back(userSaveDir + "/" + dir); } } @@ -4092,7 +4182,7 @@ void CMainDialog::IOUpdateList() if (m_saveList.size() <= static_cast(sel)) return; - std::string filename = m_saveList.at(sel) + "/" + "screen.png"; + std::string filename = (m_saveList.at(sel) / "screen.png").make_preferred().string(); if ( m_phase == PHASE_WRITE || m_phase == PHASE_WRITEs ) { if ( sel < max-1 ) @@ -4136,9 +4226,16 @@ void CMainDialog::IODeleteScene() return; } - if (CResourceManager::DirectoryExists(m_saveList.at(sel))) + try + { + if (fs::exists(m_saveList.at(sel)) && fs::is_directory(m_saveList.at(sel))) + { + fs::remove_all(m_saveList.at(sel)); + } + } + catch (std::exception & e) { - CResourceManager::RemoveDirectory(m_saveList.at(sel)); + GetLogger()->Error("Error removing save %s : %s\n", pl->GetItemName(sel), e.what()); } IOReadList(); @@ -4182,28 +4279,28 @@ bool CMainDialog::IOWriteScene() return false; } - std::string dir; + fs::path dir; pe->GetText(info, 100); if (static_cast(sel) >= m_saveList.size()) { - dir = m_savegameDir + "/" + m_main->GetGamerName() + "/" + "save" + clearName(info); + dir = fs::path(m_savegameDir) / m_main->GetGamerName() / ("save" + clearName(info)); } else { dir = m_saveList.at(sel); } - if (!CResourceManager::DirectoryExists(dir)) + if (!fs::exists(dir)) { - CResourceManager::CreateDirectory(dir); + fs::create_directories(dir); } - std::string savegameFileName = dir + "/" + "data.sav"; - std::string fileCBot = dir + "/" + "cbot.run"; - m_main->IOWriteScene(savegameFileName.c_str(), fileCBot.c_str(), info); + std::string fileName = (dir / "data.sav").make_preferred().string(); + std::string fileCBot = (dir / "cbot.run").make_preferred().string(); + m_main->IOWriteScene(fileName.c_str(), fileCBot.c_str(), info); m_shotDelay = 3; - m_shotName = dir + "/" + "screen.png"; + m_shotName = (dir / "screen.png").make_preferred().string(); return true; } @@ -4230,8 +4327,8 @@ bool CMainDialog::IOReadScene() return false; } - std::string fileName = m_saveList.at(sel) + "/" + "data.sav"; - std::string fileCbot = m_saveList.at(sel) + "/" + "cbot.run"; + std::string fileName = (m_saveList.at(sel) / "data.sav").make_preferred().string(); + std::string fileCbot = (m_saveList.at(sel) / "cbot.run").make_preferred().string(); file = fopen(fileName.c_str(), "r"); if ( file == NULL ) @@ -4351,10 +4448,17 @@ void CMainDialog::UpdateSceneChap(int &chap) if ( m_phase == PHASE_USER ) { j = 0; + fs::directory_iterator dirIt(m_savegameDir), dirEndIt; + m_userList.clear(); - auto userSaveDirs = CResourceManager::ListDirectories(m_savegameDir); - std::sort(userSaveDirs.begin(), userSaveDirs.end()); - m_userList = userSaveDirs; + for (; dirIt != dirEndIt; ++dirIt) + { + const fs::path& p = *dirIt; + if (fs::is_directory(p)) + { + m_userList.push_back(p.leaf().string()); + } + } m_userTotal = m_userList.size(); for ( j=0 ; j +#include + #include +namespace fs = boost::filesystem; + class CEventQueue; class CSoundInterface; @@ -260,7 +265,7 @@ protected: SceneInfo m_sceneInfo[MAXSCENE]; - std::vector m_saveList; + std::vector m_saveList; }; } // namespace Ui -- cgit v1.2.3-1-g7c22 From de375548ade0015f6466fae74dc1fe9bba7c8357 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Fri, 26 Sep 2014 20:53:11 +0200 Subject: Userlevel listing --- src/object/level/parser.cpp | 31 +++++-- src/object/level/parserparam.cpp | 15 ++-- src/object/level/parserparam.h | 5 +- src/object/robotmain.cpp | 14 +-- src/object/robotmain.h | 2 +- src/ui/edit.cpp | 8 +- src/ui/maindialog.cpp | 189 +++++++-------------------------------- src/ui/maindialog.h | 4 +- 8 files changed, 81 insertions(+), 187 deletions(-) diff --git a/src/object/level/parser.cpp b/src/object/level/parser.cpp index 89059d0..e73142e 100644 --- a/src/object/level/parser.cpp +++ b/src/object/level/parser.cpp @@ -23,6 +23,8 @@ #include "object/level/parserexceptions.h" +#include "object/robotmain.h" + #include #include #include @@ -57,12 +59,25 @@ CLevelParser::~CLevelParser() std::string CLevelParser::BuildSceneName(std::string category, int chapter, int rank, bool sceneFile) { std::ostringstream outstream; - if(category == "user") + if(category == "custom") { - //TODO: Change this to point user dir according to operating system - /*rankStream << std::setfill('0') << std::setw(2) << rank%100; - filename = m_userDir + "/" + m_userList[rank/100-1] + "/" + rankStream.str() + ".txt";*/ - assert(false); //TODO: Userlevel support + outstream << "levels/custom/"; + outstream << CRobotMain::GetInstancePointer()->GetUserLevelName(chapter) << "/"; + if(rank == 000) + { + if(sceneFile) + { + outstream << "/chaptertitle.txt"; + } + } + else + { + outstream << "/level" << std::setfill('0') << std::setw(3) << rank; + if(sceneFile) + { + outstream << "/scene.txt"; + } + } } else if(category == "perso") { @@ -217,5 +232,9 @@ void CLevelParser::AddLine(CLevelParserLine* line) CLevelParserLine* CLevelParser::Get(std::string command) { - assert(false); //TODO + for(auto& line : m_lines) { + if(line->GetCommand() == command) + return line; + } + throw CLevelParserException("Command not found: "+command); } \ No newline at end of file diff --git a/src/object/level/parserparam.cpp b/src/object/level/parserparam.cpp index ec043b4..39a953b 100644 --- a/src/object/level/parserparam.cpp +++ b/src/object/level/parserparam.cpp @@ -168,9 +168,6 @@ std::string CLevelParserParam::InjectLevelDir(std::string path, const std::strin if(newPath == path) { newPath = defaultDir + (!defaultDir.empty() ? "/" : "") + newPath; - } else { - if(defaultDir == "") - throw CLevelParserException("TODO: Param "+m_name+" does not yet support %lvl%! :("); } //TODO: Fallback to English std::string langStr(1, CApplication::GetInstancePointer()->GetLanguageChar()); @@ -178,12 +175,20 @@ std::string CLevelParserParam::InjectLevelDir(std::string path, const std::strin return newPath; } +std::string CLevelParserParam::ToPath(std::string path, const std::string defaultDir) +{ + if(defaultDir == "" && path.find("%lvl%") != std::string::npos) + throw CLevelParserException("TODO: Param "+m_name+" does not yet support %lvl%! :("); + + return InjectLevelDir(path, defaultDir); +} + std::string CLevelParserParam::AsPath(const std::string defaultDir) { if(m_empty) throw CLevelParserExceptionMissingParam(this); - return InjectLevelDir(AsString(), defaultDir); + return ToPath(AsString(), defaultDir); } std::string CLevelParserParam::AsPath(const std::string defaultDir, std::string def) @@ -191,7 +196,7 @@ std::string CLevelParserParam::AsPath(const std::string defaultDir, std::string if(m_empty) return InjectLevelDir(def, defaultDir); - return InjectLevelDir(AsString(def), defaultDir); + return ToPath(AsString(def), defaultDir); } diff --git a/src/object/level/parserparam.h b/src/object/level/parserparam.h index 9d5ba99..93865a2 100644 --- a/src/object/level/parserparam.h +++ b/src/object/level/parserparam.h @@ -103,14 +103,15 @@ public: std::string GetValue(); bool IsDefined(); + static std::string InjectLevelDir(std::string path, const std::string defaultDir); + private: void ParseArray(); template T Cast(std::string value, std::string requestedType); template T Cast(std::string requestedType); - std::string InjectLevelDir(std::string path, const std::string defaultDir); - + std::string ToPath(std::string path, const std::string defaultDir); ObjectType ToObjectType(std::string value); DriveType ToDriveType(std::string value); ToolType ToToolType(std::string value); diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp index ce7f8d0..315ffe1 100644 --- a/src/object/robotmain.cpp +++ b/src/object/robotmain.cpp @@ -3874,7 +3874,6 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) int rank = m_dialog->GetSceneRank(); const char* read = m_dialog->GetSceneRead().c_str(); const char* stack = m_dialog->GetStackRead().c_str(); - m_dialog->SetUserDir(base, rank); m_fixScene = fixScene; @@ -7137,16 +7136,7 @@ void CRobotMain::DisplayError(Error err, Math::Vector goal, float height, float m_displayText->DisplayError(err, goal, height, dist, time); } -void CRobotMain::InjectLevelDir(std::string& path, const std::string defaultDir) +std::string& CRobotMain::GetUserLevelName(int id) { - std::string oldPath = path; - std::string lvlDir; - CRobotMain::GetInstancePointer()->BuildSceneName(lvlDir, CRobotMain::GetInstancePointer()->GetSceneName(), CRobotMain::GetInstancePointer()->GetSceneRank(), false); - boost::replace_all(path, "%lvl%", lvlDir); - if(path == oldPath) - { - path = defaultDir + "/" + path; - } - std::string langStr(1, CApplication::GetInstancePointer()->GetLanguageChar()); - boost::replace_all(path, "%lng%", langStr); + return m_dialog->GetUserLevelName(id); } diff --git a/src/object/robotmain.h b/src/object/robotmain.h index f9bf131..466c47d 100644 --- a/src/object/robotmain.h +++ b/src/object/robotmain.h @@ -390,7 +390,7 @@ public: void DisplayError(Error err, CObject* pObj, float time=10.0f); void DisplayError(Error err, Math::Vector goal, float height=15.0f, float dist=60.0f, float time=10.0f); - static void InjectLevelDir(std::string& path, const std::string defaultDir = ""); + std::string& GetUserLevelName(int id); protected: bool EventFrame(const Event &event); diff --git a/src/ui/edit.cpp b/src/ui/edit.cpp index 8f46e42..68c503b 100644 --- a/src/ui/edit.cpp +++ b/src/ui/edit.cpp @@ -24,6 +24,8 @@ #include "object/robotmain.h" +#include "object/level/parserparam.h" + #include "common/resources/inputstream.h" #include "common/resources/outputstream.h" @@ -788,7 +790,7 @@ void CEdit::HyperJump(std::string name, std::string marker) sMarker = marker; filename = name + std::string(".txt"); - CRobotMain::InjectLevelDir(filename, "help/%lng%"); + filename = CLevelParserParam::InjectLevelDir(filename, "help/%lng%"); boost::replace_all(filename, "\\", "/"); //TODO: Fix this in files if ( ReadText(filename) ) @@ -1144,7 +1146,7 @@ void CEdit::DrawImage(Math::Point pos, std::string name, float width, std::string filename; filename = name + ".png"; - CRobotMain::InjectLevelDir(filename, "icons"); + filename = CLevelParserParam::InjectLevelDir(filename, "icons"); boost::replace_all(filename, "\\", "/"); //TODO: Fix this in files m_engine->SetTexture(filename); @@ -1434,7 +1436,7 @@ void CEdit::LoadImage(std::string name) { std::string filename; filename = name + ".png"; - CRobotMain::InjectLevelDir(filename, "icons"); + filename = CLevelParserParam::InjectLevelDir(filename, "icons"); boost::replace_all(filename, "\\", "/"); //TODO: Fix this in files m_engine->LoadTexture(filename); } diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index 068732d..3acf1dd 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -33,6 +33,8 @@ #include "common/resources/inputstream.h" #include "common/resources/outputstream.h" +#include "object/level/parser.h" + #include "object/robotmain.h" #include "script/cmdtoken.h" @@ -52,7 +54,6 @@ #include "ui/window.h" #include "ui/edit.h" #include "ui/editvalue.h" -#include #include #include @@ -177,14 +178,8 @@ CMainDialog::CMainDialog() m_partiTime[i] = 0.0f; } - #if DEV_BUILD - m_savegameDir = "savegame"; - #else m_savegameDir = "savegame"; - #endif - m_publicDir = "program"; - m_userDir = "user"; m_filesDir = m_savegameDir; m_setupFull = m_app->GetVideoConfig().fullScreen; @@ -316,7 +311,6 @@ void CMainDialog::ChangePhase(Phase phase) pb = pw->CreateButton(pos, ddim, -1, EVENT_INTERFACE_QUIT); pb->SetState(STATE_SHADOW); - #if DEV_BUILD if ( m_accessEnable && m_accessUser ) { pos.x = 447.0f/640.0f; @@ -325,7 +319,6 @@ void CMainDialog::ChangePhase(Phase phase) pb = pw->CreateButton(pos, ddim, -1, EVENT_INTERFACE_USER); pb->SetState(STATE_SHADOW); } - #endif /*pos.x = 139.0f/640.0f; pos.y = 313.0f/480.0f; @@ -723,7 +716,7 @@ void CMainDialog::ChangePhase(Phase phase) if ( m_phase == PHASE_DEFI ) strcpy(m_sceneName, "challenges" ); if ( m_phase == PHASE_MISSION ) strcpy(m_sceneName, "missions"); if ( m_phase == PHASE_FREE ) strcpy(m_sceneName, "freemissions"); - if ( m_phase == PHASE_USER ) strcpy(m_sceneName, "user"); + if ( m_phase == PHASE_USER ) strcpy(m_sceneName, "custom"); ReadGamerInfo(); @@ -3271,23 +3264,6 @@ void CMainDialog::NiceParticle(Math::Point mouse, bool bPress) -// Specifies the special user folder if needed. - -void CMainDialog::SetUserDir(char *base, int rank) -{ - std::string dir; - - if ( strcmp(base, "user") == 0 && rank >= 100 ) - { - dir = m_userDir + "/" + m_userList.at(rank/100-1); - GetProfile().SetUserDir(dir); - } - else - { - GetProfile().SetUserDir(""); - } -} - // Builds the file name of a mission. void CMainDialog::BuildSceneName(std::string &filename, char *base, int rank, bool sceneFile) @@ -3296,45 +3272,7 @@ void CMainDialog::BuildSceneName(std::string &filename, char *base, int rank, bo int chapter = rank/100; int new_rank = rank%100; - std::ostringstream outstream; - if ( strcmp(base, "user") == 0 ) - { - //TODO: Change this to point user dir according to operating system - /*rankStream << std::setfill('0') << std::setw(2) << rank%100; - filename = m_userDir + "/" + m_userList[rank/100-1] + "/" + rankStream.str() + ".txt";*/ - assert(false); //TODO: Userlevel support - } - else if ( strcmp(base, "perso") == 0 ) - { - filename = "levels/other/perso.txt"; - } - else if( strcmp(base, "win") == 0 || strcmp(base, "lost") == 0 ) - { - outstream << "levels/other/"; - outstream << base << std::setfill('0') << std::setw(3) << rank << ".txt"; - filename = outstream.str(); - } - else - { - outstream << "levels/" << base << "/"; - outstream << "chapter" << std::setfill('0') << std::setw(3) << chapter << "/"; - if(new_rank == 000) - { - if(sceneFile) - { - outstream << "chaptertitle.txt"; - } - } - else - { - outstream << "level" << std::setfill('0') << std::setw(3) << new_rank << "/"; - if(sceneFile) - { - outstream << "scene.txt"; - } - } - filename = outstream.str(); - } + filename = CLevelParser::BuildSceneName(std::string(base), chapter, new_rank, sceneFile); } // Built the default descriptive name of a mission. @@ -4423,7 +4361,6 @@ void CMainDialog::UpdateSceneChap(int &chap) { CWindow* pw; CList* pl; - FILE *file; std::string fileName; char op[100]; @@ -4448,60 +4385,25 @@ void CMainDialog::UpdateSceneChap(int &chap) if ( m_phase == PHASE_USER ) { j = 0; - fs::directory_iterator dirIt(m_savegameDir), dirEndIt; - m_userList.clear(); - - for (; dirIt != dirEndIt; ++dirIt) - { - const fs::path& p = *dirIt; - if (fs::is_directory(p)) - { - m_userList.push_back(p.leaf().string()); - } - } + auto userLevelDirs = CResourceManager::ListDirectories("levels/custom/"); + std::sort(userLevelDirs.begin(), userLevelDirs.end()); + m_userList = userLevelDirs; m_userTotal = m_userList.size(); for ( j=0 ; jLoad(); + pl->SetItemName(j, level->Get("Title")->GetParam("text")->AsString().c_str()); + pl->SetEnable(j, true); + delete level; } - else + catch(CLevelParserException& e) { - BuildResumeName(name, m_sceneName, j+1); // default name - sprintf(op, "Title.E"); - sprintf(op_i18n, "Title.%c", m_app->GetLanguageChar()); - - while ( fgets(line, 500, file) != NULL ) - { - for ( i=0 ; i<500 ; i++ ) - { - if ( line[i] == '\t' ) line[i] = ' '; // replaces tab by space - if ( line[i] == '/' && line[i+1] == '/' ) - { - line[i] = 0; - break; - } - } - - if ( Cmd(line, op) ) - { - OpString(line, "text", name); - } - if ( Cmd(line, op_i18n) ) - { - OpString(line, "text", name); - break; - } - } - fclose(file); + pl->SetItemName(j, (std::string("[ERROR]: ")+e.what()).c_str()); + pl->SetEnable(j, false); } - - pl->SetItemName(j, name); - pl->SetEnable(j, true); } } else @@ -4592,6 +4494,8 @@ void CMainDialog::UpdateSceneList(int chap, int &sel) if ( pl == 0 ) return; pl->Flush(); + + if(chap < 0) return; for ( j=0 ; j<99 ; j++ ) { @@ -4738,44 +4642,18 @@ void CMainDialog::UpdateSceneResume(int rank) m_bSceneSoluce = false; } } - - BuildSceneName(fileName, m_sceneName, rank); - sprintf(op, "Resume.E"); - sprintf(op_i18n, "Resume.%c", m_app->GetLanguageChar()); - - CInputStream stream; - stream.open(fileName); - if (!stream.is_open()) return; - - name[0] = 0; - while ( stream.getline(line, 500) ) + + if(rank<100) return; + + try { + CLevelParser* level = new CLevelParser(m_sceneName, rank/100, rank%100); + level->Load(); + pe->SetText(level->Get("Resume")->GetParam("text")->AsString().c_str()); + } + catch(CLevelParserException& e) { - for ( i=0 ; i<500 ; i++ ) - { - if (line[i] == 0) - break; - - if ( line[i] == '\t' ) line[i] = ' '; // replaces tab by space - if ( line[i] == '/' && line[i+1] == '/' ) - { - line[i] = 0; - break; - } - } - - if ( Cmd(line, op) ) - { - OpString(line, "text", name); - } - if ( Cmd(line, op_i18n) ) - { - OpString(line, "text", name); - break; - } + pe->SetText((std::string("[ERROR]: ")+e.what()).c_str()); } - stream.close(); - - pe->SetText(name); } // Updates the list of devices. @@ -5202,7 +5080,6 @@ void CMainDialog::SetupMemorize() { GetProfile().SetLocalProfileString("Directory", "savegame", m_savegameDir); GetProfile().SetLocalProfileString("Directory", "public", m_publicDir); - GetProfile().SetLocalProfileString("Directory", "user", m_userDir); GetProfile().SetLocalProfileString("Directory", "files", m_filesDir); GetProfile().SetLocalProfileInt("Setup", "Tooltips", m_bTooltip); GetProfile().SetLocalProfileInt("Setup", "InterfaceGlint", m_bGlint); @@ -5288,11 +5165,6 @@ void CMainDialog::SetupRecall() m_publicDir = key; } - if ( GetProfile().GetLocalProfileString("Directory", "user", key) ) - { - m_userDir = key; - } - if ( GetProfile().GetLocalProfileString("Directory", "files", key) ) { m_filesDir = key; @@ -6487,6 +6359,11 @@ bool CMainDialog::NextMission() return true; } +std::string& CMainDialog::GetUserLevelName(int id) +{ + return m_userList[id-1]; +} + } // namespace Ui diff --git a/src/ui/maindialog.h b/src/ui/maindialog.h index cb26426..2b3ca6f 100644 --- a/src/ui/maindialog.h +++ b/src/ui/maindialog.h @@ -98,7 +98,6 @@ public: bool GetNiceReset(); bool GetHimselfDamage(); - void SetUserDir(char *base, int rank); void BuildSceneName(std::string &filename, char *base, int rank, bool sceneFile = true); void BuildResumeName(char *filename, char *base, int rank); std::string & GetFilesDir(); @@ -140,6 +139,8 @@ public: void AllMissionUpdate(); void ShowSoluceUpdate(); + + std::string& GetUserLevelName(int id); protected: void GlintMove(); @@ -202,7 +203,6 @@ protected: std::string m_savegameDir; // savegame folder std::string m_publicDir; // program folder - std::string m_userDir; // user folder std::string m_filesDir; // case files int m_index; // 0..4 -- cgit v1.2.3-1-g7c22 From 71f84d1e16d8a0c24ea245236e84e3136bd7b79b Mon Sep 17 00:00:00 2001 From: krzys-h Date: Fri, 26 Sep 2014 21:01:51 +0200 Subject: Fixed human.png texture --- data | 2 +- src/ui/window.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/data b/data index 97366e7..933ba19 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit 97366e7f8bdb781bbda78290a0146887990e5624 +Subproject commit 933ba1930466880db0a751f64ce536ff1d55cb88 diff --git a/src/ui/window.cpp b/src/ui/window.cpp index 60aad0d..204acf9 100644 --- a/src/ui/window.cpp +++ b/src/ui/window.cpp @@ -1237,7 +1237,7 @@ void CWindow::DrawVertex(Math::Point pos, Math::Point dim, int icon) dim.x += 100.0f/640.0f; dim.y += 60.0f/480.0f; - m_engine->SetTexture("textures/interface/human.png"); + m_engine->SetTexture("textures/human.png"); m_engine->SetState(Gfx::ENG_RSTATE_NORMAL); uv1.x = 140.0f/256.0f; uv1.y = 32.0f/256.0f; -- cgit v1.2.3-1-g7c22 From c29ef4ec41cc062c4dbc14af8736c5e1c7c25f02 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sat, 27 Sep 2014 16:49:00 +0200 Subject: Fixed some warnings Removed unused variables and fixed signed/unsigned comparation warnings --- src/object/robotmain.cpp | 14 +++++++------- src/ui/maindialog.cpp | 7 +------ src/ui/studio.cpp | 1 - 3 files changed, 8 insertions(+), 14 deletions(-) diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp index 315ffe1..0fa9b0d 100644 --- a/src/object/robotmain.cpp +++ b/src/object/robotmain.cpp @@ -4296,8 +4296,8 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) std::string name = line->GetParam("image")->AsPath(""); //TODO: don't make this relative to textures/ if(name.find(".") == std::string::npos) name += ".png"; - int dx = line->GetParam("dx")->AsInt(1); - int dy = line->GetParam("dy")->AsInt(1); + unsigned int dx = line->GetParam("dx")->AsInt(1); + unsigned int dy = line->GetParam("dy")->AsInt(1); int tt[100]; //TODO: I have no idea how TerrainInitTextures works, but maybe we shuld remove the limit to 100? if(dx*dy > 100) @@ -4308,7 +4308,7 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) if(table.size() > dx*dy) throw CLevelParserException("In TerrainInitTextures: table size must be dx*dy"); - for (int i = 0; i < dx*dy; i++) + for (unsigned int i = 0; i < dx*dy; i++) { if(i >= table.size()) { @@ -4318,7 +4318,7 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) } } } else { - for (int i = 0; i < dx*dy; i++) + for (unsigned int i = 0; i < dx*dy; i++) { tt[i] = 0; } @@ -4373,7 +4373,7 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) if(id_array.size() > 50) throw CLevelParserException("In TerrainLevel: id array size must be < 50"); - int i = 0; + unsigned int i = 0; while (i < 50) { id[i] = id_array[i]->AsInt(); @@ -4528,7 +4528,7 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) // Sets the parameters of the command line. if(line->GetParam("cmdline")->IsDefined()) { const std::vector& cmdline = line->GetParam("cmdline")->AsArray(); - for (int i = 0; i < OBJECTMAXCMDLINE && i < cmdline.size(); i++) //TODO: get rid of the limit + for (unsigned int i = 0; i < OBJECTMAXCMDLINE && i < cmdline.size(); i++) //TODO: get rid of the limit { obj->SetCmdLine(i, cmdline[i]->AsFloat()); } @@ -4569,7 +4569,7 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) if (motion != nullptr && line->GetParam("param")->IsDefined()) { const std::vector& p = line->GetParam("param")->AsArray(); - for (int i = 0; i < 10 && i < p.size(); i++) + for (unsigned int i = 0; i < 10 && i < p.size(); i++) { motion->SetParam(i, p[i]->AsFloat()); } diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index 3acf1dd..b886691 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -4612,11 +4612,7 @@ void CMainDialog::UpdateSceneResume(int rank) CEdit* pe; CCheck* pc; std::string fileName; - char op[100]; - char op_i18n[100]; - char line[500]; - char name[500]; - int i, numTry; + int numTry; bool bPassed, bVisible; pw = static_cast(m_interface->SearchControl(EVENT_WINDOW5)); @@ -5889,7 +5885,6 @@ void CMainDialog::FrameDialog(float rTime) void CMainDialog::StopDialog() { CWindow* pw; - CButton* pb; pw = static_cast(m_interface->SearchControl(EVENT_WINDOW0)); if ( pw != 0 ) pw->SetState(STATE_ENABLE); diff --git a/src/ui/studio.cpp b/src/ui/studio.cpp index 91e4ea2..52bb8d6 100644 --- a/src/ui/studio.cpp +++ b/src/ui/studio.cpp @@ -850,7 +850,6 @@ bool CStudio::StopEditScript(bool bCancel) { CWindow* pw; CEdit* edit; - CButton* button; pw = static_cast< CWindow* >(m_interface->SearchControl(EVENT_WINDOW3)); if ( pw == nullptr ) return false; -- cgit v1.2.3-1-g7c22 From 8fab044bcdafa0637c8a9b824f9ac81ea95db7ec Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sat, 27 Sep 2014 17:16:58 +0200 Subject: Removed more unused variables --- src/object/robotmain.cpp | 13 ------------- src/object/robotmain.h | 7 ------- 2 files changed, 20 deletions(-) diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp index 0fa9b0d..8496d7d 100644 --- a/src/object/robotmain.cpp +++ b/src/object/robotmain.cpp @@ -658,12 +658,6 @@ CRobotMain::CRobotMain(CApplication* app, bool loadProfile) m_selectObject = 0; m_infoUsed = 0; - m_beginObject = false; - m_terrainGenerate = false; - m_terrainInit = false; - m_terrainInitTextures = false; - m_terrainCreate = false; - m_version = 1; m_controller = nullptr; m_retroStyle = false; @@ -3945,12 +3939,6 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) strcpy(m_scriptName, scriptNameStr.c_str()); m_scriptFile[0] = 0; - m_beginObject = false; - m_terrainGenerate = false; - m_terrainInit = false; - m_terrainInitTextures = false; - m_terrainCreate = false; - m_version = 1; m_retroStyle = false; @@ -4336,7 +4324,6 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) if (line->GetCommand() == "TerrainInit" && !resetObject) { m_terrain->InitMaterials(line->GetParam("id")->AsInt(1)); - m_terrainInit = true; continue; } diff --git a/src/object/robotmain.h b/src/object/robotmain.h index 466c47d..2c173fb 100644 --- a/src/object/robotmain.h +++ b/src/object/robotmain.h @@ -491,13 +491,6 @@ protected: CObject* m_controller; - // Level Checker flags - bool m_beginObject; - bool m_terrainGenerate; - bool m_terrainInitTextures; - bool m_terrainInit; - bool m_terrainCreate; - int m_version; // Mission file version bool m_retroStyle; // Retro bool m_immediatSatCom; // SatCom immediately? -- cgit v1.2.3-1-g7c22 From 32504be8a95e09736a84bdacd873d48fa971c055 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sat, 27 Sep 2014 17:46:52 +0200 Subject: Fixed TerrainLevel bug --- src/object/robotmain.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp index 8496d7d..5499cc9 100644 --- a/src/object/robotmain.cpp +++ b/src/object/robotmain.cpp @@ -4367,6 +4367,7 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) i++; if(i >= id_array.size()) break; } + id[i] = 0; } m_terrain->GenerateMaterials(id, -- cgit v1.2.3-1-g7c22 From b3fa72c0071b965ffe5f4b1d68e9fb5d0cd99dcd Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sat, 27 Sep 2014 18:26:29 +0200 Subject: Moved effect??.png textures and made pos= in GroundSpot optional --- data | 2 +- src/graphics/engine/engine.cpp | 6 +++--- src/graphics/engine/lightning.cpp | 2 +- src/graphics/engine/particle.cpp | 6 +++--- src/object/robotmain.cpp | 6 +++--- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/data b/data index 933ba19..314f1ea 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit 933ba1930466880db0a751f64ce536ff1d55cb88 +Subproject commit 314f1eae8b72374f8234b450e340cad249e2e241 diff --git a/src/graphics/engine/engine.cpp b/src/graphics/engine/engine.cpp index 2996cb2..76db328 100644 --- a/src/graphics/engine/engine.cpp +++ b/src/graphics/engine/engine.cpp @@ -2313,9 +2313,9 @@ bool CEngine::LoadAllTextures() LoadTexture("textures/interface/button1.png"); LoadTexture("textures/interface/button2.png"); LoadTexture("textures/interface/button3.png"); - LoadTexture("textures/interface/effect00.png"); - LoadTexture("textures/interface/effect01.png"); - LoadTexture("textures/interface/effect02.png"); + LoadTexture("textures/effect00.png"); + LoadTexture("textures/effect01.png"); + LoadTexture("textures/effect02.png"); LoadTexture("textures/interface/map.png"); if (! m_backgroundName.empty()) diff --git a/src/graphics/engine/lightning.cpp b/src/graphics/engine/lightning.cpp index 69d8a3c..b0d9561 100644 --- a/src/graphics/engine/lightning.cpp +++ b/src/graphics/engine/lightning.cpp @@ -235,7 +235,7 @@ void CLightning::Draw() mat.LoadIdentity(); device->SetTransform(TRANSFORM_WORLD, mat); - m_engine->SetTexture("textures/interface/effect00.png"); + m_engine->SetTexture("textures/effect00.png"); m_engine->SetState(ENG_RSTATE_TTEXTURE_BLACK); Math::Point texInf; diff --git a/src/graphics/engine/particle.cpp b/src/graphics/engine/particle.cpp index 229385e..b0ce969 100644 --- a/src/graphics/engine/particle.cpp +++ b/src/graphics/engine/particle.cpp @@ -198,9 +198,9 @@ void CParticle::FlushParticle(int sheet) //! Returns file name of the effect effectNN.png, with NN = number void NameParticle(std::string &name, int num) { - if (num == 1) name = "interface/effect00.png"; - else if (num == 2) name = "interface/effect01.png"; - else if (num == 3) name = "interface/effect02.png"; + if (num == 1) name = "effect00.png"; + else if (num == 2) name = "effect01.png"; + else if (num == 3) name = "effect02.png"; else if (num == 4) name = "interface/text.png"; else name = ""; } diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp index 5499cc9..6fda290 100644 --- a/src/object/robotmain.cpp +++ b/src/object/robotmain.cpp @@ -4689,7 +4689,7 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) rank = m_engine->CreateGroundSpot(); if (rank != -1) { - m_engine->SetObjectGroundSpotPos(rank, line->GetParam("pos")->AsPoint()*g_unit); + m_engine->SetObjectGroundSpotPos(rank, line->GetParam("pos")->AsPoint(Math::Vector(0.0f, 0.0f, 0.0f))*g_unit); m_engine->SetObjectGroundSpotRadius(rank, line->GetParam("radius")->AsFloat(10.0f)*g_unit); m_engine->SetObjectGroundSpotColor(rank, line->GetParam("color")->AsColor(Gfx::Color(0.533f, 0.533f, 0.533f, 0.533f))); m_engine->SetObjectGroundSpotSmooth(rank, line->GetParam("smooth")->AsFloat(1.0f)); @@ -5102,12 +5102,12 @@ void CRobotMain::ChangeColor() // PARTIPLOUF0 and PARTIDROP : ts = Math::Point(0.500f, 0.500f); ti = Math::Point(0.875f, 0.750f); - m_engine->ChangeTextureColor("textures/interface/effect00.png", m_colorRefWater, m_colorNewWater, colorRef2, colorNew2, 0.20f, -1.0f, ts, ti, 0, m_colorShiftWater, true); + m_engine->ChangeTextureColor("textures/effect00.png", m_colorRefWater, m_colorNewWater, colorRef2, colorNew2, 0.20f, -1.0f, ts, ti, 0, m_colorShiftWater, true); // PARTIFLIC : ts = Math::Point(0.00f, 0.75f); ti = Math::Point(0.25f, 1.00f); - m_engine->ChangeTextureColor("textures/interface/effect02.png", m_colorRefWater, m_colorNewWater, colorRef2, colorNew2, 0.20f, -1.0f, ts, ti, 0, m_colorShiftWater, true); + m_engine->ChangeTextureColor("textures/effect02.png", m_colorRefWater, m_colorNewWater, colorRef2, colorNew2, 0.20f, -1.0f, ts, ti, 0, m_colorShiftWater, true); } //! Updates the number of unnecessary objects -- cgit v1.2.3-1-g7c22 From fd68ac923acb14550c5eb2c8d07ef6c9ed87714c Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sat, 27 Sep 2014 18:27:45 +0200 Subject: Updated level check script --- tools/check-levels.sh | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/tools/check-levels.sh b/tools/check-levels.sh index 22544fb..127375f 100755 --- a/tools/check-levels.sh +++ b/tools/check-levels.sh @@ -2,8 +2,18 @@ # Runs every level in scenetest mode -levels=`ls /usr/local/share/games/colobot/levels | cut -d "." -f 1` -for level in $levels; do - echo $level - colobot -runscene $level -scenetest -loglevel warn +categories=`ls /usr/local/share/games/colobot/levels` +for category in $categories; do + if [ "$category" = "other" ]; then continue; fi + chapters=`ls /usr/local/share/games/colobot/levels/$category` + for chapter in $chapters; do + chapter=`echo -n $chapter | tail -c 1` + levels=`ls /usr/local/share/games/colobot/levels/$category/chapter00$chapter` + for level in $levels; do + if [ ! -d /usr/local/share/games/colobot/levels/$category/chapter00$chapter/$level ]; then continue; fi + level=`echo -n $level | cut -d . -f 1 | tail -c 3` + echo $category$chapter$level + colobot -runscene $category$chapter$level -scenetest -loglevel warn + done + done done -- cgit v1.2.3-1-g7c22 From ad79babbc135ecc83a43391bbc026fd038efc290 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sat, 27 Sep 2014 18:34:08 +0200 Subject: Made proxyDistance optional --- src/object/robotmain.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp index 6fda290..51af57c 100644 --- a/src/object/robotmain.cpp +++ b/src/object/robotmain.cpp @@ -4532,8 +4532,7 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) obj->SetIgnoreBuildCheck(line->GetParam("ignoreBuildCheck")->AsBool(false)); obj->SetEnable(line->GetParam("enable")->AsBool(true)); obj->SetProxyActivate(line->GetParam("proxyActivate")->AsBool(false)); - if(line->GetParam("proxyActivate")->AsBool(false)) - obj->SetProxyDistance(line->GetParam("proxyDistance")->AsFloat()*g_unit); + obj->SetProxyDistance(line->GetParam("proxyDistance")->AsFloat(15.0f)*g_unit); obj->SetRange(line->GetParam("range")->AsFloat(30.0f)); obj->SetShield(line->GetParam("shield")->AsFloat(1.0f)); obj->SetMagnifyDamage(line->GetParam("magnifyDamage")->AsFloat(1.0f)); -- cgit v1.2.3-1-g7c22 From ab5c1271c01095db4a15156f425893c5707ad579 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sat, 27 Sep 2014 18:59:33 +0200 Subject: Updated data submodule --- data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data b/data index 314f1ea..7073be7 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit 314f1eae8b72374f8234b450e340cad249e2e241 +Subproject commit 7073be7a22669bfbc23f919606f793f008b2e919 -- cgit v1.2.3-1-g7c22 From f2c6b322dd3d909fe7928a35d4744992ab17adc1 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sun, 28 Sep 2014 19:25:28 +0200 Subject: Replaced std::to_string with boost::lexical_cast MXE has problems with std::to_string --- src/object/level/parser.cpp | 7 ++++--- src/object/level/parserexceptions.cpp | 8 +++++--- src/object/level/parserparam.cpp | 6 +++--- src/object/robotmain.cpp | 8 ++++---- 4 files changed, 16 insertions(+), 13 deletions(-) diff --git a/src/object/level/parser.cpp b/src/object/level/parser.cpp index e73142e..383931c 100644 --- a/src/object/level/parser.cpp +++ b/src/object/level/parser.cpp @@ -32,6 +32,7 @@ #include #include +#include CLevelParser::CLevelParser() { @@ -177,11 +178,11 @@ void CLevelParser::Load() if(line[0] == '\"') { pos = line.find_first_of("\"", 1); if(pos == std::string::npos) - throw CLevelParserException("Unclosed \" in "+m_filename+":"+std::to_string(lineNumber)); + throw CLevelParserException("Unclosed \" in "+m_filename+":"+boost::lexical_cast(lineNumber)); } else if(line[0] == '\'') { pos = line.find_first_of("'", 1); if(pos == std::string::npos) - throw CLevelParserException("Unclosed ' in "+m_filename+":"+std::to_string(lineNumber)); + throw CLevelParserException("Unclosed ' in "+m_filename+":"+boost::lexical_cast(lineNumber)); } else { pos = line.find_first_of("="); if(pos != std::string::npos) { @@ -237,4 +238,4 @@ CLevelParserLine* CLevelParser::Get(std::string command) return line; } throw CLevelParserException("Command not found: "+command); -} \ No newline at end of file +} diff --git a/src/object/level/parserexceptions.cpp b/src/object/level/parserexceptions.cpp index d5c4620..b495de7 100644 --- a/src/object/level/parserexceptions.cpp +++ b/src/object/level/parserexceptions.cpp @@ -19,6 +19,8 @@ #include "object/level/parser.h" +#include + CLevelParserException::CLevelParserException(std::string message) noexcept { m_message = message; @@ -30,11 +32,11 @@ const char* CLevelParserException::what() const noexcept } CLevelParserExceptionMissingParam::CLevelParserExceptionMissingParam(CLevelParserParam* thisParam) noexcept -: CLevelParserException("Missing required param "+thisParam->GetName()+" (in "+thisParam->GetLine()->GetLevel()->GetFilename()+":"+std::to_string(thisParam->GetLine()->GetLineNumber())+")") +: CLevelParserException("Missing required param "+thisParam->GetName()+" (in "+thisParam->GetLine()->GetLevel()->GetFilename()+":"+boost::lexical_cast(thisParam->GetLine()->GetLineNumber())+")") { } CLevelParserExceptionBadParam::CLevelParserExceptionBadParam(CLevelParserParam* thisParam, std::string requestedType) noexcept -: CLevelParserException("Unable to parse '"+thisParam->GetValue()+"' as "+requestedType+" (param '"+thisParam->GetName()+"' in "+thisParam->GetLine()->GetLevel()->GetFilename()+":"+std::to_string(thisParam->GetLine()->GetLineNumber())+")") +: CLevelParserException("Unable to parse '"+thisParam->GetValue()+"' as "+requestedType+" (param '"+thisParam->GetName()+"' in "+thisParam->GetLine()->GetLevel()->GetFilename()+":"+boost::lexical_cast(thisParam->GetLine()->GetLineNumber())+")") { -} \ No newline at end of file +} diff --git a/src/object/level/parserparam.cpp b/src/object/level/parserparam.cpp index 39a953b..50152c5 100644 --- a/src/object/level/parserparam.cpp +++ b/src/object/level/parserparam.cpp @@ -650,7 +650,7 @@ const std::string CLevelParserParam::FromObjectType(ObjectType value) if(value == OBJECT_HUMAN ) return "Me"; if(value == OBJECT_TECH ) return "Tech"; if(value == OBJECT_CONTROLLER ) return "MissionController"; - return std::to_string(static_cast(value)); + return boost::lexical_cast(static_cast(value)); } ObjectType CLevelParserParam::AsObjectType() @@ -888,7 +888,7 @@ const std::string CLevelParserParam::FromCameraType(Gfx::CameraType value) { if(value == Gfx::CAM_TYPE_ONBOARD) return "ONBOARD"; if(value == Gfx::CAM_TYPE_FIX ) return "FIX"; - return std::to_string(static_cast(value)); + return boost::lexical_cast(static_cast(value)); } Gfx::CameraType CLevelParserParam::AsCameraType() @@ -917,7 +917,7 @@ void CLevelParserParam::ParseArray() for(auto& value : values) { boost::algorithm::trim(value); if(value.empty()) continue; - CLevelParserParam* param = new CLevelParserParam(m_name+"["+std::to_string(i)+"]", value); + CLevelParserParam* param = new CLevelParserParam(m_name+"["+boost::lexical_cast(i)+"]", value); param->SetLine(m_line); m_array.push_back(param); i++; diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp index 51af57c..a409aa0 100644 --- a/src/object/robotmain.cpp +++ b/src/object/robotmain.cpp @@ -4495,7 +4495,7 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) // Puts information in terminal (OBJECT_INFO). for (int i = 0; i < OBJECTMAXINFO; i++) { - std::string op = "info"+std::to_string(i+1); + std::string op = "info"+boost::lexical_cast(i+1); if(!line->GetParam(op)->IsDefined()) break; std::string text = line->GetParam(op)->AsString(); std::size_t p = text.find_first_of("="); @@ -4568,7 +4568,7 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) { for (int i = 0; i < 10; i++) { - std::string op = "script"+std::to_string(i+1); // script1..script10 + std::string op = "script"+boost::lexical_cast(i+1); // script1..script10 if(line->GetParam(op)->IsDefined()) { brain->SetScriptName(i, const_cast(line->GetParam(op)->AsPath("").c_str())); //TODO: don't make this relative to ai/ } @@ -4589,7 +4589,7 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) automat->SetType(type); for (int i = 0; i < 5; i++) { - std::string op = "autoValue"+std::to_string(i+1); // autoValue1..autoValue5 + std::string op = "autoValue"+boost::lexical_cast(i+1); // autoValue1..autoValue5 automat->SetValue(i, line->GetParam(op)->AsFloat(0.0f)); } automat->SetString(const_cast(line->GetParam("autoString")->AsString("").c_str())); @@ -4860,7 +4860,7 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) if(read[0] != 0) continue; // ignore errors when loading saevd game (TODO: don't report ones that are just not loaded when loading saved game) if(resetObject) continue; // ignore when reseting just objects (TODO: see above) - throw CLevelParserException("Unknown command: '"+line->GetCommand()+"' in "+line->GetLevel()->GetFilename()+":"+std::to_string(line->GetLineNumber())); + throw CLevelParserException("Unknown command: '"+line->GetCommand()+"' in "+line->GetLevel()->GetFilename()+":"+boost::lexical_cast(line->GetLineNumber())); } if (read[0] == 0) -- cgit v1.2.3-1-g7c22 From f569b46a8171ab2bd432e8b3994ce33ad70c810a Mon Sep 17 00:00:00 2001 From: krzys-h Date: Mon, 29 Sep 2014 21:32:17 +0200 Subject: Updated data submodule --- data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data b/data index 7073be7..de09265 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit 7073be7a22669bfbc23f919606f793f008b2e919 +Subproject commit de09265f62ac4c75b3798209996d1adb3ef70985 -- cgit v1.2.3-1-g7c22 From c2b878745360b302dab2a14624a55c6990ad4510 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Mon, 29 Sep 2014 21:39:21 +0200 Subject: On development builds store savegame data in current directory --- src/app/app.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/app/app.cpp b/src/app/app.cpp index 80f178b..b07c3e8 100644 --- a/src/app/app.cpp +++ b/src/app/app.cpp @@ -149,7 +149,11 @@ CApplication::CApplication() m_dataPath = GetSystemUtils()->GetDataPath(); m_langPath = GetSystemUtils()->GetLangPath(); + #if DEV_BUILD + m_savePath = "saves"; + #else m_savePath = GetSystemUtils()->GetSaveDir(); + #endif m_runSceneName = ""; m_runSceneRank = 0; -- cgit v1.2.3-1-g7c22 From 3ef2f976df56817d2a23d4fe88a1917798beaacd Mon Sep 17 00:00:00 2001 From: krzys-h Date: Mon, 29 Sep 2014 21:53:21 +0200 Subject: Added %chap% for current chapter directory --- src/object/level/parser.cpp | 2 +- src/object/level/parserparam.cpp | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/object/level/parser.cpp b/src/object/level/parser.cpp index 383931c..2bd43a3 100644 --- a/src/object/level/parser.cpp +++ b/src/object/level/parser.cpp @@ -63,7 +63,7 @@ std::string CLevelParser::BuildSceneName(std::string category, int chapter, int if(category == "custom") { outstream << "levels/custom/"; - outstream << CRobotMain::GetInstancePointer()->GetUserLevelName(chapter) << "/"; + outstream << CRobotMain::GetInstancePointer()->GetUserLevelName(chapter); if(rank == 000) { if(sceneFile) diff --git a/src/object/level/parserparam.cpp b/src/object/level/parserparam.cpp index 50152c5..4dc5742 100644 --- a/src/object/level/parserparam.cpp +++ b/src/object/level/parserparam.cpp @@ -165,6 +165,8 @@ std::string CLevelParserParam::InjectLevelDir(std::string path, const std::strin std::string newPath = path; std::string lvlDir = CLevelParser::BuildSceneName(CRobotMain::GetInstancePointer()->GetSceneName(), CRobotMain::GetInstancePointer()->GetSceneRank()/100, CRobotMain::GetInstancePointer()->GetSceneRank()%100, false); boost::replace_all(newPath, "%lvl%", lvlDir); + std::string chapDir = CLevelParser::BuildSceneName(CRobotMain::GetInstancePointer()->GetSceneName(), CRobotMain::GetInstancePointer()->GetSceneRank()/100, 0, false); + boost::replace_all(newPath, "%chap%", chapDir); if(newPath == path) { newPath = defaultDir + (!defaultDir.empty() ? "/" : "") + newPath; -- cgit v1.2.3-1-g7c22 From 2770ee8927cb91419b1918f46228435026790cf6 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Tue, 7 Oct 2014 21:40:51 +0200 Subject: Fixed issue #324 --- data | 2 +- src/object/brain.cpp | 16 ++++++++++++++-- src/object/brain.h | 1 + 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/data b/data index a521070..559797f 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit a521070bb17737e1d3990ba09d09d036749635ab +Subproject commit 559797f35b88a2d5e882119034923b2ab75817e2 diff --git a/src/object/brain.cpp b/src/object/brain.cpp index ca578ba..01f20f9 100644 --- a/src/object/brain.cpp +++ b/src/object/brain.cpp @@ -820,6 +820,18 @@ void CBrain::StopTask() } } +// Stops the current secondary task. + +void CBrain::StopSecondaryTask() +{ + if (m_secondaryTask != nullptr) + { + m_secondaryTask->Abort(); + delete m_secondaryTask; // stops the current secondary task + m_secondaryTask = nullptr; + } +} + // Introduces a virus into a program. // Returns true if it was inserted. @@ -1000,7 +1012,7 @@ Error CBrain::StartTaskRecover() Error CBrain::StartTaskShield(TaskShieldMode mode) { - StopTask(); + StopSecondaryTask(); m_secondaryTask = new CTaskManager(m_object); Error err = m_secondaryTask->StartTaskShield(mode, 1000.0f); @@ -1048,7 +1060,7 @@ Error CBrain::StartTaskFireAnt(Math::Vector impact) Error CBrain::StartTaskGunGoal(float dirV, float dirH) { - StopTask(); + StopSecondaryTask(); m_secondaryTask = new CTaskManager(m_object); Error err = m_secondaryTask->StartTaskGunGoal(dirV, dirH); diff --git a/src/object/brain.h b/src/object/brain.h index 8a6b13e..6b0d790 100644 --- a/src/object/brain.h +++ b/src/object/brain.h @@ -102,6 +102,7 @@ public: int GetProgram(); void StopProgram(); void StopTask(); + void StopSecondaryTask(); bool IntroduceVirus(); void SetActiveVirus(bool bActive); -- cgit v1.2.3-1-g7c22 From 502f7a8a5fc90b5b490e65e0c1f8cc60c2d40957 Mon Sep 17 00:00:00 2001 From: Piotr Dziwinski Date: Mon, 6 Oct 2014 21:51:59 +0200 Subject: Add physfs to travis config --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 1abfb51..e1ed6ab 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,6 +7,6 @@ before_install: - git submodule update --init --recursive - sudo add-apt-repository ppa:mapnik/boost -y - sudo apt-get update -qq - - sudo apt-get install -qq --no-install-recommends libgl1-mesa-dev libsdl1.2-dev libsdl-image1.2-dev libsdl-ttf2.0-dev libpng12-dev libglew-dev libboost-dev libboost-system-dev libboost-filesystem-dev libboost-regex-dev google-mock libgtest-dev doxygen graphviz po4a librsvg2-bin libsndfile-dev libopenal-dev + - sudo apt-get install -qq --no-install-recommends libgl1-mesa-dev libsdl1.2-dev libsdl-image1.2-dev libsdl-ttf2.0-dev libpng12-dev libglew-dev libboost-dev libboost-system-dev libboost-filesystem-dev libboost-regex-dev google-mock libgtest-dev doxygen graphviz po4a librsvg2-bin libsndfile-dev libopenal-dev libphysfs-dev notifications: email: false -- cgit v1.2.3-1-g7c22 From 12feb49098b3fdcaa489ceb557a4461b5cdebcf9 Mon Sep 17 00:00:00 2001 From: Piotr Dziwinski Date: Tue, 7 Oct 2014 22:05:16 +0200 Subject: Fixes in unit tests --- src/common/profile.cpp | 45 +++++++++++++++++++++++++---------- src/common/resources/inputstream.cpp | 5 ++++ src/common/resources/inputstream.h | 3 ++- src/common/resources/outputstream.cpp | 5 ++++ src/common/resources/outputstream.h | 3 ++- test/envs/CMakeLists.txt | 3 ++- test/unit/common/profile_test.cpp | 1 - 7 files changed, 49 insertions(+), 16 deletions(-) diff --git a/src/common/profile.cpp b/src/common/profile.cpp index 5ecb804..2cb20f3 100644 --- a/src/common/profile.cpp +++ b/src/common/profile.cpp @@ -23,6 +23,7 @@ #include "common/logger.h" +#include #include #include #include @@ -54,15 +55,25 @@ bool CProfile::Init() { try { - CInputStream stream; - stream.open("colobot.ini"); - if(stream.is_open()) { - bp::ini_parser::read_ini(stream, m_propertyTree); - } else { + std::unique_ptr stream; + if (m_useCurrentDirectory) + { + stream = std::unique_ptr(new std::ifstream("./colobot.ini")); + } + else + { + stream = std::unique_ptr(new CInputStream("colobot.ini")); + } + + if (stream->good()) + { + bp::ini_parser::read_ini(*stream, m_propertyTree); + } + else + { GetLogger()->Error("Error on parsing profile: failed to open file\n"); return false; } - stream.close(); } catch (std::exception & e) { @@ -78,15 +89,25 @@ bool CProfile::Save() { try { - COutputStream stream; - stream.open("colobot.ini"); - if(stream.is_open()) { - bp::ini_parser::write_ini(stream, m_propertyTree); - } else { + std::unique_ptr stream; + if (m_useCurrentDirectory) + { + stream = std::unique_ptr(new std::ofstream("./colobot.ini")); + } + else + { + stream = std::unique_ptr(new COutputStream("colobot.ini")); + } + + if (stream->good()) + { + bp::ini_parser::write_ini(*stream, m_propertyTree); + } + else + { GetLogger()->Error("Error on storing profile: failed to open file\n"); return false; } - stream.close(); } catch (std::exception & e) { diff --git a/src/common/resources/inputstream.cpp b/src/common/resources/inputstream.cpp index b5ba63f..3907c76 100644 --- a/src/common/resources/inputstream.cpp +++ b/src/common/resources/inputstream.cpp @@ -22,6 +22,11 @@ CInputStream::CInputStream() : std::istream(new CInputStreamBuffer()) { } +CInputStream::CInputStream(const std::string& filename) : std::istream(new CInputStreamBuffer()) +{ + open(filename); +} + CInputStream::~CInputStream() { diff --git a/src/common/resources/inputstream.h b/src/common/resources/inputstream.h index 9573f2c..70d9ff5 100644 --- a/src/common/resources/inputstream.h +++ b/src/common/resources/inputstream.h @@ -24,9 +24,10 @@ class CInputStream : public std::istream { public: CInputStream(); + CInputStream(const std::string& filename); virtual ~CInputStream(); - void open(const std::string &filename); + void open(const std::string& filename); void close(); bool is_open(); size_t size(); diff --git a/src/common/resources/outputstream.cpp b/src/common/resources/outputstream.cpp index ba43ba6..bce194e 100644 --- a/src/common/resources/outputstream.cpp +++ b/src/common/resources/outputstream.cpp @@ -22,6 +22,11 @@ COutputStream::COutputStream() : std::ostream(new COutputStreamBuffer()) { } +COutputStream::COutputStream(const std::string& filename) : std::ostream(new COutputStreamBuffer()) +{ + open(filename); +} + COutputStream::~COutputStream() { diff --git a/src/common/resources/outputstream.h b/src/common/resources/outputstream.h index bedbbbd..2927a99 100644 --- a/src/common/resources/outputstream.h +++ b/src/common/resources/outputstream.h @@ -24,9 +24,10 @@ class COutputStream : public std::ostream { public: COutputStream(); + COutputStream(const std::string& filename); virtual ~COutputStream(); - void open(const std::string &filename); + void open(const std::string& filename); void close(); bool is_open(); }; diff --git a/test/envs/CMakeLists.txt b/test/envs/CMakeLists.txt index 374c39f..3d535f3 100644 --- a/test/envs/CMakeLists.txt +++ b/test/envs/CMakeLists.txt @@ -1,2 +1,3 @@ # OpenGL tests -add_subdirectory(opengl) +# TODO: fix dependency on resource manager and re-enable +#add_subdirectory(opengl) diff --git a/test/unit/common/profile_test.cpp b/test/unit/common/profile_test.cpp index 2d21a90..c7b9594 100644 --- a/test/unit/common/profile_test.cpp +++ b/test/unit/common/profile_test.cpp @@ -12,7 +12,6 @@ class CProfileTest : public testing::Test { protected: CProfile m_profile; - }; TEST_F(CProfileTest, ReadTest) -- cgit v1.2.3-1-g7c22 From 72b4228abe583cd953491575cf42bae17ff5e9d2 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Tue, 7 Oct 2014 22:28:32 +0200 Subject: Fixed CBot debugger (#325) --- src/CBot/CBotStack.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/CBot/CBotStack.cpp b/src/CBot/CBotStack.cpp index 1679e5e..84472ac 100644 --- a/src/CBot/CBotStack.cpp +++ b/src/CBot/CBotStack.cpp @@ -787,8 +787,9 @@ void CBotStack::GetRunPos(const char* &FunctionName, int &start, int &end) while (p->m_next != NULL) { + if ( p->m_instr != NULL ) instr = p->m_instr; - if ( p->m_bFunc == 1 ) funct = p->m_instr; + if ( p->m_bFunc == 1 && p->m_instr != NULL ) funct = p->m_instr; if ( p->m_next->m_prog != prog ) break ; if (p->m_next2 && p->m_next2->m_state != 0) p = p->m_next2 ; @@ -807,7 +808,7 @@ void CBotStack::GetRunPos(const char* &FunctionName, int &start, int &end) t = instr->GetToken(); start = t->GetStart(); - end = t->GetEnd(); + end = t->GetEnd(); } CBotVar* CBotStack::GetStackVars(const char* &FunctionName, int level) -- cgit v1.2.3-1-g7c22 From 342210b0628d417a32f375efbfbd91f5537ab148 Mon Sep 17 00:00:00 2001 From: Piotr Dziwinski Date: Tue, 7 Oct 2014 23:25:37 +0200 Subject: GCC 4.6 compilation fixes --- src/common/resources/sndfile.cpp | 9 ++++++--- src/common/resources/sndfile.h | 9 +-------- src/object/level/parserexceptions.h | 5 ++++- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/src/common/resources/sndfile.cpp b/src/common/resources/sndfile.cpp index b71f06a..d9d4ccb 100644 --- a/src/common/resources/sndfile.cpp +++ b/src/common/resources/sndfile.cpp @@ -20,9 +20,12 @@ CSNDFile::CSNDFile(const std::string& filename) + : m_file_info{} + , m_snd_file{nullptr} + , m_file{nullptr} + , m_last_error{} + , m_snd_callbacks{SNDLength, SNDSeek, SNDRead, SNDWrite, SNDTell} { - memset(&m_file_info, 0, sizeof(SF_INFO)); - if (PHYSFS_isInit()) { m_file = PHYSFS_openRead(filename.c_str()); @@ -33,7 +36,7 @@ CSNDFile::CSNDFile(const std::string& filename) } if (m_file) { - m_snd_file = sf_open_virtual(&snd_callbacks, SFM_READ, &m_file_info, m_file); + m_snd_file = sf_open_virtual(&m_snd_callbacks, SFM_READ, &m_file_info, m_file); if (!m_snd_file) { m_last_error = "Could not load file"; diff --git a/src/common/resources/sndfile.h b/src/common/resources/sndfile.h index 5fc00f4..7d6d589 100644 --- a/src/common/resources/sndfile.h +++ b/src/common/resources/sndfile.h @@ -42,12 +42,5 @@ private: SNDFILE *m_snd_file; PHYSFS_File *m_file; std::string m_last_error; - - SF_VIRTUAL_IO snd_callbacks = { - SNDLength, - SNDSeek, - SNDRead, - SNDWrite, - SNDTell - }; + SF_VIRTUAL_IO m_snd_callbacks; }; diff --git a/src/object/level/parserexceptions.h b/src/object/level/parserexceptions.h index 813467f..ca87ce1 100644 --- a/src/object/level/parserexceptions.h +++ b/src/object/level/parserexceptions.h @@ -30,8 +30,9 @@ class CLevelParserException : public std::exception { public: CLevelParserException(std::string message) noexcept; + virtual ~CLevelParserException() noexcept {} const char* what() const noexcept; - + protected: std::string m_message; }; @@ -40,10 +41,12 @@ class CLevelParserExceptionMissingParam : public CLevelParserException { public: CLevelParserExceptionMissingParam(CLevelParserParam* thisParam) noexcept; + virtual ~CLevelParserExceptionMissingParam() noexcept {} }; class CLevelParserExceptionBadParam : public CLevelParserException { public: CLevelParserExceptionBadParam(CLevelParserParam* thisParam, std::string requestedType) noexcept; + virtual ~CLevelParserExceptionBadParam() noexcept {} }; \ No newline at end of file -- cgit v1.2.3-1-g7c22 From eab300c3a0e94120f934b75b8f16d200ba594a38 Mon Sep 17 00:00:00 2001 From: Piotr Dziwinski Date: Tue, 7 Oct 2014 23:52:24 +0200 Subject: Updated data submodule --- data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data b/data index de09265..afa8038 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit de09265f62ac4c75b3798209996d1adb3ef70985 +Subproject commit afa8038e719ff4ad0a430212ef5e3ce86d07bf75 -- cgit v1.2.3-1-g7c22 From 343504168fca0e48c7c486092bea2148824f1e44 Mon Sep 17 00:00:00 2001 From: Piotr Dziwinski Date: Thu, 9 Oct 2014 00:15:31 +0200 Subject: Clean up translations * translate only marked strings from restext.cpp * update and clean pot and po files * remove redundant POT-Creation-Data --- po/CMakeLists.txt | 5 +- po/colobot.pot | 83 +- po/de.po | 2646 +++++++++++++++++++++-------------------------- po/fr.po | 2644 +++++++++++++++++++++-------------------------- po/pl.po | 2664 +++++++++++++++++++++--------------------------- po/ru.po | 2400 +++++++++++++++++++++---------------------- src/common/restext.cpp | 1363 +++++++++++++------------ 7 files changed, 5339 insertions(+), 6466 deletions(-) diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt index 2bd7461..78a63b7 100644 --- a/po/CMakeLists.txt +++ b/po/CMakeLists.txt @@ -6,10 +6,12 @@ find_program(XGETTEXT_CMD xgettext) add_custom_command(OUTPUT ${_potFile} COMMAND ${XGETTEXT_CMD} ${colobot_SOURCE_DIR}/src/app/app.cpp --output=${_potFile} - COMMAND ${XGETTEXT_CMD} ${colobot_SOURCE_DIR}/src/common/restext.cpp --output=${_potFile} --join-existing --extract-all --no-location + COMMAND ${XGETTEXT_CMD} ${colobot_SOURCE_DIR}/src/common/restext.cpp --output=${_potFile} --join-existing --keyword=TR --no-location + COMMAND sed -i -E "s|^(\"POT-Creation-Date:).*$|\\1 DATE\\\\n\"|" ${_potFile} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMENT "Extract translatable messages to ${_potFile}" + VERBATIM ) add_custom_target(update-pot DEPENDS ${_potFile}) @@ -17,4 +19,3 @@ add_custom_target(update-pot DEPENDS ${_potFile}) file(GLOB _poFiles *.po) set(GETTEXT_INSTALL_PREFIX ${COLOBOT_INSTALL_I18N_DIR}) gettext_create_translations(${_potFile} ALL ${_poFiles}) - diff --git a/po/colobot.pot b/po/colobot.pot index 4695600..43a73b9 100644 --- a/po/colobot.pot +++ b/po/colobot.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-10 16:50+0200\n" +"POT-Creation-Date: DATE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -110,9 +110,6 @@ msgstr "" msgid " Missions on this level:" msgstr "" -msgid " Free game on this chapter:" -msgstr "" - msgid " Summary:" msgstr "" @@ -1747,83 +1744,5 @@ msgstr "" msgid "Write error" msgstr "" -msgid "left;" -msgstr "" - -msgid "right;" -msgstr "" - -msgid "up;" -msgstr "" - -msgid "down;" -msgstr "" - -msgid "gup;" -msgstr "" - -msgid "gdown;" -msgstr "" - -msgid "camera;" -msgstr "" - -msgid "desel;" -msgstr "" - -msgid "action;" -msgstr "" - -msgid "near;" -msgstr "" - -msgid "away;" -msgstr "" - -msgid "next;" -msgstr "" - -msgid "human;" -msgstr "" - -msgid "quit;" -msgstr "" - -msgid "help;" -msgstr "" - -msgid "prog;" -msgstr "" - -msgid "cbot;" -msgstr "" - -msgid "visit;" -msgstr "" - -msgid "speed10;" -msgstr "" - -msgid "speed15;" -msgstr "" - -msgid "speed20;" -msgstr "" - -msgid "Ctrl" -msgstr "" - -msgid "Shift" -msgstr "" - -msgid "Alt" -msgstr "" - -msgid "Win" -msgstr "" - msgid "Button %1" msgstr "" - -msgid "%1" -msgstr "" diff --git a/po/de.po b/po/de.po index 7f99374..c5dfb0c 100644 --- a/po/de.po +++ b/po/de.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-10 16:50+0200\n" +"POT-Creation-Date: DATE\n" "PO-Revision-Date: 2014-07-28 09:27+0200\n" "Last-Translator: krzys_h \n" "Language-Team: LANGUAGE \n" @@ -20,1104 +20,736 @@ msgstr "" "X-Source-Language: en_US\n" "X-POOTLE-MTIME: 1406536037.000000\n" -msgid "Colobot rules!" -msgstr "Colobot ist wunderbar!" +msgid " " +msgstr " " -msgid "SatCom" -msgstr "SatCom" +msgid " Challenges in the chapter:" +msgstr " Liste der Challenges des Kapitels:" -msgid "Maximize" -msgstr "Großes Fenster" +msgid " Chapters:" +msgstr " Liste der Kapitel:" -msgid "Minimize" -msgstr "Reduzieren" +msgid " Drivers:" +msgstr " Driver:" -msgid "Normal size" -msgstr "Normale Größe" +msgid " Exercises in the chapter:" +msgstr " Liste der Übungen des Kapitels:" -msgid "Close" -msgstr "Schließen" +msgid " Free game on this planet:" +msgstr " Liste der freien Levels des Planeten:" -msgid "Program editor" -msgstr "Programmeditor" +msgid " Missions on this level:" +msgstr " Missionen des Userlevels:" -msgid "New" -msgstr "Neu" +msgid " Missions on this planet:" +msgstr " Liste der Missionen des Planeten:" -msgid "Player" -msgstr "Spieler" +msgid " Planets:" +msgstr " Liste der Planeten:" -msgid "New ..." -msgstr "Neu ..." +msgid " Resolution:" +msgstr " Auflösung:" + +msgid " Summary:" +msgstr " Zusammenfassung:" + +msgid " User levels:" +msgstr " Userlevels:" msgid " or " msgstr " oder " -msgid "COLOBOT" -msgstr "COLOBOT" +msgid "\" [ \" expected" +msgstr "Es fehlt eine offene eckige Klammer \" [ \"" -msgid "COLOBOT: Gold Edition" -msgstr "COLOBOT: Gold Edition" +msgid "\" ] \" missing" +msgstr "Es fehlt eine geschlossene eckige Klammer \" ] \"" -msgid "Programming exercises" -msgstr "Programmieren" +#, c-format +msgid "\"%s\" missing in this exercise" +msgstr "Es fehlt \"%s\" in Ihrem Programm" -msgid "Challenges" -msgstr "Challenges" +msgid "..behind" +msgstr "..hinten" -msgid "Missions" -msgstr "Missionen" +msgid "..in front" +msgstr "..vorne" -msgid "Free game" -msgstr "Freestyle" +msgid "..power cell" +msgstr "..Batterie" -msgid "User levels" -msgstr "Userlevels" +msgid "1) First click on the key you want to redefine." +msgstr "1) Klicken Sie auf die neu zu definierende Taste." -msgid "Options" -msgstr "Einstellungen" +msgid "2) Then press the key you want to use instead." +msgstr "2) Drücken Sie auf die neue Taste." -msgid "Player's name" -msgstr "Name " +msgid "3D sound\\3D positioning of the sound" +msgstr "3D-Geräusche\\Orten der Geräusche im Raum" -msgid "Customize your appearance" -msgstr "Aussehen einstellen" +msgid "<< Back \\Back to the previous screen" +msgstr "<< Zurück \\Zurück zum Hauptmenü" -msgid "Save the current mission" -msgstr "Aktuelle Mission speichern" +msgid "<<< Sorry; mission failed >>>" +msgstr "<<< Mission gescheitert >>>" -msgid "Load a saved mission" -msgstr "Gespeicherte Mission laden" +msgid "<<< Well done; mission accomplished >>>" +msgstr "<<< Bravo, Mission vollendet >>>" -msgid " Chapters:" -msgstr " Liste der Kapitel:" +msgid "A label must be followed by \"for\"; \"while\"; \"do\" or \"switch\"" +msgstr "" +"Ein Label kann nur vor den Anweisungen \"for\", \"while\", \"do\" oder " +"\"switch\" vorkommen" -msgid " Planets:" -msgstr " Liste der Planeten:" +msgid "A variable can not be declared twice" +msgstr "Eine Variable wird zum zweiten Mal deklariert" -msgid " User levels:" -msgstr " Userlevels:" +msgid "Abort\\Abort the current mission" +msgstr "Abbrechen\\Mission abbrechen" -msgid " Exercises in the chapter:" -msgstr " Liste der Übungen des Kapitels:" +msgid "Access beyond array limit" +msgstr "Zugriff im Array außerhalb der Grenzen" -msgid " Challenges in the chapter:" -msgstr " Liste der Challenges des Kapitels:" +msgid "" +"Access to solution\\Shows the solution (detailed instructions for missions)" +msgstr "Zeigt die Lösung\\Zeigt nach 3mal Scheitern die Lösung" -msgid " Missions on this planet:" -msgstr " Liste der Missionen des Planeten:" +msgid "Access to solutions\\Show program \"4: Solution\" in the exercises" +msgstr "" +"Lösung zugänglich\\Die Lösung ist im Programmslot \"4: Lösung\" zugänglich" -msgid " Free game on this planet:" -msgstr " Liste der freien Levels des Planeten:" +msgid "Alien Queen" +msgstr "Insektenkönigin" -msgid " Missions on this level:" -msgstr " Missionen des Userlevels:" +msgid "Alien Queen killed" +msgstr "Insektenkönigin tödlich verwundet" -msgid " Free game on this chapter:" -msgstr " Liste der freien Levels des Kapitel:" +msgid "Already carrying something" +msgstr "Trägt schon etwas" -msgid " Summary:" -msgstr " Zusammenfassung:" +msgid "Analysis already performed" +msgstr "Analyse schon durchgeführt" -msgid " Drivers:" -msgstr " Driver:" +msgid "Analysis performed" +msgstr "Analyse vollendet" -msgid " Resolution:" -msgstr " Auflösung:" +msgid "Analyzes only organic matter" +msgstr "Analysiert nur Orgastoff" -msgid "1) First click on the key you want to redefine." -msgstr "1) Klicken Sie auf die neu zu definierende Taste." +msgid "Ant" +msgstr "Ameise" -msgid "2) Then press the key you want to use instead." -msgstr "2) Drücken Sie auf die neue Taste." +msgid "Ant fatally wounded" +msgstr "Ameise tödlich verwundet" -msgid "Face type:" -msgstr "Kopf:" +msgid "Appearance\\Choose your appearance" +msgstr "Aussehen\\Erscheinungsbild des Astronauten einstellen" -msgid "Eyeglasses:" -msgstr "Brille:" +msgid "Apply changes\\Activates the changed settings" +msgstr "Änderungen ausführen\\Getätigte Einstellungen ausführen" -msgid "Hair color:" -msgstr "Haarfarbe:" +msgid "Appropriate constructor missing" +msgstr "Es gibt keinen geeigneten Konstruktor" -msgid "Suit color:" -msgstr "Farbe des Anzugs:" +msgid "Assignment impossible" +msgstr "Zuweisung unmöglich" -msgid "Strip color:" -msgstr "Farbe der Streifen:" +msgid "Autolab" +msgstr "Automatisches Labor" -msgid "Do you want to quit COLOBOT ?" -msgstr "Wollen Sie COLOBOT schließen ?" +msgid "Automatic indent\\When program editing" +msgstr "Automatisches Einrücken\\Beim Bearbeiten der Programme" -msgid "Quit\\Quit COLOBOT" -msgstr "Schließen\\COLOBOT schließen" +msgid "Back" +msgstr "Vorherg. Seite" -msgid "Quit the mission?" -msgstr "Mission abbrechen ?" +msgid "Background sound :\\Volume of audio tracks on the CD" +msgstr "Geräuschkulisse:\\Lautstärke der Soundtracks der CD" -msgid "Abort\\Abort the current mission" -msgstr "Abbrechen\\Mission abbrechen" +msgid "Backward (\\key down;)" +msgstr "Rückwärts (\\key down;)" -msgid "Continue\\Continue the current mission" -msgstr "Weitermachen\\Mission weitermachen" +msgid "Backward\\Moves backward" +msgstr "Rückwärts\\Bewegung nach hinten" -msgid "Continue\\Continue the game" -msgstr "Weitermachen\\Weitermachen" +msgid "Bad argument for \"new\"" +msgstr "Falsche Argumente für \"new\"" -msgid "Do you really want to destroy the selected building?" -msgstr "Wollen Sie das angewählte Gebäude wirklich zerstören ?" +msgid "Big indent\\Indent 2 or 4 spaces per level defined by braces" +msgstr "Einrücken mit 4 Leerstellen\\Einrücken mit 2 oder 4 Leerstellen" -#, c-format -msgid "Do you want to delete %s's saved games? " -msgstr "Wollen Sie die gespeicherten Missionen von %s löschen ?" +msgid "Black box" +msgstr "Flugschreiber" -msgid "Delete" -msgstr "Zerstören" +msgid "Blue" +msgstr "Blau" -msgid "Cancel" -msgstr "Abbrechen" +msgid "Blue flag" +msgstr "Blaue Fahne" -msgid "LOADING" -msgstr "LADEN" +msgid "Bot destroyed" +msgstr "Roboter zerstört" -msgid "Keyword help(\\key cbot;)" -msgstr "Hilfe über den Begriff (\\key cbot;)" +msgid "Bot factory" +msgstr "Roboterfabrik" -msgid "Compilation ok (0 errors)" -msgstr "Kompilieren OK (0 Fehler)" +msgid "Build a bot factory" +msgstr "Baut eine Roboterfabrik" -msgid "Program finished" -msgstr "Programm beendet" +msgid "Build a converter" +msgstr "Baut einen Konverter" -msgid "\\b;List of objects\n" -msgstr "\\b;Liste der Objekte\n" +msgid "Build a defense tower" +msgstr "Baut einen Geschützturm" -msgid "\\b;Robots\n" -msgstr "\\b;Liste der Roboter\n" +msgid "Build a derrick" +msgstr "Baut einen Bohrturm" -msgid "\\b;Buildings\n" -msgstr "\\b;Listes der Gebäude\n" +msgid "Build a destroyer" +msgstr "Baue einen Zerstörer" -msgid "\\b;Moveable objects\n" -msgstr "\\b;Listes der tragbaren Gegenstände\n" +msgid "Build a exchange post" +msgstr "Baut einen Infoserver" -msgid "\\b;Aliens\n" -msgstr "\\b;Listes der Feinde\n" +msgid "Build a legged grabber" +msgstr "Baut einen Krabbeltransporter" -msgid "\\c; (none)\\n;\n" -msgstr "" -"\\c; (keine)\\n" -";\n" +msgid "Build a legged orga shooter" +msgstr "Baut einen Krabbelorgashooter" -msgid "\\b;Error\n" -msgstr "\\b;Fehler\n" +msgid "Build a legged shooter" +msgstr "Baut einen Krabbelshooter" -msgid "" -"The list is only available if a \\l;radar station\\u object\\radar; is " -"working.\n" -msgstr "Die Liste ist ohne \\l;Radar\\u object\\radar; nicht verfügbar.\n" - -msgid "Open" -msgstr "Öffnen" - -msgid "Save" -msgstr "Speichern" - -#, c-format -msgid "Folder: %s" -msgstr "Ordner: %s" - -msgid "Name:" -msgstr "Name:" - -msgid "Folder:" -msgstr "In:" - -msgid "Private\\Private folder" -msgstr "Privat\\Privater Ordner" - -msgid "Public\\Common folder" -msgstr "Öffentlich\\Gemeinsamer Ordner für alle Spieler" - -msgid "Developed by :" -msgstr "Entwickelt von:" - -msgid "www.epsitec.com" -msgstr "www.epsitec.com" - -msgid " " -msgstr " " - -msgid "Recorder" -msgstr "Recorder" - -msgid "OK" -msgstr "OK" - -msgid "Next" -msgstr "Nächster" - -msgid "Previous" -msgstr "Vorherg" - -msgid "Exercises\\Programming exercises" -msgstr "Programmieren\\Programmierübungen" - -msgid "Challenges\\Programming challenges" -msgstr "Challenges\\Herausforderungen" - -msgid "Missions\\Select mission" -msgstr "Missionen\\Aufbruch ins Weltall" - -msgid "Free game\\Free game without a specific goal" -msgstr "Freestyle\\Freies Spielen ohne vorgegebenes Ziel" - -msgid "User\\User levels" -msgstr "User\\Userlevels" - -msgid "Change player\\Change player" -msgstr "Anderer Spieler\\Spielername ändern" - -msgid "Options\\Preferences" -msgstr "Einstellungen\\Einstellungen" - -msgid "Restart\\Restart the mission from the beginning" -msgstr "Neu anfangen\\Die Mission von vorne anfangen" - -msgid "Save\\Save the current mission " -msgstr "Speichern\\Aktuelle Mission speichern" - -msgid "Load\\Load a saved mission" -msgstr "Laden\\Eine gespeicherte Mission öffnen" - -msgid "\\Return to COLOBOT" -msgstr "\\Zurück zu COLOBOT" - -msgid "<< Back \\Back to the previous screen" -msgstr "<< Zurück \\Zurück zum Hauptmenü" - -msgid "Play\\Start mission!" -msgstr "Spielen ...\\Los geht's!" - -msgid "Device\\Driver and resolution settings" -msgstr "Bildschirm\\Driver und Bildschirmauflösung" - -msgid "Graphics\\Graphics settings" -msgstr "Grafik\\Grafische Einstellungen" - -msgid "Game\\Game settings" -msgstr "Spiel\\Gameplay Einstellungen" - -msgid "Controls\\Keyboard, joystick and mouse settings" -msgstr "Steuerung\\Auswahl der Tasten" - -msgid "Sound\\Music and game sound volume" -msgstr "Geräusche\\Lautstärke Geräusche und Musik" - -msgid "Unit" -msgstr "Einheit" - -msgid "Resolution" -msgstr "Auflösung" - -msgid "Full screen\\Full screen or window mode" -msgstr "Vollbildschirm\\Vollbildschirm oder Fenster" - -msgid "Apply changes\\Activates the changed settings" -msgstr "Änderungen ausführen\\Getätigte Einstellungen ausführen" - -msgid "Robbie\\Your assistant" -msgstr "Robby\\Ihr Assistent" - -msgid "Shadows\\Shadows on the ground" -msgstr "Schatten\\Schlagschatten auf dem Boden" - -msgid "Marks on the ground\\Marks on the ground" -msgstr "Markierungen\\Markierungen auf dem Boden" - -msgid "Dust\\Dust and dirt on bots and buildings" -msgstr "Schmutz\\Schmutz auf Robotern und Bauten" - -msgid "Fog\\Fog" -msgstr "Nebel\\Nebelschwaden" - -msgid "Sunbeams\\Sunbeams in the sky" -msgstr "Sonnenstrahlen\\Sonnenstrahlen" - -msgid "Sky\\Clouds and nebulae" -msgstr "Himmel\\Himmel und Wolken" - -msgid "Planets and stars\\Astronomical objects in the sky" -msgstr "Planeten und Sterne\\Kreisende Planeten und Sterne" - -msgid "Dynamic lighting\\Mobile light sources" -msgstr "Dynamische Beleuchtung\\Dynamische Beleuchtung" - -msgid "Number of particles\\Explosions, dust, reflections, etc." -msgstr "Anzahl Partikel\\Explosionen, Staub, usw." - -msgid "Depth of field\\Maximum visibility" -msgstr "Sichtweite\\Maximale Sichtweite" - -msgid "Details\\Visual quality of 3D objects" -msgstr "Details\\Detailliertheit der Objekte in 3D" - -msgid "Textures\\Quality of textures " -msgstr "Qualität der Texturen\\Qualität der Anzeige" - -msgid "Num of decorative objects\\Number of purely ornamental objects" -msgstr "Anzahl Ziergegenstände\\Anzahl Gegenstände ohne Funktion" - -msgid "Particles in the interface\\Steam clouds and sparks in the interface" -msgstr "Partikel in den Menüs\\Funken und Sterne in den Menüs" - -msgid "Reflections on the buttons \\Shiny buttons" -msgstr "Glänzende Tasten\\Glänzende Tasten in den Menüs" - -msgid "Help balloons\\Explain the function of the buttons" -msgstr "Hilfsblasen\\Hilfsblasen" - -msgid "Film sequences\\Films before and after the missions" -msgstr "Filme\\Filme vor und nach den Missionen" - -msgid "Exit film\\Film at the exit of exercises" -msgstr "Zurücksetzen \\Kleine Show beim Zurücksetzen in den Übungen" - -msgid "Friendly fire\\Your shooting can damage your own objects " -msgstr "Eigenbeschuss\\Ihre Einheiten werden von Ihren Waffen beschädigt" - -msgid "Scrolling\\Scrolling when the mouse touches right or left border" -msgstr "" -"Kameradrehung mit der Maus\\Die Kamera dreht wenn die Maus den Rand erreicht" - -msgid "Mouse inversion X\\Inversion of the scrolling direction on the X axis" -msgstr "Umkehr X\\Umkehr der Kameradrehung X-Achse" - -msgid "Mouse inversion Y\\Inversion of the scrolling direction on the Y axis" -msgstr "Umkehr Y\\Umkehr der Kameradrehung Y-Achse" - -msgid "Quake at explosions\\The screen shakes at explosions" -msgstr "Beben bei Explosionen\\Die Kamera bebt bei Explosionen" - -msgid "Mouse shadow\\Gives the mouse a shadow" -msgstr "Schatten unter der Maus\\Ein Schatten erscheint unter der Maus" - -msgid "Automatic indent\\When program editing" -msgstr "Automatisches Einrücken\\Beim Bearbeiten der Programme" - -msgid "Big indent\\Indent 2 or 4 spaces per level defined by braces" -msgstr "Einrücken mit 4 Leerstellen\\Einrücken mit 2 oder 4 Leerstellen" - -msgid "Access to solutions\\Show program \"4: Solution\" in the exercises" -msgstr "" -"Lösung zugänglich\\Die Lösung ist im Programmslot \"4: Lösung\" zugänglich" - -msgid "Standard controls\\Standard key functions" -msgstr "Alles zurücksetzen\\Standarddefinition aller Tasten" - -msgid "Turn left\\turns the bot to the left" -msgstr "Drehung nach links\\Steuer links" - -msgid "Turn right\\turns the bot to the right" -msgstr "Drehung nach rechts\\Steuer rechts" - -msgid "Forward\\Moves forward" -msgstr "Vorwärts\\Bewegung nach vorne" - -msgid "Backward\\Moves backward" -msgstr "Rückwärts\\Bewegung nach hinten" - -msgid "Climb\\Increases the power of the jet" -msgstr "Steigen\\Leistung des Triebwerks steigern" - -msgid "Descend\\Reduces the power of the jet" -msgstr "Sinken\\Leistung des Triebwerks drosseln" - -msgid "Change camera\\Switches between onboard camera and following camera" -msgstr "Andere Kamera\\Sichtpunkt einstellen" - -msgid "Previous object\\Selects the previous object" -msgstr "Vorherg. Auswahl\\Das vorhergehende Objekt auswählen" - -msgid "" -"Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)" -msgstr "Standardhandlung\\Führt die Standardhandlung des Roboters aus" - -msgid "Camera closer\\Moves the camera forward" -msgstr "Kamera näher\\Bewegung der Kamera vorwärts" - -msgid "Camera back\\Moves the camera backward" -msgstr "Kamera weiter\\Bewegung der Kamera rückwärts" - -msgid "Next object\\Selects the next object" -msgstr "Nächstes auswählen\\Nächstes Objekt auswählen" - -msgid "Select the astronaut\\Selects the astronaut" -msgstr "Astronauten auswählen\\Astronauten auswählen" - -msgid "Quit\\Quit the current mission or exercise" -msgstr "Mission verlassen\\Eine Mission oder Übung verlassen" - -msgid "Instructions\\Shows the instructions for the current mission" -msgstr "Anweisungen\\Anweisungen für die Mission oder Übung" - -msgid "Programming help\\Gives more detailed help with programming" -msgstr "Hilfe CBOT-Sprache\\Hilfe über die Programmiersprache CBOT" - -msgid "Key word help\\More detailed help about key words" -msgstr "Hilfe über Begriff\\Hilfe über einen Begriff" - -msgid "Origin of last message\\Shows where the last message was sent from" -msgstr "Ort der Meldung\\Zeigt den Ort, von dem die letzte Meldung stammt" - -msgid "Speed 1.0x\\Normal speed" -msgstr "Geschwindigkeit 1.0x\\Normale Spielgeschwindigkeit" - -msgid "Speed 1.5x\\1.5 times faster" -msgstr "Geschwindigkeit 1.5x\\Spielgeschwindigkeit anderthalb Mal schneller" - -msgid "Speed 2.0x\\Double speed" -msgstr "Geschwindigkeit 2.0x\\Spielgeschwindigkeit doppelt so schnell" - -msgid "Speed 3.0x\\Three times faster" -msgstr "Geschwindigkeit 3.0x\\Spielgeschwindigkeit drei Mal schneller" - -msgid "Sound effects:\\Volume of engines, voice, shooting, etc." -msgstr "Geräusche:\\Lautstärke Motoren, Stimmen, usw." - -msgid "Background sound :\\Volume of audio tracks on the CD" -msgstr "Geräuschkulisse:\\Lautstärke der Soundtracks der CD" - -msgid "3D sound\\3D positioning of the sound" -msgstr "3D-Geräusche\\Orten der Geräusche im Raum" - -msgid "Lowest\\Minimum graphic quality (highest frame rate)" -msgstr "Min.\\Minimale Qualität (großes Framerate)" - -msgid "Normal\\Normal graphic quality" -msgstr "Normal\\Standardqualität" - -msgid "Highest\\Highest graphic quality (lowest frame rate)" -msgstr "Max.\\Beste Qualität (niedriges Framerate)" - -msgid "Mute\\No sound" -msgstr "Kein Ton\\Keine Geräusche und Geräuschkulisse" - -msgid "Normal\\Normal sound volume" -msgstr "Normal\\Normale Lautstärke" - -msgid "Use a joystick\\Joystick or keyboard" -msgstr "Joystick\\Joystick oder Tastatur" - -msgid "" -"Access to solution\\Shows the solution (detailed instructions for missions)" -msgstr "Zeigt die Lösung\\Zeigt nach 3mal Scheitern die Lösung" - -msgid "\\New player name" -msgstr "\\Name des Spielers" - -msgid "OK\\Choose the selected player" -msgstr "OK\\Spieler auswählen" - -msgid "Cancel\\Keep current player name" -msgstr "Abbrechen\\Behält den bisherigen Spieler bei" - -msgid "Delete player\\Deletes the player from the list" -msgstr "Spieler löschen\\Löscht den Spieler aus der Liste" - -msgid "Player name" -msgstr "Name " - -msgid "Save\\Saves the current mission" -msgstr "Speichern\\Speichert die Mission" - -msgid "Load\\Loads the selected mission" -msgstr "Laden\\Öffnet eine gespeicherte Mission" - -msgid "List of saved missions" -msgstr "Liste der gespeicherten Missionen" - -msgid "Filename:" -msgstr "Dateiname:" - -msgid "Mission name" -msgstr "Name der Mission" - -msgid "Photography" -msgstr "Ansicht der Mission" - -msgid "Delete\\Deletes the selected file" -msgstr "Löschen\\Löscht die gespeicherte Mission" - -msgid "Appearance\\Choose your appearance" -msgstr "Aussehen\\Erscheinungsbild des Astronauten einstellen" - -msgid "Standard\\Standard appearance settings" -msgstr "Standard\\Standardfarben einsetzen" - -msgid "Head\\Face and hair" -msgstr "Kopf\\Gesicht und Haare" - -msgid "Suit\\Astronaut suit" -msgstr "Anzug\\Raumfahrtanzug" - -msgid "\\Turn left" -msgstr "\\Drehung links" - -msgid "\\Turn right" -msgstr "\\Drehung rechts" - -msgid "Red" -msgstr "Rot" - -msgid "Green" -msgstr "Grün" - -msgid "Blue" -msgstr "Blau" - -msgid "\\Face 1" -msgstr "\\Kopf 1" - -msgid "\\Face 4" -msgstr "\\Kopf 4" - -msgid "\\Face 3" -msgstr "\\Kopf 3" - -msgid "\\Face 2" -msgstr "\\Kopf 2" +msgid "Build a legged sniffer" +msgstr "Baut einen Krabbelschnüffler" -msgid "\\No eyeglasses" -msgstr "\\Keine Brille" +msgid "Build a lightning conductor" +msgstr "Baut einen Blitzableiter" -msgid "\\Eyeglasses 1" -msgstr "\\Brille 1" +msgid "Build a nuclear power plant" +msgstr "Baut eine Brennstoffzellenfabrik" -msgid "\\Eyeglasses 2" -msgstr "\\Brille 2" +msgid "Build a phazer shooter" +msgstr "Baut einen Phazershooter" -msgid "\\Eyeglasses 3" -msgstr "\\Brille 3" +msgid "Build a power cell factory" +msgstr "Baut eine Batteriefabrik" -msgid "\\Eyeglasses 4" -msgstr "\\Brille 4" +msgid "Build a power station" +msgstr "Baut ein Kraftwerk" -msgid "\\Eyeglasses 5" -msgstr "\\Brille 5" +msgid "Build a radar station" +msgstr "Baut ein Radar" -msgid "Previous selection (\\key desel;)" -msgstr "Vorherg. Auwahl (\\key desel;)" +msgid "Build a recycler" +msgstr "Baut einen Recycler" -msgid "Turn left (\\key left;)" -msgstr "Drehung links (\\key left;)" +msgid "Build a repair center" +msgstr "Baut ein Reparaturzentrum" -msgid "Turn right (\\key right;)" -msgstr "Drehung rechts (\\key right;)" +msgid "Build a research center" +msgstr "Baut ein Forschungszentrum" -msgid "Forward (\\key up;)" -msgstr "Vorwärts (\\key up;)" +msgid "Build a shielder" +msgstr "Baut einen Schutzschild" -msgid "Backward (\\key down;)" -msgstr "Rückwärts (\\key down;)" +msgid "Build a subber" +msgstr "Baut einen Kettentaucher" -msgid "Up (\\key gup;)" -msgstr "Steigt (\\key gup;)" +msgid "Build a thumper" +msgstr "Baut einen Stampfer" -msgid "Down (\\key gdown;)" -msgstr "Sinkt (\\key gdown;)" +msgid "Build a tracked grabber" +msgstr "Baut einen Kettentransporter" -msgid "Grab or drop (\\key action;)" -msgstr "Nehmen oder hinlegen (\\key action;)" +msgid "Build a tracked orga shooter" +msgstr "Baut einen Kettenorgashooter" -msgid "..in front" -msgstr "..vorne" +msgid "Build a tracked shooter" +msgstr "Baut einen Kettenshooter" -msgid "..behind" -msgstr "..hinten" +msgid "Build a tracked sniffer" +msgstr "Baut einen Kettenschnüffler" -msgid "..power cell" -msgstr "..Batterie" +msgid "Build a wheeled grabber" +msgstr "Baut einen Radtransporter" -msgid "Instructions for the mission (\\key help;)" -msgstr "Anweisungen über die Mission(\\key help;)" +msgid "Build a wheeled orga shooter" +msgstr "Baut einen Radorgashooter" -msgid "Take off to finish the mission" -msgstr "Abheben nach vollbrachter Mission" +msgid "Build a wheeled shooter" +msgstr "Baut einen Radshooter" -msgid "Destroy" -msgstr "Zerstören" +msgid "Build a wheeled sniffer" +msgstr "Baut einen Radschnüffler" -msgid "Build a derrick" -msgstr "Baut einen Bohrturm" +msgid "Build a winged grabber" +msgstr "Baut einen Jettransporter" -msgid "Build a power station" -msgstr "Baut ein Kraftwerk" +msgid "Build a winged orga shooter" +msgstr "Baut einen Jetorgashooter" -msgid "Build a bot factory" -msgstr "Baut eine Roboterfabrik" +msgid "Build a winged shooter" +msgstr "Baut einen Jetshooter" -msgid "Build a repair center" -msgstr "Baut ein Reparaturzentrum" +msgid "Build a winged sniffer" +msgstr "Baut einen Jetschnüffler" -msgid "Build a converter" -msgstr "Baut einen Konverter" +msgid "Build an autolab" +msgstr "Baut ein automatisches Labor" -msgid "Build a defense tower" -msgstr "Baut einen Geschützturm" +msgid "Building completed" +msgstr "Gebäude fertiggestellt" -msgid "Build a research center" -msgstr "Baut ein Forschungszentrum" +msgid "Building destroyed" +msgstr "Gebäude zerstört" -msgid "Build a radar station" -msgstr "Baut ein Radar" +msgid "Building too close" +msgstr "Gebäude zu nahe" -msgid "Build a power cell factory" -msgstr "Baut eine Batteriefabrik" +msgid "Button %1" +msgstr "Knopf %1" -msgid "Build an autolab" -msgstr "Baut ein automatisches Labor" +msgid "COLOBOT" +msgstr "COLOBOT" -msgid "Build a nuclear power plant" -msgstr "Baut eine Brennstoffzellenfabrik" +msgid "COLOBOT: Gold Edition" +msgstr "COLOBOT: Gold Edition" -msgid "Build a lightning conductor" -msgstr "Baut einen Blitzableiter" +msgid "Calling an unknown function" +msgstr "Die aufgerufene Funktion existiert nicht" -msgid "Build a exchange post" -msgstr "Baut einen Infoserver" +msgid "Camera (\\key camera;)" +msgstr "Kamera (\\key camera;)" -msgid "Build a destroyer" -msgstr "Baue einen Zerstörer" +msgid "Camera awayest" +msgstr "Kamera weiter weg" -msgid "Show if the ground is flat" -msgstr "Zeigt ob der Boden eben ist" +msgid "Camera back\\Moves the camera backward" +msgstr "Kamera weiter\\Bewegung der Kamera rückwärts" -msgid "Plant a flag" -msgstr "Setzt eine Fahne" +msgid "Camera closer\\Moves the camera forward" +msgstr "Kamera näher\\Bewegung der Kamera vorwärts" -msgid "Remove a flag" -msgstr "Sammelt die Fahne ein" +msgid "Camera nearest" +msgstr "Kamera näher" -msgid "\\Blue flags" -msgstr "\\Blaue Fahne" +msgid "Camera to left" +msgstr "Kamera links" -msgid "\\Red flags" -msgstr "\\Rote Fahne" +msgid "Camera to right" +msgstr "Kamera rechts" -msgid "\\Green flags" -msgstr "\\Grüne Fahne" +msgid "Can not create this; there are too many objects" +msgstr "Kein neues Objekt kann erstellt werden (zu viele vorhanden)" -msgid "\\Yellow flags" -msgstr "\\Gelbe Fahne" +msgid "Can not produce not researched object" +msgstr "Das erforschte Objekt kann nicht produziert werden" -msgid "\\Violet flags" -msgstr "\\Violette Fahne" +msgid "Can not produce this object in this mission" +msgstr "Das Objekt kann in dieser Mission nicht produziert werden" -msgid "Build a winged grabber" -msgstr "Baut einen Jettransporter" +msgid "Can't open file" +msgstr "Die Datei kann nicht geöffnet werden" -msgid "Build a tracked grabber" -msgstr "Baut einen Kettentransporter" +msgid "Cancel" +msgstr "Abbrechen" -msgid "Build a wheeled grabber" -msgstr "Baut einen Radtransporter" +msgid "Cancel\\Cancel all changes" +msgstr "Abbrechen\\Editor schließen" -msgid "Build a legged grabber" -msgstr "Baut einen Krabbeltransporter" +msgid "Cancel\\Keep current player name" +msgstr "Abbrechen\\Behält den bisherigen Spieler bei" -msgid "Build a winged shooter" -msgstr "Baut einen Jetshooter" +msgid "Challenges" +msgstr "Challenges" -msgid "Build a tracked shooter" -msgstr "Baut einen Kettenshooter" +msgid "Challenges\\Programming challenges" +msgstr "Challenges\\Herausforderungen" -msgid "Build a wheeled shooter" -msgstr "Baut einen Radshooter" +msgid "Change camera\\Switches between onboard camera and following camera" +msgstr "Andere Kamera\\Sichtpunkt einstellen" -msgid "Build a legged shooter" -msgstr "Baut einen Krabbelshooter" +msgid "Change player\\Change player" +msgstr "Anderer Spieler\\Spielername ändern" -msgid "Build a winged orga shooter" -msgstr "Baut einen Jetorgashooter" +msgid "Checkpoint" +msgstr "Checkpoint" -msgid "Build a tracked orga shooter" -msgstr "Baut einen Kettenorgashooter" +msgid "Checkpoint crossed" +msgstr "Checkpoint erreicht" -msgid "Build a wheeled orga shooter" -msgstr "Baut einen Radorgashooter" +msgid "Climb\\Increases the power of the jet" +msgstr "Steigen\\Leistung des Triebwerks steigern" -msgid "Build a legged orga shooter" -msgstr "Baut einen Krabbelorgashooter" +msgid "Close" +msgstr "Schließen" -msgid "Build a winged sniffer" -msgstr "Baut einen Jetschnüffler" +msgid "Closing bracket missing " +msgstr "Es fehlt eine geschlossene Klammer \")\"" -msgid "Build a tracked sniffer" -msgstr "Baut einen Kettenschnüffler" +msgid "Colobot rules!" +msgstr "Colobot ist wunderbar!" -msgid "Build a wheeled sniffer" -msgstr "Baut einen Radschnüffler" +msgid "Command line" +msgstr "Befehleingabe" -msgid "Build a legged sniffer" -msgstr "Baut einen Krabbelschnüffler" +msgid "Compass" +msgstr "Kompass" -msgid "Build a thumper" -msgstr "Baut einen Stampfer" +msgid "Compilation ok (0 errors)" +msgstr "Kompilieren OK (0 Fehler)" -msgid "Build a phazer shooter" -msgstr "Baut einen Phazershooter" +msgid "Compile" +msgstr "Kompilieren" -msgid "Build a recycler" -msgstr "Baut einen Recycler" +msgid "Continue" +msgstr "Weitermachen" -msgid "Build a shielder" -msgstr "Baut einen Schutzschild" +msgid "Continue\\Continue the current mission" +msgstr "Weitermachen\\Mission weitermachen" -msgid "Build a subber" -msgstr "Baut einen Kettentaucher" +msgid "Continue\\Continue the game" +msgstr "Weitermachen\\Weitermachen" -msgid "Run research program for tracked bots" -msgstr "Forschungsprogramm Kettenantrieb" +msgid "Controls\\Keyboard, joystick and mouse settings" +msgstr "Steuerung\\Auswahl der Tasten" -msgid "Run research program for winged bots" -msgstr "Forschungsprogramm Jetantrieb" +msgid "Converts ore to titanium" +msgstr "Konverter Erz-Titan" -msgid "Run research program for thumper" -msgstr "Forschungsprogramm Stampfer" +msgid "Copy" +msgstr "Kopieren" -msgid "Run research program for shooter" -msgstr "Forschungsprogramm Shooterkanone" +msgid "Copy (Ctrl+c)" +msgstr "Kopieren (Ctrl+c)" -msgid "Run research program for defense tower" -msgstr "Forschungsprogramm Geschützturm" +msgid "Current mission saved" +msgstr "Mission gespeichert" -msgid "Run research program for phazer shooter" -msgstr "Forschungsprogramm Phazerkanone" +msgid "Customize your appearance" +msgstr "Aussehen einstellen" -msgid "Run research program for shielder" -msgstr "Forschungsprogramm Schutzschild" +msgid "Cut (Ctrl+x)" +msgstr "Ausschneiden (Ctrl+x)" -msgid "Run research program for nuclear power" -msgstr "Forschungsprogramm Brennstoffzelle" +msgid "Defense tower" +msgstr "Geschützturm" -msgid "Run research program for legged bots" -msgstr "Forschungsprogramm Krabbelantrieb" +msgid "Delete" +msgstr "Zerstören" -msgid "Run research program for orga shooter" -msgstr "Forschungsprogramm Orgashooterkanone" +msgid "Delete player\\Deletes the player from the list" +msgstr "Spieler löschen\\Löscht den Spieler aus der Liste" -msgid "Return to start" -msgstr "Alles zurücksetzen" +msgid "Delete\\Deletes the selected file" +msgstr "Löschen\\Löscht die gespeicherte Mission" -msgid "Sniff (\\key action;)" -msgstr "Schnüffeln (\\key action;)" +msgid "Depth of field\\Maximum visibility" +msgstr "Sichtweite\\Maximale Sichtweite" -msgid "Thump (\\key action;)" -msgstr "Stampfen (\\key action;)" +msgid "Derrick" +msgstr "Bohrturm" -msgid "Shoot (\\key action;)" -msgstr "Feuer (\\key action;)" +msgid "Descend\\Reduces the power of the jet" +msgstr "Sinken\\Leistung des Triebwerks drosseln" -msgid "Explode (\\key action;)" -msgstr "Explodieren (\\key action;)" +msgid "Destroy" +msgstr "Zerstören" -msgid "Recycle (\\key action;)" -msgstr "Recyceln (\\key action;)" +msgid "Destroy the building" +msgstr "Gebäude sprengen" -msgid "Extend shield (\\key action;)" -msgstr "Schutzschild ausfahren (\\key action;)" +msgid "Destroyer" +msgstr "Einstampfer" -msgid "Withdraw shield (\\key action;)" -msgstr "Schutzschild einholen (\\key action;)" +msgid "Details\\Visual quality of 3D objects" +msgstr "Details\\Detailliertheit der Objekte in 3D" -msgid "Shield radius" -msgstr "Reichweite Schutzschild" +msgid "Developed by :" +msgstr "Entwickelt von:" -msgid "Execute the selected program" -msgstr "Gewähltes Programm ausführen" +msgid "Device\\Driver and resolution settings" +msgstr "Bildschirm\\Driver und Bildschirmauflösung" -msgid "Edit the selected program" -msgstr "Gewähltes Programm bearbeiten" +msgid "Dividing by zero" +msgstr "Teilung durch Null" -msgid "\\SatCom on standby" -msgstr "\\SatCom in Standby" +msgid "Do not use in this exercise" +msgstr "In dieser Übung verboten" -msgid "Destroy the building" -msgstr "Gebäude sprengen" +msgid "Do you really want to destroy the selected building?" +msgstr "Wollen Sie das angewählte Gebäude wirklich zerstören ?" -msgid "Energy level" -msgstr "Energievorrat" +#, c-format +msgid "Do you want to delete %s's saved games? " +msgstr "Wollen Sie die gespeicherten Missionen von %s löschen ?" -msgid "Shield level" -msgstr "Schäden" +msgid "Do you want to quit COLOBOT ?" +msgstr "Wollen Sie COLOBOT schließen ?" -msgid "Jet temperature" -msgstr "Triebwerktemperatur" +msgid "Doors blocked by a robot or another object " +msgstr "Die Türen werden von einem Gegenstand blockiert" -msgid "Still working ..." -msgstr "Prozess im Gang ..." +msgid "Down (\\key gdown;)" +msgstr "Sinkt (\\key gdown;)" -msgid "Number of insects detected" -msgstr "Anzahl erfasster Insekten" +msgid "Drawer bot" +msgstr "Zeichner" -msgid "Transmitted information" -msgstr "Gesendete Informationen" +msgid "Dust\\Dust and dirt on bots and buildings" +msgstr "Schmutz\\Schmutz auf Robotern und Bauten" -msgid "Compass" -msgstr "Kompass" +msgid "Dynamic lighting\\Mobile light sources" +msgstr "Dynamische Beleuchtung\\Dynamische Beleuchtung" -msgid "Zoom mini-map" -msgstr "Zoom Minikarte" +msgid "Edit the selected program" +msgstr "Gewähltes Programm bearbeiten" -msgid "Camera (\\key camera;)" -msgstr "Kamera (\\key camera;)" +msgid "Egg" +msgstr "Ei" -msgid "Camera to left" -msgstr "Kamera links" +msgid "End of block missing" +msgstr "Es fehlt eine geschlossene geschweifte Klammer \"}\" (Ende des Blocks)" -msgid "Camera to right" -msgstr "Kamera rechts" +msgid "Energy deposit (site for power station)" +msgstr "Markierung für unterirdische Energiequelle" -msgid "Camera nearest" -msgstr "Kamera näher" +msgid "Energy level" +msgstr "Energievorrat" -msgid "Camera awayest" -msgstr "Kamera weiter weg" +msgid "Engineer" +msgstr "Techniker" -msgid "Help about selected object" -msgstr "Anweisungen über das ausgewählte Objekt" +msgid "Error in instruction move" +msgstr "Ziel kann nicht erreicht werden" -msgid "Show the solution" -msgstr "Zeigt die Lösung" +msgid "Execute the selected program" +msgstr "Gewähltes Programm ausführen" -msgid "Switch bots <-> buildings" -msgstr "Anzeige Roboter <-> Bauten" +msgid "Execute/stop" +msgstr "Start/Stop" -msgid "Show the range" -msgstr "Zeigt die Reichweite" +msgid "Exercises\\Programming exercises" +msgstr "Programmieren\\Programmierübungen" -msgid "\\Raise the pencil" -msgstr "\\Bleistift abheben" +msgid "Exit film\\Film at the exit of exercises" +msgstr "Zurücksetzen \\Kleine Show beim Zurücksetzen in den Übungen" -msgid "\\Use the black pencil" -msgstr "\\Schwarzen Bleistift hinunterlassen" +msgid "Explode (\\key action;)" +msgstr "Explodieren (\\key action;)" -msgid "\\Use the yellow pencil" -msgstr "\\Gelben Bleistift hinunterlassen" +msgid "Explosive" +msgstr "Sprengstoff" -msgid "\\Use the orange pencil" -msgstr "\\Orangefarbenen Bleistift hinunterlassen" +msgid "Extend shield (\\key action;)" +msgstr "Schutzschild ausfahren (\\key action;)" -msgid "\\Use the red pencil" -msgstr "\\Roten Bleistift hinunterlassen" +msgid "Eyeglasses:" +msgstr "Brille:" -msgid "\\Use the purple pencil" -msgstr "\\Violetten Bleistift hinunterlassen" +msgid "Face type:" +msgstr "Kopf:" -msgid "\\Use the blue pencil" -msgstr "\\Blauen Bleistift hinunterlassen" +msgid "File not open" +msgstr "Die Datei wurde nicht geöffnet" -msgid "\\Use the green pencil" -msgstr "\\Grünen Bleistift hinunterlassen" +msgid "Filename:" +msgstr "Dateiname:" -msgid "\\Use the brown pencil" -msgstr "\\Braunen Bleistift hinunterlassen" +msgid "Film sequences\\Films before and after the missions" +msgstr "Filme\\Filme vor und nach den Missionen" -msgid "\\Start recording" -msgstr "\\Aufnahme starten" +msgid "Finish" +msgstr "Zielfläche" -msgid "\\Stop recording" -msgstr "\\Aufnahme stoppen" +msgid "Fixed mine" +msgstr "Landmine" -msgid "Show the place" -msgstr "Zeigt den Ort" +msgid "Flat ground not large enough" +msgstr "Ebener Boden nicht groß genug" -msgid "Continue" -msgstr "Weitermachen" +msgid "Fog\\Fog" +msgstr "Nebel\\Nebelschwaden" -msgid "Command line" -msgstr "Befehleingabe" +msgid "Folder:" +msgstr "In:" -msgid "Game speed" -msgstr "Spielgeschwindigkeit" +#, c-format +msgid "Folder: %s" +msgstr "Ordner: %s" -msgid "Back" -msgstr "Vorherg. Seite" +msgid "Font size" +msgstr "Zeichengröße" msgid "Forward" msgstr "Nächste Seite" -msgid "Home" -msgstr "Home" - -msgid "Copy" -msgstr "Kopieren" - -msgid "Size 1" -msgstr "Größe 1" +msgid "Forward (\\key up;)" +msgstr "Vorwärts (\\key up;)" -msgid "Size 2" -msgstr "Größe 2" +msgid "Forward\\Moves forward" +msgstr "Vorwärts\\Bewegung nach vorne" -msgid "Size 3" -msgstr "Größe 3" +msgid "Found a site for a derrick" +msgstr "Geeignete Stelle für Bohrturm gefunden" -msgid "Size 4" -msgstr "Größe 4" +msgid "Found a site for power station" +msgstr "Geeignete Stelle für Kraftwerk gefunden" -msgid "Size 5" -msgstr "Größe 5" +msgid "Found key A (site for derrick)" +msgstr "Markierung für vergrabenen Schlüssel A" -msgid "Instructions from Houston" -msgstr "Anweisungen von Houston" +msgid "Found key B (site for derrick)" +msgstr "Markierung für vergrabenen Schlüssel B" -msgid "Satellite report" -msgstr "Satellitenbericht" +msgid "Found key C (site for derrick)" +msgstr "Markierung für vergrabenen Schlüssel C" -msgid "Programs dispatched by Houston" -msgstr "Von Houston übermittelte Programme" +msgid "Found key D (site for derrick)" +msgstr "Markierung für vergrabenen Schlüssel D" -msgid "List of objects" -msgstr "Liste der Objekte" +msgid "Free game" +msgstr "Freestyle" -msgid "Programming help" -msgstr "Hilfe über Programmieren" +msgid "Free game\\Free game without a specific goal" +msgstr "Freestyle\\Freies Spielen ohne vorgegebenes Ziel" -msgid "Solution" -msgstr "Lösung" +msgid "Friendly fire\\Your shooting can damage your own objects " +msgstr "Eigenbeschuss\\Ihre Einheiten werden von Ihren Waffen beschädigt" -msgid "OK\\Close program editor and return to game" -msgstr "OK\\Programm kompilieren" +msgid "Full screen\\Full screen or window mode" +msgstr "Vollbildschirm\\Vollbildschirm oder Fenster" -msgid "Cancel\\Cancel all changes" -msgstr "Abbrechen\\Editor schließen" +msgid "Function already exists" +msgstr "Diese Funktion gibt es schon" -msgid "Open (Ctrl+o)" -msgstr "Öffnen (Ctrl+o)" +msgid "Function name missing" +msgstr "Hier muss der Name der Funktion stehen" -msgid "Save (Ctrl+s)" -msgstr "Speichern (Ctrl+s)" +msgid "Game speed" +msgstr "Spielgeschwindigkeit" -msgid "Undo (Ctrl+z)" -msgstr "Widerrufen (Ctrl+z)" +msgid "Game\\Game settings" +msgstr "Spiel\\Gameplay Einstellungen" -msgid "Cut (Ctrl+x)" -msgstr "Ausschneiden (Ctrl+x)" +msgid "Gantry crane" +msgstr "Träger" -msgid "Copy (Ctrl+c)" -msgstr "Kopieren (Ctrl+c)" +msgid "Goto: destination occupied" +msgstr "Ziel ist schon besetzt" -msgid "Paste (Ctrl+v)" -msgstr "Einfügen (Ctrl+v)" +msgid "Goto: inaccessible destination" +msgstr "Ziel kann nicht erreicht werden" -msgid "Font size" -msgstr "Zeichengröße" +msgid "Grab or drop (\\key action;)" +msgstr "Nehmen oder hinlegen (\\key action;)" -msgid "Instructions (\\key help;)" -msgstr "Anweisungen (\\key help;)" +msgid "Graphics\\Graphics settings" +msgstr "Grafik\\Grafische Einstellungen" -msgid "Programming help (\\key prog;)" -msgstr "Hilfe über Programmieren (\\key prog;)" +msgid "Green" +msgstr "Grün" -msgid "Compile" -msgstr "Kompilieren" +msgid "Green flag" +msgstr "Grüne Fahne" -msgid "Execute/stop" -msgstr "Start/Stop" +msgid "Ground inappropriate" +msgstr "Boden ungeeignet" -msgid "Pause/continue" -msgstr "Pause/Weitermachen" +msgid "Ground not flat enough" +msgstr "Boden nicht eben genug" -msgid "One step" -msgstr "Ein Schritt" +msgid "Hair color:" +msgstr "Haarfarbe:" -msgid "Gantry crane" -msgstr "Träger" +msgid "Head\\Face and hair" +msgstr "Kopf\\Gesicht und Haare" -msgid "Spaceship" -msgstr "Raumschiff" +msgid "Help about selected object" +msgstr "Anweisungen über das ausgewählte Objekt" -msgid "Derrick" -msgstr "Bohrturm" +msgid "Help balloons\\Explain the function of the buttons" +msgstr "Hilfsblasen\\Hilfsblasen" -msgid "Bot factory" -msgstr "Roboterfabrik" +msgid "Highest\\Highest graphic quality (lowest frame rate)" +msgstr "Max.\\Beste Qualität (niedriges Framerate)" -msgid "Repair center" -msgstr "Reparaturzentrum" +msgid "Home" +msgstr "Home" -msgid "Destroyer" -msgstr "Einstampfer" +msgid "Houston Mission Control" +msgstr "Kontrollzentrum" -msgid "Power station" -msgstr "Kraftwerk" +msgid "Illegal object" +msgstr "Objekt nicht verfügbar" -msgid "Converts ore to titanium" -msgstr "Konverter Erz-Titan" +msgid "Impossible under water" +msgstr "Unter Wasser unmöglich" -msgid "Defense tower" -msgstr "Geschützturm" +msgid "Impossible when carrying an object" +msgstr "Unmöglich wenn Sie etwas tragen" -msgid "Nest" -msgstr "Orgastoffquelle" +msgid "Impossible when flying" +msgstr "Im Flug unmöglich" -msgid "Research center" -msgstr "Forschungszentrum" +msgid "Impossible when moving" +msgstr "In Fahrt unmöglich" -msgid "Radar station" -msgstr "Radar" +msgid "Impossible when swimming" +msgstr "Im Wasser unmöglich" -msgid "Information exchange post" -msgstr "Infoserver" +msgid "Inappropriate bot" +msgstr "Roboter ungeeignet" -msgid "Power cell factory" -msgstr "Batteriefabrik" +msgid "Inappropriate cell type" +msgstr "Falscher Batterietyp" -msgid "Autolab" -msgstr "Automatisches Labor" +#, fuzzy +msgid "Inappropriate object" +msgstr "Roboter ungeeignet" -msgid "Nuclear power station" -msgstr "Brennstoffzellenfabrik" +msgid "Incorrect index type" +msgstr "Falscher Typ für einen Index" -msgid "Lightning conductor" -msgstr "Blitzableiter" +msgid "Infected by a virus; temporarily out of order" +msgstr "Von Virus infiziert, zeitweise außer Betrieb" -msgid "Vault" -msgstr "Bunker" +msgid "Information exchange post" +msgstr "Infoserver" -msgid "Houston Mission Control" -msgstr "Kontrollzentrum" +msgid "Instruction \"break\" outside a loop" +msgstr "Anweisung \"break\" außerhalb einer Schleife" -msgid "Target" -msgstr "Zielscheibe" +msgid "Instruction \"case\" missing" +msgstr "Es fehlt eine Anweisung \"case\"" -msgid "Start" -msgstr "Startfläche" +msgid "Instruction \"case\" outside a block \"switch\"" +msgstr "Anweisung \"case\" ohne vorhergehende Anweisung \"switch\"" -msgid "Finish" -msgstr "Zielfläche" +msgid "Instruction \"else\" without corresponding \"if\" " +msgstr "Anweisung \"else\" ohne vorhergehende Anweisung \"if\"" -msgid "Titanium ore" -msgstr "Titanerz" +msgid "Instructions (\\key help;)" +msgstr "Anweisungen (\\key help;)" -msgid "Uranium ore" -msgstr "Platinerz" +msgid "Instructions after the final closing brace" +msgstr "Hier ist eine Anweisung nach dem Ende des Programms" -msgid "Organic matter" -msgstr "Orgastoff" +msgid "Instructions for the mission (\\key help;)" +msgstr "Anweisungen über die Mission(\\key help;)" -msgid "Titanium" -msgstr "Titan" +msgid "Instructions from Houston" +msgstr "Anweisungen von Houston" -msgid "Power cell" -msgstr "Elektrolytische Batterie" +msgid "Instructions\\Shows the instructions for the current mission" +msgstr "Anweisungen\\Anweisungen für die Mission oder Übung" -msgid "Nuclear power cell" -msgstr "Brennstoffzelle" +msgid "Internal error - tell the developers" +msgstr "Interner Fehler - Benachrichtige die Entwickler" -msgid "Black box" -msgstr "Flugschreiber" +msgid "Jet temperature" +msgstr "Triebwerktemperatur" msgid "Key A" msgstr "Schlüssel A" @@ -1131,949 +763,997 @@ msgstr "Schlüssel C" msgid "Key D" msgstr "Schlüssel D" -msgid "Explosive" -msgstr "Sprengstoff" +msgid "Key word help\\More detailed help about key words" +msgstr "Hilfe über Begriff\\Hilfe über einen Begriff" -msgid "Fixed mine" -msgstr "Landmine" +msgid "Keyword \"while\" missing" +msgstr "Es fehlt das Wort \"while\"" -msgid "Survival kit" -msgstr "Überlebenskit" +msgid "Keyword help(\\key cbot;)" +msgstr "Hilfe über den Begriff (\\key cbot;)" -msgid "Checkpoint" -msgstr "Checkpoint" +msgid "LOADING" +msgstr "LADEN" -msgid "Blue flag" -msgstr "Blaue Fahne" +msgid "Legged grabber" +msgstr "Transporter" -msgid "Red flag" -msgstr "Rote Fahne" +msgid "Legged orga shooter" +msgstr "OrgaShooter" -msgid "Green flag" -msgstr "Grüne Fahne" +msgid "Legged shooter" +msgstr "Shooter" -msgid "Yellow flag" -msgstr "Gelbe Fahne" +msgid "Legged sniffer" +msgstr "Schnüffler" -msgid "Violet flag" -msgstr "Violette Fahne" +msgid "Lightning conductor" +msgstr "Blitzableiter" -msgid "Energy deposit (site for power station)" -msgstr "Markierung für unterirdische Energiequelle" +msgid "List of objects" +msgstr "Liste der Objekte" -msgid "Uranium deposit (site for derrick)" -msgstr "Markierung für unterirdisches Platinvorkommen" +msgid "List of saved missions" +msgstr "Liste der gespeicherten Missionen" -msgid "Found key A (site for derrick)" -msgstr "Markierung für vergrabenen Schlüssel A" +msgid "Load a saved mission" +msgstr "Gespeicherte Mission laden" -msgid "Found key B (site for derrick)" -msgstr "Markierung für vergrabenen Schlüssel B" +msgid "Load\\Load a saved mission" +msgstr "Laden\\Eine gespeicherte Mission öffnen" -msgid "Found key C (site for derrick)" -msgstr "Markierung für vergrabenen Schlüssel C" +msgid "Load\\Loads the selected mission" +msgstr "Laden\\Öffnet eine gespeicherte Mission" + +msgid "Lowest\\Minimum graphic quality (highest frame rate)" +msgstr "Min.\\Minimale Qualität (großes Framerate)" + +msgid "Lunar Roving Vehicle" +msgstr "Lunar Roving Vehicle" + +msgid "Marks on the ground\\Marks on the ground" +msgstr "Markierungen\\Markierungen auf dem Boden" + +msgid "Maximize" +msgstr "Großes Fenster" + +msgid "Minimize" +msgstr "Reduzieren" + +msgid "Mission name" +msgstr "Name der Mission" + +msgid "Missions" +msgstr "Missionen" + +msgid "Missions\\Select mission" +msgstr "Missionen\\Aufbruch ins Weltall" + +msgid "Mouse inversion X\\Inversion of the scrolling direction on the X axis" +msgstr "Umkehr X\\Umkehr der Kameradrehung X-Achse" + +msgid "Mouse inversion Y\\Inversion of the scrolling direction on the Y axis" +msgstr "Umkehr Y\\Umkehr der Kameradrehung Y-Achse" -msgid "Found key D (site for derrick)" -msgstr "Markierung für vergrabenen Schlüssel D" +msgid "Mouse shadow\\Gives the mouse a shadow" +msgstr "Schatten unter der Maus\\Ein Schatten erscheint unter der Maus" -msgid "Titanium deposit (site for derrick)" -msgstr "Markierung für unterirdisches Titanvorkommen" +msgid "Mute\\No sound" +msgstr "Kein Ton\\Keine Geräusche und Geräuschkulisse" -msgid "Practice bot" -msgstr "Übungsroboter" +msgid "Name:" +msgstr "Name:" -msgid "Winged grabber" -msgstr "Transporter" +msgid "Negative value rejected by \"throw\"" +msgstr "Negativer Wert ungeeignet für Anweisung \"throw\"" -msgid "Tracked grabber" -msgstr "Transporter" +msgid "Nest" +msgstr "Orgastoffquelle" -msgid "Wheeled grabber" -msgstr "Transporter" +msgid "New" +msgstr "Neu" -msgid "Legged grabber" -msgstr "Transporter" +msgid "New ..." +msgstr "Neu ..." -msgid "Winged shooter" -msgstr "Shooter" +msgid "New bot available" +msgstr "Neuer Roboter verfügbar" -msgid "Tracked shooter" -msgstr "Shooter" +msgid "Next" +msgstr "Nächster" -msgid "Wheeled shooter" -msgstr "Shooter" +msgid "Next object\\Selects the next object" +msgstr "Nächstes auswählen\\Nächstes Objekt auswählen" -msgid "Legged shooter" -msgstr "Shooter" +msgid "No energy in the subsoil" +msgstr "Kein unterirdisches Energievorkommen" -msgid "Winged orga shooter" -msgstr "OrgaShooter" +msgid "No flag nearby" +msgstr "Keine Fahne in Reichweite" -msgid "Tracked orga shooter" -msgstr "OrgaShooter" +msgid "No function running" +msgstr "Keine Funktion wird ausgeführt" -msgid "Wheeled orga shooter" -msgstr "OrgaShooter" +msgid "No function with this name accepts this kind of parameter" +msgstr "Keine Funktion mit diesem Namen verträgt Parameter diesen Typs" -msgid "Legged orga shooter" -msgstr "OrgaShooter" +msgid "No function with this name accepts this number of parameters" +msgstr "Keine Funktion mit diesem Namen verträgt diese Anzahl Parameter" -msgid "Winged sniffer" -msgstr "Schnüffler" +msgid "No information exchange post within range" +msgstr "Kein Infoserver in Reichweite" -msgid "Tracked sniffer" -msgstr "Schnüffler" +msgid "No more energy" +msgstr "Keine Energie mehr" -msgid "Wheeled sniffer" -msgstr "Schnüffler" +msgid "No ore in the subsoil" +msgstr "Keine unterirdische Erzlagerstätte" -msgid "Legged sniffer" -msgstr "Schnüffler" +msgid "No other robot" +msgstr "Kein anderer Roboter" -msgid "Thumper" -msgstr "Stampfer" +msgid "No power cell" +msgstr "Keine Batterie" -msgid "Phazer shooter" -msgstr "Phazershooter" +msgid "No titanium" +msgstr "Kein Titan vorhanden" -msgid "Recycler" -msgstr "Recycler" +msgid "No titanium around" +msgstr "Kein Titan vorhanden" -msgid "Shielder" -msgstr "Schutzschild" +msgid "No titanium ore to convert" +msgstr "Kein konvertierbares Titanerz vorhanden" -msgid "Subber" -msgstr "Kettentaucher" +msgid "No titanium to transform" +msgstr "Kein konvertierbares Titanerz vorhanden" -msgid "Target bot" -msgstr "Mobile Zielscheibe" +msgid "No uranium to transform" +msgstr "Kein konvertierbares Platin" -msgid "Drawer bot" -msgstr "Zeichner" +msgid "Normal size" +msgstr "Normale Größe" -msgid "Engineer" -msgstr "Techniker" +msgid "Normal\\Normal graphic quality" +msgstr "Normal\\Standardqualität" -msgid "Robbie" -msgstr "Robby" +msgid "Normal\\Normal sound volume" +msgstr "Normal\\Normale Lautstärke" -msgid "Alien Queen" -msgstr "Insektenkönigin" +msgid "Not enough energy" +msgstr "Nicht genug Energie" -msgid "Ant" -msgstr "Ameise" +msgid "Not enough energy yet" +msgstr "Noch nicht genug Energie" -msgid "Spider" -msgstr "Spinne" +msgid "Not found anything to destroy" +msgstr "Nichts zum Zerstampfen gefunden" -msgid "Wasp" -msgstr "Wespe" +msgid "Not yet enough energy" +msgstr "Noch nicht genug Energie" -msgid "Worm" -msgstr "Wurm" +msgid "Nothing to analyze" +msgstr "Nichts zu analysieren" -msgid "Egg" -msgstr "Ei" +msgid "Nothing to drop" +msgstr "Nichts abzulegen" -msgid "Wreckage" -msgstr "Roboterwrack" +msgid "Nothing to grab" +msgstr "Nichts zu ergreifen" -msgid "Ruin" -msgstr "Gebäuderuine" +msgid "Nothing to recycle" +msgstr "Nichts zu recyceln" -msgid "Waste" -msgstr "Abfall" +msgid "Nuclear power cell" +msgstr "Brennstoffzelle" -msgid "Spaceship ruin" -msgstr "Raumschiffruine" +msgid "Nuclear power cell available" +msgstr "Brennstoffzelle verfügbar" -msgid "Remains of Apollo mission" -msgstr "Überreste einer Apollo-Mission" +msgid "Nuclear power station" +msgstr "Brennstoffzellenfabrik" -msgid "Lunar Roving Vehicle" -msgstr "Lunar Roving Vehicle" +msgid "Num of decorative objects\\Number of purely ornamental objects" +msgstr "Anzahl Ziergegenstände\\Anzahl Gegenstände ohne Funktion" -msgid "Internal error - tell the developers" -msgstr "Interner Fehler - Benachrichtige die Entwickler" +msgid "Number missing" +msgstr "Es fehlt eine Zahl" -msgid "Unknown command" -msgstr "Befehl unbekannt" +msgid "Number of insects detected" +msgstr "Anzahl erfasster Insekten" -msgid "Inappropriate bot" -msgstr "Roboter ungeeignet" +msgid "Number of particles\\Explosions, dust, reflections, etc." +msgstr "Anzahl Partikel\\Explosionen, Staub, usw." -msgid "Impossible when flying" -msgstr "Im Flug unmöglich" +msgid "OK" +msgstr "OK" -msgid "Already carrying something" -msgstr "Trägt schon etwas" +msgid "OK\\Choose the selected player" +msgstr "OK\\Spieler auswählen" -msgid "Nothing to grab" -msgstr "Nichts zu ergreifen" +msgid "OK\\Close program editor and return to game" +msgstr "OK\\Programm kompilieren" -msgid "Impossible when moving" -msgstr "In Fahrt unmöglich" +msgid "Object not found" +msgstr "Das Objekt existiert nicht" -msgid "Place occupied" -msgstr "Stelle schon besetzt" +msgid "Object too close" +msgstr "Gegenstand zu nahe" -msgid "No other robot" -msgstr "Kein anderer Roboter" +msgid "One step" +msgstr "Ein Schritt" -msgid "You can not carry a radioactive object" -msgstr "Sie können keinen radioaktiven Gegenstand tragen" +msgid "Open" +msgstr "Öffnen" -msgid "You can not carry an object under water" -msgstr "Sie können unter Wasser nichts tragen" +msgid "Open (Ctrl+o)" +msgstr "Öffnen (Ctrl+o)" -msgid "Nothing to drop" -msgstr "Nichts abzulegen" +msgid "Opening brace missing " +msgstr "Es fehlt eine offene geschweifte Klammer\"{\"" -msgid "Impossible under water" -msgstr "Unter Wasser unmöglich" +msgid "Opening bracket missing" +msgstr "Es fehlt eine offene Klammer \"(\"" -msgid "Not enough energy" -msgstr "Nicht genug Energie" +msgid "Operation impossible with value \"nan\"" +msgstr "Operation mit dem Wert \"nan\"" -msgid "Titanium too far away" -msgstr "Titan zu weit weg" +msgid "Options" +msgstr "Einstellungen" -msgid "Titanium too close" -msgstr "Titan zu nahe" +msgid "Options\\Preferences" +msgstr "Einstellungen\\Einstellungen" -msgid "No titanium around" -msgstr "Kein Titan vorhanden" +msgid "Organic matter" +msgstr "Orgastoff" -msgid "Ground not flat enough" -msgstr "Boden nicht eben genug" +msgid "Origin of last message\\Shows where the last message was sent from" +msgstr "Ort der Meldung\\Zeigt den Ort, von dem die letzte Meldung stammt" -msgid "Flat ground not large enough" -msgstr "Ebener Boden nicht groß genug" +msgid "Parameters missing " +msgstr "Nicht genug Parameter" -msgid "Too close to space ship" -msgstr "Zu nahe am Raumschiff" +msgid "Particles in the interface\\Steam clouds and sparks in the interface" +msgstr "Partikel in den Menüs\\Funken und Sterne in den Menüs" -msgid "Too close to a building" -msgstr "Zu nahe an einem Gebäude" +msgid "Paste (Ctrl+v)" +msgstr "Einfügen (Ctrl+v)" -msgid "Can not produce this object in this mission" -msgstr "Das Objekt kann in dieser Mission nicht produziert werden" +msgid "Pause/continue" +msgstr "Pause/Weitermachen" -msgid "Can not produce not researched object" -msgstr "Das erforschte Objekt kann nicht produziert werden" +msgid "Phazer shooter" +msgstr "Phazershooter" -msgid "Ground inappropriate" -msgstr "Boden ungeeignet" +msgid "Photography" +msgstr "Ansicht der Mission" -msgid "Building too close" -msgstr "Gebäude zu nahe" +msgid "Place occupied" +msgstr "Stelle schon besetzt" -msgid "Object too close" -msgstr "Gegenstand zu nahe" +msgid "Planets and stars\\Astronomical objects in the sky" +msgstr "Planeten und Sterne\\Kreisende Planeten und Sterne" -msgid "Nothing to recycle" -msgstr "Nichts zu recyceln" +msgid "Plans for defense tower available" +msgstr "Errichtung eines Geschützturms möglich" -msgid "No more energy" -msgstr "Keine Energie mehr" +msgid "Plans for nuclear power plant available" +msgstr "Errichtung einer Brennstoffzellenfabrik möglich" -msgid "Error in instruction move" -msgstr "Ziel kann nicht erreicht werden" +msgid "Plans for phazer shooter available" +msgstr "Herstellung eines Phazershooters möglich" -msgid "Object not found" -msgstr "Das Objekt existiert nicht" +msgid "Plans for shielder available" +msgstr "Herstellung eines Schutzschildes möglich" -msgid "Goto: inaccessible destination" -msgstr "Ziel kann nicht erreicht werden" +msgid "Plans for shooter available" +msgstr "Herstellung eines Shooters möglich" -msgid "Goto: destination occupied" -msgstr "Ziel ist schon besetzt" +msgid "Plans for thumper available" +msgstr "Herstellung eines Stampfers möglich" -msgid "No titanium ore to convert" -msgstr "Kein konvertierbares Titanerz vorhanden" +msgid "Plans for tracked robots available " +msgstr "Herstellung eines Roboters mit Kettenantrieb möglich" -msgid "No ore in the subsoil" -msgstr "Keine unterirdische Erzlagerstätte" +msgid "Plant a flag" +msgstr "Setzt eine Fahne" -msgid "No energy in the subsoil" -msgstr "Kein unterirdisches Energievorkommen" +msgid "Play\\Start mission!" +msgstr "Spielen ...\\Los geht's!" -msgid "No power cell" -msgstr "Keine Batterie" +msgid "Player" +msgstr "Spieler" -msgid "Inappropriate cell type" -msgstr "Falscher Batterietyp" +msgid "Player name" +msgstr "Name " -msgid "Research program already performed" -msgstr "Forschungsprogramm schon ausgeführt" +msgid "Player's name" +msgstr "Name " -msgid "Not enough energy yet" -msgstr "Noch nicht genug Energie" +msgid "Power cell" +msgstr "Elektrolytische Batterie" -msgid "No titanium to transform" -msgstr "Kein konvertierbares Titanerz vorhanden" +msgid "Power cell available" +msgstr "Batterie verfügbar" -msgid "Transforms only titanium" -msgstr "Wandelt nur Titanerz um" +msgid "Power cell factory" +msgstr "Batteriefabrik" -msgid "Doors blocked by a robot or another object " -msgstr "Die Türen werden von einem Gegenstand blockiert" +msgid "Power station" +msgstr "Kraftwerk" -msgid "You must get on the spaceship to take off " -msgstr "Gehen Sie an Bord, bevor Sie abheben" +msgid "Practice bot" +msgstr "Übungsroboter" -msgid "Nothing to analyze" -msgstr "Nichts zu analysieren" +msgid "Press \\key help; to read instructions on your SatCom" +msgstr "Beziehen Sie sich auf Ihren SatCom, indem Sie auf \\key help; drücken" -msgid "Analyzes only organic matter" -msgstr "Analysiert nur Orgastoff" +msgid "Previous" +msgstr "Vorherg" -msgid "Analysis already performed" -msgstr "Analyse schon durchgeführt" +msgid "Previous object\\Selects the previous object" +msgstr "Vorherg. Auswahl\\Das vorhergehende Objekt auswählen" -msgid "Not yet enough energy" -msgstr "Noch nicht genug Energie" +msgid "Previous selection (\\key desel;)" +msgstr "Vorherg. Auwahl (\\key desel;)" -msgid "No uranium to transform" -msgstr "Kein konvertierbares Platin" +msgid "Private element" +msgstr "Geschütztes Element (private)" -msgid "Transforms only uranium" -msgstr "Wandelt nur Platin um" +msgid "Private\\Private folder" +msgstr "Privat\\Privater Ordner" -msgid "No titanium" -msgstr "Kein Titan vorhanden" +msgid "Program editor" +msgstr "Programmeditor" -msgid "No information exchange post within range" -msgstr "Kein Infoserver in Reichweite" +msgid "Program finished" +msgstr "Programm beendet" msgid "Program infected by a virus" msgstr "Ein Programm wurde von einem Virus infiziert" -msgid "Infected by a virus; temporarily out of order" -msgstr "Von Virus infiziert, zeitweise außer Betrieb" +msgid "Programming exercises" +msgstr "Programmieren" -msgid "Impossible when swimming" -msgstr "Im Wasser unmöglich" +msgid "Programming help" +msgstr "Hilfe über Programmieren" -msgid "Impossible when carrying an object" -msgstr "Unmöglich wenn Sie etwas tragen" +msgid "Programming help (\\key prog;)" +msgstr "Hilfe über Programmieren (\\key prog;)" -msgid "Too many flags of this color (maximum 5)" -msgstr "Zu viele Fahnen dieser Farbe (Maximum 5)" +msgid "Programming help\\Gives more detailed help with programming" +msgstr "Hilfe CBOT-Sprache\\Hilfe über die Programmiersprache CBOT" -msgid "Too close to an existing flag" -msgstr "Zu nahe an einer anderen Fahne" +msgid "Programs dispatched by Houston" +msgstr "Von Houston übermittelte Programme" -msgid "No flag nearby" -msgstr "Keine Fahne in Reichweite" +msgid "Public required" +msgstr "Hier muss das Wort \"public\" stehen" -msgid "Not found anything to destroy" -msgstr "Nichts zum Zerstampfen gefunden" +msgid "Public\\Common folder" +msgstr "Öffentlich\\Gemeinsamer Ordner für alle Spieler" -#, fuzzy -msgid "Inappropriate object" -msgstr "Roboter ungeeignet" +msgid "Quake at explosions\\The screen shakes at explosions" +msgstr "Beben bei Explosionen\\Die Kamera bebt bei Explosionen" -msgid "" -"The mission is not accomplished yet (press \\key help; for more details)" -msgstr "" -"Mission noch nicht beendet (Drücken Sie auf \\key help; für weitere " -"Informationen)" +msgid "Quit the mission?" +msgstr "Mission abbrechen ?" -msgid "Bot destroyed" -msgstr "Roboter zerstört" +msgid "Quit\\Quit COLOBOT" +msgstr "Schließen\\COLOBOT schließen" -msgid "Building destroyed" -msgstr "Gebäude zerstört" +msgid "Quit\\Quit the current mission or exercise" +msgstr "Mission verlassen\\Eine Mission oder Übung verlassen" -msgid "Can not create this; there are too many objects" -msgstr "Kein neues Objekt kann erstellt werden (zu viele vorhanden)" +msgid "Radar station" +msgstr "Radar" -#, c-format -msgid "\"%s\" missing in this exercise" -msgstr "Es fehlt \"%s\" in Ihrem Programm" +msgid "Read error" +msgstr "Fehler beim Lesezugriff" -msgid "Do not use in this exercise" -msgstr "In dieser Übung verboten" +msgid "Recorder" +msgstr "Recorder" -msgid "Building completed" -msgstr "Gebäude fertiggestellt" +msgid "Recycle (\\key action;)" +msgstr "Recyceln (\\key action;)" -msgid "Titanium available" -msgstr "Titan verfügbar" +msgid "Recycler" +msgstr "Recycler" -msgid "Research program completed" -msgstr "Forschungsprogramm abgeschlossen" +msgid "Red" +msgstr "Rot" -msgid "Plans for tracked robots available " -msgstr "Herstellung eines Roboters mit Kettenantrieb möglich" +msgid "Red flag" +msgstr "Rote Fahne" -msgid "You can fly with the keys (\\key gup;) and (\\key gdown;)" -msgstr "Sie können jetzt mit den Tasten \\key gup; und \\key gdown; fliegen" +msgid "Reflections on the buttons \\Shiny buttons" +msgstr "Glänzende Tasten\\Glänzende Tasten in den Menüs" -msgid "Plans for thumper available" -msgstr "Herstellung eines Stampfers möglich" +msgid "Remains of Apollo mission" +msgstr "Überreste einer Apollo-Mission" -msgid "Plans for shooter available" -msgstr "Herstellung eines Shooters möglich" +msgid "Remove a flag" +msgstr "Sammelt die Fahne ein" -msgid "Plans for defense tower available" -msgstr "Errichtung eines Geschützturms möglich" +msgid "Repair center" +msgstr "Reparaturzentrum" -msgid "Plans for phazer shooter available" -msgstr "Herstellung eines Phazershooters möglich" +msgid "Research center" +msgstr "Forschungszentrum" -msgid "Plans for shielder available" -msgstr "Herstellung eines Schutzschildes möglich" +msgid "Research program already performed" +msgstr "Forschungsprogramm schon ausgeführt" -msgid "Plans for nuclear power plant available" -msgstr "Errichtung einer Brennstoffzellenfabrik möglich" +msgid "Research program completed" +msgstr "Forschungsprogramm abgeschlossen" -msgid "New bot available" -msgstr "Neuer Roboter verfügbar" +#, fuzzy +msgid "Reserved keyword of CBOT language" +msgstr "Dieses Wort ist reserviert" -msgid "Analysis performed" -msgstr "Analyse vollendet" +msgid "Resolution" +msgstr "Auflösung" -msgid "Power cell available" -msgstr "Batterie verfügbar" +msgid "Restart\\Restart the mission from the beginning" +msgstr "Neu anfangen\\Die Mission von vorne anfangen" -msgid "Nuclear power cell available" -msgstr "Brennstoffzelle verfügbar" +msgid "Return to start" +msgstr "Alles zurücksetzen" -msgid "You found a usable object" -msgstr "Sie haben ein brauchbares Objekt gefunden" +msgid "Robbie" +msgstr "Robby" -msgid "Found a site for power station" -msgstr "Geeignete Stelle für Kraftwerk gefunden" +msgid "Robbie\\Your assistant" +msgstr "Robby\\Ihr Assistent" -msgid "Found a site for a derrick" -msgstr "Geeignete Stelle für Bohrturm gefunden" +msgid "Ruin" +msgstr "Gebäuderuine" -msgid "<<< Well done; mission accomplished >>>" -msgstr "<<< Bravo, Mission vollendet >>>" +msgid "Run research program for defense tower" +msgstr "Forschungsprogramm Geschützturm" + +msgid "Run research program for legged bots" +msgstr "Forschungsprogramm Krabbelantrieb" + +msgid "Run research program for nuclear power" +msgstr "Forschungsprogramm Brennstoffzelle" + +msgid "Run research program for orga shooter" +msgstr "Forschungsprogramm Orgashooterkanone" + +msgid "Run research program for phazer shooter" +msgstr "Forschungsprogramm Phazerkanone" -msgid "<<< Sorry; mission failed >>>" -msgstr "<<< Mission gescheitert >>>" +msgid "Run research program for shielder" +msgstr "Forschungsprogramm Schutzschild" -msgid "Current mission saved" -msgstr "Mission gespeichert" +msgid "Run research program for shooter" +msgstr "Forschungsprogramm Shooterkanone" -msgid "Checkpoint crossed" -msgstr "Checkpoint erreicht" +msgid "Run research program for thumper" +msgstr "Forschungsprogramm Stampfer" -msgid "Alien Queen killed" -msgstr "Insektenkönigin tödlich verwundet" +msgid "Run research program for tracked bots" +msgstr "Forschungsprogramm Kettenantrieb" -msgid "Ant fatally wounded" -msgstr "Ameise tödlich verwundet" +msgid "Run research program for winged bots" +msgstr "Forschungsprogramm Jetantrieb" -msgid "Wasp fatally wounded" -msgstr "Wespe tödlich verwundet" +msgid "SatCom" +msgstr "SatCom" -msgid "Worm fatally wounded" -msgstr "Wurm tödlich verwundet" +msgid "Satellite report" +msgstr "Satellitenbericht" -msgid "Spider fatally wounded" -msgstr "Spinne tödlich verwundet" +msgid "Save" +msgstr "Speichern" -msgid "Press \\key help; to read instructions on your SatCom" -msgstr "Beziehen Sie sich auf Ihren SatCom, indem Sie auf \\key help; drücken" +msgid "Save (Ctrl+s)" +msgstr "Speichern (Ctrl+s)" -msgid "Opening bracket missing" -msgstr "Es fehlt eine offene Klammer \"(\"" +msgid "Save the current mission" +msgstr "Aktuelle Mission speichern" -msgid "Closing bracket missing " -msgstr "Es fehlt eine geschlossene Klammer \")\"" +msgid "Save\\Save the current mission " +msgstr "Speichern\\Aktuelle Mission speichern" -msgid "The expression must return a boolean value" -msgstr "Der Ausdruck muss einen boolschen Wert ergeben" +msgid "Save\\Saves the current mission" +msgstr "Speichern\\Speichert die Mission" -msgid "Variable not declared" -msgstr "Variable nicht deklariert" +msgid "Scrolling\\Scrolling when the mouse touches right or left border" +msgstr "" +"Kameradrehung mit der Maus\\Die Kamera dreht wenn die Maus den Rand erreicht" -msgid "Assignment impossible" -msgstr "Zuweisung unmöglich" +msgid "Select the astronaut\\Selects the astronaut" +msgstr "Astronauten auswählen\\Astronauten auswählen" msgid "Semicolon terminator missing" msgstr "Es fehlt ein Strichpunkt \";\" am Ende der Anweisung" -msgid "Instruction \"case\" outside a block \"switch\"" -msgstr "Anweisung \"case\" ohne vorhergehende Anweisung \"switch\"" +msgid "Shadows\\Shadows on the ground" +msgstr "Schatten\\Schlagschatten auf dem Boden" -msgid "Instructions after the final closing brace" -msgstr "Hier ist eine Anweisung nach dem Ende des Programms" +msgid "Shield level" +msgstr "Schäden" -msgid "End of block missing" -msgstr "Es fehlt eine geschlossene geschweifte Klammer \"}\" (Ende des Blocks)" +msgid "Shield radius" +msgstr "Reichweite Schutzschild" -msgid "Instruction \"else\" without corresponding \"if\" " -msgstr "Anweisung \"else\" ohne vorhergehende Anweisung \"if\"" +msgid "Shielder" +msgstr "Schutzschild" -msgid "Opening brace missing " -msgstr "Es fehlt eine offene geschweifte Klammer\"{\"" +msgid "Shoot (\\key action;)" +msgstr "Feuer (\\key action;)" -msgid "Wrong type for the assignment" -msgstr "Der Ausdruck ergibt einen falschen Typ für die Zuweisung" +msgid "Show if the ground is flat" +msgstr "Zeigt ob der Boden eben ist" -msgid "A variable can not be declared twice" -msgstr "Eine Variable wird zum zweiten Mal deklariert" +msgid "Show the place" +msgstr "Zeigt den Ort" -msgid "The types of the two operands are incompatible " -msgstr "Die zwei Operanden sind nicht kompatibel" +msgid "Show the range" +msgstr "Zeigt die Reichweite" -msgid "Unknown function" -msgstr "Unbekannte Funktion" +msgid "Show the solution" +msgstr "Zeigt die Lösung" msgid "Sign \" : \" missing" msgstr "Es fehlt ein Doppelpunkt \" : \"" -msgid "Keyword \"while\" missing" -msgstr "Es fehlt das Wort \"while\"" +msgid "Size 1" +msgstr "Größe 1" -msgid "Instruction \"break\" outside a loop" -msgstr "Anweisung \"break\" außerhalb einer Schleife" +msgid "Size 2" +msgstr "Größe 2" -msgid "A label must be followed by \"for\"; \"while\"; \"do\" or \"switch\"" -msgstr "" -"Ein Label kann nur vor den Anweisungen \"for\", \"while\", \"do\" oder \"" -"switch\" vorkommen" +msgid "Size 3" +msgstr "Größe 3" -msgid "This label does not exist" -msgstr "Dieses Label existiert nicht" +msgid "Size 4" +msgstr "Größe 4" -msgid "Instruction \"case\" missing" -msgstr "Es fehlt eine Anweisung \"case\"" +msgid "Size 5" +msgstr "Größe 5" -msgid "Number missing" -msgstr "Es fehlt eine Zahl" +msgid "Sky\\Clouds and nebulae" +msgstr "Himmel\\Himmel und Wolken" -msgid "Void parameter" -msgstr "Parameter void" +msgid "Sniff (\\key action;)" +msgstr "Schnüffeln (\\key action;)" -msgid "Type declaration missing" -msgstr "Hier muss ein Variablentyp stehen" +msgid "Solution" +msgstr "Lösung" -msgid "Variable name missing" -msgstr "Es fehlt der Name einer Variable" +msgid "Sound effects:\\Volume of engines, voice, shooting, etc." +msgstr "Geräusche:\\Lautstärke Motoren, Stimmen, usw." -msgid "Function name missing" -msgstr "Hier muss der Name der Funktion stehen" +msgid "Sound\\Music and game sound volume" +msgstr "Geräusche\\Lautstärke Geräusche und Musik" -msgid "Too many parameters" -msgstr "Zu viele Parameter" +msgid "Spaceship" +msgstr "Raumschiff" -msgid "Function already exists" -msgstr "Diese Funktion gibt es schon" +msgid "Spaceship ruin" +msgstr "Raumschiffruine" -msgid "Parameters missing " -msgstr "Nicht genug Parameter" +msgid "Speed 1.0x\\Normal speed" +msgstr "Geschwindigkeit 1.0x\\Normale Spielgeschwindigkeit" -msgid "No function with this name accepts this kind of parameter" -msgstr "Keine Funktion mit diesem Namen verträgt Parameter diesen Typs" +msgid "Speed 1.5x\\1.5 times faster" +msgstr "Geschwindigkeit 1.5x\\Spielgeschwindigkeit anderthalb Mal schneller" -msgid "No function with this name accepts this number of parameters" -msgstr "Keine Funktion mit diesem Namen verträgt diese Anzahl Parameter" +msgid "Speed 2.0x\\Double speed" +msgstr "Geschwindigkeit 2.0x\\Spielgeschwindigkeit doppelt so schnell" -msgid "This is not a member of this class" -msgstr "Dieses Element gibt es nicht in dieser Klasse" +msgid "Speed 3.0x\\Three times faster" +msgstr "Geschwindigkeit 3.0x\\Spielgeschwindigkeit drei Mal schneller" -msgid "This object is not a member of a class" -msgstr "Das Objekt ist nicht eine Instanz einer Klasse" +msgid "Spider" +msgstr "Spinne" -msgid "Appropriate constructor missing" -msgstr "Es gibt keinen geeigneten Konstruktor" +msgid "Spider fatally wounded" +msgstr "Spinne tödlich verwundet" -msgid "This class already exists" -msgstr "Diese Klasse gibt es schon" +msgid "Stack overflow" +msgstr "Stack overflow" -msgid "\" ] \" missing" -msgstr "Es fehlt eine geschlossene eckige Klammer \" ] \"" +msgid "" +"Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)" +msgstr "Standardhandlung\\Führt die Standardhandlung des Roboters aus" -#, fuzzy -msgid "Reserved keyword of CBOT language" -msgstr "Dieses Wort ist reserviert" +msgid "Standard controls\\Standard key functions" +msgstr "Alles zurücksetzen\\Standarddefinition aller Tasten" -msgid "Bad argument for \"new\"" -msgstr "Falsche Argumente für \"new\"" +msgid "Standard\\Standard appearance settings" +msgstr "Standard\\Standardfarben einsetzen" -msgid "\" [ \" expected" -msgstr "Es fehlt eine offene eckige Klammer \" [ \"" +msgid "Start" +msgstr "Startfläche" + +msgid "Still working ..." +msgstr "Prozess im Gang ..." msgid "String missing" msgstr "Hier wird eine Zeichenkette erwartet" -msgid "Incorrect index type" -msgstr "Falscher Typ für einen Index" +msgid "Strip color:" +msgstr "Farbe der Streifen:" -msgid "Private element" -msgstr "Geschütztes Element (private)" +msgid "Subber" +msgstr "Kettentaucher" -msgid "Public required" -msgstr "Hier muss das Wort \"public\" stehen" +msgid "Suit color:" +msgstr "Farbe des Anzugs:" -msgid "Dividing by zero" -msgstr "Teilung durch Null" +msgid "Suit\\Astronaut suit" +msgstr "Anzug\\Raumfahrtanzug" -msgid "Variable not initialized" -msgstr "Der Wert dieser Variable wurde nicht definiert" +msgid "Sunbeams\\Sunbeams in the sky" +msgstr "Sonnenstrahlen\\Sonnenstrahlen" -msgid "Negative value rejected by \"throw\"" -msgstr "Negativer Wert ungeeignet für Anweisung \"throw\"" +msgid "Survival kit" +msgstr "Überlebenskit" -msgid "The function returned no value " -msgstr "Die Funktion hat kein Ergebnis zurückgegeben" +msgid "Switch bots <-> buildings" +msgstr "Anzeige Roboter <-> Bauten" -msgid "No function running" -msgstr "Keine Funktion wird ausgeführt" +msgid "Take off to finish the mission" +msgstr "Abheben nach vollbrachter Mission" -msgid "Calling an unknown function" -msgstr "Die aufgerufene Funktion existiert nicht" +msgid "Target" +msgstr "Zielscheibe" -msgid "This class does not exist" -msgstr "Diese Klasse existiert nicht" +msgid "Target bot" +msgstr "Mobile Zielscheibe" -msgid "Unknown Object" -msgstr "Das Objekt existiert nicht" +msgid "Textures\\Quality of textures " +msgstr "Qualität der Texturen\\Qualität der Anzeige" -msgid "Operation impossible with value \"nan\"" -msgstr "Operation mit dem Wert \"nan\"" +msgid "The expression must return a boolean value" +msgstr "Der Ausdruck muss einen boolschen Wert ergeben" -msgid "Access beyond array limit" -msgstr "Zugriff im Array außerhalb der Grenzen" +msgid "The function returned no value " +msgstr "Die Funktion hat kein Ergebnis zurückgegeben" -msgid "Stack overflow" -msgstr "Stack overflow" +msgid "" +"The list is only available if a \\l;radar station\\u object\\radar; is " +"working.\n" +msgstr "Die Liste ist ohne \\l;Radar\\u object\\radar; nicht verfügbar.\n" + +msgid "" +"The mission is not accomplished yet (press \\key help; for more details)" +msgstr "" +"Mission noch nicht beendet (Drücken Sie auf \\key help; für weitere " +"Informationen)" -msgid "Illegal object" -msgstr "Objekt nicht verfügbar" +msgid "The types of the two operands are incompatible " +msgstr "Die zwei Operanden sind nicht kompatibel" -msgid "Can't open file" -msgstr "Die Datei kann nicht geöffnet werden" +msgid "This class already exists" +msgstr "Diese Klasse gibt es schon" -msgid "File not open" -msgstr "Die Datei wurde nicht geöffnet" +msgid "This class does not exist" +msgstr "Diese Klasse existiert nicht" -msgid "Read error" -msgstr "Fehler beim Lesezugriff" +msgid "This is not a member of this class" +msgstr "Dieses Element gibt es nicht in dieser Klasse" -msgid "Write error" -msgstr "Fehler beim Schreibzugriff" +msgid "This label does not exist" +msgstr "Dieses Label existiert nicht" -msgid "left;" -msgstr "" +msgid "This object is not a member of a class" +msgstr "Das Objekt ist nicht eine Instanz einer Klasse" -msgid "right;" -msgstr "" +msgid "Thump (\\key action;)" +msgstr "Stampfen (\\key action;)" -msgid "up;" -msgstr "" +msgid "Thumper" +msgstr "Stampfer" -msgid "down;" -msgstr "" +msgid "Titanium" +msgstr "Titan" -msgid "gup;" -msgstr "" +msgid "Titanium available" +msgstr "Titan verfügbar" -msgid "gdown;" -msgstr "" +msgid "Titanium deposit (site for derrick)" +msgstr "Markierung für unterirdisches Titanvorkommen" -msgid "camera;" -msgstr "" +msgid "Titanium ore" +msgstr "Titanerz" -msgid "desel;" -msgstr "" +msgid "Titanium too close" +msgstr "Titan zu nahe" -msgid "action;" -msgstr "" +msgid "Titanium too far away" +msgstr "Titan zu weit weg" -msgid "near;" -msgstr "" +msgid "Too close to a building" +msgstr "Zu nahe an einem Gebäude" -msgid "away;" -msgstr "" +msgid "Too close to an existing flag" +msgstr "Zu nahe an einer anderen Fahne" -msgid "next;" -msgstr "" +msgid "Too close to space ship" +msgstr "Zu nahe am Raumschiff" -msgid "human;" -msgstr "" +msgid "Too many flags of this color (maximum 5)" +msgstr "Zu viele Fahnen dieser Farbe (Maximum 5)" -msgid "quit;" -msgstr "" +msgid "Too many parameters" +msgstr "Zu viele Parameter" -msgid "help;" -msgstr "" +msgid "Tracked grabber" +msgstr "Transporter" -msgid "prog;" -msgstr "" +msgid "Tracked orga shooter" +msgstr "OrgaShooter" -msgid "cbot;" -msgstr "" +msgid "Tracked shooter" +msgstr "Shooter" -msgid "visit;" -msgstr "" +msgid "Tracked sniffer" +msgstr "Schnüffler" -msgid "speed10;" -msgstr "" +msgid "Transforms only titanium" +msgstr "Wandelt nur Titanerz um" -msgid "speed15;" -msgstr "" +msgid "Transforms only uranium" +msgstr "Wandelt nur Platin um" -msgid "speed20;" -msgstr "" +msgid "Transmitted information" +msgstr "Gesendete Informationen" -msgid "Ctrl" -msgstr "Ctrl" +msgid "Turn left (\\key left;)" +msgstr "Drehung links (\\key left;)" -msgid "Shift" -msgstr "Shift" +msgid "Turn left\\turns the bot to the left" +msgstr "Drehung nach links\\Steuer links" -msgid "Alt" -msgstr "Alt" +msgid "Turn right (\\key right;)" +msgstr "Drehung rechts (\\key right;)" -msgid "Win" -msgstr "" +msgid "Turn right\\turns the bot to the right" +msgstr "Drehung nach rechts\\Steuer rechts" -msgid "Button %1" -msgstr "Knopf %1" +msgid "Type declaration missing" +msgstr "Hier muss ein Variablentyp stehen" -msgid "%1" -msgstr "" +msgid "Undo (Ctrl+z)" +msgstr "Widerrufen (Ctrl+z)" -#~ msgid "Menu (\\key quit;)" -#~ msgstr "Menü (\\key quit;)" +msgid "Unit" +msgstr "Einheit" -#~ msgid "< none >" -#~ msgstr "< keine >" +msgid "Unknown Object" +msgstr "Das Objekt existiert nicht" -#~ msgid "<--" -#~ msgstr "<--" +msgid "Unknown command" +msgstr "Befehl unbekannt" -#~ msgid "Application key" -#~ msgstr "Application key" +msgid "Unknown function" +msgstr "Unbekannte Funktion" -#~ msgid "Arrow down" -#~ msgstr "Pfeil nach unten" +msgid "Up (\\key gup;)" +msgstr "Steigt (\\key gup;)" -#~ msgid "Arrow left" -#~ msgstr "Pfeiltaste links" +msgid "Uranium deposit (site for derrick)" +msgstr "Markierung für unterirdisches Platinvorkommen" -#~ msgid "Arrow right" -#~ msgstr "Pfeiltaste rechts" +msgid "Uranium ore" +msgstr "Platinerz" -#~ msgid "Arrow up" -#~ msgstr "Pfeil nach oben" +msgid "Use a joystick\\Joystick or keyboard" +msgstr "Joystick\\Joystick oder Tastatur" -#~ msgid "Attn" -#~ msgstr "Attn" +msgid "User levels" +msgstr "Userlevels" -#~ msgid "Caps Lock" -#~ msgstr "Caps Lock" +msgid "User\\User levels" +msgstr "User\\Userlevels" -#~ msgid "Clear" -#~ msgstr "Clear" +msgid "Variable name missing" +msgstr "Es fehlt der Name einer Variable" -#~ msgid "Control-break" -#~ msgstr "Ctrl-Break" +msgid "Variable not declared" +msgstr "Variable nicht deklariert" -#~ msgid "CrSel" -#~ msgstr "CrSel" +msgid "Variable not initialized" +msgstr "Der Wert dieser Variable wurde nicht definiert" -#~ msgid "Delete Key" -#~ msgstr "Delete" +msgid "Vault" +msgstr "Bunker" -#~ msgid "Dictionnary" -#~ msgstr "Wörterbuch Englisch-Deutsch" +msgid "Violet flag" +msgstr "Violette Fahne" -#~ msgid "Disintegrator" -#~ msgstr "Auflöser" +msgid "Void parameter" +msgstr "Parameter void" -#~ msgid "End" -#~ msgstr "End" +msgid "Wasp" +msgstr "Wespe" -#~ msgid "Enter" -#~ msgstr "Eingabe" +msgid "Wasp fatally wounded" +msgstr "Wespe tödlich verwundet" -#~ msgid "Erase EOF" -#~ msgstr "Erase EOF" +msgid "Waste" +msgstr "Abfall" -#~ msgid "Error" -#~ msgstr "Fehler" +msgid "Wheeled grabber" +msgstr "Transporter" -#~ msgid "Esc" -#~ msgstr "Esc" +msgid "Wheeled orga shooter" +msgstr "OrgaShooter" -#~ msgid "ExSel" -#~ msgstr "ExSel" +msgid "Wheeled shooter" +msgstr "Shooter" -#~ msgid "Execute" -#~ msgstr "Execute" +msgid "Wheeled sniffer" +msgstr "Schnüffler" -#~ msgid "F1" -#~ msgstr "F1" +msgid "Winged grabber" +msgstr "Transporter" -#~ msgid "F10" -#~ msgstr "F10" +msgid "Winged orga shooter" +msgstr "OrgaShooter" -#~ msgid "F11" -#~ msgstr "F11" +msgid "Winged shooter" +msgstr "Shooter" -#~ msgid "F12" -#~ msgstr "F12" +msgid "Winged sniffer" +msgstr "Schnüffler" -#~ msgid "F13" -#~ msgstr "F13" +msgid "Withdraw shield (\\key action;)" +msgstr "Schutzschild einholen (\\key action;)" -#~ msgid "F14" -#~ msgstr "F14" +msgid "Worm" +msgstr "Wurm" -#~ msgid "F15" -#~ msgstr "F15" +msgid "Worm fatally wounded" +msgstr "Wurm tödlich verwundet" -#~ msgid "F16" -#~ msgstr "F16" +msgid "Wreckage" +msgstr "Roboterwrack" -#~ msgid "F17" -#~ msgstr "F17" +msgid "Write error" +msgstr "Fehler beim Schreibzugriff" -#~ msgid "F18" -#~ msgstr "F18" +msgid "Wrong type for the assignment" +msgstr "Der Ausdruck ergibt einen falschen Typ für die Zuweisung" -#~ msgid "F19" -#~ msgstr "F19" +msgid "Yellow flag" +msgstr "Gelbe Fahne" -#~ msgid "F2" -#~ msgstr "F2" +msgid "You can fly with the keys (\\key gup;) and (\\key gdown;)" +msgstr "Sie können jetzt mit den Tasten \\key gup; und \\key gdown; fliegen" -#~ msgid "F20" -#~ msgstr "F20" +msgid "You can not carry a radioactive object" +msgstr "Sie können keinen radioaktiven Gegenstand tragen" -#~ msgid "F3" -#~ msgstr "F3" +msgid "You can not carry an object under water" +msgstr "Sie können unter Wasser nichts tragen" -#~ msgid "F4" -#~ msgstr "F4" +msgid "You found a usable object" +msgstr "Sie haben ein brauchbares Objekt gefunden" -#~ msgid "F5" -#~ msgstr "F5" +msgid "You must get on the spaceship to take off " +msgstr "Gehen Sie an Bord, bevor Sie abheben" -#~ msgid "F6" -#~ msgstr "F6" +msgid "Zoom mini-map" +msgstr "Zoom Minikarte" -#~ msgid "F7" -#~ msgstr "F7" +msgid "\\Blue flags" +msgstr "\\Blaue Fahne" -#~ msgid "F8" -#~ msgstr "F8" +msgid "\\Eyeglasses 1" +msgstr "\\Brille 1" -#~ msgid "F9" -#~ msgstr "F9" +msgid "\\Eyeglasses 2" +msgstr "\\Brille 2" -#~ msgid "Help" -#~ msgstr "Help" +msgid "\\Eyeglasses 3" +msgstr "\\Brille 3" -#~ msgid "Home Key" -#~ msgstr "Home" +msgid "\\Eyeglasses 4" +msgstr "\\Brille 4" -#~ msgid "Insert" -#~ msgstr "Insert" +msgid "\\Eyeglasses 5" +msgstr "\\Brille 5" -#~ msgid "Left Windows" -#~ msgstr "Left Windows" +msgid "\\Face 1" +msgstr "\\Kopf 1" -#~ msgid "Mini-map" -#~ msgstr "Minikarte" +msgid "\\Face 2" +msgstr "\\Kopf 2" -#~ msgid "Num Lock" -#~ msgstr "Num Lock" +msgid "\\Face 3" +msgstr "\\Kopf 3" -#~ msgid "NumPad *" -#~ msgstr "NumPad *" +msgid "\\Face 4" +msgstr "\\Kopf 4" -#~ msgid "NumPad +" -#~ msgstr "NumPad +" +msgid "\\Green flags" +msgstr "\\Grüne Fahne" -#~ msgid "NumPad -" -#~ msgstr "NumPad -" +msgid "\\New player name" +msgstr "\\Name des Spielers" -#~ msgid "NumPad ." -#~ msgstr "NumPad ." +msgid "\\No eyeglasses" +msgstr "\\Keine Brille" -#~ msgid "NumPad /" -#~ msgstr "NumPad /" +msgid "\\Raise the pencil" +msgstr "\\Bleistift abheben" -#~ msgid "NumPad 0" -#~ msgstr "NumPad 0" +msgid "\\Red flags" +msgstr "\\Rote Fahne" -#~ msgid "NumPad 1" -#~ msgstr "NumPad 1" +msgid "\\Return to COLOBOT" +msgstr "\\Zurück zu COLOBOT" -#~ msgid "NumPad 2" -#~ msgstr "NumPad 2" +msgid "\\SatCom on standby" +msgstr "\\SatCom in Standby" -#~ msgid "NumPad 3" -#~ msgstr "NumPad 3" +msgid "\\Start recording" +msgstr "\\Aufnahme starten" -#~ msgid "NumPad 4" -#~ msgstr "NumPad 4" +msgid "\\Stop recording" +msgstr "\\Aufnahme stoppen" -#~ msgid "NumPad 5" -#~ msgstr "NumPad 5" +msgid "\\Turn left" +msgstr "\\Drehung links" -#~ msgid "NumPad 6" -#~ msgstr "NumPad 6" +msgid "\\Turn right" +msgstr "\\Drehung rechts" -#~ msgid "NumPad 7" -#~ msgstr "NumPad 7" +msgid "\\Use the black pencil" +msgstr "\\Schwarzen Bleistift hinunterlassen" -#~ msgid "NumPad 8" -#~ msgstr "NumPad 8" +msgid "\\Use the blue pencil" +msgstr "\\Blauen Bleistift hinunterlassen" -#~ msgid "NumPad 9" -#~ msgstr "NumPad 9" +msgid "\\Use the brown pencil" +msgstr "\\Braunen Bleistift hinunterlassen" -#~ msgid "NumPad sep" -#~ msgstr "NumPad sep" +msgid "\\Use the green pencil" +msgstr "\\Grünen Bleistift hinunterlassen" -#~ msgid "PA1" -#~ msgstr "PA1" +msgid "\\Use the orange pencil" +msgstr "\\Orangefarbenen Bleistift hinunterlassen" -#~ msgid "Page Down" -#~ msgstr "Page Down" +msgid "\\Use the purple pencil" +msgstr "\\Violetten Bleistift hinunterlassen" -#~ msgid "Page Up" -#~ msgstr "Page Up" +msgid "\\Use the red pencil" +msgstr "\\Roten Bleistift hinunterlassen" -#~ msgid "Pause" -#~ msgstr "Pause" +msgid "\\Use the yellow pencil" +msgstr "\\Gelben Bleistift hinunterlassen" -#~ msgid "Play" -#~ msgstr "Play" +msgid "\\Violet flags" +msgstr "\\Violette Fahne" -#~ msgid "Print Scrn" -#~ msgstr "Print Scrn" +msgid "\\Yellow flags" +msgstr "\\Gelbe Fahne" -#~ msgid "Right Windows" -#~ msgstr "Right Windows" +msgid "\\b;Aliens\n" +msgstr "\\b;Listes der Feinde\n" -#~ msgid "Scroll" -#~ msgstr "Scroll" +msgid "\\b;Buildings\n" +msgstr "\\b;Listes der Gebäude\n" -#~ msgid "Select" -#~ msgstr "Select" +msgid "\\b;Error\n" +msgstr "\\b;Fehler\n" -#~ msgid "Space" -#~ msgstr "Leertaste" +msgid "\\b;List of objects\n" +msgstr "\\b;Liste der Objekte\n" -#~ msgid "Tab" -#~ msgstr "Tab" +msgid "\\b;Moveable objects\n" +msgstr "\\b;Listes der tragbaren Gegenstände\n" -#~ msgid "Wheel down" -#~ msgstr "Mausrad zurück" +msgid "\\b;Robots\n" +msgstr "\\b;Liste der Roboter\n" -#~ msgid "Wheel up" -#~ msgstr "Mausrad nach vorne" +msgid "\\c; (none)\\n;\n" +msgstr "\\c; (keine)\\n;\n" -#~ msgid "Zoom" -#~ msgstr "Zoom" +msgid "www.epsitec.com" +msgstr "www.epsitec.com" diff --git a/po/fr.po b/po/fr.po index edf5466..78683e0 100644 --- a/po/fr.po +++ b/po/fr.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-10 16:50+0200\n" +"POT-Creation-Date: DATE\n" "PO-Revision-Date: 2012-12-27 14:07+0100\n" "Last-Translator: Didier Raboud \n" "Language-Team: LANGUAGE \n" @@ -16,1106 +16,734 @@ msgstr "" "X-Language: fr_FR\n" "X-Source-Language: en_US\n" -msgid "Colobot rules!" -msgstr "Colobot est super!" +msgid " " +msgstr " " -msgid "SatCom" -msgstr "SatCom" +msgid " Challenges in the chapter:" +msgstr " Liste des défis du chapitre :" -msgid "Maximize" -msgstr "Taille maximale" +msgid " Chapters:" +msgstr " Liste des chapitres :" -msgid "Minimize" -msgstr "Taille réduite" +msgid " Drivers:" +msgstr " Pilotes :" -msgid "Normal size" -msgstr "Taille normale" +msgid " Exercises in the chapter:" +msgstr " Liste des exercices du chapitre :" -msgid "Close" -msgstr "Fermer" +msgid " Free game on this planet:" +msgstr " Liste des jeux libres du chapitre :" -msgid "Program editor" -msgstr "Edition du programme" +msgid " Missions on this level:" +msgstr " Missions du niveau :" -msgid "New" -msgstr "Nouveau" +msgid " Missions on this planet:" +msgstr " Liste des missions du chapitre :" -msgid "Player" -msgstr "Joueur" +msgid " Planets:" +msgstr " Liste des planètes :" -msgid "New ..." -msgstr "Nouveau ..." +msgid " Resolution:" +msgstr " Résolutions :" + +msgid " Summary:" +msgstr " Résumé :" + +msgid " User levels:" +msgstr " Niveaux supplémentaires :" msgid " or " msgstr " ou " -msgid "COLOBOT" -msgstr "COLOBOT" +msgid "\" [ \" expected" +msgstr "\" [ \" attendu" -msgid "COLOBOT: Gold Edition" -msgstr "COLOBOT: Gold Edition" +msgid "\" ] \" missing" +msgstr "\" ] \" attendu" -msgid "Programming exercises" -msgstr "Programmation" +#, c-format +msgid "\"%s\" missing in this exercise" +msgstr "Il manque \"%s\" dans le programme" -msgid "Challenges" -msgstr "Défis" +msgid "..behind" +msgstr "..derrière" -msgid "Missions" -msgstr "Missions" +msgid "..in front" +msgstr "..devant" -msgid "Free game" -msgstr "Jeu libre" +msgid "..power cell" +msgstr "..pile" -msgid "User levels" -msgstr "Niveaux supplémentaires" +msgid "1) First click on the key you want to redefine." +msgstr "1) Cliquez d'abord sur la touche à redéfinir." -msgid "Options" -msgstr "Options" +msgid "2) Then press the key you want to use instead." +msgstr "2) Appuyez ensuite sur la nouvelle touche souhaitée." -msgid "Player's name" -msgstr "Nom du joueur" +msgid "3D sound\\3D positioning of the sound" +msgstr "Bruitages 3D\\Positionnement sonore dans l'espace" -msgid "Customize your appearance" -msgstr "Personnalisation de votre apparence" +msgid "<< Back \\Back to the previous screen" +msgstr "<< Retour \\Retour au niveau précédent" -msgid "Save the current mission" -msgstr "Enregistrement de la mission en cours" +msgid "<<< Sorry; mission failed >>>" +msgstr "<<< Désolé; mission échouée >>>" -msgid "Load a saved mission" -msgstr "Chargement d'une mission enregistrée" +msgid "<<< Well done; mission accomplished >>>" +msgstr "<<< Bravo; mission terminée >>>" -msgid " Chapters:" -msgstr " Liste des chapitres :" +msgid "A label must be followed by \"for\"; \"while\"; \"do\" or \"switch\"" +msgstr "" +"Un label ne peut se placer que devant un \"for\"; un \"while\"; un \"do\" ou " +"un \"switch\"" -msgid " Planets:" -msgstr " Liste des planètes :" +msgid "A variable can not be declared twice" +msgstr "Redéfinition d'une variable" -msgid " User levels:" -msgstr " Niveaux supplémentaires :" +msgid "Abort\\Abort the current mission" +msgstr "Abandonner\\Abandonner la mission en cours" -msgid " Exercises in the chapter:" -msgstr " Liste des exercices du chapitre :" +msgid "Access beyond array limit" +msgstr "Accès hors du tableau" -msgid " Challenges in the chapter:" -msgstr " Liste des défis du chapitre :" +msgid "" +"Access to solution\\Shows the solution (detailed instructions for missions)" +msgstr "Accès à la solution\\Donne la solution" -msgid " Missions on this planet:" -msgstr " Liste des missions du chapitre :" +msgid "Access to solutions\\Show program \"4: Solution\" in the exercises" +msgstr "Accès aux solutions\\Programme \"4: Solution\" dans les exercices" -msgid " Free game on this planet:" -msgstr " Liste des jeux libres du chapitre :" +msgid "Alien Queen" +msgstr "Pondeuse" -msgid " Missions on this level:" -msgstr " Missions du niveau :" +msgid "Alien Queen killed" +msgstr "Pondeuse mortellement touchée" -msgid " Free game on this chapter:" -msgstr " Liste des jeux libres du chapitre :" +msgid "Already carrying something" +msgstr "Porte déjà quelque chose" -msgid " Summary:" -msgstr " Résumé :" +msgid "Analysis already performed" +msgstr "Analyse déjà effectuée" -msgid " Drivers:" -msgstr " Pilotes :" +msgid "Analysis performed" +msgstr "Analyse terminée" -msgid " Resolution:" -msgstr " Résolutions :" +msgid "Analyzes only organic matter" +msgstr "N'analyse que la matière organique" -msgid "1) First click on the key you want to redefine." -msgstr "1) Cliquez d'abord sur la touche à redéfinir." +msgid "Ant" +msgstr "Fourmi" -msgid "2) Then press the key you want to use instead." -msgstr "2) Appuyez ensuite sur la nouvelle touche souhaitée." +msgid "Ant fatally wounded" +msgstr "Fourmi mortellement touchée" -msgid "Face type:" -msgstr "Type de visage :" +msgid "Appearance\\Choose your appearance" +msgstr "Aspect\\Choisir votre aspect" -msgid "Eyeglasses:" -msgstr "Lunettes :" +msgid "Apply changes\\Activates the changed settings" +msgstr "Appliquer les changements\\Active les changements effectués" -msgid "Hair color:" -msgstr "Couleur des cheveux :" +msgid "Appropriate constructor missing" +msgstr "Il n'y a pas de constructeur approprié" -msgid "Suit color:" -msgstr "Couleur de la combinaison :" +msgid "Assignment impossible" +msgstr "Assignation impossible" -msgid "Strip color:" -msgstr "Couleur des bandes :" +msgid "Autolab" +msgstr "Laboratoire de matières organiques" -msgid "Do you want to quit COLOBOT ?" -msgstr "Voulez-vous quitter COLOBOT ?" +msgid "Automatic indent\\When program editing" +msgstr "Indentation automatique\\Pendant l'édition d'un programme" -msgid "Quit\\Quit COLOBOT" -msgstr "Quitter\\Quitter COLOBOT" +msgid "Back" +msgstr "Page précédente" -msgid "Quit the mission?" -msgstr "Quitter la mission ?" +msgid "Background sound :\\Volume of audio tracks on the CD" +msgstr "Fond sonore :\\Volume des pistes audio du CD" -msgid "Abort\\Abort the current mission" -msgstr "Abandonner\\Abandonner la mission en cours" +msgid "Backward (\\key down;)" +msgstr "Recule (\\key down;)" -msgid "Continue\\Continue the current mission" -msgstr "Continuer\\Continuer la mission en cours" +msgid "Backward\\Moves backward" +msgstr "Reculer\\Moteur en arrière" -msgid "Continue\\Continue the game" -msgstr "Continuer\\Continuer de jouer" +msgid "Bad argument for \"new\"" +msgstr "Mauvais argument pour \"new\"" -msgid "Do you really want to destroy the selected building?" -msgstr "Voulez-vous vraiment détruire le bâtiment sélectionné ?" +msgid "Big indent\\Indent 2 or 4 spaces per level defined by braces" +msgstr "Grande indentation\\Indente avec 2 ou 4 espaces" -#, c-format -msgid "Do you want to delete %s's saved games? " -msgstr "Voulez-vous détruire les sauvegardes de %s ?" +msgid "Black box" +msgstr "Boîte noire" -msgid "Delete" -msgstr "Détruire" +msgid "Blue" +msgstr "Bleu" -msgid "Cancel" -msgstr "Annuler" +msgid "Blue flag" +msgstr "Drapeau bleu" -msgid "LOADING" -msgstr "CHARGEMENT" +msgid "Bot destroyed" +msgstr "Robot détruit" -msgid "Keyword help(\\key cbot;)" -msgstr "Aide sur le mot-clé (\\key cbot;)" +msgid "Bot factory" +msgstr "Fabrique de robots" -msgid "Compilation ok (0 errors)" -msgstr "Compilation ok (0 erreur)" +msgid "Build a bot factory" +msgstr "Construit une fabrique de robots" -msgid "Program finished" -msgstr "Programme terminé" +msgid "Build a converter" +msgstr "Construit un convertisseur" -msgid "\\b;List of objects\n" -msgstr "\\b;Listes des objets\n" +msgid "Build a defense tower" +msgstr "Construit une tour" -msgid "\\b;Robots\n" -msgstr "\\b;Listes des robots\n" +msgid "Build a derrick" +msgstr "Construit un derrick" -msgid "\\b;Buildings\n" -msgstr "\\b;Listes des bâtiments\n" +msgid "Build a destroyer" +msgstr "" -msgid "\\b;Moveable objects\n" -msgstr "\\b;Listes des objets transportables\n" +msgid "Build a exchange post" +msgstr "Construit une borne d'information" -msgid "\\b;Aliens\n" -msgstr "\\b;Listes des ennemis\n" +msgid "Build a legged grabber" +msgstr "Fabrique un déménageur à pattes" -msgid "\\c; (none)\\n;\n" -msgstr "" -"\\c; (aucun)\\n" -";\n" +msgid "Build a legged orga shooter" +msgstr "Fabrique un orgaShooter à pattes" -msgid "\\b;Error\n" -msgstr "\\b;Erreur\n" - -msgid "" -"The list is only available if a \\l;radar station\\u object\\radar; is " -"working.\n" -msgstr "Liste non disponible sans \\l;radar\\u object\\radar;.\n" - -msgid "Open" -msgstr "Ouvrir" - -msgid "Save" -msgstr "Enregistrer" - -#, c-format -msgid "Folder: %s" -msgstr "Dossier: %s" - -msgid "Name:" -msgstr "Nom:" - -msgid "Folder:" -msgstr "Dans:" - -msgid "Private\\Private folder" -msgstr "Privé\\Dossier privé" - -msgid "Public\\Common folder" -msgstr "Public\\Dossier commun à tous les joueurs" - -msgid "Developed by :" -msgstr "Développé par :" - -msgid "www.epsitec.com" -msgstr "www.epsitec.com" - -msgid " " -msgstr " " - -msgid "Recorder" -msgstr "Enregistreur" - -msgid "OK" -msgstr "D'accord" - -msgid "Next" -msgstr "Suivant" - -msgid "Previous" -msgstr "Précédent" - -msgid "Exercises\\Programming exercises" -msgstr "Programmation\\Exercices de programmation" - -msgid "Challenges\\Programming challenges" -msgstr "Défis\\Défis de programmation" - -msgid "Missions\\Select mission" -msgstr "Missions\\La grande aventure" - -msgid "Free game\\Free game without a specific goal" -msgstr "Jeu libre\\Jeu libre sans but précis" - -msgid "User\\User levels" -msgstr "Suppl.\\Niveaux supplémentaires" - -msgid "Change player\\Change player" -msgstr "Autre joueur\\Choix du nom du joueur" - -msgid "Options\\Preferences" -msgstr "Options\\Réglages" - -msgid "Restart\\Restart the mission from the beginning" -msgstr "Recommencer\\Recommencer la mission au début" - -msgid "Save\\Save the current mission " -msgstr "Enregistrer\\Enregistrer la mission en cours" - -msgid "Load\\Load a saved mission" -msgstr "Charger\\Charger une mission enregistrée" - -msgid "\\Return to COLOBOT" -msgstr "\\Retourner dans COLOBOT" - -msgid "<< Back \\Back to the previous screen" -msgstr "<< Retour \\Retour au niveau précédent" - -msgid "Play\\Start mission!" -msgstr "Jouer ...\\Démarrer l'action!" - -msgid "Device\\Driver and resolution settings" -msgstr "Affichage\\Pilote et résolution d'affichage" - -msgid "Graphics\\Graphics settings" -msgstr "Graphique\\Options graphiques" - -msgid "Game\\Game settings" -msgstr "Jeu\\Options de jouabilité" - -msgid "Controls\\Keyboard, joystick and mouse settings" -msgstr "Commandes\\Touches du clavier" - -msgid "Sound\\Music and game sound volume" -msgstr "Son\\Volumes bruitages & musiques" - -msgid "Unit" -msgstr "Unité" - -msgid "Resolution" -msgstr "Résolution" - -msgid "Full screen\\Full screen or window mode" -msgstr "Plein écran\\Plein écran ou fenêtré" - -msgid "Apply changes\\Activates the changed settings" -msgstr "Appliquer les changements\\Active les changements effectués" - -msgid "Robbie\\Your assistant" -msgstr "Robbie\\Votre assistant" - -msgid "Shadows\\Shadows on the ground" -msgstr "Ombres\\Ombres projetées au sol" - -msgid "Marks on the ground\\Marks on the ground" -msgstr "Marques sur le sol\\Marques dessinées sur le sol" - -msgid "Dust\\Dust and dirt on bots and buildings" -msgstr "Salissures\\Salissures des robots et bâtiments" - -msgid "Fog\\Fog" -msgstr "Brouillard\\Nappes de brouillard" - -msgid "Sunbeams\\Sunbeams in the sky" -msgstr "Rayons du soleil\\Rayons selon l'orientation" - -msgid "Sky\\Clouds and nebulae" -msgstr "Ciel\\Ciel et nuages" - -msgid "Planets and stars\\Astronomical objects in the sky" -msgstr "Planètes et étoiles\\Motifs mobiles dans le ciel" - -msgid "Dynamic lighting\\Mobile light sources" -msgstr "Lumières dynamiques\\Éclairages mobiles" - -msgid "Number of particles\\Explosions, dust, reflections, etc." -msgstr "Quantité de particules\\Explosions, poussières, reflets, etc." - -msgid "Depth of field\\Maximum visibility" -msgstr "Profondeur de champ\\Distance de vue maximale" - -msgid "Details\\Visual quality of 3D objects" -msgstr "Détails des objets\\Qualité des objets en 3D" - -msgid "Textures\\Quality of textures " -msgstr "Qualité des textures\\Qualité des images" - -msgid "Num of decorative objects\\Number of purely ornamental objects" -msgstr "Nb d'objets décoratifs\\Qualité d'objets non indispensables" - -msgid "Particles in the interface\\Steam clouds and sparks in the interface" -msgstr "Particules dans l'interface\\Pluie de particules" - -msgid "Reflections on the buttons \\Shiny buttons" -msgstr "Reflets sur les boutons\\Boutons brillants" - -msgid "Help balloons\\Explain the function of the buttons" -msgstr "Bulles d'aide\\Bulles explicatives" - -msgid "Film sequences\\Films before and after the missions" -msgstr "Séquences cinématiques\\Films avant ou après une mission" - -msgid "Exit film\\Film at the exit of exercises" -msgstr "Retour animé\\Retour animé dans les exercices" - -msgid "Friendly fire\\Your shooting can damage your own objects " -msgstr "Dégâts à soi-même\\Vos tirs infligent des dommages à vos unités" - -msgid "Scrolling\\Scrolling when the mouse touches right or left border" -msgstr "" -"Défilement dans les bords\\Défilement lorsque la souris touches les bords " -"gauche ou droite" - -msgid "Mouse inversion X\\Inversion of the scrolling direction on the X axis" -msgstr "" -"Inversion souris X\\Inversion de la rotation lorsque la souris touche un bord" - -msgid "Mouse inversion Y\\Inversion of the scrolling direction on the Y axis" -msgstr "" -"Inversion souris Y\\Inversion de la rotation lorsque la souris touche un bord" - -msgid "Quake at explosions\\The screen shakes at explosions" -msgstr "Secousses lors d'explosions\\L'écran vibre lors d'une explosion" - -msgid "Mouse shadow\\Gives the mouse a shadow" -msgstr "Souris ombrée\\Jolie souris avec une ombre" - -msgid "Automatic indent\\When program editing" -msgstr "Indentation automatique\\Pendant l'édition d'un programme" - -msgid "Big indent\\Indent 2 or 4 spaces per level defined by braces" -msgstr "Grande indentation\\Indente avec 2 ou 4 espaces" - -msgid "Access to solutions\\Show program \"4: Solution\" in the exercises" -msgstr "Accès aux solutions\\Programme \"4: Solution\" dans les exercices" - -msgid "Standard controls\\Standard key functions" -msgstr "Tout réinitialiser\\Remet toutes les touches standards" - -msgid "Turn left\\turns the bot to the left" -msgstr "Tourner à gauche\\Moteur à gauche" - -msgid "Turn right\\turns the bot to the right" -msgstr "Tourner à droite\\Moteur à droite" - -msgid "Forward\\Moves forward" -msgstr "Avancer\\Moteur en avant" - -msgid "Backward\\Moves backward" -msgstr "Reculer\\Moteur en arrière" - -msgid "Climb\\Increases the power of the jet" -msgstr "Monter\\Augmenter la puissance du réacteur" - -msgid "Descend\\Reduces the power of the jet" -msgstr "Descendre\\Diminuer la puissance du réacteur" - -msgid "Change camera\\Switches between onboard camera and following camera" -msgstr "Changement de caméra\\Autre de point de vue" - -msgid "Previous object\\Selects the previous object" -msgstr "Sélection précédente\\Sélectionne l'objet précédent" - -msgid "" -"Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)" -msgstr "Action standard\\Action du bouton avec le cadre rouge" - -msgid "Camera closer\\Moves the camera forward" -msgstr "Caméra plus proche\\Avance la caméra" - -msgid "Camera back\\Moves the camera backward" -msgstr "Caméra plus loin\\Recule la caméra" - -msgid "Next object\\Selects the next object" -msgstr "Sélectionner l'objet suivant\\Sélectionner l'objet suivant" - -msgid "Select the astronaut\\Selects the astronaut" -msgstr "Sélectionner le cosmonaute\\Sélectionner le cosmonaute" - -msgid "Quit\\Quit the current mission or exercise" -msgstr "Quitter la mission en cours\\Terminer un exercice ou une mssion" - -msgid "Instructions\\Shows the instructions for the current mission" -msgstr "Instructions mission\\Marche à suivre" - -msgid "Programming help\\Gives more detailed help with programming" -msgstr "Instructions programmation\\Explication sur la programmation" - -msgid "Key word help\\More detailed help about key words" -msgstr "Instructions mot-clé\\Explication sur le mot-clé" - -msgid "Origin of last message\\Shows where the last message was sent from" -msgstr "Montrer le lieu d'un message\\Montrer le lieu du dernier message" - -msgid "Speed 1.0x\\Normal speed" -msgstr "Vitesse 1.0x\\Vitesse normale" - -msgid "Speed 1.5x\\1.5 times faster" -msgstr "Vitesse 1.5x\\Une fois et demi plus rapide" - -msgid "Speed 2.0x\\Double speed" -msgstr "Vitesse 2.0x\\Deux fois plus rapide" - -msgid "Speed 3.0x\\Three times faster" -msgstr "Vitesse 3.0x\\Trois fois plus rapide" - -msgid "Sound effects:\\Volume of engines, voice, shooting, etc." -msgstr "Bruitages :\\Volume des moteurs, voix, etc." - -msgid "Background sound :\\Volume of audio tracks on the CD" -msgstr "Fond sonore :\\Volume des pistes audio du CD" - -msgid "3D sound\\3D positioning of the sound" -msgstr "Bruitages 3D\\Positionnement sonore dans l'espace" - -msgid "Lowest\\Minimum graphic quality (highest frame rate)" -msgstr "Mini\\Qualité minimale (+ rapide)" - -msgid "Normal\\Normal graphic quality" -msgstr "Normal\\Qualité standard" - -msgid "Highest\\Highest graphic quality (lowest frame rate)" -msgstr "Maxi\\Haute qualité (+ lent)" - -msgid "Mute\\No sound" -msgstr "Silencieux\\Totalement silencieux" - -msgid "Normal\\Normal sound volume" -msgstr "Normal\\Niveaux normaux" - -msgid "Use a joystick\\Joystick or keyboard" -msgstr "Utilise un joystick\\Joystick ou clavier" - -msgid "" -"Access to solution\\Shows the solution (detailed instructions for missions)" -msgstr "Accès à la solution\\Donne la solution" - -msgid "\\New player name" -msgstr "\\Nom du joueur à créer" - -msgid "OK\\Choose the selected player" -msgstr "D'accord\\Choisir le joueur" - -msgid "Cancel\\Keep current player name" -msgstr "Annuler\\Conserver le joueur actuel" - -msgid "Delete player\\Deletes the player from the list" -msgstr "Supprimer le joueur\\Supprimer le joueur de la liste" - -msgid "Player name" -msgstr "Nom du joueur" - -msgid "Save\\Saves the current mission" -msgstr "Enregistrer\\Enregistrer la mission en cours" - -msgid "Load\\Loads the selected mission" -msgstr "Charger\\Charger la mission sélectionnée" - -msgid "List of saved missions" -msgstr "Liste des missions enregistrées" - -msgid "Filename:" -msgstr "Nom du fichier :" - -msgid "Mission name" -msgstr "Nom de la mission" - -msgid "Photography" -msgstr "Vue de la mission" - -msgid "Delete\\Deletes the selected file" -msgstr "Supprimer\\Supprime l'enregistrement sélectionné" - -msgid "Appearance\\Choose your appearance" -msgstr "Aspect\\Choisir votre aspect" - -msgid "Standard\\Standard appearance settings" -msgstr "Standard\\Remet les couleurs standards" - -msgid "Head\\Face and hair" -msgstr "Tête\\Visage et cheveux" - -msgid "Suit\\Astronaut suit" -msgstr "Corps\\Combinaison" - -msgid "\\Turn left" -msgstr "\\Rotation à gauche" - -msgid "\\Turn right" -msgstr "\\Rotation à droite" - -msgid "Red" -msgstr "Rouge" - -msgid "Green" -msgstr "Vert" - -msgid "Blue" -msgstr "Bleu" - -msgid "\\Face 1" -msgstr "\\Visage 1" - -msgid "\\Face 4" -msgstr "\\Visage 4" - -msgid "\\Face 3" -msgstr "\\Visage 3" +msgid "Build a legged shooter" +msgstr "Fabrique un shooter à pattes" -msgid "\\Face 2" -msgstr "\\Visage 2" +msgid "Build a legged sniffer" +msgstr "Fabrique un renifleur à pattes" -msgid "\\No eyeglasses" -msgstr "\\Pas de lunettes" +msgid "Build a lightning conductor" +msgstr "Construit un paratonnerre" -msgid "\\Eyeglasses 1" -msgstr "\\Lunettes 1" +msgid "Build a nuclear power plant" +msgstr "Construit une centrale nucléaire" -msgid "\\Eyeglasses 2" -msgstr "\\Lunettes 2" +msgid "Build a phazer shooter" +msgstr "Fabrique un robot phazer" -msgid "\\Eyeglasses 3" -msgstr "\\Lunettes 3" +msgid "Build a power cell factory" +msgstr "Construit une fabrique de piles" -msgid "\\Eyeglasses 4" -msgstr "\\Lunettes 4" +msgid "Build a power station" +msgstr "Construit une station" -msgid "\\Eyeglasses 5" -msgstr "\\Lunettes 5" +msgid "Build a radar station" +msgstr "Construit un radar" -msgid "Previous selection (\\key desel;)" -msgstr "Sélection précédente (\\key desel;)" +msgid "Build a recycler" +msgstr "Fabrique un robot recycleur" -msgid "Turn left (\\key left;)" -msgstr "Tourne à gauche (\\key left;)" +msgid "Build a repair center" +msgstr "Construit un centre de réparation" -msgid "Turn right (\\key right;)" -msgstr "Tourne à droite (\\key right;)" +msgid "Build a research center" +msgstr "Construit un centre de recherches" -msgid "Forward (\\key up;)" -msgstr "Avance (\\key up;)" +msgid "Build a shielder" +msgstr "Fabrique un robot bouclier" -msgid "Backward (\\key down;)" -msgstr "Recule (\\key down;)" +msgid "Build a subber" +msgstr "Fabrique un robot sous-marin" -msgid "Up (\\key gup;)" -msgstr "Monte (\\key gup;)" +msgid "Build a thumper" +msgstr "Fabrique un robot secoueur" -msgid "Down (\\key gdown;)" -msgstr "Descend (\\key gdown;)" +msgid "Build a tracked grabber" +msgstr "Fabrique un déménageur à chenilles" -msgid "Grab or drop (\\key action;)" -msgstr "Prend ou dépose (\\key action;)" +msgid "Build a tracked orga shooter" +msgstr "Fabrique un orgaShooter à chenilles" -msgid "..in front" -msgstr "..devant" +msgid "Build a tracked shooter" +msgstr "Fabrique un shooter à chenilles" -msgid "..behind" -msgstr "..derrière" +msgid "Build a tracked sniffer" +msgstr "Fabrique un renifleur à chenilles" -msgid "..power cell" -msgstr "..pile" +msgid "Build a wheeled grabber" +msgstr "Fabrique un déménageur à roues" -msgid "Instructions for the mission (\\key help;)" -msgstr "Instructions sur la mission (\\key help;)" +msgid "Build a wheeled orga shooter" +msgstr "Fabrique un orgaShooter à roues" -msgid "Take off to finish the mission" -msgstr "Décolle pour terminer la mission" +msgid "Build a wheeled shooter" +msgstr "Fabrique un shooter à roues" -msgid "Destroy" -msgstr "" +msgid "Build a wheeled sniffer" +msgstr "Fabrique un renifleur à roues" -msgid "Build a derrick" -msgstr "Construit un derrick" +msgid "Build a winged grabber" +msgstr "Fabrique un déménageur volant" -msgid "Build a power station" -msgstr "Construit une station" +msgid "Build a winged orga shooter" +msgstr "Fabrique un orgaShooter volant" -msgid "Build a bot factory" -msgstr "Construit une fabrique de robots" +msgid "Build a winged shooter" +msgstr "Fabrique un shooter volant" -msgid "Build a repair center" -msgstr "Construit un centre de réparation" +msgid "Build a winged sniffer" +msgstr "Fabrique un renifleur volant" -msgid "Build a converter" -msgstr "Construit un convertisseur" +msgid "Build an autolab" +msgstr "Construit un laboratoire" -msgid "Build a defense tower" -msgstr "Construit une tour" +msgid "Building completed" +msgstr "Bâtiment terminé" -msgid "Build a research center" -msgstr "Construit un centre de recherches" +msgid "Building destroyed" +msgstr "Bâtiment détruit" -msgid "Build a radar station" -msgstr "Construit un radar" +msgid "Building too close" +msgstr "Bâtiment trop proche" -msgid "Build a power cell factory" -msgstr "Construit une fabrique de piles" +msgid "Button %1" +msgstr "Bouton %1" -msgid "Build an autolab" -msgstr "Construit un laboratoire" +msgid "COLOBOT" +msgstr "COLOBOT" -msgid "Build a nuclear power plant" -msgstr "Construit une centrale nucléaire" +msgid "COLOBOT: Gold Edition" +msgstr "COLOBOT: Gold Edition" -msgid "Build a lightning conductor" -msgstr "Construit un paratonnerre" +msgid "Calling an unknown function" +msgstr "Appel d'une fonction inexistante" -msgid "Build a exchange post" -msgstr "Construit une borne d'information" +msgid "Camera (\\key camera;)" +msgstr "Caméra (\\key camera;)" -msgid "Build a destroyer" -msgstr "" +msgid "Camera awayest" +msgstr "Caméra plus loin" -msgid "Show if the ground is flat" -msgstr "Montre si le sol est plat" +msgid "Camera back\\Moves the camera backward" +msgstr "Caméra plus loin\\Recule la caméra" -msgid "Plant a flag" -msgstr "Pose un drapeau de couleur" +msgid "Camera closer\\Moves the camera forward" +msgstr "Caméra plus proche\\Avance la caméra" -msgid "Remove a flag" -msgstr "Enlève un drapeau" +msgid "Camera nearest" +msgstr "Caméra plus proche" -msgid "\\Blue flags" -msgstr "\\Drapeaux bleus" +msgid "Camera to left" +msgstr "Caméra à gauche" -msgid "\\Red flags" -msgstr "\\Drapeaux rouges" +msgid "Camera to right" +msgstr "Caméra à droite" -msgid "\\Green flags" -msgstr "\\Drapeaux verts" +msgid "Can not create this; there are too many objects" +msgstr "Création impossible; il y a trop d'objets" -msgid "\\Yellow flags" -msgstr "\\Drapeaux jaunes" +msgid "Can not produce not researched object" +msgstr "" -msgid "\\Violet flags" -msgstr "\\Drapeaux violets" +msgid "Can not produce this object in this mission" +msgstr "" -msgid "Build a winged grabber" -msgstr "Fabrique un déménageur volant" +msgid "Can't open file" +msgstr "Ouverture du fichier impossible" -msgid "Build a tracked grabber" -msgstr "Fabrique un déménageur à chenilles" +msgid "Cancel" +msgstr "Annuler" -msgid "Build a wheeled grabber" -msgstr "Fabrique un déménageur à roues" +msgid "Cancel\\Cancel all changes" +msgstr "Annuler\\Annuler toutes les modifications" -msgid "Build a legged grabber" -msgstr "Fabrique un déménageur à pattes" +msgid "Cancel\\Keep current player name" +msgstr "Annuler\\Conserver le joueur actuel" -msgid "Build a winged shooter" -msgstr "Fabrique un shooter volant" +msgid "Challenges" +msgstr "Défis" -msgid "Build a tracked shooter" -msgstr "Fabrique un shooter à chenilles" +msgid "Challenges\\Programming challenges" +msgstr "Défis\\Défis de programmation" -msgid "Build a wheeled shooter" -msgstr "Fabrique un shooter à roues" +msgid "Change camera\\Switches between onboard camera and following camera" +msgstr "Changement de caméra\\Autre de point de vue" -msgid "Build a legged shooter" -msgstr "Fabrique un shooter à pattes" +msgid "Change player\\Change player" +msgstr "Autre joueur\\Choix du nom du joueur" -msgid "Build a winged orga shooter" -msgstr "Fabrique un orgaShooter volant" +msgid "Checkpoint" +msgstr "Indicateur" -msgid "Build a tracked orga shooter" -msgstr "Fabrique un orgaShooter à chenilles" +msgid "Checkpoint crossed" +msgstr "Indicateur atteint" -msgid "Build a wheeled orga shooter" -msgstr "Fabrique un orgaShooter à roues" +msgid "Climb\\Increases the power of the jet" +msgstr "Monter\\Augmenter la puissance du réacteur" -msgid "Build a legged orga shooter" -msgstr "Fabrique un orgaShooter à pattes" +msgid "Close" +msgstr "Fermer" -msgid "Build a winged sniffer" -msgstr "Fabrique un renifleur volant" +msgid "Closing bracket missing " +msgstr "Il manque une parenthèse fermante" -msgid "Build a tracked sniffer" -msgstr "Fabrique un renifleur à chenilles" +msgid "Colobot rules!" +msgstr "Colobot est super!" -msgid "Build a wheeled sniffer" -msgstr "Fabrique un renifleur à roues" +msgid "Command line" +msgstr "Console de commande" -msgid "Build a legged sniffer" -msgstr "Fabrique un renifleur à pattes" +msgid "Compass" +msgstr "Boussole" -msgid "Build a thumper" -msgstr "Fabrique un robot secoueur" +msgid "Compilation ok (0 errors)" +msgstr "Compilation ok (0 erreur)" -msgid "Build a phazer shooter" -msgstr "Fabrique un robot phazer" +msgid "Compile" +msgstr "Compiler" -msgid "Build a recycler" -msgstr "Fabrique un robot recycleur" +msgid "Continue" +msgstr "Continuer" -msgid "Build a shielder" -msgstr "Fabrique un robot bouclier" +msgid "Continue\\Continue the current mission" +msgstr "Continuer\\Continuer la mission en cours" -msgid "Build a subber" -msgstr "Fabrique un robot sous-marin" +msgid "Continue\\Continue the game" +msgstr "Continuer\\Continuer de jouer" -msgid "Run research program for tracked bots" -msgstr "Recherche les chenilles" +msgid "Controls\\Keyboard, joystick and mouse settings" +msgstr "Commandes\\Touches du clavier" -msgid "Run research program for winged bots" -msgstr "Recherche les robots volants" +msgid "Converts ore to titanium" +msgstr "Conversion minerai en titanium" -msgid "Run research program for thumper" -msgstr "Recherche le secoueur" +msgid "Copy" +msgstr "Copier" -msgid "Run research program for shooter" -msgstr "Recherche le canon shooter" +msgid "Copy (Ctrl+c)" +msgstr "Copier (Ctrl+c)" -msgid "Run research program for defense tower" -msgstr "Recherche la tour de défense" +msgid "Current mission saved" +msgstr "Enregistrement effectué" -msgid "Run research program for phazer shooter" -msgstr "Recherche le canon phazer" +msgid "Customize your appearance" +msgstr "Personnalisation de votre apparence" -msgid "Run research program for shielder" -msgstr "Recherche le bouclier" +msgid "Cut (Ctrl+x)" +msgstr "Couper (Ctrl+x)" -msgid "Run research program for nuclear power" -msgstr "Recherche le nucléaire" +msgid "Defense tower" +msgstr "Tour de défense" -msgid "Run research program for legged bots" -msgstr "Recherche les pattes" +msgid "Delete" +msgstr "Détruire" -msgid "Run research program for orga shooter" -msgstr "Recherche le canon orgaShooter" +msgid "Delete player\\Deletes the player from the list" +msgstr "Supprimer le joueur\\Supprimer le joueur de la liste" -msgid "Return to start" -msgstr "Remet au départ" +msgid "Delete\\Deletes the selected file" +msgstr "Supprimer\\Supprime l'enregistrement sélectionné" -msgid "Sniff (\\key action;)" -msgstr "Cherche (\\key action;)" +msgid "Depth of field\\Maximum visibility" +msgstr "Profondeur de champ\\Distance de vue maximale" -msgid "Thump (\\key action;)" -msgstr "Secoue (\\key action;)" +msgid "Derrick" +msgstr "Derrick" -msgid "Shoot (\\key action;)" -msgstr "Tir (\\key action;)" +msgid "Descend\\Reduces the power of the jet" +msgstr "Descendre\\Diminuer la puissance du réacteur" -msgid "Explode (\\key action;)" +msgid "Destroy" msgstr "" -msgid "Recycle (\\key action;)" -msgstr "Recycle (\\key action;)" +msgid "Destroy the building" +msgstr "Démolit le bâtiment" -msgid "Extend shield (\\key action;)" -msgstr "Déploie le bouclier (\\key action;)" +msgid "Destroyer" +msgstr "Destructeur" -msgid "Withdraw shield (\\key action;)" -msgstr "Stoppe le bouclier (\\key action;)" +msgid "Details\\Visual quality of 3D objects" +msgstr "Détails des objets\\Qualité des objets en 3D" -msgid "Shield radius" -msgstr "Rayon du bouclier" +msgid "Developed by :" +msgstr "Développé par :" -msgid "Execute the selected program" -msgstr "Exécute le programme sélectionné" +msgid "Device\\Driver and resolution settings" +msgstr "Affichage\\Pilote et résolution d'affichage" -msgid "Edit the selected program" -msgstr "Édite le programme sélectionné" +msgid "Dividing by zero" +msgstr "Division par zéro" -msgid "\\SatCom on standby" -msgstr "\\Mettre le SatCom en veille" +msgid "Do not use in this exercise" +msgstr "Interdit dans cet exercice" -msgid "Destroy the building" -msgstr "Démolit le bâtiment" +msgid "Do you really want to destroy the selected building?" +msgstr "Voulez-vous vraiment détruire le bâtiment sélectionné ?" -msgid "Energy level" -msgstr "Niveau d'énergie" +#, c-format +msgid "Do you want to delete %s's saved games? " +msgstr "Voulez-vous détruire les sauvegardes de %s ?" -msgid "Shield level" -msgstr "Niveau du bouclier" +msgid "Do you want to quit COLOBOT ?" +msgstr "Voulez-vous quitter COLOBOT ?" -msgid "Jet temperature" -msgstr "Température du réacteur" +msgid "Doors blocked by a robot or another object " +msgstr "Portes bloquées par un robot ou un objet" -msgid "Still working ..." -msgstr "Travail en cours ..." +msgid "Down (\\key gdown;)" +msgstr "Descend (\\key gdown;)" -msgid "Number of insects detected" -msgstr "Nombre d'insectes détectés" +msgid "Drawer bot" +msgstr "Robot dessinateur" -msgid "Transmitted information" -msgstr "Informations diffusées" +msgid "Dust\\Dust and dirt on bots and buildings" +msgstr "Salissures\\Salissures des robots et bâtiments" -msgid "Compass" -msgstr "Boussole" +msgid "Dynamic lighting\\Mobile light sources" +msgstr "Lumières dynamiques\\Éclairages mobiles" -msgid "Zoom mini-map" -msgstr "Zoom mini-carte" +msgid "Edit the selected program" +msgstr "Édite le programme sélectionné" -msgid "Camera (\\key camera;)" -msgstr "Caméra (\\key camera;)" +msgid "Egg" +msgstr "Oeuf" -msgid "Camera to left" -msgstr "Caméra à gauche" +msgid "End of block missing" +msgstr "Il manque la fin du bloc" -msgid "Camera to right" -msgstr "Caméra à droite" +msgid "Energy deposit (site for power station)" +msgstr "Emplacement pour station" -msgid "Camera nearest" -msgstr "Caméra plus proche" +msgid "Energy level" +msgstr "Niveau d'énergie" -msgid "Camera awayest" -msgstr "Caméra plus loin" +msgid "Engineer" +msgstr "Technicien" -msgid "Help about selected object" -msgstr "Instructions sur la sélection" +msgid "Error in instruction move" +msgstr "Déplacement impossible" -msgid "Show the solution" -msgstr "Donne la solution" +msgid "Execute the selected program" +msgstr "Exécute le programme sélectionné" -msgid "Switch bots <-> buildings" -msgstr "Permute robots <-> bâtiments" +msgid "Execute/stop" +msgstr "Démarrer/stopper" -msgid "Show the range" -msgstr "Montre le rayon d'action" +msgid "Exercises\\Programming exercises" +msgstr "Programmation\\Exercices de programmation" -msgid "\\Raise the pencil" -msgstr "\\Relève le crayon" +msgid "Exit film\\Film at the exit of exercises" +msgstr "Retour animé\\Retour animé dans les exercices" -msgid "\\Use the black pencil" -msgstr "\\Abaisse le crayon noir" +msgid "Explode (\\key action;)" +msgstr "" -msgid "\\Use the yellow pencil" -msgstr "\\Abaisse le crayon jaune" +msgid "Explosive" +msgstr "Explosif" -msgid "\\Use the orange pencil" -msgstr "\\Abaisse le crayon orange" +msgid "Extend shield (\\key action;)" +msgstr "Déploie le bouclier (\\key action;)" -msgid "\\Use the red pencil" -msgstr "\\Abaisse le crayon rouge" +msgid "Eyeglasses:" +msgstr "Lunettes :" -msgid "\\Use the purple pencil" -msgstr "\\Abaisse le crayon violet" +msgid "Face type:" +msgstr "Type de visage :" -msgid "\\Use the blue pencil" -msgstr "\\Abaisse le crayon bleu" +msgid "File not open" +msgstr "Le fichier n'est pas ouvert" -msgid "\\Use the green pencil" -msgstr "\\Abaisse le crayon vert" +msgid "Filename:" +msgstr "Nom du fichier :" -msgid "\\Use the brown pencil" -msgstr "\\Abaisse le crayon brun" +msgid "Film sequences\\Films before and after the missions" +msgstr "Séquences cinématiques\\Films avant ou après une mission" -msgid "\\Start recording" -msgstr "\\Démarre l'enregistrement" +msgid "Finish" +msgstr "But" -msgid "\\Stop recording" -msgstr "\\Stoppe l'enregistrement" +msgid "Fixed mine" +msgstr "Mine fixe" -msgid "Show the place" -msgstr "Montre l'endroit" +msgid "Flat ground not large enough" +msgstr "Sol plat pas assez grand" -msgid "Continue" -msgstr "Continuer" +msgid "Fog\\Fog" +msgstr "Brouillard\\Nappes de brouillard" -msgid "Command line" -msgstr "Console de commande" +msgid "Folder:" +msgstr "Dans:" -msgid "Game speed" -msgstr "Vitesse du jeu" +#, c-format +msgid "Folder: %s" +msgstr "Dossier: %s" -msgid "Back" -msgstr "Page précédente" +msgid "Font size" +msgstr "Taille des caractères" msgid "Forward" msgstr "Page suivante" -msgid "Home" -msgstr "Page initiale" - -msgid "Copy" -msgstr "Copier" - -msgid "Size 1" -msgstr "Taille 1" +msgid "Forward (\\key up;)" +msgstr "Avance (\\key up;)" -msgid "Size 2" -msgstr "Taille 2" +msgid "Forward\\Moves forward" +msgstr "Avancer\\Moteur en avant" -msgid "Size 3" -msgstr "Taille 3" +msgid "Found a site for a derrick" +msgstr "Emplacement pour derrick trouvé" -msgid "Size 4" -msgstr "Taille 4" +msgid "Found a site for power station" +msgstr "Emplacement pour station trouvé" -msgid "Size 5" -msgstr "Taille 5" +msgid "Found key A (site for derrick)" +msgstr "Emplacement pour derrick (clé A)" -msgid "Instructions from Houston" -msgstr "Instructions de Houston" +msgid "Found key B (site for derrick)" +msgstr "Emplacement pour derrick (clé B)" -msgid "Satellite report" -msgstr "Rapport du satellite" +msgid "Found key C (site for derrick)" +msgstr "Emplacement pour derrick (clé C)" -msgid "Programs dispatched by Houston" -msgstr "Programmes envoyés par Houston" +msgid "Found key D (site for derrick)" +msgstr "Emplacement pour derrick (clé D)" -msgid "List of objects" -msgstr "Liste des objets" +msgid "Free game" +msgstr "Jeu libre" -msgid "Programming help" -msgstr "Aide à la programmation" +msgid "Free game\\Free game without a specific goal" +msgstr "Jeu libre\\Jeu libre sans but précis" -msgid "Solution" -msgstr "Solution" +msgid "Friendly fire\\Your shooting can damage your own objects " +msgstr "Dégâts à soi-même\\Vos tirs infligent des dommages à vos unités" -msgid "OK\\Close program editor and return to game" -msgstr "D'accord\\Compiler le programme" +msgid "Full screen\\Full screen or window mode" +msgstr "Plein écran\\Plein écran ou fenêtré" -msgid "Cancel\\Cancel all changes" -msgstr "Annuler\\Annuler toutes les modifications" +msgid "Function already exists" +msgstr "Cette fonction existe déjà" -msgid "Open (Ctrl+o)" -msgstr "Ouvrir (Ctrl+o)" +msgid "Function name missing" +msgstr "Nom de la fonction attendu" -msgid "Save (Ctrl+s)" -msgstr "Enregistrer (Ctrl+s)" +msgid "Game speed" +msgstr "Vitesse du jeu" -msgid "Undo (Ctrl+z)" -msgstr "Annuler (Ctrl+z)" +msgid "Game\\Game settings" +msgstr "Jeu\\Options de jouabilité" -msgid "Cut (Ctrl+x)" -msgstr "Couper (Ctrl+x)" +msgid "Gantry crane" +msgstr "Portique" -msgid "Copy (Ctrl+c)" -msgstr "Copier (Ctrl+c)" +msgid "Goto: destination occupied" +msgstr "Goto: Destination occupée" -msgid "Paste (Ctrl+v)" -msgstr "Coller (Ctrl+v)" +msgid "Goto: inaccessible destination" +msgstr "Chemin introuvable" -msgid "Font size" -msgstr "Taille des caractères" +msgid "Grab or drop (\\key action;)" +msgstr "Prend ou dépose (\\key action;)" -msgid "Instructions (\\key help;)" -msgstr "Instructions (\\key help;)" +msgid "Graphics\\Graphics settings" +msgstr "Graphique\\Options graphiques" -msgid "Programming help (\\key prog;)" -msgstr "Aide à la programmation (\\key prog;)" +msgid "Green" +msgstr "Vert" -msgid "Compile" -msgstr "Compiler" +msgid "Green flag" +msgstr "Drapeau vert" -msgid "Execute/stop" -msgstr "Démarrer/stopper" +msgid "Ground inappropriate" +msgstr "Terrain inadapté" -msgid "Pause/continue" -msgstr "Pause/continuer" +msgid "Ground not flat enough" +msgstr "Sol pas assez plat" -msgid "One step" -msgstr "Un pas" +msgid "Hair color:" +msgstr "Couleur des cheveux :" -msgid "Gantry crane" -msgstr "Portique" +msgid "Head\\Face and hair" +msgstr "Tête\\Visage et cheveux" -msgid "Spaceship" -msgstr "Vaisseau spatial" +msgid "Help about selected object" +msgstr "Instructions sur la sélection" -msgid "Derrick" -msgstr "Derrick" +msgid "Help balloons\\Explain the function of the buttons" +msgstr "Bulles d'aide\\Bulles explicatives" -msgid "Bot factory" -msgstr "Fabrique de robots" +msgid "Highest\\Highest graphic quality (lowest frame rate)" +msgstr "Maxi\\Haute qualité (+ lent)" -msgid "Repair center" -msgstr "Centre de réparation" +msgid "Home" +msgstr "Page initiale" -msgid "Destroyer" -msgstr "Destructeur" +msgid "Houston Mission Control" +msgstr "Centre de contrôle" -msgid "Power station" -msgstr "Station de recharge" +msgid "Illegal object" +msgstr "Objet inaccessible" -msgid "Converts ore to titanium" -msgstr "Conversion minerai en titanium" +msgid "Impossible under water" +msgstr "Impossible sous l'eau" -msgid "Defense tower" -msgstr "Tour de défense" +msgid "Impossible when carrying an object" +msgstr "Impossible en portant un objet" -msgid "Nest" -msgstr "Nid" +msgid "Impossible when flying" +msgstr "Impossible en vol" -msgid "Research center" -msgstr "Centre de recherches" +msgid "Impossible when moving" +msgstr "Impossible en mouvement" -msgid "Radar station" -msgstr "Radar" +msgid "Impossible when swimming" +msgstr "Impossible en nageant" -msgid "Information exchange post" -msgstr "Borne d'information" +msgid "Inappropriate bot" +msgstr "Robot inadapté" -msgid "Power cell factory" -msgstr "Fabrique de piles" +msgid "Inappropriate cell type" +msgstr "Pas le bon type de pile" -msgid "Autolab" -msgstr "Laboratoire de matières organiques" +msgid "Inappropriate object" +msgstr "" -msgid "Nuclear power station" -msgstr "Centrale nucléaire" +msgid "Incorrect index type" +msgstr "Mauvais type d'index" -msgid "Lightning conductor" -msgstr "Paratonnerre" +msgid "Infected by a virus; temporarily out of order" +msgstr "Infecté par un virus; ne fonctionne plus temporairement" -msgid "Vault" -msgstr "Coffre-fort" +msgid "Information exchange post" +msgstr "Borne d'information" -msgid "Houston Mission Control" -msgstr "Centre de contrôle" +msgid "Instruction \"break\" outside a loop" +msgstr "Instruction \"break\" en dehors d'une boucle" -msgid "Target" -msgstr "Cible" +msgid "Instruction \"case\" missing" +msgstr "Manque une instruction \"case\"" -msgid "Start" -msgstr "Départ" +msgid "Instruction \"case\" outside a block \"switch\"" +msgstr "Instruction \"case\" hors d'un bloc \"switch\"" -msgid "Finish" -msgstr "But" +msgid "Instruction \"else\" without corresponding \"if\" " +msgstr "Instruction \"else\" sans \"if\" correspondant" -msgid "Titanium ore" -msgstr "Minerai de titanium" +msgid "Instructions (\\key help;)" +msgstr "Instructions (\\key help;)" -msgid "Uranium ore" -msgstr "Minerai d'uranium" +msgid "Instructions after the final closing brace" +msgstr "Instructions après la fin" -msgid "Organic matter" -msgstr "Matière organique" +msgid "Instructions for the mission (\\key help;)" +msgstr "Instructions sur la mission (\\key help;)" -msgid "Titanium" -msgstr "Titanium" +msgid "Instructions from Houston" +msgstr "Instructions de Houston" -msgid "Power cell" -msgstr "Pile normale" +msgid "Instructions\\Shows the instructions for the current mission" +msgstr "Instructions mission\\Marche à suivre" -msgid "Nuclear power cell" -msgstr "Pile nucléaire" +msgid "Internal error - tell the developers" +msgstr "" -msgid "Black box" -msgstr "Boîte noire" +msgid "Jet temperature" +msgstr "Température du réacteur" msgid "Key A" msgstr "Clé A" @@ -1129,947 +757,999 @@ msgstr "Clé C" msgid "Key D" msgstr "Clé D" -msgid "Explosive" -msgstr "Explosif" +msgid "Key word help\\More detailed help about key words" +msgstr "Instructions mot-clé\\Explication sur le mot-clé" -msgid "Fixed mine" -msgstr "Mine fixe" +msgid "Keyword \"while\" missing" +msgstr "Manque le mot \"while\"" -msgid "Survival kit" -msgstr "Sac de survie" +msgid "Keyword help(\\key cbot;)" +msgstr "Aide sur le mot-clé (\\key cbot;)" -msgid "Checkpoint" -msgstr "Indicateur" +msgid "LOADING" +msgstr "CHARGEMENT" -msgid "Blue flag" -msgstr "Drapeau bleu" +msgid "Legged grabber" +msgstr "Robot déménageur" -msgid "Red flag" -msgstr "Drapeau rouge" +msgid "Legged orga shooter" +msgstr "Robot orgaShooter" -msgid "Green flag" -msgstr "Drapeau vert" +msgid "Legged shooter" +msgstr "Robot shooter" -msgid "Yellow flag" -msgstr "Drapeau jaune" +msgid "Legged sniffer" +msgstr "Robot renifleur" -msgid "Violet flag" -msgstr "Drapeau violet" +msgid "Lightning conductor" +msgstr "Paratonnerre" -msgid "Energy deposit (site for power station)" -msgstr "Emplacement pour station" +msgid "List of objects" +msgstr "Liste des objets" -msgid "Uranium deposit (site for derrick)" -msgstr "Emplacement pour derrick (uranium)" +msgid "List of saved missions" +msgstr "Liste des missions enregistrées" -msgid "Found key A (site for derrick)" -msgstr "Emplacement pour derrick (clé A)" +msgid "Load a saved mission" +msgstr "Chargement d'une mission enregistrée" -msgid "Found key B (site for derrick)" -msgstr "Emplacement pour derrick (clé B)" +msgid "Load\\Load a saved mission" +msgstr "Charger\\Charger une mission enregistrée" -msgid "Found key C (site for derrick)" -msgstr "Emplacement pour derrick (clé C)" +msgid "Load\\Loads the selected mission" +msgstr "Charger\\Charger la mission sélectionnée" + +msgid "Lowest\\Minimum graphic quality (highest frame rate)" +msgstr "Mini\\Qualité minimale (+ rapide)" + +msgid "Lunar Roving Vehicle" +msgstr "Lunar Roving Vehicle" + +msgid "Marks on the ground\\Marks on the ground" +msgstr "Marques sur le sol\\Marques dessinées sur le sol" + +msgid "Maximize" +msgstr "Taille maximale" + +msgid "Minimize" +msgstr "Taille réduite" + +msgid "Mission name" +msgstr "Nom de la mission" + +msgid "Missions" +msgstr "Missions" + +msgid "Missions\\Select mission" +msgstr "Missions\\La grande aventure" + +msgid "Mouse inversion X\\Inversion of the scrolling direction on the X axis" +msgstr "" +"Inversion souris X\\Inversion de la rotation lorsque la souris touche un bord" + +msgid "Mouse inversion Y\\Inversion of the scrolling direction on the Y axis" +msgstr "" +"Inversion souris Y\\Inversion de la rotation lorsque la souris touche un bord" -msgid "Found key D (site for derrick)" -msgstr "Emplacement pour derrick (clé D)" +msgid "Mouse shadow\\Gives the mouse a shadow" +msgstr "Souris ombrée\\Jolie souris avec une ombre" -msgid "Titanium deposit (site for derrick)" -msgstr "Emplacement pour derrick (titanium)" +msgid "Mute\\No sound" +msgstr "Silencieux\\Totalement silencieux" -msgid "Practice bot" -msgstr "Robot d'entraînement" +msgid "Name:" +msgstr "Nom:" -msgid "Winged grabber" -msgstr "Robot déménageur" +msgid "Negative value rejected by \"throw\"" +msgstr "Valeur négative refusée pour \"throw\"" -msgid "Tracked grabber" -msgstr "Robot déménageur" +msgid "Nest" +msgstr "Nid" -msgid "Wheeled grabber" -msgstr "Robot déménageur" +msgid "New" +msgstr "Nouveau" -msgid "Legged grabber" -msgstr "Robot déménageur" +msgid "New ..." +msgstr "Nouveau ..." -msgid "Winged shooter" -msgstr "Robot shooter" +msgid "New bot available" +msgstr "Nouveau robot disponible" -msgid "Tracked shooter" -msgstr "Robot shooter" +msgid "Next" +msgstr "Suivant" -msgid "Wheeled shooter" -msgstr "Robot shooter" +msgid "Next object\\Selects the next object" +msgstr "Sélectionner l'objet suivant\\Sélectionner l'objet suivant" -msgid "Legged shooter" -msgstr "Robot shooter" +msgid "No energy in the subsoil" +msgstr "Pas d'énergie en sous-sol" -msgid "Winged orga shooter" -msgstr "Robot orgaShooter" +msgid "No flag nearby" +msgstr "Aucun drapeau à proximité" -msgid "Tracked orga shooter" -msgstr "Robot orgaShooter" +msgid "No function running" +msgstr "Pas de fonction en exécution" -msgid "Wheeled orga shooter" -msgstr "Robot orgaShooter" +msgid "No function with this name accepts this kind of parameter" +msgstr "Aucune fonction de ce nom n'accepte ce(s) type(s) de paramètre(s)" -msgid "Legged orga shooter" -msgstr "Robot orgaShooter" +msgid "No function with this name accepts this number of parameters" +msgstr "Aucune fonction de ce nom n'accepte ce nombre de paramètres" -msgid "Winged sniffer" -msgstr "Robot renifleur" +msgid "No information exchange post within range" +msgstr "Pas trouvé de borne d'information" -msgid "Tracked sniffer" -msgstr "Robot renifleur" +msgid "No more energy" +msgstr "Plus d'énergie" -msgid "Wheeled sniffer" -msgstr "Robot renifleur" +msgid "No ore in the subsoil" +msgstr "Pas de minerai en sous-sol" -msgid "Legged sniffer" -msgstr "Robot renifleur" +msgid "No other robot" +msgstr "Pas d'autre robot" -msgid "Thumper" -msgstr "Robot secoueur" +msgid "No power cell" +msgstr "Pas de pile" -msgid "Phazer shooter" -msgstr "Robot phazer" +msgid "No titanium" +msgstr "Pas de titanium" -msgid "Recycler" -msgstr "Robot recycleur" +msgid "No titanium around" +msgstr "Titanium inexistant" -msgid "Shielder" -msgstr "Robot bouclier" +msgid "No titanium ore to convert" +msgstr "Pas de minerai de titanium à convertir" -msgid "Subber" -msgstr "Robot sous-marin" +msgid "No titanium to transform" +msgstr "Pas de titanium à transformer" -msgid "Target bot" -msgstr "Cible d'entraînement" +msgid "No uranium to transform" +msgstr "Pas d'uranium à transformer" -msgid "Drawer bot" -msgstr "Robot dessinateur" +msgid "Normal size" +msgstr "Taille normale" -msgid "Engineer" -msgstr "Technicien" +msgid "Normal\\Normal graphic quality" +msgstr "Normal\\Qualité standard" -msgid "Robbie" -msgstr "Robbie" +msgid "Normal\\Normal sound volume" +msgstr "Normal\\Niveaux normaux" -msgid "Alien Queen" -msgstr "Pondeuse" +msgid "Not enough energy" +msgstr "Pas assez d'énergie" -msgid "Ant" -msgstr "Fourmi" +msgid "Not enough energy yet" +msgstr "Pas encore assez d'énergie" -msgid "Spider" -msgstr "Araignée" +msgid "Not found anything to destroy" +msgstr "" -msgid "Wasp" -msgstr "Guępe" +msgid "Not yet enough energy" +msgstr "Pas encore assez d'énergie" -msgid "Worm" -msgstr "Ver" +msgid "Nothing to analyze" +msgstr "Rien à analyser" -msgid "Egg" -msgstr "Oeuf" +msgid "Nothing to drop" +msgstr "Rien à déposer" -msgid "Wreckage" -msgstr "Epave de robot" +msgid "Nothing to grab" +msgstr "Rien à prendre" -msgid "Ruin" -msgstr "Bâtiment en ruine" +msgid "Nothing to recycle" +msgstr "Rien à recycler" -msgid "Waste" -msgstr "Déchet" +msgid "Nuclear power cell" +msgstr "Pile nucléaire" -msgid "Spaceship ruin" -msgstr "Epave de vaisseau spatial" +msgid "Nuclear power cell available" +msgstr "Pile nucléaire disponible" -msgid "Remains of Apollo mission" -msgstr "Vestige d'une mission Apollo" +msgid "Nuclear power station" +msgstr "Centrale nucléaire" -msgid "Lunar Roving Vehicle" -msgstr "Lunar Roving Vehicle" +msgid "Num of decorative objects\\Number of purely ornamental objects" +msgstr "Nb d'objets décoratifs\\Qualité d'objets non indispensables" -msgid "Internal error - tell the developers" -msgstr "" +msgid "Number missing" +msgstr "Un nombre est attendu" -msgid "Unknown command" -msgstr "Commande inconnue" +msgid "Number of insects detected" +msgstr "Nombre d'insectes détectés" -msgid "Inappropriate bot" -msgstr "Robot inadapté" +msgid "Number of particles\\Explosions, dust, reflections, etc." +msgstr "Quantité de particules\\Explosions, poussières, reflets, etc." -msgid "Impossible when flying" -msgstr "Impossible en vol" +msgid "OK" +msgstr "D'accord" -msgid "Already carrying something" -msgstr "Porte déjà quelque chose" +msgid "OK\\Choose the selected player" +msgstr "D'accord\\Choisir le joueur" -msgid "Nothing to grab" -msgstr "Rien à prendre" +msgid "OK\\Close program editor and return to game" +msgstr "D'accord\\Compiler le programme" -msgid "Impossible when moving" -msgstr "Impossible en mouvement" +msgid "Object not found" +msgstr "Objet n'existe pas" -msgid "Place occupied" -msgstr "Emplacement occupé" +msgid "Object too close" +msgstr "Objet trop proche" -msgid "No other robot" -msgstr "Pas d'autre robot" +msgid "One step" +msgstr "Un pas" -msgid "You can not carry a radioactive object" -msgstr "Vous ne pouvez pas transporter un objet radioactif" +msgid "Open" +msgstr "Ouvrir" -msgid "You can not carry an object under water" -msgstr "Vous ne pouvez pas transporter un objet sous l'eau" +msgid "Open (Ctrl+o)" +msgstr "Ouvrir (Ctrl+o)" -msgid "Nothing to drop" -msgstr "Rien à déposer" +msgid "Opening brace missing " +msgstr "Début d'un bloc attendu" -msgid "Impossible under water" -msgstr "Impossible sous l'eau" +msgid "Opening bracket missing" +msgstr "Il manque une parenthèse ouvrante" -msgid "Not enough energy" -msgstr "Pas assez d'énergie" +msgid "Operation impossible with value \"nan\"" +msgstr "Opération sur un \"nan\"" -msgid "Titanium too far away" -msgstr "Titanium trop loin" +msgid "Options" +msgstr "Options" -msgid "Titanium too close" -msgstr "Titanium trop proche" +msgid "Options\\Preferences" +msgstr "Options\\Réglages" -msgid "No titanium around" -msgstr "Titanium inexistant" +msgid "Organic matter" +msgstr "Matière organique" -msgid "Ground not flat enough" -msgstr "Sol pas assez plat" +msgid "Origin of last message\\Shows where the last message was sent from" +msgstr "Montrer le lieu d'un message\\Montrer le lieu du dernier message" -msgid "Flat ground not large enough" -msgstr "Sol plat pas assez grand" +msgid "Parameters missing " +msgstr "Pas assez de paramètres" -msgid "Too close to space ship" -msgstr "Trop proche du vaisseau spatial" +msgid "Particles in the interface\\Steam clouds and sparks in the interface" +msgstr "Particules dans l'interface\\Pluie de particules" -msgid "Too close to a building" -msgstr "Trop proche d'un bâtiment" +msgid "Paste (Ctrl+v)" +msgstr "Coller (Ctrl+v)" -msgid "Can not produce this object in this mission" -msgstr "" +msgid "Pause/continue" +msgstr "Pause/continuer" -msgid "Can not produce not researched object" -msgstr "" +msgid "Phazer shooter" +msgstr "Robot phazer" -msgid "Ground inappropriate" -msgstr "Terrain inadapté" +msgid "Photography" +msgstr "Vue de la mission" -msgid "Building too close" -msgstr "Bâtiment trop proche" +msgid "Place occupied" +msgstr "Emplacement occupé" -msgid "Object too close" -msgstr "Objet trop proche" +msgid "Planets and stars\\Astronomical objects in the sky" +msgstr "Planètes et étoiles\\Motifs mobiles dans le ciel" -msgid "Nothing to recycle" -msgstr "Rien à recycler" +msgid "Plans for defense tower available" +msgstr "Construction d'une tour de défense possible" -msgid "No more energy" -msgstr "Plus d'énergie" +msgid "Plans for nuclear power plant available" +msgstr "Construction d'une centrale nucléaire possible" -msgid "Error in instruction move" -msgstr "Déplacement impossible" +msgid "Plans for phazer shooter available" +msgstr "Fabrication d'un robot phazer possible" -msgid "Object not found" -msgstr "Objet n'existe pas" +msgid "Plans for shielder available" +msgstr "Fabrication d'un robot bouclier possible" -msgid "Goto: inaccessible destination" -msgstr "Chemin introuvable" +msgid "Plans for shooter available" +msgstr "Fabrication de robots shooter possible" -msgid "Goto: destination occupied" -msgstr "Goto: Destination occupée" +msgid "Plans for thumper available" +msgstr "Fabrication d'un robot secoueur possible" -msgid "No titanium ore to convert" -msgstr "Pas de minerai de titanium à convertir" +msgid "Plans for tracked robots available " +msgstr "Fabrication d'un robot à chenilles possible" -msgid "No ore in the subsoil" -msgstr "Pas de minerai en sous-sol" +msgid "Plant a flag" +msgstr "Pose un drapeau de couleur" -msgid "No energy in the subsoil" -msgstr "Pas d'énergie en sous-sol" +msgid "Play\\Start mission!" +msgstr "Jouer ...\\Démarrer l'action!" -msgid "No power cell" -msgstr "Pas de pile" +msgid "Player" +msgstr "Joueur" -msgid "Inappropriate cell type" -msgstr "Pas le bon type de pile" +msgid "Player name" +msgstr "Nom du joueur" -msgid "Research program already performed" -msgstr "Recherche déjà effectuée" +msgid "Player's name" +msgstr "Nom du joueur" -msgid "Not enough energy yet" -msgstr "Pas encore assez d'énergie" +msgid "Power cell" +msgstr "Pile normale" -msgid "No titanium to transform" -msgstr "Pas de titanium à transformer" +msgid "Power cell available" +msgstr "Pile disponible" -msgid "Transforms only titanium" -msgstr "Ne transforme que le titanium" +msgid "Power cell factory" +msgstr "Fabrique de piles" -msgid "Doors blocked by a robot or another object " -msgstr "Portes bloquées par un robot ou un objet" +msgid "Power station" +msgstr "Station de recharge" -msgid "You must get on the spaceship to take off " -msgstr "Vous devez embarquer pour pouvoir décoller" +msgid "Practice bot" +msgstr "Robot d'entraînement" -msgid "Nothing to analyze" -msgstr "Rien à analyser" +msgid "Press \\key help; to read instructions on your SatCom" +msgstr "Consultez votre SatCom en appuyant sur \\key help;" -msgid "Analyzes only organic matter" -msgstr "N'analyse que la matière organique" +msgid "Previous" +msgstr "Précédent" -msgid "Analysis already performed" -msgstr "Analyse déjà effectuée" +msgid "Previous object\\Selects the previous object" +msgstr "Sélection précédente\\Sélectionne l'objet précédent" -msgid "Not yet enough energy" -msgstr "Pas encore assez d'énergie" +msgid "Previous selection (\\key desel;)" +msgstr "Sélection précédente (\\key desel;)" -msgid "No uranium to transform" -msgstr "Pas d'uranium à transformer" +msgid "Private element" +msgstr "Elément protégé" -msgid "Transforms only uranium" -msgstr "Ne transforme que l'uranium" +msgid "Private\\Private folder" +msgstr "Privé\\Dossier privé" -msgid "No titanium" -msgstr "Pas de titanium" +msgid "Program editor" +msgstr "Edition du programme" -msgid "No information exchange post within range" -msgstr "Pas trouvé de borne d'information" +msgid "Program finished" +msgstr "Programme terminé" msgid "Program infected by a virus" msgstr "Un programme est infecté par un virus" -msgid "Infected by a virus; temporarily out of order" -msgstr "Infecté par un virus; ne fonctionne plus temporairement" +msgid "Programming exercises" +msgstr "Programmation" -msgid "Impossible when swimming" -msgstr "Impossible en nageant" +msgid "Programming help" +msgstr "Aide à la programmation" -msgid "Impossible when carrying an object" -msgstr "Impossible en portant un objet" +msgid "Programming help (\\key prog;)" +msgstr "Aide à la programmation (\\key prog;)" -msgid "Too many flags of this color (maximum 5)" -msgstr "Trop de drapeaux de cette couleur (maximum 5)" +msgid "Programming help\\Gives more detailed help with programming" +msgstr "Instructions programmation\\Explication sur la programmation" -msgid "Too close to an existing flag" -msgstr "Trop proche d'un drapeau existant" +msgid "Programs dispatched by Houston" +msgstr "Programmes envoyés par Houston" -msgid "No flag nearby" -msgstr "Aucun drapeau à proximité" +msgid "Public required" +msgstr "Public requis" -msgid "Not found anything to destroy" -msgstr "" +msgid "Public\\Common folder" +msgstr "Public\\Dossier commun à tous les joueurs" -msgid "Inappropriate object" -msgstr "" +msgid "Quake at explosions\\The screen shakes at explosions" +msgstr "Secousses lors d'explosions\\L'écran vibre lors d'une explosion" -msgid "" -"The mission is not accomplished yet (press \\key help; for more details)" -msgstr "" -"La misssion n'est pas terminée (appuyez sur \\key help; pour plus de détails)" +msgid "Quit the mission?" +msgstr "Quitter la mission ?" -msgid "Bot destroyed" -msgstr "Robot détruit" +msgid "Quit\\Quit COLOBOT" +msgstr "Quitter\\Quitter COLOBOT" -msgid "Building destroyed" -msgstr "Bâtiment détruit" +msgid "Quit\\Quit the current mission or exercise" +msgstr "Quitter la mission en cours\\Terminer un exercice ou une mssion" -msgid "Can not create this; there are too many objects" -msgstr "Création impossible; il y a trop d'objets" +msgid "Radar station" +msgstr "Radar" -#, c-format -msgid "\"%s\" missing in this exercise" -msgstr "Il manque \"%s\" dans le programme" +msgid "Read error" +msgstr "Erreur à la lecture" -msgid "Do not use in this exercise" -msgstr "Interdit dans cet exercice" +msgid "Recorder" +msgstr "Enregistreur" -msgid "Building completed" -msgstr "Bâtiment terminé" +msgid "Recycle (\\key action;)" +msgstr "Recycle (\\key action;)" -msgid "Titanium available" -msgstr "Titanium disponible" +msgid "Recycler" +msgstr "Robot recycleur" -msgid "Research program completed" -msgstr "Recherche terminée" +msgid "Red" +msgstr "Rouge" -msgid "Plans for tracked robots available " -msgstr "Fabrication d'un robot à chenilles possible" +msgid "Red flag" +msgstr "Drapeau rouge" -msgid "You can fly with the keys (\\key gup;) and (\\key gdown;)" -msgstr "" -"Il est possible de voler avec les touches (\\key gup;) et (\\key gdown;)" +msgid "Reflections on the buttons \\Shiny buttons" +msgstr "Reflets sur les boutons\\Boutons brillants" -msgid "Plans for thumper available" -msgstr "Fabrication d'un robot secoueur possible" +msgid "Remains of Apollo mission" +msgstr "Vestige d'une mission Apollo" -msgid "Plans for shooter available" -msgstr "Fabrication de robots shooter possible" +msgid "Remove a flag" +msgstr "Enlève un drapeau" -msgid "Plans for defense tower available" -msgstr "Construction d'une tour de défense possible" +msgid "Repair center" +msgstr "Centre de réparation" -msgid "Plans for phazer shooter available" -msgstr "Fabrication d'un robot phazer possible" +msgid "Research center" +msgstr "Centre de recherches" -msgid "Plans for shielder available" -msgstr "Fabrication d'un robot bouclier possible" +msgid "Research program already performed" +msgstr "Recherche déjà effectuée" -msgid "Plans for nuclear power plant available" -msgstr "Construction d'une centrale nucléaire possible" +msgid "Research program completed" +msgstr "Recherche terminée" -msgid "New bot available" -msgstr "Nouveau robot disponible" +msgid "Reserved keyword of CBOT language" +msgstr "Ce mot est réservé" -msgid "Analysis performed" -msgstr "Analyse terminée" +msgid "Resolution" +msgstr "Résolution" -msgid "Power cell available" -msgstr "Pile disponible" +msgid "Restart\\Restart the mission from the beginning" +msgstr "Recommencer\\Recommencer la mission au début" -msgid "Nuclear power cell available" -msgstr "Pile nucléaire disponible" +msgid "Return to start" +msgstr "Remet au départ" -msgid "You found a usable object" -msgstr "Vous avez trouvé un objet utilisable" +msgid "Robbie" +msgstr "Robbie" -msgid "Found a site for power station" -msgstr "Emplacement pour station trouvé" +msgid "Robbie\\Your assistant" +msgstr "Robbie\\Votre assistant" -msgid "Found a site for a derrick" -msgstr "Emplacement pour derrick trouvé" +msgid "Ruin" +msgstr "Bâtiment en ruine" -msgid "<<< Well done; mission accomplished >>>" -msgstr "<<< Bravo; mission terminée >>>" +msgid "Run research program for defense tower" +msgstr "Recherche la tour de défense" + +msgid "Run research program for legged bots" +msgstr "Recherche les pattes" + +msgid "Run research program for nuclear power" +msgstr "Recherche le nucléaire" + +msgid "Run research program for orga shooter" +msgstr "Recherche le canon orgaShooter" + +msgid "Run research program for phazer shooter" +msgstr "Recherche le canon phazer" -msgid "<<< Sorry; mission failed >>>" -msgstr "<<< Désolé; mission échouée >>>" +msgid "Run research program for shielder" +msgstr "Recherche le bouclier" -msgid "Current mission saved" -msgstr "Enregistrement effectué" +msgid "Run research program for shooter" +msgstr "Recherche le canon shooter" -msgid "Checkpoint crossed" -msgstr "Indicateur atteint" +msgid "Run research program for thumper" +msgstr "Recherche le secoueur" -msgid "Alien Queen killed" -msgstr "Pondeuse mortellement touchée" +msgid "Run research program for tracked bots" +msgstr "Recherche les chenilles" -msgid "Ant fatally wounded" -msgstr "Fourmi mortellement touchée" +msgid "Run research program for winged bots" +msgstr "Recherche les robots volants" -msgid "Wasp fatally wounded" -msgstr "Guępe mortellement touchée" +msgid "SatCom" +msgstr "SatCom" -msgid "Worm fatally wounded" -msgstr "Ver mortellement touché" +msgid "Satellite report" +msgstr "Rapport du satellite" -msgid "Spider fatally wounded" -msgstr "Araignée mortellement touchée" +msgid "Save" +msgstr "Enregistrer" -msgid "Press \\key help; to read instructions on your SatCom" -msgstr "Consultez votre SatCom en appuyant sur \\key help;" +msgid "Save (Ctrl+s)" +msgstr "Enregistrer (Ctrl+s)" -msgid "Opening bracket missing" -msgstr "Il manque une parenthèse ouvrante" +msgid "Save the current mission" +msgstr "Enregistrement de la mission en cours" -msgid "Closing bracket missing " -msgstr "Il manque une parenthèse fermante" +msgid "Save\\Save the current mission " +msgstr "Enregistrer\\Enregistrer la mission en cours" -msgid "The expression must return a boolean value" -msgstr "L'expression doit ętre un boolean" +msgid "Save\\Saves the current mission" +msgstr "Enregistrer\\Enregistrer la mission en cours" -msgid "Variable not declared" -msgstr "Variable non déclarée" +msgid "Scrolling\\Scrolling when the mouse touches right or left border" +msgstr "" +"Défilement dans les bords\\Défilement lorsque la souris touches les bords " +"gauche ou droite" -msgid "Assignment impossible" -msgstr "Assignation impossible" +msgid "Select the astronaut\\Selects the astronaut" +msgstr "Sélectionner le cosmonaute\\Sélectionner le cosmonaute" msgid "Semicolon terminator missing" msgstr "Terminateur point-virgule non trouvé" -msgid "Instruction \"case\" outside a block \"switch\"" -msgstr "Instruction \"case\" hors d'un bloc \"switch\"" +msgid "Shadows\\Shadows on the ground" +msgstr "Ombres\\Ombres projetées au sol" -msgid "Instructions after the final closing brace" -msgstr "Instructions après la fin" +msgid "Shield level" +msgstr "Niveau du bouclier" -msgid "End of block missing" -msgstr "Il manque la fin du bloc" +msgid "Shield radius" +msgstr "Rayon du bouclier" -msgid "Instruction \"else\" without corresponding \"if\" " -msgstr "Instruction \"else\" sans \"if\" correspondant" +msgid "Shielder" +msgstr "Robot bouclier" -msgid "Opening brace missing " -msgstr "Début d'un bloc attendu" +msgid "Shoot (\\key action;)" +msgstr "Tir (\\key action;)" -msgid "Wrong type for the assignment" -msgstr "Mauvais type de résultat pour l'assignation" +msgid "Show if the ground is flat" +msgstr "Montre si le sol est plat" -msgid "A variable can not be declared twice" -msgstr "Redéfinition d'une variable" +msgid "Show the place" +msgstr "Montre l'endroit" -msgid "The types of the two operands are incompatible " -msgstr "Les deux opérandes ne sont pas de types compatibles" +msgid "Show the range" +msgstr "Montre le rayon d'action" -msgid "Unknown function" -msgstr "Routine inconnue" +msgid "Show the solution" +msgstr "Donne la solution" msgid "Sign \" : \" missing" msgstr "Séparateur \" : \" attendu" -msgid "Keyword \"while\" missing" -msgstr "Manque le mot \"while\"" +msgid "Size 1" +msgstr "Taille 1" -msgid "Instruction \"break\" outside a loop" -msgstr "Instruction \"break\" en dehors d'une boucle" +msgid "Size 2" +msgstr "Taille 2" -msgid "A label must be followed by \"for\"; \"while\"; \"do\" or \"switch\"" -msgstr "" -"Un label ne peut se placer que devant un \"for\"; un \"while\"; un \"do\" ou " -"un \"switch\"" +msgid "Size 3" +msgstr "Taille 3" -msgid "This label does not exist" -msgstr "Cette étiquette n'existe pas" +msgid "Size 4" +msgstr "Taille 4" -msgid "Instruction \"case\" missing" -msgstr "Manque une instruction \"case\"" +msgid "Size 5" +msgstr "Taille 5" -msgid "Number missing" -msgstr "Un nombre est attendu" +msgid "Sky\\Clouds and nebulae" +msgstr "Ciel\\Ciel et nuages" -msgid "Void parameter" -msgstr "Paramètre void" +msgid "Sniff (\\key action;)" +msgstr "Cherche (\\key action;)" -msgid "Type declaration missing" -msgstr "Déclaration de type attendu" +msgid "Solution" +msgstr "Solution" -msgid "Variable name missing" -msgstr "Nom d'une variable attendu" +msgid "Sound effects:\\Volume of engines, voice, shooting, etc." +msgstr "Bruitages :\\Volume des moteurs, voix, etc." -msgid "Function name missing" -msgstr "Nom de la fonction attendu" +msgid "Sound\\Music and game sound volume" +msgstr "Son\\Volumes bruitages & musiques" -msgid "Too many parameters" -msgstr "Trop de paramètres" +msgid "Spaceship" +msgstr "Vaisseau spatial" -msgid "Function already exists" -msgstr "Cette fonction existe déjà" +msgid "Spaceship ruin" +msgstr "Epave de vaisseau spatial" -msgid "Parameters missing " -msgstr "Pas assez de paramètres" +msgid "Speed 1.0x\\Normal speed" +msgstr "Vitesse 1.0x\\Vitesse normale" -msgid "No function with this name accepts this kind of parameter" -msgstr "Aucune fonction de ce nom n'accepte ce(s) type(s) de paramètre(s)" +msgid "Speed 1.5x\\1.5 times faster" +msgstr "Vitesse 1.5x\\Une fois et demi plus rapide" -msgid "No function with this name accepts this number of parameters" -msgstr "Aucune fonction de ce nom n'accepte ce nombre de paramètres" +msgid "Speed 2.0x\\Double speed" +msgstr "Vitesse 2.0x\\Deux fois plus rapide" -msgid "This is not a member of this class" -msgstr "Cet élément n'existe pas dans cette classe" +msgid "Speed 3.0x\\Three times faster" +msgstr "Vitesse 3.0x\\Trois fois plus rapide" -msgid "This object is not a member of a class" -msgstr "L'objet n'est pas une instance d'une classe" +msgid "Spider" +msgstr "Araignée" -msgid "Appropriate constructor missing" -msgstr "Il n'y a pas de constructeur approprié" +msgid "Spider fatally wounded" +msgstr "Araignée mortellement touchée" -msgid "This class already exists" -msgstr "Cette classe existe déjà" +msgid "Stack overflow" +msgstr "Débordement de la pile" -msgid "\" ] \" missing" -msgstr "\" ] \" attendu" +msgid "" +"Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)" +msgstr "Action standard\\Action du bouton avec le cadre rouge" -msgid "Reserved keyword of CBOT language" -msgstr "Ce mot est réservé" +msgid "Standard controls\\Standard key functions" +msgstr "Tout réinitialiser\\Remet toutes les touches standards" -msgid "Bad argument for \"new\"" -msgstr "Mauvais argument pour \"new\"" +msgid "Standard\\Standard appearance settings" +msgstr "Standard\\Remet les couleurs standards" -msgid "\" [ \" expected" -msgstr "\" [ \" attendu" +msgid "Start" +msgstr "Départ" + +msgid "Still working ..." +msgstr "Travail en cours ..." msgid "String missing" msgstr "Une chaîne de caractère est attendue" -msgid "Incorrect index type" -msgstr "Mauvais type d'index" +msgid "Strip color:" +msgstr "Couleur des bandes :" -msgid "Private element" -msgstr "Elément protégé" +msgid "Subber" +msgstr "Robot sous-marin" -msgid "Public required" -msgstr "Public requis" +msgid "Suit color:" +msgstr "Couleur de la combinaison :" -msgid "Dividing by zero" -msgstr "Division par zéro" +msgid "Suit\\Astronaut suit" +msgstr "Corps\\Combinaison" -msgid "Variable not initialized" -msgstr "Variable non initialisée" +msgid "Sunbeams\\Sunbeams in the sky" +msgstr "Rayons du soleil\\Rayons selon l'orientation" -msgid "Negative value rejected by \"throw\"" -msgstr "Valeur négative refusée pour \"throw\"" +msgid "Survival kit" +msgstr "Sac de survie" -msgid "The function returned no value " -msgstr "La fonction n'a pas retourné de résultat" +msgid "Switch bots <-> buildings" +msgstr "Permute robots <-> bâtiments" -msgid "No function running" -msgstr "Pas de fonction en exécution" +msgid "Take off to finish the mission" +msgstr "Décolle pour terminer la mission" -msgid "Calling an unknown function" -msgstr "Appel d'une fonction inexistante" +msgid "Target" +msgstr "Cible" -msgid "This class does not exist" -msgstr "Cette classe n'existe pas" +msgid "Target bot" +msgstr "Cible d'entraînement" -msgid "Unknown Object" -msgstr "Objet n'existe pas" +msgid "Textures\\Quality of textures " +msgstr "Qualité des textures\\Qualité des images" -msgid "Operation impossible with value \"nan\"" -msgstr "Opération sur un \"nan\"" +msgid "The expression must return a boolean value" +msgstr "L'expression doit ętre un boolean" -msgid "Access beyond array limit" -msgstr "Accès hors du tableau" +msgid "The function returned no value " +msgstr "La fonction n'a pas retourné de résultat" -msgid "Stack overflow" -msgstr "Débordement de la pile" +msgid "" +"The list is only available if a \\l;radar station\\u object\\radar; is " +"working.\n" +msgstr "Liste non disponible sans \\l;radar\\u object\\radar;.\n" + +msgid "" +"The mission is not accomplished yet (press \\key help; for more details)" +msgstr "" +"La misssion n'est pas terminée (appuyez sur \\key help; pour plus de détails)" -msgid "Illegal object" -msgstr "Objet inaccessible" +msgid "The types of the two operands are incompatible " +msgstr "Les deux opérandes ne sont pas de types compatibles" -msgid "Can't open file" -msgstr "Ouverture du fichier impossible" +msgid "This class already exists" +msgstr "Cette classe existe déjà" -msgid "File not open" -msgstr "Le fichier n'est pas ouvert" +msgid "This class does not exist" +msgstr "Cette classe n'existe pas" -msgid "Read error" -msgstr "Erreur à la lecture" +msgid "This is not a member of this class" +msgstr "Cet élément n'existe pas dans cette classe" -msgid "Write error" -msgstr "Erreur à l'écriture" +msgid "This label does not exist" +msgstr "Cette étiquette n'existe pas" -msgid "left;" -msgstr "" +msgid "This object is not a member of a class" +msgstr "L'objet n'est pas une instance d'une classe" -msgid "right;" -msgstr "" +msgid "Thump (\\key action;)" +msgstr "Secoue (\\key action;)" -msgid "up;" -msgstr "" +msgid "Thumper" +msgstr "Robot secoueur" -msgid "down;" -msgstr "" +msgid "Titanium" +msgstr "Titanium" -msgid "gup;" -msgstr "" +msgid "Titanium available" +msgstr "Titanium disponible" -msgid "gdown;" -msgstr "" +msgid "Titanium deposit (site for derrick)" +msgstr "Emplacement pour derrick (titanium)" -msgid "camera;" -msgstr "" +msgid "Titanium ore" +msgstr "Minerai de titanium" -msgid "desel;" -msgstr "" +msgid "Titanium too close" +msgstr "Titanium trop proche" -msgid "action;" -msgstr "" +msgid "Titanium too far away" +msgstr "Titanium trop loin" -msgid "near;" -msgstr "" +msgid "Too close to a building" +msgstr "Trop proche d'un bâtiment" -msgid "away;" -msgstr "" +msgid "Too close to an existing flag" +msgstr "Trop proche d'un drapeau existant" -msgid "next;" -msgstr "" +msgid "Too close to space ship" +msgstr "Trop proche du vaisseau spatial" -msgid "human;" -msgstr "" +msgid "Too many flags of this color (maximum 5)" +msgstr "Trop de drapeaux de cette couleur (maximum 5)" -msgid "quit;" -msgstr "" +msgid "Too many parameters" +msgstr "Trop de paramètres" -msgid "help;" -msgstr "" +msgid "Tracked grabber" +msgstr "Robot déménageur" -msgid "prog;" -msgstr "" +msgid "Tracked orga shooter" +msgstr "Robot orgaShooter" -msgid "cbot;" -msgstr "" +msgid "Tracked shooter" +msgstr "Robot shooter" -msgid "visit;" -msgstr "" +msgid "Tracked sniffer" +msgstr "Robot renifleur" -msgid "speed10;" -msgstr "" +msgid "Transforms only titanium" +msgstr "Ne transforme que le titanium" -msgid "speed15;" -msgstr "" +msgid "Transforms only uranium" +msgstr "Ne transforme que l'uranium" -msgid "speed20;" -msgstr "" +msgid "Transmitted information" +msgstr "Informations diffusées" -msgid "Ctrl" -msgstr "Ctrl" +msgid "Turn left (\\key left;)" +msgstr "Tourne à gauche (\\key left;)" -msgid "Shift" -msgstr "Shift" +msgid "Turn left\\turns the bot to the left" +msgstr "Tourner à gauche\\Moteur à gauche" -msgid "Alt" -msgstr "Alt" +msgid "Turn right (\\key right;)" +msgstr "Tourne à droite (\\key right;)" -msgid "Win" -msgstr "Gagné" +msgid "Turn right\\turns the bot to the right" +msgstr "Tourner à droite\\Moteur à droite" -msgid "Button %1" -msgstr "Bouton %1" +msgid "Type declaration missing" +msgstr "Déclaration de type attendu" -msgid "%1" -msgstr "%1" +msgid "Undo (Ctrl+z)" +msgstr "Annuler (Ctrl+z)" -#~ msgid "Menu (\\key quit;)" -#~ msgstr "Menu (\\key quit;)" +msgid "Unit" +msgstr "Unité" -#~ msgid "< none >" -#~ msgstr "< aucune >" +msgid "Unknown Object" +msgstr "Objet n'existe pas" -#~ msgid "<--" -#~ msgstr "<--" +msgid "Unknown command" +msgstr "Commande inconnue" -#~ msgid "Application key" -#~ msgstr "Application key" +msgid "Unknown function" +msgstr "Routine inconnue" -#~ msgid "Arrow down" -#~ msgstr "Flèche Bas" +msgid "Up (\\key gup;)" +msgstr "Monte (\\key gup;)" -#~ msgid "Arrow left" -#~ msgstr "Flèche Gauche" +msgid "Uranium deposit (site for derrick)" +msgstr "Emplacement pour derrick (uranium)" -#~ msgid "Arrow right" -#~ msgstr "Flèche Droite" +msgid "Uranium ore" +msgstr "Minerai d'uranium" -#~ msgid "Arrow up" -#~ msgstr "Flèche Haut" +msgid "Use a joystick\\Joystick or keyboard" +msgstr "Utilise un joystick\\Joystick ou clavier" -#~ msgid "Attn" -#~ msgstr "Attn" +msgid "User levels" +msgstr "Niveaux supplémentaires" -#~ msgid "Caps Lock" -#~ msgstr "Caps Lock" +msgid "User\\User levels" +msgstr "Suppl.\\Niveaux supplémentaires" -#~ msgid "Clear" -#~ msgstr "Clear" +msgid "Variable name missing" +msgstr "Nom d'une variable attendu" -#~ msgid "Control-break" -#~ msgstr "Control-break" +msgid "Variable not declared" +msgstr "Variable non déclarée" -#~ msgid "CrSel" -#~ msgstr "CrSel" +msgid "Variable not initialized" +msgstr "Variable non initialisée" -#~ msgid "Delete Key" -#~ msgstr "Delete" +msgid "Vault" +msgstr "Coffre-fort" -#~ msgid "Dictionnary" -#~ msgstr "Dictionnaire anglais-français" +msgid "Violet flag" +msgstr "Drapeau violet" -#~ msgid "Disintegrator" -#~ msgstr "Désintégrateur" +msgid "Void parameter" +msgstr "Paramètre void" -#~ msgid "End" -#~ msgstr "End" +msgid "Wasp" +msgstr "Guępe" -#~ msgid "Enter" -#~ msgstr "Entrée" +msgid "Wasp fatally wounded" +msgstr "Guępe mortellement touchée" -#~ msgid "Erase EOF" -#~ msgstr "Erase EOF" +msgid "Waste" +msgstr "Déchet" -#~ msgid "Error" -#~ msgstr "Erreur" +msgid "Wheeled grabber" +msgstr "Robot déménageur" -#~ msgid "Esc" -#~ msgstr "Esc" +msgid "Wheeled orga shooter" +msgstr "Robot orgaShooter" -#~ msgid "ExSel" -#~ msgstr "ExSel" +msgid "Wheeled shooter" +msgstr "Robot shooter" -#~ msgid "Execute" -#~ msgstr "Execute" +msgid "Wheeled sniffer" +msgstr "Robot renifleur" -#~ msgid "F1" -#~ msgstr "F1" +msgid "Winged grabber" +msgstr "Robot déménageur" -#~ msgid "F10" -#~ msgstr "F10" +msgid "Winged orga shooter" +msgstr "Robot orgaShooter" -#~ msgid "F11" -#~ msgstr "F11" +msgid "Winged shooter" +msgstr "Robot shooter" -#~ msgid "F12" -#~ msgstr "F12" +msgid "Winged sniffer" +msgstr "Robot renifleur" -#~ msgid "F13" -#~ msgstr "F13" +msgid "Withdraw shield (\\key action;)" +msgstr "Stoppe le bouclier (\\key action;)" -#~ msgid "F14" -#~ msgstr "F14" +msgid "Worm" +msgstr "Ver" -#~ msgid "F15" -#~ msgstr "F15" +msgid "Worm fatally wounded" +msgstr "Ver mortellement touché" -#~ msgid "F16" -#~ msgstr "F16" +msgid "Wreckage" +msgstr "Epave de robot" -#~ msgid "F17" -#~ msgstr "F17" +msgid "Write error" +msgstr "Erreur à l'écriture" -#~ msgid "F18" -#~ msgstr "F18" +msgid "Wrong type for the assignment" +msgstr "Mauvais type de résultat pour l'assignation" -#~ msgid "F19" -#~ msgstr "F19" +msgid "Yellow flag" +msgstr "Drapeau jaune" -#~ msgid "F2" -#~ msgstr "F2" +msgid "You can fly with the keys (\\key gup;) and (\\key gdown;)" +msgstr "" +"Il est possible de voler avec les touches (\\key gup;) et (\\key gdown;)" -#~ msgid "F20" -#~ msgstr "F20" +msgid "You can not carry a radioactive object" +msgstr "Vous ne pouvez pas transporter un objet radioactif" -#~ msgid "F3" -#~ msgstr "F3" +msgid "You can not carry an object under water" +msgstr "Vous ne pouvez pas transporter un objet sous l'eau" -#~ msgid "F4" -#~ msgstr "F4" +msgid "You found a usable object" +msgstr "Vous avez trouvé un objet utilisable" -#~ msgid "F5" -#~ msgstr "F5" +msgid "You must get on the spaceship to take off " +msgstr "Vous devez embarquer pour pouvoir décoller" -#~ msgid "F6" -#~ msgstr "F6" +msgid "Zoom mini-map" +msgstr "Zoom mini-carte" -#~ msgid "F7" -#~ msgstr "F7" +msgid "\\Blue flags" +msgstr "\\Drapeaux bleus" -#~ msgid "F8" -#~ msgstr "F8" +msgid "\\Eyeglasses 1" +msgstr "\\Lunettes 1" -#~ msgid "F9" -#~ msgstr "F9" +msgid "\\Eyeglasses 2" +msgstr "\\Lunettes 2" -#~ msgid "Help" -#~ msgstr "Help" +msgid "\\Eyeglasses 3" +msgstr "\\Lunettes 3" -#~ msgid "Home Key" -#~ msgstr "Home" +msgid "\\Eyeglasses 4" +msgstr "\\Lunettes 4" -#~ msgid "Insert" -#~ msgstr "Insert" +msgid "\\Eyeglasses 5" +msgstr "\\Lunettes 5" -#~ msgid "Left Windows" -#~ msgstr "Left Windows" +msgid "\\Face 1" +msgstr "\\Visage 1" -#~ msgid "Mini-map" -#~ msgstr "Mini-carte" +msgid "\\Face 2" +msgstr "\\Visage 2" -#~ msgid "Num Lock" -#~ msgstr "Num Lock" +msgid "\\Face 3" +msgstr "\\Visage 3" -#~ msgid "NumPad *" -#~ msgstr "NumPad *" +msgid "\\Face 4" +msgstr "\\Visage 4" -#~ msgid "NumPad +" -#~ msgstr "NumPad +" +msgid "\\Green flags" +msgstr "\\Drapeaux verts" -#~ msgid "NumPad -" -#~ msgstr "NumPad -" +msgid "\\New player name" +msgstr "\\Nom du joueur à créer" -#~ msgid "NumPad ." -#~ msgstr "NumPad ." +msgid "\\No eyeglasses" +msgstr "\\Pas de lunettes" -#~ msgid "NumPad /" -#~ msgstr "NumPad /" +msgid "\\Raise the pencil" +msgstr "\\Relève le crayon" -#~ msgid "NumPad 0" -#~ msgstr "NumPad 0" +msgid "\\Red flags" +msgstr "\\Drapeaux rouges" -#~ msgid "NumPad 1" -#~ msgstr "NumPad 1" +msgid "\\Return to COLOBOT" +msgstr "\\Retourner dans COLOBOT" -#~ msgid "NumPad 2" -#~ msgstr "NumPad 2" +msgid "\\SatCom on standby" +msgstr "\\Mettre le SatCom en veille" -#~ msgid "NumPad 3" -#~ msgstr "NumPad 3" +msgid "\\Start recording" +msgstr "\\Démarre l'enregistrement" -#~ msgid "NumPad 4" -#~ msgstr "NumPad 4" +msgid "\\Stop recording" +msgstr "\\Stoppe l'enregistrement" -#~ msgid "NumPad 5" -#~ msgstr "NumPad 5" +msgid "\\Turn left" +msgstr "\\Rotation à gauche" -#~ msgid "NumPad 6" -#~ msgstr "NumPad 6" +msgid "\\Turn right" +msgstr "\\Rotation à droite" -#~ msgid "NumPad 7" -#~ msgstr "NumPad 7" +msgid "\\Use the black pencil" +msgstr "\\Abaisse le crayon noir" -#~ msgid "NumPad 8" -#~ msgstr "NumPad 8" +msgid "\\Use the blue pencil" +msgstr "\\Abaisse le crayon bleu" -#~ msgid "NumPad 9" -#~ msgstr "NumPad 9" +msgid "\\Use the brown pencil" +msgstr "\\Abaisse le crayon brun" -#~ msgid "NumPad sep" -#~ msgstr "NumPad sep" +msgid "\\Use the green pencil" +msgstr "\\Abaisse le crayon vert" -#~ msgid "PA1" -#~ msgstr "PA1" +msgid "\\Use the orange pencil" +msgstr "\\Abaisse le crayon orange" -#~ msgid "Page Down" -#~ msgstr "Page Down" +msgid "\\Use the purple pencil" +msgstr "\\Abaisse le crayon violet" -#~ msgid "Page Up" -#~ msgstr "Page Up" +msgid "\\Use the red pencil" +msgstr "\\Abaisse le crayon rouge" -#~ msgid "Pause" -#~ msgstr "Pause" +msgid "\\Use the yellow pencil" +msgstr "\\Abaisse le crayon jaune" -#~ msgid "Play" -#~ msgstr "Play" +msgid "\\Violet flags" +msgstr "\\Drapeaux violets" -#~ msgid "Print Scrn" -#~ msgstr "Print Scrn" +msgid "\\Yellow flags" +msgstr "\\Drapeaux jaunes" -#~ msgid "Right Windows" -#~ msgstr "Right Windows" +msgid "\\b;Aliens\n" +msgstr "\\b;Listes des ennemis\n" -#~ msgid "Scroll" -#~ msgstr "Scroll" +msgid "\\b;Buildings\n" +msgstr "\\b;Listes des bâtiments\n" -#~ msgid "Select" -#~ msgstr "Select" +msgid "\\b;Error\n" +msgstr "\\b;Erreur\n" -#~ msgid "Space" -#~ msgstr "Espace" +msgid "\\b;List of objects\n" +msgstr "\\b;Listes des objets\n" -#~ msgid "Tab" -#~ msgstr "Tab" +msgid "\\b;Moveable objects\n" +msgstr "\\b;Listes des objets transportables\n" -#~ msgid "Wheel down" -#~ msgstr "Molette bas" +msgid "\\b;Robots\n" +msgstr "\\b;Listes des robots\n" -#~ msgid "Wheel up" -#~ msgstr "Molette haut" +msgid "\\c; (none)\\n;\n" +msgstr "\\c; (aucun)\\n;\n" -#~ msgid "Zoom" -#~ msgstr "Zoom" +msgid "www.epsitec.com" +msgstr "www.epsitec.com" diff --git a/po/pl.po b/po/pl.po index 8153992..6468e89 100644 --- a/po/pl.po +++ b/po/pl.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-10 16:50+0200\n" +"POT-Creation-Date: DATE\n" "PO-Revision-Date: 2014-07-10 15:30+0200\n" "Last-Translator: krzys_h \n" "Language-Team: LANGUAGE \n" @@ -21,1116 +21,737 @@ msgstr "" "X-Source-Language: en_US\n" "X-POOTLE-MTIME: 1405002617.000000\n" -msgid "Colobot rules!" -msgstr "Colobot rządzi!" +msgid " " +msgstr " " -msgid "SatCom" -msgstr "SatCom" +msgid " Challenges in the chapter:" +msgstr " Wyzwania w tym rozdziale:" -msgid "Maximize" -msgstr "Powiększ" +msgid " Chapters:" +msgstr " Rozdziały:" -msgid "Minimize" -msgstr "Pomniejsz" +msgid " Drivers:" +msgstr " Sterowniki:" -msgid "Normal size" -msgstr "Normalna wielkość" +msgid " Exercises in the chapter:" +msgstr " Ćwiczenia w tym rozdziale:" -msgid "Close" -msgstr "Zamknij" +msgid " Free game on this planet:" +msgstr " Swobodna gra na tej planecie:" -msgid "Program editor" -msgstr "Edytor programu" +msgid " Missions on this level:" +msgstr " Misje na tym poziomie:" -msgid "New" -msgstr "Nowy" +msgid " Missions on this planet:" +msgstr " Misje na tej planecie:" -msgid "Player" -msgstr "Gracz" +msgid " Planets:" +msgstr " Planety:" -msgid "New ..." -msgstr "Nowy ..." +msgid " Resolution:" +msgstr " Rozdzielczość:" + +msgid " Summary:" +msgstr " Streszczenie:" + +msgid " User levels:" +msgstr " Poziomy użytkownika:" msgid " or " msgstr " lub " -msgid "COLOBOT" -msgstr "COLOBOT" +msgid "\" [ \" expected" +msgstr "Oczekiwane \" [ \"" -msgid "COLOBOT: Gold Edition" -msgstr "COLOBOT: Gold Edition" +msgid "\" ] \" missing" +msgstr "Brak \" ] \"" -msgid "Programming exercises" -msgstr "Ćwiczenia programistyczne" +#, c-format +msgid "\"%s\" missing in this exercise" +msgstr "Brakuje \"%s\" w tym ćwiczeniu" -msgid "Challenges" -msgstr "Wyzwania" +msgid "..behind" +msgstr "..za" -msgid "Missions" -msgstr "Misje" +msgid "..in front" +msgstr "..przed" -msgid "Free game" -msgstr "Swobodna gra" +msgid "..power cell" +msgstr "..ogniwo elektryczne" -msgid "User levels" -msgstr "Poziomy użytkownika" +msgid "1) First click on the key you want to redefine." +msgstr "1) Najpierw kliknij klawisz, który chcesz przedefiniować." -msgid "Options" -msgstr "Opcje" +msgid "2) Then press the key you want to use instead." +msgstr "2) Następnie naciśnij klawisz, którego chcesz używać." -msgid "Player's name" -msgstr "Imię gracza" +msgid "3D sound\\3D positioning of the sound" +msgstr "Dźwięk 3D\\Przestrzenne pozycjonowanie dźwięków" -msgid "Customize your appearance" -msgstr "Dostosuj wygląd" +msgid "<< Back \\Back to the previous screen" +msgstr "<< Wstecz \\Wraca do poprzedniego ekranu" -msgid "Save the current mission" -msgstr "Zapisz bieżącą misję" +msgid "<<< Sorry; mission failed >>>" +msgstr "<<< Niestety, misja nie powiodła się >>>" -msgid "Load a saved mission" -msgstr "Wczytaj zapisaną misję" +msgid "<<< Well done; mission accomplished >>>" +msgstr "<<< Dobra robota, misja wypełniona >>>" -msgid " Chapters:" -msgstr " Rozdziały:" +msgid "A label must be followed by \"for\"; \"while\"; \"do\" or \"switch\"" +msgstr "Po etykiecie musi wystąpić \"for\", \"while\", \"do\" lub \"switch\"" -msgid " Planets:" -msgstr " Planety:" +msgid "A variable can not be declared twice" +msgstr "Zmienna nie może być zadeklarowana dwukrotnie" -msgid " User levels:" -msgstr " Poziomy użytkownika:" +msgid "Abort\\Abort the current mission" +msgstr "Przerwij\\Przerywa bieżącą misję" -msgid " Exercises in the chapter:" -msgstr " Ćwiczenia w tym rozdziale:" +msgid "Access beyond array limit" +msgstr "Dostęp poza tablicę" -msgid " Challenges in the chapter:" -msgstr " Wyzwania w tym rozdziale:" +msgid "" +"Access to solution\\Shows the solution (detailed instructions for missions)" +msgstr "" +"Dostęp do rozwiązania\\Pokazuje rozwiązanie (szczegółowe instrukcje " +"dotyczące misji)" -msgid " Missions on this planet:" -msgstr " Misje na tej planecie:" +msgid "Access to solutions\\Show program \"4: Solution\" in the exercises" +msgstr "Accčs aux solutions\\Programme \"4: Solution\" dans les exercices" -msgid " Free game on this planet:" -msgstr " Swobodna gra na tej planecie:" +msgid "Alien Queen" +msgstr "Królowa Obcych" -msgid " Missions on this level:" -msgstr " Misje na tym poziomie:" +msgid "Alien Queen killed" +msgstr "Królowa Obcych została zabita" -msgid " Free game on this chapter:" -msgstr " Swobodna gra na tej planecie:" +msgid "Already carrying something" +msgstr "Nie można nieść więcej przedmiotów" -msgid " Summary:" -msgstr " Streszczenie:" +msgid "Analysis already performed" +msgstr "Analiza została już wykonana" -msgid " Drivers:" -msgstr " Sterowniki:" +msgid "Analysis performed" +msgstr "Analiza wykonana" -msgid " Resolution:" -msgstr " Rozdzielczość:" +msgid "Analyzes only organic matter" +msgstr "Analizuje jedynie materię organiczną" -msgid "1) First click on the key you want to redefine." -msgstr "1) Najpierw kliknij klawisz, który chcesz przedefiniować." +msgid "Ant" +msgstr "Mrówka" -msgid "2) Then press the key you want to use instead." -msgstr "2) Następnie naciśnij klawisz, którego chcesz używać." +msgid "Ant fatally wounded" +msgstr "Mrówka śmiertelnie raniona" -msgid "Face type:" -msgstr "Rodzaj twarzy:" +msgid "Appearance\\Choose your appearance" +msgstr "Wygląd\\Wybierz swoją postać" -msgid "Eyeglasses:" -msgstr "Okulary:" +msgid "Apply changes\\Activates the changed settings" +msgstr "Zastosuj zmiany\\Aktywuje zmienione ustawienia" -msgid "Hair color:" -msgstr "Kolor włosów:" +msgid "Appropriate constructor missing" +msgstr "Brak odpowiedniego konstruktora" -msgid "Suit color:" -msgstr "Kolor skafandra:" +msgid "Assignment impossible" +msgstr "Przypisanie niemożliwe" -msgid "Strip color:" -msgstr "Kolor pasków:" +msgid "Autolab" +msgstr "Laboratorium" -msgid "Do you want to quit COLOBOT ?" -msgstr "Czy na pewno chcesz opuścić grę COLOBOT?" +msgid "Automatic indent\\When program editing" +msgstr "Automatyczne wcięcia\\Automatyczne wcięcia podczas edycji programu" -msgid "Quit\\Quit COLOBOT" -msgstr "Zakończ\\Kończy grę COLOBOT" +msgid "Back" +msgstr "Wstecz" -msgid "Quit the mission?" -msgstr "Opuścić misję?" +msgid "Background sound :\\Volume of audio tracks on the CD" +msgstr "Muzyka w tle :\\Głośność ścieżek dźwiękowych z płyty CD" -msgid "Abort\\Abort the current mission" -msgstr "Przerwij\\Przerywa bieżącą misję" +msgid "Backward (\\key down;)" +msgstr "Cofnij (\\key down;)" -msgid "Continue\\Continue the current mission" -msgstr "Kontynuuj\\Kontynuuje bieżącą misję" +msgid "Backward\\Moves backward" +msgstr "Wstecz\\Porusza do tyłu" -msgid "Continue\\Continue the game" -msgstr "Kontynuuj\\Kontynuuje grę" +msgid "Bad argument for \"new\"" +msgstr "Zły argument dla funkcji \"new\"" -msgid "Do you really want to destroy the selected building?" -msgstr "Czy na pewno chcesz zniszczyć zaznaczony budynek?" +msgid "Big indent\\Indent 2 or 4 spaces per level defined by braces" +msgstr "" +"Duże wcięcie\\2 lub 4 spacje wcięcia na każdy poziom zdefiniowany przez " +"klamry" -#, c-format -msgid "Do you want to delete %s's saved games? " -msgstr "Czy na pewno chcesz skasować zapisane gry gracza %s? " +msgid "Black box" +msgstr "Czarna skrzynka" -msgid "Delete" -msgstr "Usuń" +msgid "Blue" +msgstr "Niebieski" -msgid "Cancel" -msgstr "Anuluj" +msgid "Blue flag" +msgstr "Niebieska flaga" -msgid "LOADING" -msgstr "WCZYTYWANIE" +msgid "Bot destroyed" +msgstr "Robot zniszczony" -msgid "Keyword help(\\key cbot;)" -msgstr "Skróty klawiszowe (\\key cbot;)" +msgid "Bot factory" +msgstr "Fabryka robotów" -msgid "Compilation ok (0 errors)" -msgstr "Program skompilowany (0 błędów)" +msgid "Build a bot factory" +msgstr "Zbuduj fabrykę robotów" -msgid "Program finished" -msgstr "Program zakończony" +msgid "Build a converter" +msgstr "Zbuduj hutę" -msgid "\\b;List of objects\n" -msgstr "\\b;Lista obiektów\n" +msgid "Build a defense tower" +msgstr "Zbuduj wieżę obronną" -msgid "\\b;Robots\n" -msgstr "\\b;Roboty\n" +msgid "Build a derrick" +msgstr "Zbuduj kopalnię" -msgid "\\b;Buildings\n" -msgstr "\\b;Budynki\n" +msgid "Build a destroyer" +msgstr "Zbuduj niszczarkę" -msgid "\\b;Moveable objects\n" -msgstr "\\b;Obiekty ruchome\n" +msgid "Build a exchange post" +msgstr "Zbuduj stację przekaźnikową" -msgid "\\b;Aliens\n" -msgstr "\\b;Obcy\n" +msgid "Build a legged grabber" +msgstr "Zbuduj transporter na nogach" -msgid "\\c; (none)\\n;\n" -msgstr "" -"\\c; (brak)\\n" -";\n" +msgid "Build a legged orga shooter" +msgstr "Zbuduj działo organiczne na nogach" -msgid "\\b;Error\n" -msgstr "\\b;Błąd\n" - -msgid "" -"The list is only available if a \\l;radar station\\u object\\radar; is " -"working.\n" -msgstr "" -"Lista jest dostępna jedynie gdy działa \\l;stacja radarowa\\u object\\radar;." -"\n" - -msgid "Open" -msgstr "Otwórz" - -msgid "Save" -msgstr "Zapisz" - -#, c-format -msgid "Folder: %s" -msgstr "Folder: %s" - -msgid "Name:" -msgstr "Nazwa:" - -msgid "Folder:" -msgstr "Folder:" - -msgid "Private\\Private folder" -msgstr "Prywatny\\Folder prywatny" - -msgid "Public\\Common folder" -msgstr "Publiczny\\Folder ogólnodostępny" - -msgid "Developed by :" -msgstr "Twórcy:" - -msgid "www.epsitec.com" -msgstr "www.epsitec.com" - -msgid " " -msgstr " " - -msgid "Recorder" -msgstr "Recorder" - -msgid "OK" -msgstr "OK" - -msgid "Next" -msgstr "Następny" - -msgid "Previous" -msgstr "Poprzedni" - -msgid "Exercises\\Programming exercises" -msgstr "Ćwiczenia\\Ćwiczenia programistyczne" - -msgid "Challenges\\Programming challenges" -msgstr "Wyzwania\\Wyzwania programistyczne" - -msgid "Missions\\Select mission" -msgstr "Misje\\Wybierz misję" - -msgid "Free game\\Free game without a specific goal" -msgstr "Swobodna gra\\Swobodna gra bez konkretnych celów" - -msgid "User\\User levels" -msgstr "Poziomy\\Poziomy użytkownika" - -msgid "Change player\\Change player" -msgstr "Zmień gracza\\Zmień gracza" - -msgid "Options\\Preferences" -msgstr "Opcje\\Preferencje" - -msgid "Restart\\Restart the mission from the beginning" -msgstr "Uruchom ponownie\\Uruchamia ponownie misję od początku" - -msgid "Save\\Save the current mission " -msgstr "Zapisz\\Zapisuje bieżącą misję" - -msgid "Load\\Load a saved mission" -msgstr "Wczytaj\\Wczytuje zapisaną misję" - -msgid "\\Return to COLOBOT" -msgstr "\\Powróć do gry COLOBOT" - -msgid "<< Back \\Back to the previous screen" -msgstr "<< Wstecz \\Wraca do poprzedniego ekranu" - -msgid "Play\\Start mission!" -msgstr "Graj\\Rozpoczyna misję!" - -msgid "Device\\Driver and resolution settings" -msgstr "Urządzenie\\Ustawienia sterownika i rozdzielczości" - -msgid "Graphics\\Graphics settings" -msgstr "Grafika\\Ustawienia grafiki" - -msgid "Game\\Game settings" -msgstr "Gra\\Ustawienia gry" - -msgid "Controls\\Keyboard, joystick and mouse settings" -msgstr "Sterowanie\\Ustawienia klawiatury, joysticka i myszy" - -msgid "Sound\\Music and game sound volume" -msgstr "Dźwięk\\Głośność muzyki i dźwięków gry" - -msgid "Unit" -msgstr "Jednostka" - -msgid "Resolution" -msgstr "Rozdzielczość" - -msgid "Full screen\\Full screen or window mode" -msgstr "Pełny ekran\\Pełny ekran lub tryb okna" - -msgid "Apply changes\\Activates the changed settings" -msgstr "Zastosuj zmiany\\Aktywuje zmienione ustawienia" - -msgid "Robbie\\Your assistant" -msgstr "Robbie\\Twój asystent" - -msgid "Shadows\\Shadows on the ground" -msgstr "Cienie\\Cienie na ziemi" - -msgid "Marks on the ground\\Marks on the ground" -msgstr "Znaki na ziemi\\Znaki na ziemi" - -msgid "Dust\\Dust and dirt on bots and buildings" -msgstr "Kurz\\Kurz i bród na robotach i budynkach" - -msgid "Fog\\Fog" -msgstr "Mgła\\Mgła" - -msgid "Sunbeams\\Sunbeams in the sky" -msgstr "Promienie słoneczne\\Promienie słoneczne na niebie" - -msgid "Sky\\Clouds and nebulae" -msgstr "Niebo\\Chmury i mgławice" - -msgid "Planets and stars\\Astronomical objects in the sky" -msgstr "Planety i gwiazdy\\Obiekty astronomiczne na niebie" - -msgid "Dynamic lighting\\Mobile light sources" -msgstr "Dynamiczne oświetlenie\\Ruchome źródła światła" - -msgid "Number of particles\\Explosions, dust, reflections, etc." -msgstr "Liczba cząstek\\Wybuchy, kurz, odbicia, itp." - -msgid "Depth of field\\Maximum visibility" -msgstr "Głębokość pola\\Maksymalna widoczność" - -msgid "Details\\Visual quality of 3D objects" -msgstr "Szczegóły\\Jakość wizualna obiektów 3D" - -msgid "Textures\\Quality of textures " -msgstr "Tekstury\\Jakość tekstur " - -msgid "Num of decorative objects\\Number of purely ornamental objects" -msgstr "Ilość elementów dekoracyjnych \\Ilość elementów czysto dekoracyjnych" - -msgid "Particles in the interface\\Steam clouds and sparks in the interface" -msgstr "Cząstki w interfejsie\\Para i iskry z silników w interfejsie" - -msgid "Reflections on the buttons \\Shiny buttons" -msgstr "Odbicia na przyciskach \\Świecące przyciski" - -msgid "Help balloons\\Explain the function of the buttons" -msgstr "Dymki pomocy\\Wyjaśnia funkcje przycisków" - -msgid "Film sequences\\Films before and after the missions" -msgstr "Sekwencje filmowe\\Filmy przed rozpoczęciem i na zakończenie misji" - -msgid "Exit film\\Film at the exit of exercises" -msgstr "Końcowy film\\Film na zakończenie ćwiczeń" - -msgid "Friendly fire\\Your shooting can damage your own objects " -msgstr "Przyjacielski ogień\\Własne strzały uszkadzają Twoje obiekty" - -msgid "Scrolling\\Scrolling when the mouse touches right or left border" -msgstr "" -"Przewijanie\\Ekran jest przewijany gdy mysz dotknie prawej lub lewej jego " -"krawędzi" - -msgid "Mouse inversion X\\Inversion of the scrolling direction on the X axis" -msgstr "Odwrócenie myszy X\\Odwrócenie kierunków przewijania w poziomie" - -msgid "Mouse inversion Y\\Inversion of the scrolling direction on the Y axis" -msgstr "Odwrócenie myszy Y\\Odwrócenie kierunków przewijania w pionie" - -msgid "Quake at explosions\\The screen shakes at explosions" -msgstr "Wstrząsy przy wybuchach\\Ekran trzęsie się podczas wybuchów" - -msgid "Mouse shadow\\Gives the mouse a shadow" -msgstr "Cień kursora myszy\\Dodaje cień kursorowi myszy" - -msgid "Automatic indent\\When program editing" -msgstr "Automatyczne wcięcia\\Automatyczne wcięcia podczas edycji programu" - -msgid "Big indent\\Indent 2 or 4 spaces per level defined by braces" -msgstr "" -"Duże wcięcie\\2 lub 4 spacje wcięcia na każdy poziom zdefiniowany przez " -"klamry" - -msgid "Access to solutions\\Show program \"4: Solution\" in the exercises" -msgstr "Accčs aux solutions\\Programme \"4: Solution\" dans les exercices" - -msgid "Standard controls\\Standard key functions" -msgstr "Standardowa kontrola\\Standardowe klawisze funkcyjne" - -msgid "Turn left\\turns the bot to the left" -msgstr "Skręć w lewo\\Obraca robota w lewo" - -msgid "Turn right\\turns the bot to the right" -msgstr "Obróć w prawo\\Obraca robota w prawo" - -msgid "Forward\\Moves forward" -msgstr "Naprzód\\Porusza do przodu" - -msgid "Backward\\Moves backward" -msgstr "Wstecz\\Porusza do tyłu" - -msgid "Climb\\Increases the power of the jet" -msgstr "W górę\\Zwiększa moc silnika" - -msgid "Descend\\Reduces the power of the jet" -msgstr "W dół\\Zmniejsza moc silnika" - -msgid "Change camera\\Switches between onboard camera and following camera" -msgstr "Zmień kamerę\\Przełącza pomiędzy kamerą pokładową i śledzącą" - -msgid "Previous object\\Selects the previous object" -msgstr "Poprzedni obiekt\\Zaznacz poprzedni obiekt" - -msgid "" -"Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)" -msgstr "" -"Standardowa akcja\\Standardowa akcja robota (podnieś/upuść, strzelaj, " -"szukaj, itp.)" - -msgid "Camera closer\\Moves the camera forward" -msgstr "Kamera bliżej\\Przybliża kamerę" - -msgid "Camera back\\Moves the camera backward" -msgstr "Kamera dalej\\Oddala kamerę" - -msgid "Next object\\Selects the next object" -msgstr "Następny obiekt\\Zaznacza następny obiekt" - -msgid "Select the astronaut\\Selects the astronaut" -msgstr "Zaznacz astronautę\\Zaznacza astronautę" - -msgid "Quit\\Quit the current mission or exercise" -msgstr "Zakończ\\Kończy bieżącą misję lub ćwiczenie" - -msgid "Instructions\\Shows the instructions for the current mission" -msgstr "Rozkazy\\Pokazuje rozkazy dotyczące bieżącej misji" - -msgid "Programming help\\Gives more detailed help with programming" -msgstr "Podręcznik programowania\\Dostarcza szczegółową pomoc w programowaniu" - -msgid "Key word help\\More detailed help about key words" -msgstr "" -"Pomoc dot. słów kluczowych\\Dokładniejsza pomoc na temat słów kluczowych" - -msgid "Origin of last message\\Shows where the last message was sent from" -msgstr "" -"Miejsce nadania wiadomości\\Pokazuje skąd została wysłana ostatnia wiadomość" - -msgid "Speed 1.0x\\Normal speed" -msgstr "Prędkość 1,0x\\Prędkość normalna" - -msgid "Speed 1.5x\\1.5 times faster" -msgstr "Prędkość 1,5x\\1,5 raza szybciej" - -msgid "Speed 2.0x\\Double speed" -msgstr "Prędkość 2,0x\\Dwa razy szybciej" - -msgid "Speed 3.0x\\Three times faster" -msgstr "Prędkość 3,0x\\Trzy razy szybciej" - -msgid "Sound effects:\\Volume of engines, voice, shooting, etc." -msgstr "Efekty dźwiękowe:\\Głośność silników, głosów, strzałów, itp." - -msgid "Background sound :\\Volume of audio tracks on the CD" -msgstr "Muzyka w tle :\\Głośność ścieżek dźwiękowych z płyty CD" - -msgid "3D sound\\3D positioning of the sound" -msgstr "Dźwięk 3D\\Przestrzenne pozycjonowanie dźwięków" - -msgid "Lowest\\Minimum graphic quality (highest frame rate)" -msgstr "" -"Najniższa\\Minimalna jakość grafiki (najwyższa częstotliwość odświeżania)" - -msgid "Normal\\Normal graphic quality" -msgstr "Normalna\\Normalna jakość grafiki" - -msgid "Highest\\Highest graphic quality (lowest frame rate)" -msgstr "" -"Najwyższa\\Maksymalna jakość grafiki (najniższa częstotliwość odświeżania)" - -msgid "Mute\\No sound" -msgstr "Cisza\\Brak dźwięków" - -msgid "Normal\\Normal sound volume" -msgstr "Normalne\\Normalna głośność dźwięków" - -msgid "Use a joystick\\Joystick or keyboard" -msgstr "Używaj joysticka\\Joystick lub klawiatura" - -msgid "" -"Access to solution\\Shows the solution (detailed instructions for missions)" -msgstr "" -"Dostęp do rozwiązania\\Pokazuje rozwiązanie (szczegółowe instrukcje " -"dotyczące misji)" - -msgid "\\New player name" -msgstr "\\Nowe imię gracza" - -msgid "OK\\Choose the selected player" -msgstr "OK\\Wybiera zaznaczonego gracza" - -msgid "Cancel\\Keep current player name" -msgstr "Anuluj\\Zachowuje bieżące imię gracza" - -msgid "Delete player\\Deletes the player from the list" -msgstr "Usuń gracza\\Usuwa gracza z listy" - -msgid "Player name" -msgstr "Imię gracza" - -msgid "Save\\Saves the current mission" -msgstr "Zapisz\\Zapisuje bieżącą misję" - -msgid "Load\\Loads the selected mission" -msgstr "Wczytaj\\Wczytuje zaznaczoną misję" - -msgid "List of saved missions" -msgstr "Lista zapisanych misji" - -msgid "Filename:" -msgstr "Nazwa pliku:" - -msgid "Mission name" -msgstr "Nazwa misji" - -msgid "Photography" -msgstr "Fotografia" - -msgid "Delete\\Deletes the selected file" -msgstr "Usuń\\Usuwa zaznaczony plik" - -msgid "Appearance\\Choose your appearance" -msgstr "Wygląd\\Wybierz swoją postać" - -msgid "Standard\\Standard appearance settings" -msgstr "Standardowe\\Standardowe ustawienia wyglądu" - -msgid "Head\\Face and hair" -msgstr "Głowa\\Twarz i włosy" - -msgid "Suit\\Astronaut suit" -msgstr "Skafander\\Skafander astronauty" - -msgid "\\Turn left" -msgstr "\\Obróć w lewo" - -msgid "\\Turn right" -msgstr "\\Obróć w prawo" - -msgid "Red" -msgstr "Czerwony" - -msgid "Green" -msgstr "Zielony" - -msgid "Blue" -msgstr "Niebieski" - -msgid "\\Face 1" -msgstr "\\Twarz 1" - -msgid "\\Face 4" -msgstr "\\Twarz 4" - -msgid "\\Face 3" -msgstr "\\Twarz 3" +msgid "Build a legged shooter" +msgstr "Zbuduj działo na nogach" -msgid "\\Face 2" -msgstr "\\Twarz 2" +msgid "Build a legged sniffer" +msgstr "Zbuduj szperacz na nogach" -msgid "\\No eyeglasses" -msgstr "\\Bez okularów" +msgid "Build a lightning conductor" +msgstr "Zbuduj odgromnik" -msgid "\\Eyeglasses 1" -msgstr "\\Okulary 1" +msgid "Build a nuclear power plant" +msgstr "Zbuduj elektrownię atomową" -msgid "\\Eyeglasses 2" -msgstr "\\Okulary 2" +msgid "Build a phazer shooter" +msgstr "Zbuduj działo fazowe" -msgid "\\Eyeglasses 3" -msgstr "\\Okulary 3" +msgid "Build a power cell factory" +msgstr "Zbuduj fabrykę ogniw elektrycznych" -msgid "\\Eyeglasses 4" -msgstr "\\Okulary 4" +msgid "Build a power station" +msgstr "Zbuduj elektrownię" -msgid "\\Eyeglasses 5" -msgstr "\\Okulary 5" +msgid "Build a radar station" +msgstr "Zbuduj stację radarową" -msgid "Previous selection (\\key desel;)" -msgstr "Poprzednie zaznaczenie (\\key desel;)" +msgid "Build a recycler" +msgstr "Zbuduj robota recyklera" -msgid "Turn left (\\key left;)" -msgstr "Skręć w lewo (\\key left;)" +msgid "Build a repair center" +msgstr "Zbuduj warsztat" -msgid "Turn right (\\key right;)" -msgstr "Skręć w prawo (\\key right;)" +msgid "Build a research center" +msgstr "Zbuduj centrum badawcze" -msgid "Forward (\\key up;)" -msgstr "Naprzód (\\key up;)" +msgid "Build a shielder" +msgstr "Zbuduj robota osłaniajacza" -msgid "Backward (\\key down;)" -msgstr "Cofnij (\\key down;)" +msgid "Build a subber" +msgstr "Zbuduj robota nurka" -msgid "Up (\\key gup;)" -msgstr "Góra (\\key gup;)" +msgid "Build a thumper" +msgstr "Zbuduj robota uderzacza" -msgid "Down (\\key gdown;)" -msgstr "Dół (\\key gdown;)" +msgid "Build a tracked grabber" +msgstr "Zbuduj transporter na gąsienicach" -msgid "Grab or drop (\\key action;)" -msgstr "Podnieś lub upuść (\\key action;)" +msgid "Build a tracked orga shooter" +msgstr "Zbuduj działo organiczne na gąsienicach" -msgid "..in front" -msgstr "..przed" +msgid "Build a tracked shooter" +msgstr "Zbuduj działo na gąsienicach" -msgid "..behind" -msgstr "..za" +msgid "Build a tracked sniffer" +msgstr "Zbuduj szperacz na gąsienicach" -msgid "..power cell" -msgstr "..ogniwo elektryczne" +msgid "Build a wheeled grabber" +msgstr "Zbuduj transporter na kołach" -msgid "Instructions for the mission (\\key help;)" -msgstr "Rozkazy dotyczące misji (\\key help;)" +msgid "Build a wheeled orga shooter" +msgstr "Zbuduj działo organiczne na kołach" -msgid "Take off to finish the mission" -msgstr "Odleć, aby zakończyć misję" +msgid "Build a wheeled shooter" +msgstr "Zbuduj działo na kołach" -msgid "Destroy" -msgstr "Zniszcz" +msgid "Build a wheeled sniffer" +msgstr "Zbuduj szperacz na kołach" -msgid "Build a derrick" -msgstr "Zbuduj kopalnię" +msgid "Build a winged grabber" +msgstr "Zbuduj transporter latający" -msgid "Build a power station" -msgstr "Zbuduj elektrownię" +msgid "Build a winged orga shooter" +msgstr "Zbuduj latające działo organiczne" -msgid "Build a bot factory" -msgstr "Zbuduj fabrykę robotów" +msgid "Build a winged shooter" +msgstr "Zbuduj działo latające" -msgid "Build a repair center" -msgstr "Zbuduj warsztat" +msgid "Build a winged sniffer" +msgstr "Zbuduj szperacz latający" -msgid "Build a converter" -msgstr "Zbuduj hutę" +msgid "Build an autolab" +msgstr "Zbuduj laboratorium" -msgid "Build a defense tower" -msgstr "Zbuduj wieżę obronną" +msgid "Building completed" +msgstr "Budowa zakończona" -msgid "Build a research center" -msgstr "Zbuduj centrum badawcze" +msgid "Building destroyed" +msgstr "Budynek zniszczony" -msgid "Build a radar station" -msgstr "Zbuduj stację radarową" +msgid "Building too close" +msgstr "Budynek za blisko" -msgid "Build a power cell factory" -msgstr "Zbuduj fabrykę ogniw elektrycznych" +msgid "Button %1" +msgstr "Przycisk %1" -msgid "Build an autolab" -msgstr "Zbuduj laboratorium" +msgid "COLOBOT" +msgstr "COLOBOT" -msgid "Build a nuclear power plant" -msgstr "Zbuduj elektrownię atomową" +msgid "COLOBOT: Gold Edition" +msgstr "COLOBOT: Gold Edition" -msgid "Build a lightning conductor" -msgstr "Zbuduj odgromnik" +msgid "Calling an unknown function" +msgstr "Odwołanie do nieznanej funkcji" -msgid "Build a exchange post" -msgstr "Zbuduj stację przekaźnikową" +msgid "Camera (\\key camera;)" +msgstr "Kamera (\\key camera;)" -msgid "Build a destroyer" -msgstr "Zbuduj niszczarkę" +msgid "Camera awayest" +msgstr "Camera awayest" -msgid "Show if the ground is flat" -msgstr "Pokaż czy teren jest płaski" +msgid "Camera back\\Moves the camera backward" +msgstr "Kamera dalej\\Oddala kamerę" -msgid "Plant a flag" -msgstr "Postaw flagę" +msgid "Camera closer\\Moves the camera forward" +msgstr "Kamera bliżej\\Przybliża kamerę" -msgid "Remove a flag" -msgstr "Usuń flagę" +msgid "Camera nearest" +msgstr "Camera nearest" -msgid "\\Blue flags" -msgstr "\\Niebieskie flagi" +msgid "Camera to left" +msgstr "Camera to left" -msgid "\\Red flags" -msgstr "\\Czerwone flagi" +msgid "Camera to right" +msgstr "Camera to right" -msgid "\\Green flags" -msgstr "\\Zielone flagi" +msgid "Can not create this; there are too many objects" +msgstr "Nie można tego utworzyć, za dużo obiektów" -msgid "\\Yellow flags" -msgstr "\\Żółte flagi" +msgid "Can not produce not researched object" +msgstr "Nie można wyprodukować nie wynalezionego obiektu" -msgid "\\Violet flags" -msgstr "\\Fioletowe flagi" +msgid "Can not produce this object in this mission" +msgstr "Nie można utworzyć tego obiektu w tej misji" -msgid "Build a winged grabber" -msgstr "Zbuduj transporter latający" +msgid "Can't open file" +msgstr "Nie można otworzyć pliku" -msgid "Build a tracked grabber" -msgstr "Zbuduj transporter na gąsienicach" +msgid "Cancel" +msgstr "Anuluj" -msgid "Build a wheeled grabber" -msgstr "Zbuduj transporter na kołach" +msgid "Cancel\\Cancel all changes" +msgstr "Anuluj\\Pomija wszystkie zmiany" -msgid "Build a legged grabber" -msgstr "Zbuduj transporter na nogach" +msgid "Cancel\\Keep current player name" +msgstr "Anuluj\\Zachowuje bieżące imię gracza" -msgid "Build a winged shooter" -msgstr "Zbuduj działo latające" +msgid "Challenges" +msgstr "Wyzwania" -msgid "Build a tracked shooter" -msgstr "Zbuduj działo na gąsienicach" +msgid "Challenges\\Programming challenges" +msgstr "Wyzwania\\Wyzwania programistyczne" -msgid "Build a wheeled shooter" -msgstr "Zbuduj działo na kołach" +msgid "Change camera\\Switches between onboard camera and following camera" +msgstr "Zmień kamerę\\Przełącza pomiędzy kamerą pokładową i śledzącą" -msgid "Build a legged shooter" -msgstr "Zbuduj działo na nogach" +msgid "Change player\\Change player" +msgstr "Zmień gracza\\Zmień gracza" -msgid "Build a winged orga shooter" -msgstr "Zbuduj latające działo organiczne" +msgid "Checkpoint" +msgstr "Punkt kontrolny" -msgid "Build a tracked orga shooter" -msgstr "Zbuduj działo organiczne na gąsienicach" +msgid "Checkpoint crossed" +msgstr "Przekroczono punkt kontrolny" -msgid "Build a wheeled orga shooter" -msgstr "Zbuduj działo organiczne na kołach" +msgid "Climb\\Increases the power of the jet" +msgstr "W górę\\Zwiększa moc silnika" -msgid "Build a legged orga shooter" -msgstr "Zbuduj działo organiczne na nogach" +msgid "Close" +msgstr "Zamknij" -msgid "Build a winged sniffer" -msgstr "Zbuduj szperacz latający" +msgid "Closing bracket missing " +msgstr "Brak nawiasu zamykającego" -msgid "Build a tracked sniffer" -msgstr "Zbuduj szperacz na gąsienicach" +msgid "Colobot rules!" +msgstr "Colobot rządzi!" -msgid "Build a wheeled sniffer" -msgstr "Zbuduj szperacz na kołach" +msgid "Command line" +msgstr "Linia polecenia" -msgid "Build a legged sniffer" -msgstr "Zbuduj szperacz na nogach" +msgid "Compass" +msgstr "Kompas" -msgid "Build a thumper" -msgstr "Zbuduj robota uderzacza" +msgid "Compilation ok (0 errors)" +msgstr "Program skompilowany (0 błędów)" -msgid "Build a phazer shooter" -msgstr "Zbuduj działo fazowe" +msgid "Compile" +msgstr "Kompiluj" -msgid "Build a recycler" -msgstr "Zbuduj robota recyklera" +msgid "Continue" +msgstr "Kontynuuj" -msgid "Build a shielder" -msgstr "Zbuduj robota osłaniajacza" +msgid "Continue\\Continue the current mission" +msgstr "Kontynuuj\\Kontynuuje bieżącą misję" -msgid "Build a subber" -msgstr "Zbuduj robota nurka" +msgid "Continue\\Continue the game" +msgstr "Kontynuuj\\Kontynuuje grę" -msgid "Run research program for tracked bots" -msgstr "Rozpocznij prace badawcze nad transporterem na gąsienicach" +msgid "Controls\\Keyboard, joystick and mouse settings" +msgstr "Sterowanie\\Ustawienia klawiatury, joysticka i myszy" -msgid "Run research program for winged bots" -msgstr "Rozpocznij prace badawcze nad transporterem latającym" +msgid "Converts ore to titanium" +msgstr "Przetop rudę na tytan" -msgid "Run research program for thumper" -msgstr "Rozpocznij prace badawcze nad robotem uderzaczem" +msgid "Copy" +msgstr "Kopiuj" -msgid "Run research program for shooter" -msgstr "Rozpocznij prace badawcze nad działem" +msgid "Copy (Ctrl+c)" +msgstr "Kopiuj (Ctrl+C)" -msgid "Run research program for defense tower" -msgstr "Rozpocznij prace badawcze nad wieżą obronną" +msgid "Current mission saved" +msgstr "Bieżąca misja zapisana" -msgid "Run research program for phazer shooter" -msgstr "Rozpocznij prace badawcze nad działem fazowym" +msgid "Customize your appearance" +msgstr "Dostosuj wygląd" -msgid "Run research program for shielder" -msgstr "Rozpocznij prace badawcze nad robotem osłaniaczem" +msgid "Cut (Ctrl+x)" +msgstr "Wytnij (Ctrl+X)" -msgid "Run research program for nuclear power" -msgstr "Rozpocznij prace badawcze nad energią atomową" +msgid "Defense tower" +msgstr "Wieża obronna" -msgid "Run research program for legged bots" -msgstr "Rozpocznij prace badawcze nad transporterem na nogach" +msgid "Delete" +msgstr "Usuń" -msgid "Run research program for orga shooter" -msgstr "Rozpocznij prace badawcze nad działem organicznym" +msgid "Delete player\\Deletes the player from the list" +msgstr "Usuń gracza\\Usuwa gracza z listy" -msgid "Return to start" -msgstr "Powrót do początku" +msgid "Delete\\Deletes the selected file" +msgstr "Usuń\\Usuwa zaznaczony plik" -msgid "Sniff (\\key action;)" -msgstr "Szukaj (\\key action;)" +msgid "Depth of field\\Maximum visibility" +msgstr "Głębokość pola\\Maksymalna widoczność" -msgid "Thump (\\key action;)" -msgstr "Uderz (\\key action;)" +msgid "Derrick" +msgstr "Kopalnia" -msgid "Shoot (\\key action;)" -msgstr "Strzelaj (\\key action;)" +msgid "Descend\\Reduces the power of the jet" +msgstr "W dół\\Zmniejsza moc silnika" -msgid "Explode (\\key action;)" -msgstr "Wysadź (\\key action;)" +msgid "Destroy" +msgstr "Zniszcz" -msgid "Recycle (\\key action;)" -msgstr "Odzyskaj (\\key action;)" +msgid "Destroy the building" +msgstr "Zniszcz budynek" -msgid "Extend shield (\\key action;)" -msgstr "Rozszerz osłonę (\\key action;)" +msgid "Destroyer" +msgstr "Destroyer" -msgid "Withdraw shield (\\key action;)" -msgstr "Wyłącz osłonę (\\key action;)" +msgid "Details\\Visual quality of 3D objects" +msgstr "Szczegóły\\Jakość wizualna obiektów 3D" -msgid "Shield radius" -msgstr "Zasięg osłony" +msgid "Developed by :" +msgstr "Twórcy:" -msgid "Execute the selected program" -msgstr "Wykonaj zaznaczony program" +msgid "Device\\Driver and resolution settings" +msgstr "Urządzenie\\Ustawienia sterownika i rozdzielczości" -msgid "Edit the selected program" -msgstr "Edytuj zaznaczony program" +msgid "Dividing by zero" +msgstr "Dzielenie przez zero" -msgid "\\SatCom on standby" -msgstr "\\Przełącz przekaźnik SatCom w stan gotowości" +msgid "Do not use in this exercise" +msgstr "Do not use in this exercise" -msgid "Destroy the building" -msgstr "Zniszcz budynek" +msgid "Do you really want to destroy the selected building?" +msgstr "Czy na pewno chcesz zniszczyć zaznaczony budynek?" -msgid "Energy level" -msgstr "Poziom energii" +#, c-format +msgid "Do you want to delete %s's saved games? " +msgstr "Czy na pewno chcesz skasować zapisane gry gracza %s? " -msgid "Shield level" -msgstr "Poziom osłony" +msgid "Do you want to quit COLOBOT ?" +msgstr "Czy na pewno chcesz opuścić grę COLOBOT?" -msgid "Jet temperature" -msgstr "Temperatura silnika" +msgid "Doors blocked by a robot or another object " +msgstr "Drzwi zablokowane przez robota lub inny obiekt " -msgid "Still working ..." -msgstr "Wciąż pracuje..." +msgid "Down (\\key gdown;)" +msgstr "Dół (\\key gdown;)" -msgid "Number of insects detected" -msgstr "Liczba wykrytych insektów" +msgid "Drawer bot" +msgstr "Drawer bot" -msgid "Transmitted information" -msgstr "Przesłane informacje" +msgid "Dust\\Dust and dirt on bots and buildings" +msgstr "Kurz\\Kurz i bród na robotach i budynkach" -msgid "Compass" -msgstr "Kompas" +msgid "Dynamic lighting\\Mobile light sources" +msgstr "Dynamiczne oświetlenie\\Ruchome źródła światła" -msgid "Zoom mini-map" -msgstr "Powiększenie mapki" +msgid "Edit the selected program" +msgstr "Edytuj zaznaczony program" -msgid "Camera (\\key camera;)" -msgstr "Kamera (\\key camera;)" +msgid "Egg" +msgstr "Jajo" -msgid "Camera to left" -msgstr "Camera to left" +msgid "End of block missing" +msgstr "Brak końca bloku" -msgid "Camera to right" -msgstr "Camera to right" +msgid "Energy deposit (site for power station)" +msgstr "Źródło energii (miejsce na elektrownię)" -msgid "Camera nearest" -msgstr "Camera nearest" +msgid "Energy level" +msgstr "Poziom energii" -msgid "Camera awayest" -msgstr "Camera awayest" +msgid "Engineer" +msgstr "Inżynier" -msgid "Help about selected object" -msgstr "Pomoc na temat zaznaczonego obiektu" +msgid "Error in instruction move" +msgstr "Błąd w poleceniu ruchu" -msgid "Show the solution" -msgstr "Pokaż rozwiązanie" +msgid "Execute the selected program" +msgstr "Wykonaj zaznaczony program" -msgid "Switch bots <-> buildings" -msgstr "Przełącz roboty <-> budynki" +msgid "Execute/stop" +msgstr "Wykonaj/Zatrzymaj" -msgid "Show the range" -msgstr "Pokaż zasięg" +msgid "Exercises\\Programming exercises" +msgstr "Ćwiczenia\\Ćwiczenia programistyczne" -msgid "\\Raise the pencil" -msgstr "\\Relčve le crayon" +msgid "Exit film\\Film at the exit of exercises" +msgstr "Końcowy film\\Film na zakończenie ćwiczeń" -msgid "\\Use the black pencil" -msgstr "\\Abaisse le crayon noir" +msgid "Explode (\\key action;)" +msgstr "Wysadź (\\key action;)" -msgid "\\Use the yellow pencil" -msgstr "\\Abaisse le crayon jaune" +msgid "Explosive" +msgstr "Materiały wybuchowe" -msgid "\\Use the orange pencil" -msgstr "\\Abaisse le crayon orange" +msgid "Extend shield (\\key action;)" +msgstr "Rozszerz osłonę (\\key action;)" -msgid "\\Use the red pencil" -msgstr "\\Abaisse le crayon rouge" +msgid "Eyeglasses:" +msgstr "Okulary:" -msgid "\\Use the purple pencil" -msgstr "\\Abaisse le crayon violet" +msgid "Face type:" +msgstr "Rodzaj twarzy:" -msgid "\\Use the blue pencil" -msgstr "\\Abaisse le crayon bleu" +msgid "File not open" +msgstr "Plik nie jest otwarty" -msgid "\\Use the green pencil" -msgstr "\\Abaisse le crayon vert" +msgid "Filename:" +msgstr "Nazwa pliku:" -msgid "\\Use the brown pencil" -msgstr "\\Abaisse le crayon brun" +msgid "Film sequences\\Films before and after the missions" +msgstr "Sekwencje filmowe\\Filmy przed rozpoczęciem i na zakończenie misji" -msgid "\\Start recording" -msgstr "\\Démarre l'enregistrement" +msgid "Finish" +msgstr "Koniec" -msgid "\\Stop recording" -msgstr "\\Stoppe l'enregistrement" +msgid "Fixed mine" +msgstr "Mina" -msgid "Show the place" -msgstr "Pokaż miejsce" +msgid "Flat ground not large enough" +msgstr "Za mało płaskiego terenu" -msgid "Continue" -msgstr "Kontynuuj" +msgid "Fog\\Fog" +msgstr "Mgła\\Mgła" -msgid "Command line" -msgstr "Linia polecenia" +msgid "Folder:" +msgstr "Folder:" -msgid "Game speed" -msgstr "Prędkość gry" +#, c-format +msgid "Folder: %s" +msgstr "Folder: %s" -msgid "Back" -msgstr "Wstecz" +msgid "Font size" +msgstr "Wielkość czcionki" msgid "Forward" msgstr "Naprzód" -msgid "Home" -msgstr "Początek" - -msgid "Copy" -msgstr "Kopiuj" - -msgid "Size 1" -msgstr "Wielkość 1" - -msgid "Size 2" -msgstr "Wielkość 2" +msgid "Forward (\\key up;)" +msgstr "Naprzód (\\key up;)" -msgid "Size 3" -msgstr "Wielkość 3" +msgid "Forward\\Moves forward" +msgstr "Naprzód\\Porusza do przodu" -msgid "Size 4" -msgstr "Wielkość 4" +msgid "Found a site for a derrick" +msgstr "Znaleziono miejsce na kopalnię" -msgid "Size 5" -msgstr "Wielkość 5" +msgid "Found a site for power station" +msgstr "Znaleziono miejsce na elektrownię" -msgid "Instructions from Houston" -msgstr "Rozkazy z Houston" +msgid "Found key A (site for derrick)" +msgstr "Znaleziono klucz A (miejsce na kopalnię)" -msgid "Satellite report" -msgstr "Raport z satelity" +msgid "Found key B (site for derrick)" +msgstr "Znaleziono klucz B (miejsce na kopalnię)" -msgid "Programs dispatched by Houston" -msgstr "Program dostarczony z Houston" +msgid "Found key C (site for derrick)" +msgstr "Znaleziono klucz C (miejsce na kopalnię)" -msgid "List of objects" -msgstr "Lista obiektów" +msgid "Found key D (site for derrick)" +msgstr "Znaleziono klucz D (miejsce na kopalnię)" -msgid "Programming help" -msgstr "Podręcznik programowania" +msgid "Free game" +msgstr "Swobodna gra" -msgid "Solution" -msgstr "Rozwiązanie" +msgid "Free game\\Free game without a specific goal" +msgstr "Swobodna gra\\Swobodna gra bez konkretnych celów" -msgid "OK\\Close program editor and return to game" -msgstr "OK\\Zamyka edytor programu i powraca do gry" +msgid "Friendly fire\\Your shooting can damage your own objects " +msgstr "Przyjacielski ogień\\Własne strzały uszkadzają Twoje obiekty" -msgid "Cancel\\Cancel all changes" -msgstr "Anuluj\\Pomija wszystkie zmiany" +msgid "Full screen\\Full screen or window mode" +msgstr "Pełny ekran\\Pełny ekran lub tryb okna" -msgid "Open (Ctrl+o)" -msgstr "Otwórz (Ctrl+O)" +msgid "Function already exists" +msgstr "Funkcja już istnieje" -msgid "Save (Ctrl+s)" -msgstr "Zapisz (Ctrl+S)" +msgid "Function name missing" +msgstr "Brakująca nazwa funkcji" -msgid "Undo (Ctrl+z)" -msgstr "Cofnij (Ctrl+Z)" +msgid "Game speed" +msgstr "Prędkość gry" -msgid "Cut (Ctrl+x)" -msgstr "Wytnij (Ctrl+X)" +msgid "Game\\Game settings" +msgstr "Gra\\Ustawienia gry" -msgid "Copy (Ctrl+c)" -msgstr "Kopiuj (Ctrl+C)" +msgid "Gantry crane" +msgstr "Żuraw przesuwalny" -msgid "Paste (Ctrl+v)" -msgstr "Wklej (Ctrl+V)" +msgid "Goto: destination occupied" +msgstr "Goto: miejsce docelowe zajęte" -msgid "Font size" -msgstr "Wielkość czcionki" +msgid "Goto: inaccessible destination" +msgstr "Goto: miejsce docelowe niedostępne" -msgid "Instructions (\\key help;)" -msgstr "Rozkazy (\\key help;)" +msgid "Grab or drop (\\key action;)" +msgstr "Podnieś lub upuść (\\key action;)" -msgid "Programming help (\\key prog;)" -msgstr "Podręcznik programowania (\\key prog;)" +msgid "Graphics\\Graphics settings" +msgstr "Grafika\\Ustawienia grafiki" -msgid "Compile" -msgstr "Kompiluj" +msgid "Green" +msgstr "Zielony" -msgid "Execute/stop" -msgstr "Wykonaj/Zatrzymaj" +msgid "Green flag" +msgstr "Zielona flaga" -msgid "Pause/continue" -msgstr "Pauza/Kontynuuj" +msgid "Ground inappropriate" +msgstr "Nieodpowiedni teren" -msgid "One step" -msgstr "Jeden krok" +msgid "Ground not flat enough" +msgstr "Powierzchnia nie jest wystarczająco płaska" -msgid "Gantry crane" -msgstr "Żuraw przesuwalny" +msgid "Hair color:" +msgstr "Kolor włosów:" -msgid "Spaceship" -msgstr "Statek kosmiczny" +msgid "Head\\Face and hair" +msgstr "Głowa\\Twarz i włosy" -msgid "Derrick" -msgstr "Kopalnia" +msgid "Help about selected object" +msgstr "Pomoc na temat zaznaczonego obiektu" -msgid "Bot factory" -msgstr "Fabryka robotów" +msgid "Help balloons\\Explain the function of the buttons" +msgstr "Dymki pomocy\\Wyjaśnia funkcje przycisków" -msgid "Repair center" -msgstr "Warsztat" +msgid "Highest\\Highest graphic quality (lowest frame rate)" +msgstr "" +"Najwyższa\\Maksymalna jakość grafiki (najniższa częstotliwość odświeżania)" -msgid "Destroyer" -msgstr "Destroyer" +msgid "Home" +msgstr "Początek" -msgid "Power station" -msgstr "Stacja energetyczna" +msgid "Houston Mission Control" +msgstr "Centrum Kontroli Misji w Houston" -msgid "Converts ore to titanium" -msgstr "Przetop rudę na tytan" +msgid "Illegal object" +msgstr "Nieprawidłowy obiekt" -msgid "Defense tower" -msgstr "Wieża obronna" +msgid "Impossible under water" +msgstr "Niemożliwe pod wodą" -msgid "Nest" -msgstr "Gniazdo" +msgid "Impossible when carrying an object" +msgstr "Niemożliwe podczas przenoszenia przedmiotu" -msgid "Research center" -msgstr "Centrum badawcze" +msgid "Impossible when flying" +msgstr "Niemożliwe podczas lotu" -msgid "Radar station" -msgstr "Stacja radarowa" +msgid "Impossible when moving" +msgstr "Niemożliwe podczas ruchu" -msgid "Information exchange post" -msgstr "Stacja przekaźnikowa informacji" +msgid "Impossible when swimming" +msgstr "Niemożliwe podczas pływania" -msgid "Power cell factory" -msgstr "Fabryka ogniw elektrycznych" +msgid "Inappropriate bot" +msgstr "Nieodpowiedni robot" -msgid "Autolab" -msgstr "Laboratorium" +msgid "Inappropriate cell type" +msgstr "Nieodpowiedni rodzaj ogniw" -msgid "Nuclear power station" -msgstr "Elektrownia atomowa" +msgid "Inappropriate object" +msgstr "Nieodpowiedni obiekt" -msgid "Lightning conductor" -msgstr "Odgromnik" +msgid "Incorrect index type" +msgstr "Nieprawidłowy typ indeksu" -msgid "Vault" -msgstr "Skrytka" +msgid "Infected by a virus; temporarily out of order" +msgstr "Zainfekowane wirusem, chwilowo niesprawne" -msgid "Houston Mission Control" -msgstr "Centrum Kontroli Misji w Houston" +msgid "Information exchange post" +msgstr "Stacja przekaźnikowa informacji" -msgid "Target" -msgstr "Cel" +msgid "Instruction \"break\" outside a loop" +msgstr "Polecenie \"break\" na zewnątrz pętli" -msgid "Start" -msgstr "Początek" +msgid "Instruction \"case\" missing" +msgstr "Brak polecenia \"case" -msgid "Finish" -msgstr "Koniec" +msgid "Instruction \"case\" outside a block \"switch\"" +msgstr "Polecenie \"case\" na zewnątrz bloku \"switch\"" -msgid "Titanium ore" -msgstr "Ruda tytanu" +msgid "Instruction \"else\" without corresponding \"if\" " +msgstr "Polecenie \"else\" bez wystąpienia \"if\" " -msgid "Uranium ore" -msgstr "Ruda uranu" +msgid "Instructions (\\key help;)" +msgstr "Rozkazy (\\key help;)" -msgid "Organic matter" -msgstr "Materia organiczna" +msgid "Instructions after the final closing brace" +msgstr "Polecenie po końcowej klamrze zamykającej" -msgid "Titanium" -msgstr "Tytan" +msgid "Instructions for the mission (\\key help;)" +msgstr "Rozkazy dotyczące misji (\\key help;)" -msgid "Power cell" -msgstr "Ogniwo elektryczne" +msgid "Instructions from Houston" +msgstr "Rozkazy z Houston" -msgid "Nuclear power cell" -msgstr "Atomowe ogniwa elektryczne" +msgid "Instructions\\Shows the instructions for the current mission" +msgstr "Rozkazy\\Pokazuje rozkazy dotyczące bieżącej misji" -msgid "Black box" -msgstr "Czarna skrzynka" +msgid "Internal error - tell the developers" +msgstr "Błąd wewnętrzny - powiadom twórców gry" + +msgid "Jet temperature" +msgstr "Temperatura silnika" msgid "Key A" msgstr "Klucz A" @@ -1144,948 +765,1003 @@ msgstr "Klucz C" msgid "Key D" msgstr "Klucz D" -msgid "Explosive" -msgstr "Materiały wybuchowe" +msgid "Key word help\\More detailed help about key words" +msgstr "" +"Pomoc dot. słów kluczowych\\Dokładniejsza pomoc na temat słów kluczowych" -msgid "Fixed mine" -msgstr "Mina" +msgid "Keyword \"while\" missing" +msgstr "Brak kluczowego słowa \"while" -msgid "Survival kit" -msgstr "Zestaw przetrwania" +msgid "Keyword help(\\key cbot;)" +msgstr "Skróty klawiszowe (\\key cbot;)" -msgid "Checkpoint" -msgstr "Punkt kontrolny" +msgid "LOADING" +msgstr "WCZYTYWANIE" -msgid "Blue flag" -msgstr "Niebieska flaga" +msgid "Legged grabber" +msgstr "Transporter na nogach" -msgid "Red flag" -msgstr "Czerwona flaga" +msgid "Legged orga shooter" +msgstr "Działo organiczne na nogach" -msgid "Green flag" -msgstr "Zielona flaga" +msgid "Legged shooter" +msgstr "Działo na nogach" -msgid "Yellow flag" -msgstr "Żółta flaga" +msgid "Legged sniffer" +msgstr "Szperacz na nogach" + +msgid "Lightning conductor" +msgstr "Odgromnik" + +msgid "List of objects" +msgstr "Lista obiektów" + +msgid "List of saved missions" +msgstr "Lista zapisanych misji" + +msgid "Load a saved mission" +msgstr "Wczytaj zapisaną misję" + +msgid "Load\\Load a saved mission" +msgstr "Wczytaj\\Wczytuje zapisaną misję" + +msgid "Load\\Loads the selected mission" +msgstr "Wczytaj\\Wczytuje zaznaczoną misję" + +msgid "Lowest\\Minimum graphic quality (highest frame rate)" +msgstr "" +"Najniższa\\Minimalna jakość grafiki (najwyższa częstotliwość odświeżania)" + +msgid "Lunar Roving Vehicle" +msgstr "Pojazd Księżycowy" + +msgid "Marks on the ground\\Marks on the ground" +msgstr "Znaki na ziemi\\Znaki na ziemi" + +msgid "Maximize" +msgstr "Powiększ" -msgid "Violet flag" -msgstr "Fioletowa flaga" +msgid "Minimize" +msgstr "Pomniejsz" -msgid "Energy deposit (site for power station)" -msgstr "Źródło energii (miejsce na elektrownię)" +msgid "Mission name" +msgstr "Nazwa misji" -msgid "Uranium deposit (site for derrick)" -msgstr "Złoże uranu (miejsce na kopalnię)" +msgid "Missions" +msgstr "Misje" -msgid "Found key A (site for derrick)" -msgstr "Znaleziono klucz A (miejsce na kopalnię)" +msgid "Missions\\Select mission" +msgstr "Misje\\Wybierz misję" -msgid "Found key B (site for derrick)" -msgstr "Znaleziono klucz B (miejsce na kopalnię)" +msgid "Mouse inversion X\\Inversion of the scrolling direction on the X axis" +msgstr "Odwrócenie myszy X\\Odwrócenie kierunków przewijania w poziomie" -msgid "Found key C (site for derrick)" -msgstr "Znaleziono klucz C (miejsce na kopalnię)" +msgid "Mouse inversion Y\\Inversion of the scrolling direction on the Y axis" +msgstr "Odwrócenie myszy Y\\Odwrócenie kierunków przewijania w pionie" -msgid "Found key D (site for derrick)" -msgstr "Znaleziono klucz D (miejsce na kopalnię)" +msgid "Mouse shadow\\Gives the mouse a shadow" +msgstr "Cień kursora myszy\\Dodaje cień kursorowi myszy" -msgid "Titanium deposit (site for derrick)" -msgstr "Złoże tytanu (miejsce na kopalnię)" +msgid "Mute\\No sound" +msgstr "Cisza\\Brak dźwięków" -msgid "Practice bot" -msgstr "Robot treningowy" +msgid "Name:" +msgstr "Nazwa:" -msgid "Winged grabber" -msgstr "Transporter latający" +msgid "Negative value rejected by \"throw\"" +msgstr "Wartość ujemna odrzucona przez \"throw\"" -msgid "Tracked grabber" -msgstr "Transporter na gąsienicach" +msgid "Nest" +msgstr "Gniazdo" -msgid "Wheeled grabber" -msgstr "Transporter na kołach" +msgid "New" +msgstr "Nowy" -msgid "Legged grabber" -msgstr "Transporter na nogach" +msgid "New ..." +msgstr "Nowy ..." -msgid "Winged shooter" -msgstr "Działo latające" +msgid "New bot available" +msgstr "Dostępny nowy robot" -msgid "Tracked shooter" -msgstr "Działo na gąsienicach" +msgid "Next" +msgstr "Następny" -msgid "Wheeled shooter" -msgstr "Działo na kołach" +msgid "Next object\\Selects the next object" +msgstr "Następny obiekt\\Zaznacza następny obiekt" -msgid "Legged shooter" -msgstr "Działo na nogach" +msgid "No energy in the subsoil" +msgstr "Brak energii w ziemi" -msgid "Winged orga shooter" -msgstr "Latające działo organiczne" +msgid "No flag nearby" +msgstr "Nie ma flagi w pobliżu" -msgid "Tracked orga shooter" -msgstr "Działo organiczne na gąsienicach" +msgid "No function running" +msgstr "Żadna funkcja nie działa" -msgid "Wheeled orga shooter" -msgstr "Działo organiczne na kołach" +msgid "No function with this name accepts this kind of parameter" +msgstr "Funkcja o tej nazwie nie akceptuje parametrów tego typu" -msgid "Legged orga shooter" -msgstr "Działo organiczne na nogach" +msgid "No function with this name accepts this number of parameters" +msgstr "Funkcja o tej nazwie nie akceptuje takiej liczby parametrów" -msgid "Winged sniffer" -msgstr "Szperacz latający" +msgid "No information exchange post within range" +msgstr "Nie ma żadnej stacji przekaźnikowej w zasięgu" -msgid "Tracked sniffer" -msgstr "Szperacz na gąsienicach" +msgid "No more energy" +msgstr "Nie ma więcej energii" -msgid "Wheeled sniffer" -msgstr "Szperacz na kołach" +msgid "No ore in the subsoil" +msgstr "W ziemi nie ma żadnej rudy" -msgid "Legged sniffer" -msgstr "Szperacz na nogach" +msgid "No other robot" +msgstr "Brak innego robota" -msgid "Thumper" -msgstr "Uderzacz" +msgid "No power cell" +msgstr "Brak ogniwa elektrycznego" -msgid "Phazer shooter" -msgstr "Działo fazowe" +msgid "No titanium" +msgstr "Brak tytanu" -msgid "Recycler" -msgstr "Recykler" +msgid "No titanium around" +msgstr "Brak tytanu w pobliżu" -msgid "Shielder" -msgstr "Osłaniacz" +msgid "No titanium ore to convert" +msgstr "Brak rudy tytanu do przetopienia" -msgid "Subber" -msgstr "Robot nurek" +msgid "No titanium to transform" +msgstr "Brak tytanu do przetworzenia" -msgid "Target bot" -msgstr "Robot cel" +msgid "No uranium to transform" +msgstr "Brak uranu do przetworzenia" -msgid "Drawer bot" -msgstr "Drawer bot" +msgid "Normal size" +msgstr "Normalna wielkość" -msgid "Engineer" -msgstr "Inżynier" +msgid "Normal\\Normal graphic quality" +msgstr "Normalna\\Normalna jakość grafiki" -msgid "Robbie" -msgstr "Robbie" +msgid "Normal\\Normal sound volume" +msgstr "Normalne\\Normalna głośność dźwięków" -msgid "Alien Queen" -msgstr "Królowa Obcych" +msgid "Not enough energy" +msgstr "Za mało energii" -msgid "Ant" -msgstr "Mrówka" +msgid "Not enough energy yet" +msgstr "Wciąż za mało energii" -msgid "Spider" -msgstr "Pająk" +msgid "Not found anything to destroy" +msgstr "Nie znaleziono nic do zniszczenia" -msgid "Wasp" -msgstr "Osa" +msgid "Not yet enough energy" +msgstr "Wciąż za mało energii" -msgid "Worm" -msgstr "Robal" +msgid "Nothing to analyze" +msgstr "Nie ma niczego do zanalizowania" -msgid "Egg" -msgstr "Jajo" +msgid "Nothing to drop" +msgstr "Nie ma nic do upuszczenia" -msgid "Wreckage" -msgstr "Wrak" +msgid "Nothing to grab" +msgstr "Nie ma nic do podniesienia" -msgid "Ruin" -msgstr "Ruiny" +msgid "Nothing to recycle" +msgstr "Nie ma niczego do odzysku" -msgid "Waste" -msgstr "Odpady" +msgid "Nuclear power cell" +msgstr "Atomowe ogniwa elektryczne" -msgid "Spaceship ruin" -msgstr "Ruiny statku kosmicznego" +msgid "Nuclear power cell available" +msgstr "Wytworzono atomowe ogniwo elektryczne" -msgid "Remains of Apollo mission" -msgstr "Pozostałości z misji Apollo" +msgid "Nuclear power station" +msgstr "Elektrownia atomowa" -msgid "Lunar Roving Vehicle" -msgstr "Pojazd Księżycowy" +msgid "Num of decorative objects\\Number of purely ornamental objects" +msgstr "Ilość elementów dekoracyjnych \\Ilość elementów czysto dekoracyjnych" -msgid "Internal error - tell the developers" -msgstr "Błąd wewnętrzny - powiadom twórców gry" +msgid "Number missing" +msgstr "Brak liczby" -msgid "Unknown command" -msgstr "Nieznane polecenie" +msgid "Number of insects detected" +msgstr "Liczba wykrytych insektów" -msgid "Inappropriate bot" -msgstr "Nieodpowiedni robot" +msgid "Number of particles\\Explosions, dust, reflections, etc." +msgstr "Liczba cząstek\\Wybuchy, kurz, odbicia, itp." -msgid "Impossible when flying" -msgstr "Niemożliwe podczas lotu" +msgid "OK" +msgstr "OK" -msgid "Already carrying something" -msgstr "Nie można nieść więcej przedmiotów" +msgid "OK\\Choose the selected player" +msgstr "OK\\Wybiera zaznaczonego gracza" -msgid "Nothing to grab" -msgstr "Nie ma nic do podniesienia" +msgid "OK\\Close program editor and return to game" +msgstr "OK\\Zamyka edytor programu i powraca do gry" -msgid "Impossible when moving" -msgstr "Niemożliwe podczas ruchu" +msgid "Object not found" +msgstr "Obiekt nieznany" -msgid "Place occupied" -msgstr "Miejsce zajęte" +msgid "Object too close" +msgstr "Obiekt za blisko" -msgid "No other robot" -msgstr "Brak innego robota" +msgid "One step" +msgstr "Jeden krok" -msgid "You can not carry a radioactive object" -msgstr "Nie możesz przenosić przedmiotów radioaktywnych" +msgid "Open" +msgstr "Otwórz" -msgid "You can not carry an object under water" -msgstr "Nie możesz przenosić przedmiotów pod wodą" +msgid "Open (Ctrl+o)" +msgstr "Otwórz (Ctrl+O)" -msgid "Nothing to drop" -msgstr "Nie ma nic do upuszczenia" +msgid "Opening brace missing " +msgstr "Brak klamry otwierającej" -msgid "Impossible under water" -msgstr "Niemożliwe pod wodą" +msgid "Opening bracket missing" +msgstr "Brak nawiasu otwierającego" -msgid "Not enough energy" -msgstr "Za mało energii" +msgid "Operation impossible with value \"nan\"" +msgstr "Działanie niemożliwe z wartością \"nan\"" -msgid "Titanium too far away" -msgstr "Tytan za daleko" +msgid "Options" +msgstr "Opcje" -msgid "Titanium too close" -msgstr "Tytan za blisko" +msgid "Options\\Preferences" +msgstr "Opcje\\Preferencje" -msgid "No titanium around" -msgstr "Brak tytanu w pobliżu" +msgid "Organic matter" +msgstr "Materia organiczna" -msgid "Ground not flat enough" -msgstr "Powierzchnia nie jest wystarczająco płaska" +msgid "Origin of last message\\Shows where the last message was sent from" +msgstr "" +"Miejsce nadania wiadomości\\Pokazuje skąd została wysłana ostatnia wiadomość" -msgid "Flat ground not large enough" -msgstr "Za mało płaskiego terenu" +msgid "Parameters missing " +msgstr "Brak wymaganego parametru" -msgid "Too close to space ship" -msgstr "Za blisko statku kosmicznego" +msgid "Particles in the interface\\Steam clouds and sparks in the interface" +msgstr "Cząstki w interfejsie\\Para i iskry z silników w interfejsie" -msgid "Too close to a building" -msgstr "Za blisko budynku" +msgid "Paste (Ctrl+v)" +msgstr "Wklej (Ctrl+V)" -msgid "Can not produce this object in this mission" -msgstr "Nie można utworzyć tego obiektu w tej misji" +msgid "Pause/continue" +msgstr "Pauza/Kontynuuj" -msgid "Can not produce not researched object" -msgstr "Nie można wyprodukować nie wynalezionego obiektu" +msgid "Phazer shooter" +msgstr "Działo fazowe" -msgid "Ground inappropriate" -msgstr "Nieodpowiedni teren" +msgid "Photography" +msgstr "Fotografia" -msgid "Building too close" -msgstr "Budynek za blisko" +msgid "Place occupied" +msgstr "Miejsce zajęte" -msgid "Object too close" -msgstr "Obiekt za blisko" +msgid "Planets and stars\\Astronomical objects in the sky" +msgstr "Planety i gwiazdy\\Obiekty astronomiczne na niebie" -msgid "Nothing to recycle" -msgstr "Nie ma niczego do odzysku" +msgid "Plans for defense tower available" +msgstr "Dostępne plany wieży obronnej" -msgid "No more energy" -msgstr "Nie ma więcej energii" +msgid "Plans for nuclear power plant available" +msgstr "Dostępne plany elektrowni atomowej" -msgid "Error in instruction move" -msgstr "Błąd w poleceniu ruchu" +msgid "Plans for phazer shooter available" +msgstr "Dostępne plany działa fazowego" -msgid "Object not found" -msgstr "Obiekt nieznany" +msgid "Plans for shielder available" +msgstr "Dostępne plany robota osłaniacza" -msgid "Goto: inaccessible destination" -msgstr "Goto: miejsce docelowe niedostępne" +msgid "Plans for shooter available" +msgstr "Dostępne plany działa" -msgid "Goto: destination occupied" -msgstr "Goto: miejsce docelowe zajęte" +msgid "Plans for thumper available" +msgstr "Dostępne plany robota uderzacza" -msgid "No titanium ore to convert" -msgstr "Brak rudy tytanu do przetopienia" +msgid "Plans for tracked robots available " +msgstr "Dostępne plany tranporterów na gąsienicach" -msgid "No ore in the subsoil" -msgstr "W ziemi nie ma żadnej rudy" +msgid "Plant a flag" +msgstr "Postaw flagę" -msgid "No energy in the subsoil" -msgstr "Brak energii w ziemi" +msgid "Play\\Start mission!" +msgstr "Graj\\Rozpoczyna misję!" -msgid "No power cell" -msgstr "Brak ogniwa elektrycznego" +msgid "Player" +msgstr "Gracz" -msgid "Inappropriate cell type" -msgstr "Nieodpowiedni rodzaj ogniw" +msgid "Player name" +msgstr "Imię gracza" -msgid "Research program already performed" -msgstr "Program badawczy został już wykonany" +msgid "Player's name" +msgstr "Imię gracza" -msgid "Not enough energy yet" -msgstr "Wciąż za mało energii" +msgid "Power cell" +msgstr "Ogniwo elektryczne" -msgid "No titanium to transform" -msgstr "Brak tytanu do przetworzenia" +msgid "Power cell available" +msgstr "Wytworzono ogniwo elektryczne" -msgid "Transforms only titanium" -msgstr "Przetwarza jedynie tytan" +msgid "Power cell factory" +msgstr "Fabryka ogniw elektrycznych" -msgid "Doors blocked by a robot or another object " -msgstr "Drzwi zablokowane przez robota lub inny obiekt " +msgid "Power station" +msgstr "Stacja energetyczna" -msgid "You must get on the spaceship to take off " -msgstr "Musisz być na statku kosmicznym aby nim odlecieć" +msgid "Practice bot" +msgstr "Robot treningowy" -msgid "Nothing to analyze" -msgstr "Nie ma niczego do zanalizowania" +msgid "Press \\key help; to read instructions on your SatCom" +msgstr "" +"Naciśnij klawisz \\key help; aby wyświetlić rozkazy na przekaźniku SatCom" -msgid "Analyzes only organic matter" -msgstr "Analizuje jedynie materię organiczną" +msgid "Previous" +msgstr "Poprzedni" -msgid "Analysis already performed" -msgstr "Analiza została już wykonana" +msgid "Previous object\\Selects the previous object" +msgstr "Poprzedni obiekt\\Zaznacz poprzedni obiekt" -msgid "Not yet enough energy" -msgstr "Wciąż za mało energii" +msgid "Previous selection (\\key desel;)" +msgstr "Poprzednie zaznaczenie (\\key desel;)" -msgid "No uranium to transform" -msgstr "Brak uranu do przetworzenia" +msgid "Private element" +msgstr "Element prywatny" -msgid "Transforms only uranium" -msgstr "Przetwarza jedynie uran" +msgid "Private\\Private folder" +msgstr "Prywatny\\Folder prywatny" -msgid "No titanium" -msgstr "Brak tytanu" +msgid "Program editor" +msgstr "Edytor programu" -msgid "No information exchange post within range" -msgstr "Nie ma żadnej stacji przekaźnikowej w zasięgu" +msgid "Program finished" +msgstr "Program zakończony" msgid "Program infected by a virus" msgstr "Program zawirusowany" -msgid "Infected by a virus; temporarily out of order" -msgstr "Zainfekowane wirusem, chwilowo niesprawne" +msgid "Programming exercises" +msgstr "Ćwiczenia programistyczne" -msgid "Impossible when swimming" -msgstr "Niemożliwe podczas pływania" +msgid "Programming help" +msgstr "Podręcznik programowania" -msgid "Impossible when carrying an object" -msgstr "Niemożliwe podczas przenoszenia przedmiotu" +msgid "Programming help (\\key prog;)" +msgstr "Podręcznik programowania (\\key prog;)" -msgid "Too many flags of this color (maximum 5)" -msgstr "Za dużo flag w tym kolorze (maksymalnie 5)" +msgid "Programming help\\Gives more detailed help with programming" +msgstr "Podręcznik programowania\\Dostarcza szczegółową pomoc w programowaniu" -msgid "Too close to an existing flag" -msgstr "Za blisko istniejącej flagi" +msgid "Programs dispatched by Houston" +msgstr "Program dostarczony z Houston" -msgid "No flag nearby" -msgstr "Nie ma flagi w pobliżu" +msgid "Public required" +msgstr "Wymagany publiczny" -msgid "Not found anything to destroy" -msgstr "Nie znaleziono nic do zniszczenia" +msgid "Public\\Common folder" +msgstr "Publiczny\\Folder ogólnodostępny" -msgid "Inappropriate object" -msgstr "Nieodpowiedni obiekt" +msgid "Quake at explosions\\The screen shakes at explosions" +msgstr "Wstrząsy przy wybuchach\\Ekran trzęsie się podczas wybuchów" -msgid "" -"The mission is not accomplished yet (press \\key help; for more details)" -msgstr "Misja nie jest wypełniona (naciśnij \\key help; aby uzyskać szczegóły)" +msgid "Quit the mission?" +msgstr "Opuścić misję?" -msgid "Bot destroyed" -msgstr "Robot zniszczony" +msgid "Quit\\Quit COLOBOT" +msgstr "Zakończ\\Kończy grę COLOBOT" -msgid "Building destroyed" -msgstr "Budynek zniszczony" +msgid "Quit\\Quit the current mission or exercise" +msgstr "Zakończ\\Kończy bieżącą misję lub ćwiczenie" -msgid "Can not create this; there are too many objects" -msgstr "Nie można tego utworzyć, za dużo obiektów" +msgid "Radar station" +msgstr "Stacja radarowa" -#, c-format -msgid "\"%s\" missing in this exercise" -msgstr "Brakuje \"%s\" w tym ćwiczeniu" +msgid "Read error" +msgstr "Błąd odczytu" -msgid "Do not use in this exercise" -msgstr "Do not use in this exercise" +msgid "Recorder" +msgstr "Recorder" -msgid "Building completed" -msgstr "Budowa zakończona" +msgid "Recycle (\\key action;)" +msgstr "Odzyskaj (\\key action;)" -msgid "Titanium available" -msgstr "Tytan dostępny" +msgid "Recycler" +msgstr "Recykler" -msgid "Research program completed" -msgstr "Program badawczy zakończony" +msgid "Red" +msgstr "Czerwony" -msgid "Plans for tracked robots available " -msgstr "Dostępne plany tranporterów na gąsienicach" +msgid "Red flag" +msgstr "Czerwona flaga" -msgid "You can fly with the keys (\\key gup;) and (\\key gdown;)" -msgstr "Możesz latać używając klawiszy (\\key gup;) oraz (\\key gdown;)" +msgid "Reflections on the buttons \\Shiny buttons" +msgstr "Odbicia na przyciskach \\Świecące przyciski" -msgid "Plans for thumper available" -msgstr "Dostępne plany robota uderzacza" +msgid "Remains of Apollo mission" +msgstr "Pozostałości z misji Apollo" -msgid "Plans for shooter available" -msgstr "Dostępne plany działa" +msgid "Remove a flag" +msgstr "Usuń flagę" -msgid "Plans for defense tower available" -msgstr "Dostępne plany wieży obronnej" +msgid "Repair center" +msgstr "Warsztat" -msgid "Plans for phazer shooter available" -msgstr "Dostępne plany działa fazowego" +msgid "Research center" +msgstr "Centrum badawcze" -msgid "Plans for shielder available" -msgstr "Dostępne plany robota osłaniacza" +msgid "Research program already performed" +msgstr "Program badawczy został już wykonany" -msgid "Plans for nuclear power plant available" -msgstr "Dostępne plany elektrowni atomowej" +msgid "Research program completed" +msgstr "Program badawczy zakończony" -msgid "New bot available" -msgstr "Dostępny nowy robot" +msgid "Reserved keyword of CBOT language" +msgstr "Słowo zarezerwowane języka CBOT" -msgid "Analysis performed" -msgstr "Analiza wykonana" +msgid "Resolution" +msgstr "Rozdzielczość" + +msgid "Restart\\Restart the mission from the beginning" +msgstr "Uruchom ponownie\\Uruchamia ponownie misję od początku" + +msgid "Return to start" +msgstr "Powrót do początku" + +msgid "Robbie" +msgstr "Robbie" + +msgid "Robbie\\Your assistant" +msgstr "Robbie\\Twój asystent" -msgid "Power cell available" -msgstr "Wytworzono ogniwo elektryczne" +msgid "Ruin" +msgstr "Ruiny" -msgid "Nuclear power cell available" -msgstr "Wytworzono atomowe ogniwo elektryczne" +msgid "Run research program for defense tower" +msgstr "Rozpocznij prace badawcze nad wieżą obronną" -msgid "You found a usable object" -msgstr "Znaleziono użyteczny przedmiot" +msgid "Run research program for legged bots" +msgstr "Rozpocznij prace badawcze nad transporterem na nogach" -msgid "Found a site for power station" -msgstr "Znaleziono miejsce na elektrownię" +msgid "Run research program for nuclear power" +msgstr "Rozpocznij prace badawcze nad energią atomową" -msgid "Found a site for a derrick" -msgstr "Znaleziono miejsce na kopalnię" +msgid "Run research program for orga shooter" +msgstr "Rozpocznij prace badawcze nad działem organicznym" -msgid "<<< Well done; mission accomplished >>>" -msgstr "<<< Dobra robota, misja wypełniona >>>" +msgid "Run research program for phazer shooter" +msgstr "Rozpocznij prace badawcze nad działem fazowym" -msgid "<<< Sorry; mission failed >>>" -msgstr "<<< Niestety, misja nie powiodła się >>>" +msgid "Run research program for shielder" +msgstr "Rozpocznij prace badawcze nad robotem osłaniaczem" -msgid "Current mission saved" -msgstr "Bieżąca misja zapisana" +msgid "Run research program for shooter" +msgstr "Rozpocznij prace badawcze nad działem" -msgid "Checkpoint crossed" -msgstr "Przekroczono punkt kontrolny" +msgid "Run research program for thumper" +msgstr "Rozpocznij prace badawcze nad robotem uderzaczem" -msgid "Alien Queen killed" -msgstr "Królowa Obcych została zabita" +msgid "Run research program for tracked bots" +msgstr "Rozpocznij prace badawcze nad transporterem na gąsienicach" -msgid "Ant fatally wounded" -msgstr "Mrówka śmiertelnie raniona" +msgid "Run research program for winged bots" +msgstr "Rozpocznij prace badawcze nad transporterem latającym" -msgid "Wasp fatally wounded" -msgstr "Osa śmiertelnie raniona" +msgid "SatCom" +msgstr "SatCom" -msgid "Worm fatally wounded" -msgstr "Robal śmiertelnie raniony" +msgid "Satellite report" +msgstr "Raport z satelity" -msgid "Spider fatally wounded" -msgstr "Pająk śmiertelnie raniony" +msgid "Save" +msgstr "Zapisz" -msgid "Press \\key help; to read instructions on your SatCom" -msgstr "" -"Naciśnij klawisz \\key help; aby wyświetlić rozkazy na przekaźniku SatCom" +msgid "Save (Ctrl+s)" +msgstr "Zapisz (Ctrl+S)" -msgid "Opening bracket missing" -msgstr "Brak nawiasu otwierającego" +msgid "Save the current mission" +msgstr "Zapisz bieżącą misję" -msgid "Closing bracket missing " -msgstr "Brak nawiasu zamykającego" +msgid "Save\\Save the current mission " +msgstr "Zapisz\\Zapisuje bieżącą misję" -msgid "The expression must return a boolean value" -msgstr "Wyrażenie musi zwrócić wartość logiczną" +msgid "Save\\Saves the current mission" +msgstr "Zapisz\\Zapisuje bieżącą misję" -msgid "Variable not declared" -msgstr "Zmienna nie została zadeklarowana" +msgid "Scrolling\\Scrolling when the mouse touches right or left border" +msgstr "" +"Przewijanie\\Ekran jest przewijany gdy mysz dotknie prawej lub lewej jego " +"krawędzi" -msgid "Assignment impossible" -msgstr "Przypisanie niemożliwe" +msgid "Select the astronaut\\Selects the astronaut" +msgstr "Zaznacz astronautę\\Zaznacza astronautę" msgid "Semicolon terminator missing" msgstr "Brak średnika na końcu wiersza" -msgid "Instruction \"case\" outside a block \"switch\"" -msgstr "Polecenie \"case\" na zewnątrz bloku \"switch\"" +msgid "Shadows\\Shadows on the ground" +msgstr "Cienie\\Cienie na ziemi" -msgid "Instructions after the final closing brace" -msgstr "Polecenie po końcowej klamrze zamykającej" +msgid "Shield level" +msgstr "Poziom osłony" -msgid "End of block missing" -msgstr "Brak końca bloku" +msgid "Shield radius" +msgstr "Zasięg osłony" -msgid "Instruction \"else\" without corresponding \"if\" " -msgstr "Polecenie \"else\" bez wystąpienia \"if\" " +msgid "Shielder" +msgstr "Osłaniacz" -msgid "Opening brace missing " -msgstr "Brak klamry otwierającej" +msgid "Shoot (\\key action;)" +msgstr "Strzelaj (\\key action;)" -msgid "Wrong type for the assignment" -msgstr "Zły typ dla przypisania" +msgid "Show if the ground is flat" +msgstr "Pokaż czy teren jest płaski" -msgid "A variable can not be declared twice" -msgstr "Zmienna nie może być zadeklarowana dwukrotnie" +msgid "Show the place" +msgstr "Pokaż miejsce" -msgid "The types of the two operands are incompatible " -msgstr "Niezgodne typy operatorów" +msgid "Show the range" +msgstr "Pokaż zasięg" -msgid "Unknown function" -msgstr "Funkcja nieznana" +msgid "Show the solution" +msgstr "Pokaż rozwiązanie" msgid "Sign \" : \" missing" msgstr "Brak znaku \" :\"" -msgid "Keyword \"while\" missing" -msgstr "Brak kluczowego słowa \"while" +msgid "Size 1" +msgstr "Wielkość 1" -msgid "Instruction \"break\" outside a loop" -msgstr "Polecenie \"break\" na zewnątrz pętli" +msgid "Size 2" +msgstr "Wielkość 2" -msgid "A label must be followed by \"for\"; \"while\"; \"do\" or \"switch\"" -msgstr "Po etykiecie musi wystąpić \"for\", \"while\", \"do\" lub \"switch\"" +msgid "Size 3" +msgstr "Wielkość 3" -msgid "This label does not exist" -msgstr "Taka etykieta nie istnieje" +msgid "Size 4" +msgstr "Wielkość 4" -msgid "Instruction \"case\" missing" -msgstr "Brak polecenia \"case" +msgid "Size 5" +msgstr "Wielkość 5" -msgid "Number missing" -msgstr "Brak liczby" +msgid "Sky\\Clouds and nebulae" +msgstr "Niebo\\Chmury i mgławice" -msgid "Void parameter" -msgstr "Pusty parametr" +msgid "Sniff (\\key action;)" +msgstr "Szukaj (\\key action;)" -msgid "Type declaration missing" -msgstr "Brak deklaracji typu" +msgid "Solution" +msgstr "Rozwiązanie" -msgid "Variable name missing" -msgstr "Brak nazwy zmiennej" +msgid "Sound effects:\\Volume of engines, voice, shooting, etc." +msgstr "Efekty dźwiękowe:\\Głośność silników, głosów, strzałów, itp." -msgid "Function name missing" -msgstr "Brakująca nazwa funkcji" +msgid "Sound\\Music and game sound volume" +msgstr "Dźwięk\\Głośność muzyki i dźwięków gry" -msgid "Too many parameters" -msgstr "Za dużo parametrów" +msgid "Spaceship" +msgstr "Statek kosmiczny" -msgid "Function already exists" -msgstr "Funkcja już istnieje" +msgid "Spaceship ruin" +msgstr "Ruiny statku kosmicznego" -msgid "Parameters missing " -msgstr "Brak wymaganego parametru" +msgid "Speed 1.0x\\Normal speed" +msgstr "Prędkość 1,0x\\Prędkość normalna" -msgid "No function with this name accepts this kind of parameter" -msgstr "Funkcja o tej nazwie nie akceptuje parametrów tego typu" +msgid "Speed 1.5x\\1.5 times faster" +msgstr "Prędkość 1,5x\\1,5 raza szybciej" -msgid "No function with this name accepts this number of parameters" -msgstr "Funkcja o tej nazwie nie akceptuje takiej liczby parametrów" +msgid "Speed 2.0x\\Double speed" +msgstr "Prędkość 2,0x\\Dwa razy szybciej" -msgid "This is not a member of this class" -msgstr "To nie jest obiekt tej klasy" +msgid "Speed 3.0x\\Three times faster" +msgstr "Prędkość 3,0x\\Trzy razy szybciej" -msgid "This object is not a member of a class" -msgstr "Ten obiekt nie jest członkiem klasy" +msgid "Spider" +msgstr "Pająk" -msgid "Appropriate constructor missing" -msgstr "Brak odpowiedniego konstruktora" +msgid "Spider fatally wounded" +msgstr "Pająk śmiertelnie raniony" -msgid "This class already exists" -msgstr "Taka klasa już istnieje" +msgid "Stack overflow" +msgstr "Przepełnienie stosu" -msgid "\" ] \" missing" -msgstr "Brak \" ] \"" +msgid "" +"Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)" +msgstr "" +"Standardowa akcja\\Standardowa akcja robota (podnieś/upuść, strzelaj, " +"szukaj, itp.)" -msgid "Reserved keyword of CBOT language" -msgstr "Słowo zarezerwowane języka CBOT" +msgid "Standard controls\\Standard key functions" +msgstr "Standardowa kontrola\\Standardowe klawisze funkcyjne" -msgid "Bad argument for \"new\"" -msgstr "Zły argument dla funkcji \"new\"" +msgid "Standard\\Standard appearance settings" +msgstr "Standardowe\\Standardowe ustawienia wyglądu" -msgid "\" [ \" expected" -msgstr "Oczekiwane \" [ \"" +msgid "Start" +msgstr "Początek" + +msgid "Still working ..." +msgstr "Wciąż pracuje..." msgid "String missing" msgstr "Brak łańcucha" -msgid "Incorrect index type" -msgstr "Nieprawidłowy typ indeksu" +msgid "Strip color:" +msgstr "Kolor pasków:" -msgid "Private element" -msgstr "Element prywatny" +msgid "Subber" +msgstr "Robot nurek" -msgid "Public required" -msgstr "Wymagany publiczny" +msgid "Suit color:" +msgstr "Kolor skafandra:" -msgid "Dividing by zero" -msgstr "Dzielenie przez zero" +msgid "Suit\\Astronaut suit" +msgstr "Skafander\\Skafander astronauty" -msgid "Variable not initialized" -msgstr "Zmienna nie została zainicjalizowana" +msgid "Sunbeams\\Sunbeams in the sky" +msgstr "Promienie słoneczne\\Promienie słoneczne na niebie" -msgid "Negative value rejected by \"throw\"" -msgstr "Wartość ujemna odrzucona przez \"throw\"" +msgid "Survival kit" +msgstr "Zestaw przetrwania" -msgid "The function returned no value " -msgstr "Funkcja nie zwróciła żadnej wartości " +msgid "Switch bots <-> buildings" +msgstr "Przełącz roboty <-> budynki" -msgid "No function running" -msgstr "Żadna funkcja nie działa" +msgid "Take off to finish the mission" +msgstr "Odleć, aby zakończyć misję" -msgid "Calling an unknown function" -msgstr "Odwołanie do nieznanej funkcji" +msgid "Target" +msgstr "Cel" -msgid "This class does not exist" -msgstr "Taka klasa nie istnieje" +msgid "Target bot" +msgstr "Robot cel" -msgid "Unknown Object" -msgstr "Obiekt nieznany" +msgid "Textures\\Quality of textures " +msgstr "Tekstury\\Jakość tekstur " -msgid "Operation impossible with value \"nan\"" -msgstr "Działanie niemożliwe z wartością \"nan\"" +msgid "The expression must return a boolean value" +msgstr "Wyrażenie musi zwrócić wartość logiczną" -msgid "Access beyond array limit" -msgstr "Dostęp poza tablicę" +msgid "The function returned no value " +msgstr "Funkcja nie zwróciła żadnej wartości " -msgid "Stack overflow" -msgstr "Przepełnienie stosu" +msgid "" +"The list is only available if a \\l;radar station\\u object\\radar; is " +"working.\n" +msgstr "" +"Lista jest dostępna jedynie gdy działa \\l;stacja radarowa\\u object" +"\\radar;.\n" -msgid "Illegal object" -msgstr "Nieprawidłowy obiekt" +msgid "" +"The mission is not accomplished yet (press \\key help; for more details)" +msgstr "Misja nie jest wypełniona (naciśnij \\key help; aby uzyskać szczegóły)" -msgid "Can't open file" -msgstr "Nie można otworzyć pliku" +msgid "The types of the two operands are incompatible " +msgstr "Niezgodne typy operatorów" -msgid "File not open" -msgstr "Plik nie jest otwarty" +msgid "This class already exists" +msgstr "Taka klasa już istnieje" -msgid "Read error" -msgstr "Błąd odczytu" +msgid "This class does not exist" +msgstr "Taka klasa nie istnieje" -msgid "Write error" -msgstr "Błąd zapisu" +msgid "This is not a member of this class" +msgstr "To nie jest obiekt tej klasy" -msgid "left;" -msgstr "left;" +msgid "This label does not exist" +msgstr "Taka etykieta nie istnieje" -msgid "right;" -msgstr "right;" +msgid "This object is not a member of a class" +msgstr "Ten obiekt nie jest członkiem klasy" -msgid "up;" -msgstr "up;" +msgid "Thump (\\key action;)" +msgstr "Uderz (\\key action;)" -msgid "down;" -msgstr "down;" +msgid "Thumper" +msgstr "Uderzacz" -msgid "gup;" -msgstr "gup;" +msgid "Titanium" +msgstr "Tytan" -msgid "gdown;" -msgstr "gdown;" +msgid "Titanium available" +msgstr "Tytan dostępny" -msgid "camera;" -msgstr "camera;" +msgid "Titanium deposit (site for derrick)" +msgstr "Złoże tytanu (miejsce na kopalnię)" -msgid "desel;" -msgstr "desel;" +msgid "Titanium ore" +msgstr "Ruda tytanu" -msgid "action;" -msgstr "action;" +msgid "Titanium too close" +msgstr "Tytan za blisko" -msgid "near;" -msgstr "near;" +msgid "Titanium too far away" +msgstr "Tytan za daleko" -msgid "away;" -msgstr "away;" +msgid "Too close to a building" +msgstr "Za blisko budynku" -msgid "next;" -msgstr "next;" +msgid "Too close to an existing flag" +msgstr "Za blisko istniejącej flagi" -msgid "human;" -msgstr "human;" +msgid "Too close to space ship" +msgstr "Za blisko statku kosmicznego" -msgid "quit;" -msgstr "quit;" +msgid "Too many flags of this color (maximum 5)" +msgstr "Za dużo flag w tym kolorze (maksymalnie 5)" -msgid "help;" -msgstr "help;" +msgid "Too many parameters" +msgstr "Za dużo parametrów" -msgid "prog;" -msgstr "prog;" +msgid "Tracked grabber" +msgstr "Transporter na gąsienicach" -msgid "cbot;" -msgstr "cbot;" +msgid "Tracked orga shooter" +msgstr "Działo organiczne na gąsienicach" -msgid "visit;" -msgstr "visit;" +msgid "Tracked shooter" +msgstr "Działo na gąsienicach" -msgid "speed10;" -msgstr "speed10;" +msgid "Tracked sniffer" +msgstr "Szperacz na gąsienicach" -msgid "speed15;" -msgstr "speed15;" +msgid "Transforms only titanium" +msgstr "Przetwarza jedynie tytan" -msgid "speed20;" -msgstr "speed20;" +msgid "Transforms only uranium" +msgstr "Przetwarza jedynie uran" -msgid "Ctrl" -msgstr "Ctrl" +msgid "Transmitted information" +msgstr "Przesłane informacje" -msgid "Shift" -msgstr "Shift" +msgid "Turn left (\\key left;)" +msgstr "Skręć w lewo (\\key left;)" -msgid "Alt" -msgstr "Alt" +msgid "Turn left\\turns the bot to the left" +msgstr "Skręć w lewo\\Obraca robota w lewo" -msgid "Win" -msgstr "Win" +msgid "Turn right (\\key right;)" +msgstr "Skręć w prawo (\\key right;)" -msgid "Button %1" -msgstr "Przycisk %1" +msgid "Turn right\\turns the bot to the right" +msgstr "Obróć w prawo\\Obraca robota w prawo" -msgid "%1" -msgstr "%1" +msgid "Type declaration missing" +msgstr "Brak deklaracji typu" -#~ msgid "Menu (\\key quit;)" -#~ msgstr "Menu (\\key quit;)" +msgid "Undo (Ctrl+z)" +msgstr "Cofnij (Ctrl+Z)" -#, c-format -#~ msgid "GetResource event num out of range: %d\n" -#~ msgstr "GetResource numer zdarzenia poza zakresem: %d\n" +msgid "Unit" +msgstr "Jednostka" -#~ msgid "< none >" -#~ msgstr "< brak >" +msgid "Unknown Object" +msgstr "Obiekt nieznany" -#~ msgid "<--" -#~ msgstr "<--" +msgid "Unknown command" +msgstr "Nieznane polecenie" -#~ msgid "Application key" -#~ msgstr "Klawisz menu kontekstowego" +msgid "Unknown function" +msgstr "Funkcja nieznana" -#~ msgid "Arrow down" -#~ msgstr "Strzałka w dół" +msgid "Up (\\key gup;)" +msgstr "Góra (\\key gup;)" -#~ msgid "Arrow left" -#~ msgstr "Strzałka w lewo" +msgid "Uranium deposit (site for derrick)" +msgstr "Złoże uranu (miejsce na kopalnię)" -#~ msgid "Arrow right" -#~ msgstr "Strzałka w prawo" +msgid "Uranium ore" +msgstr "Ruda uranu" -#~ msgid "Arrow up" -#~ msgstr "Strzałka w górę" +msgid "Use a joystick\\Joystick or keyboard" +msgstr "Używaj joysticka\\Joystick lub klawiatura" -#~ msgid "Attn" -#~ msgstr "Attn" +msgid "User levels" +msgstr "Poziomy użytkownika" -#~ msgid "Caps Lock" -#~ msgstr "Caps Lock" +msgid "User\\User levels" +msgstr "Poziomy\\Poziomy użytkownika" -#~ msgid "Clear" -#~ msgstr "Delete" +msgid "Variable name missing" +msgstr "Brak nazwy zmiennej" -#~ msgid "Control-break" -#~ msgstr "Ctrl-break" +msgid "Variable not declared" +msgstr "Zmienna nie została zadeklarowana" -#~ msgid "CrSel" -#~ msgstr "CrSel" +msgid "Variable not initialized" +msgstr "Zmienna nie została zainicjalizowana" -#~ msgid "Delete Key" -#~ msgstr "Delete" +msgid "Vault" +msgstr "Skrytka" -#~ msgid "Dictionnary" -#~ msgstr "Raport z satelity" +msgid "Violet flag" +msgstr "Fioletowa flaga" -#~ msgid "Disintegrator" -#~ msgstr "Fabryka ogniw elektrycznych" +msgid "Void parameter" +msgstr "Pusty parametr" -#~ msgid "End" -#~ msgstr "End" +msgid "Wasp" +msgstr "Osa" -#~ msgid "Enter" -#~ msgstr "Enter" +msgid "Wasp fatally wounded" +msgstr "Osa śmiertelnie raniona" -#~ msgid "Erase EOF" -#~ msgstr "Erase EOF" +msgid "Waste" +msgstr "Odpady" -#~ msgid "Error" -#~ msgstr "Błąd" +msgid "Wheeled grabber" +msgstr "Transporter na kołach" -#~ msgid "Esc" -#~ msgstr "Esc" +msgid "Wheeled orga shooter" +msgstr "Działo organiczne na kołach" -#~ msgid "ExSel" -#~ msgstr "ExSel" +msgid "Wheeled shooter" +msgstr "Działo na kołach" -#~ msgid "Execute" -#~ msgstr "Wykonaj" +msgid "Wheeled sniffer" +msgstr "Szperacz na kołach" -#~ msgid "F1" -#~ msgstr "F1" +msgid "Winged grabber" +msgstr "Transporter latający" -#~ msgid "F10" -#~ msgstr "F10" +msgid "Winged orga shooter" +msgstr "Latające działo organiczne" -#~ msgid "F11" -#~ msgstr "F11" +msgid "Winged shooter" +msgstr "Działo latające" -#~ msgid "F12" -#~ msgstr "F12" +msgid "Winged sniffer" +msgstr "Szperacz latający" -#~ msgid "F13" -#~ msgstr "F13" +msgid "Withdraw shield (\\key action;)" +msgstr "Wyłącz osłonę (\\key action;)" -#~ msgid "F14" -#~ msgstr "F14" +msgid "Worm" +msgstr "Robal" -#~ msgid "F15" -#~ msgstr "F15" +msgid "Worm fatally wounded" +msgstr "Robal śmiertelnie raniony" -#~ msgid "F16" -#~ msgstr "F16" +msgid "Wreckage" +msgstr "Wrak" -#~ msgid "F17" -#~ msgstr "F17" +msgid "Write error" +msgstr "Błąd zapisu" -#~ msgid "F18" -#~ msgstr "F18" +msgid "Wrong type for the assignment" +msgstr "Zły typ dla przypisania" -#~ msgid "F19" -#~ msgstr "F19" +msgid "Yellow flag" +msgstr "Żółta flaga" -#~ msgid "F2" -#~ msgstr "F2" +msgid "You can fly with the keys (\\key gup;) and (\\key gdown;)" +msgstr "Możesz latać używając klawiszy (\\key gup;) oraz (\\key gdown;)" -#~ msgid "F20" -#~ msgstr "F20" +msgid "You can not carry a radioactive object" +msgstr "Nie możesz przenosić przedmiotów radioaktywnych" -#~ msgid "F3" -#~ msgstr "F3" +msgid "You can not carry an object under water" +msgstr "Nie możesz przenosić przedmiotów pod wodą" -#~ msgid "F4" -#~ msgstr "F4" +msgid "You found a usable object" +msgstr "Znaleziono użyteczny przedmiot" -#~ msgid "F5" -#~ msgstr "F5" +msgid "You must get on the spaceship to take off " +msgstr "Musisz być na statku kosmicznym aby nim odlecieć" -#~ msgid "F6" -#~ msgstr "F6" +msgid "Zoom mini-map" +msgstr "Powiększenie mapki" -#~ msgid "F7" -#~ msgstr "F7" +msgid "\\Blue flags" +msgstr "\\Niebieskie flagi" -#~ msgid "F8" -#~ msgstr "F8" +msgid "\\Eyeglasses 1" +msgstr "\\Okulary 1" -#~ msgid "F9" -#~ msgstr "F9" +msgid "\\Eyeglasses 2" +msgstr "\\Okulary 2" -#~ msgid "Help" -#~ msgstr "Pomoc" +msgid "\\Eyeglasses 3" +msgstr "\\Okulary 3" -#~ msgid "Home Key" -#~ msgstr "Home" +msgid "\\Eyeglasses 4" +msgstr "\\Okulary 4" -#~ msgid "Insert" -#~ msgstr "Insert" +msgid "\\Eyeglasses 5" +msgstr "\\Okulary 5" -#~ msgid "Left Windows" -#~ msgstr "Lewy klawisz Windows" +msgid "\\Face 1" +msgstr "\\Twarz 1" -#~ msgid "Mini-map" -#~ msgstr "Mapka" +msgid "\\Face 2" +msgstr "\\Twarz 2" -#~ msgid "Num Lock" -#~ msgstr "Num Lock" +msgid "\\Face 3" +msgstr "\\Twarz 3" -#~ msgid "NumPad *" -#~ msgstr "Klaw. Num. *" +msgid "\\Face 4" +msgstr "\\Twarz 4" -#~ msgid "NumPad +" -#~ msgstr "Klaw. Num. +" +msgid "\\Green flags" +msgstr "\\Zielone flagi" -#~ msgid "NumPad -" -#~ msgstr "Klaw. Num. -" +msgid "\\New player name" +msgstr "\\Nowe imię gracza" -#~ msgid "NumPad ." -#~ msgstr "Klaw. Num. ." +msgid "\\No eyeglasses" +msgstr "\\Bez okularów" -#~ msgid "NumPad /" -#~ msgstr "Klaw. Num. /" +msgid "\\Raise the pencil" +msgstr "\\Relčve le crayon" -#~ msgid "NumPad 0" -#~ msgstr "Klaw. Num. 0" +msgid "\\Red flags" +msgstr "\\Czerwone flagi" -#~ msgid "NumPad 1" -#~ msgstr "Klaw. Num. 1" +msgid "\\Return to COLOBOT" +msgstr "\\Powróć do gry COLOBOT" -#~ msgid "NumPad 2" -#~ msgstr "Klaw. Num. 2" +msgid "\\SatCom on standby" +msgstr "\\Przełącz przekaźnik SatCom w stan gotowości" -#~ msgid "NumPad 3" -#~ msgstr "Klaw. Num. 3" +msgid "\\Start recording" +msgstr "\\Démarre l'enregistrement" -#~ msgid "NumPad 4" -#~ msgstr "Klaw. Num. 4" +msgid "\\Stop recording" +msgstr "\\Stoppe l'enregistrement" -#~ msgid "NumPad 5" -#~ msgstr "Klaw. Num. 5" +msgid "\\Turn left" +msgstr "\\Obróć w lewo" -#~ msgid "NumPad 6" -#~ msgstr "Klaw. Num. 6" +msgid "\\Turn right" +msgstr "\\Obróć w prawo" -#~ msgid "NumPad 7" -#~ msgstr "Klaw. Num. 7" +msgid "\\Use the black pencil" +msgstr "\\Abaisse le crayon noir" -#~ msgid "NumPad 8" -#~ msgstr "Klaw. Num. 8" +msgid "\\Use the blue pencil" +msgstr "\\Abaisse le crayon bleu" -#~ msgid "NumPad 9" -#~ msgstr "Klaw. Num. 9" +msgid "\\Use the brown pencil" +msgstr "\\Abaisse le crayon brun" -#~ msgid "NumPad sep" -#~ msgstr "Klaw. Num. separator" +msgid "\\Use the green pencil" +msgstr "\\Abaisse le crayon vert" -#~ msgid "PA1" -#~ msgstr "PA1" +msgid "\\Use the orange pencil" +msgstr "\\Abaisse le crayon orange" -#~ msgid "Page Down" -#~ msgstr "Page Down" +msgid "\\Use the purple pencil" +msgstr "\\Abaisse le crayon violet" -#~ msgid "Page Up" -#~ msgstr "Page Up" +msgid "\\Use the red pencil" +msgstr "\\Abaisse le crayon rouge" -#~ msgid "Pause" -#~ msgstr "Pause" +msgid "\\Use the yellow pencil" +msgstr "\\Abaisse le crayon jaune" -#~ msgid "Play" -#~ msgstr "Graj" +msgid "\\Violet flags" +msgstr "\\Fioletowe flagi" -#~ msgid "Print Scrn" -#~ msgstr "Print Scrn" +msgid "\\Yellow flags" +msgstr "\\Żółte flagi" -#~ msgid "Right Windows" -#~ msgstr "Prawy klawisz Windows" +msgid "\\b;Aliens\n" +msgstr "\\b;Obcy\n" -#~ msgid "Scroll" -#~ msgstr "Scroll Lock" +msgid "\\b;Buildings\n" +msgstr "\\b;Budynki\n" -#~ msgid "Select" -#~ msgstr "Zaznacz" +msgid "\\b;Error\n" +msgstr "\\b;Błąd\n" -#~ msgid "Space" -#~ msgstr "Spacja" +msgid "\\b;List of objects\n" +msgstr "\\b;Lista obiektów\n" -#~ msgid "Tab" -#~ msgstr "Tab" +msgid "\\b;Moveable objects\n" +msgstr "\\b;Obiekty ruchome\n" -#~ msgid "Wheel down" -#~ msgstr "Kółko w dół" +msgid "\\b;Robots\n" +msgstr "\\b;Roboty\n" -#~ msgid "Wheel up" -#~ msgstr "Kółko w górę" +msgid "\\c; (none)\\n;\n" +msgstr "\\c; (brak)\\n;\n" -#~ msgid "Zoom" -#~ msgstr "Powiększenie" +msgid "www.epsitec.com" +msgstr "www.epsitec.com" diff --git a/po/ru.po b/po/ru.po index 288adca..9a1af23 100644 --- a/po/ru.po +++ b/po/ru.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-10 16:50+0200\n" +"POT-Creation-Date: DATE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,1829 +18,1739 @@ msgstr "" "X-Language: ru_RU\n" "X-Source-Language: en_US\n" -msgid "Colobot rules!" -msgstr "Правила игры!" +msgid " " +msgstr " " -msgid "SatCom" -msgstr "SatCom" +msgid " Challenges in the chapter:" +msgstr " Задачи к главе:" -msgid "Maximize" -msgstr "Развернуть" +msgid " Chapters:" +msgstr " Разделы:" -msgid "Minimize" -msgstr "Свернуть" +msgid " Drivers:" +msgstr " Драйверы:" -msgid "Normal size" -msgstr "Нормальный размер" +msgid " Exercises in the chapter:" +msgstr " Упражнения в разделе:" -msgid "Close" -msgstr "Закрыть" +msgid " Free game on this planet:" +msgstr " Свободная игра на этой планете:" -msgid "Program editor" -msgstr "Редактор программ" +msgid " Missions on this level:" +msgstr " Миссии на этом уровне:" -msgid "New" -msgstr "Новый" +msgid " Missions on this planet:" +msgstr "Миссии на этой планете:" -msgid "Player" -msgstr "Игрок" +msgid " Planets:" +msgstr " Планеты:" -msgid "New ..." -msgstr "Новый ..." +msgid " Resolution:" +msgstr " Разрешение:" + +msgid " Summary:" +msgstr " Итог:" + +msgid " User levels:" +msgstr " Пользовательские уровни:" msgid " or " msgstr " или " -msgid "COLOBOT" -msgstr "КОЛОБОТ" +msgid "\" [ \" expected" +msgstr "Ожидалось \" [ \"" -msgid "COLOBOT: Gold Edition" -msgstr "" +msgid "\" ] \" missing" +msgstr "Отсутствует \"]\" " -msgid "Programming exercises" -msgstr "Упражнения" +#, c-format +msgid "\"%s\" missing in this exercise" +msgstr "\"%s\" отсутствует в этом упражнении" -msgid "Challenges" -msgstr "Задания" +msgid "..behind" +msgstr "Сзади" -msgid "Missions" -msgstr "Миссии" +msgid "..in front" +msgstr "Спереди" -msgid "Free game" -msgstr "Свободная игра" +msgid "..power cell" +msgstr "Батарею" -msgid "User levels" -msgstr "Пользовательские уровни" +msgid "1) First click on the key you want to redefine." +msgstr "1) Сначала нажми на клавишу, которую вы хотите переопределить." -msgid "Options" -msgstr "Опции" +msgid "2) Then press the key you want to use instead." +msgstr "2) После этого нажмите на клавишу, которую вы хотите использовать." -msgid "Player's name" -msgstr "Имя игрока" +msgid "3D sound\\3D positioning of the sound" +msgstr "3D-звук\\Стерео звук" -msgid "Customize your appearance" -msgstr "Настроить свой внешний вид" +msgid "<< Back \\Back to the previous screen" +msgstr "<< Назад \\Вернуться на предыдущую страницу" -msgid "Save the current mission" -msgstr "Сохранить" +msgid "<<< Sorry; mission failed >>>" +msgstr "<<< Миссия провалена >>>" -msgid "Load a saved mission" -msgstr "Загрузить" +msgid "<<< Well done; mission accomplished >>>" +msgstr "<<< Отлично, миссия выполнена >>>" -msgid " Chapters:" -msgstr " Разделы:" +msgid "A label must be followed by \"for\"; \"while\"; \"do\" or \"switch\"" +msgstr "За меткой должен быть \"for\", \"while\", \"do\" или \"switch\"" -msgid " Planets:" -msgstr " Планеты:" +msgid "A variable can not be declared twice" +msgstr "Переменная не может быть объявлена дважды" -msgid " User levels:" -msgstr " Пользовательские уровни:" +msgid "Abort\\Abort the current mission" +msgstr "Выход\\Прервать текущую миссию" -msgid " Exercises in the chapter:" -msgstr " Упражнения в разделе:" +msgid "Access beyond array limit" +msgstr "Доступ к массиву за предел" -msgid " Challenges in the chapter:" -msgstr " Задачи к главе:" +msgid "" +"Access to solution\\Shows the solution (detailed instructions for missions)" +msgstr "Доступ к решению\\Показывает решение (подробные инструкции для миссий)" -msgid " Missions on this planet:" -msgstr "Миссии на этой планете:" +msgid "Access to solutions\\Show program \"4: Solution\" in the exercises" +msgstr "Доступ к решению\\Показывает решение \"4: Решение\" в упражнениях" -msgid " Free game on this planet:" -msgstr " Свободная игра на этой планете:" +msgid "Alien Queen" +msgstr "Королева чужих" -msgid " Missions on this level:" -msgstr " Миссии на этом уровне:" +msgid "Alien Queen killed" +msgstr "Королева чужих убита" -msgid " Free game on this chapter:" -msgstr " Свободная игра на этой главе:" +msgid "Already carrying something" +msgstr "Уже что-то несу" -msgid " Summary:" -msgstr " Итог:" +msgid "Analysis already performed" +msgstr "Анализ уже выполнен" -msgid " Drivers:" -msgstr " Драйверы:" +msgid "Analysis performed" +msgstr "Анализ выполнен" -msgid " Resolution:" -msgstr " Разрешение:" +msgid "Analyzes only organic matter" +msgstr "Анализирую только органические вещества" -msgid "1) First click on the key you want to redefine." -msgstr "1) Сначала нажми на клавишу, которую вы хотите переопределить." +msgid "Ant" +msgstr "Муравей" -msgid "2) Then press the key you want to use instead." -msgstr "2) После этого нажмите на клавишу, которую вы хотите использовать." +msgid "Ant fatally wounded" +msgstr "Муравей смертельно ранен" -msgid "Face type:" -msgstr "Лицо:" +msgid "Appearance\\Choose your appearance" +msgstr "Внешность\\Настройка внешности" -msgid "Eyeglasses:" -msgstr "Очки:" +msgid "Apply changes\\Activates the changed settings" +msgstr "Принять\\Принять изменения настроек" -msgid "Hair color:" -msgstr "Волосы:" +msgid "Appropriate constructor missing" +msgstr "Соответствующий конструктор отсутствует" -msgid "Suit color:" -msgstr "Костюм:" +msgid "Assignment impossible" +msgstr "Назначение невозможно" -msgid "Strip color:" -msgstr "Цвет полос" +msgid "Autolab" +msgstr "Лаборатория" -msgid "Do you want to quit COLOBOT ?" -msgstr "Вы хотите закрыть COLOBOT?" +msgid "Automatic indent\\When program editing" +msgstr "Автоматический отступ\\При редактировании программы" -msgid "Quit\\Quit COLOBOT" -msgstr "Выход\\Выход из COLOBOT" +msgid "Back" +msgstr "Назад" -msgid "Quit the mission?" -msgstr "Завершить миссию?" +msgid "Background sound :\\Volume of audio tracks on the CD" +msgstr "Фоновый звук:\\Громкость звуковых дорожек на CD" -msgid "Abort\\Abort the current mission" -msgstr "Выход\\Прервать текущую миссию" +msgid "Backward (\\key down;)" +msgstr "Назад (\\key down;)" -msgid "Continue\\Continue the current mission" -msgstr "Продолжить\\Продолжить текущую миссию" +msgid "Backward\\Moves backward" +msgstr "Назад\\Двигаться назад" -msgid "Continue\\Continue the game" -msgstr "Продолжить\\Продолжить игру" +msgid "Bad argument for \"new\"" +msgstr "Неверный аргумент для \"new\"" -msgid "Do you really want to destroy the selected building?" -msgstr "Вы действительно хотите уничтожить выбранное здание?" +msgid "Big indent\\Indent 2 or 4 spaces per level defined by braces" +msgstr "Большой отступ\\Отступать на 2 или 4 пробела, в зависимости от скобок" -#, c-format -msgid "Do you want to delete %s's saved games? " -msgstr "Вы действительно хотите удалить сохраненные игры игрока %s?" +msgid "Black box" +msgstr "Черный ящик" -msgid "Delete" -msgstr "Удалить" +msgid "Blue" +msgstr "Синий" -msgid "Cancel" -msgstr "Отмена" +msgid "Blue flag" +msgstr "Синий флаг" -msgid "LOADING" -msgstr "ЗАГРУЗКА" +msgid "Bot destroyed" +msgstr "Бот уничтожен" -msgid "Keyword help(\\key cbot;)" -msgstr "Помощь(\\key cbot;)" +msgid "Bot factory" +msgstr "Завод ботов" -msgid "Compilation ok (0 errors)" -msgstr "Компиляция завершена (0 ошибок)" +msgid "Build a bot factory" +msgstr "Построить завод ботов" -msgid "Program finished" -msgstr "Программа выполнена" +msgid "Build a converter" +msgstr "Построить преобразователь" -msgid "\\b;List of objects\n" -msgstr "\\b;Список объектов\n" +msgid "Build a defense tower" +msgstr "Построить защитную башню" -msgid "\\b;Robots\n" -msgstr "\\b;Роботы\n" +msgid "Build a derrick" +msgstr "Построить буровую вышку" -msgid "\\b;Buildings\n" -msgstr "\\b;Здания\n" +msgid "Build a destroyer" +msgstr "" -msgid "\\b;Moveable objects\n" -msgstr "\\b;Подвижные объекты\n" +msgid "Build a exchange post" +msgstr "Построить пост по обмену сообщениями" -msgid "\\b;Aliens\n" -msgstr "\\b;Чужаки\n" +msgid "Build a legged grabber" +msgstr "Собрать шагающего сборщика" -msgid "\\c; (none)\\n;\n" -msgstr "" -"\\c; (нет)\\n" -";\n" +msgid "Build a legged orga shooter" +msgstr "Собрать шагающего орга-стрелка" -msgid "\\b;Error\n" -msgstr "\\b;Ошибка\n" +msgid "Build a legged shooter" +msgstr "Собрать шагающего стрелка" -msgid "" -"The list is only available if a \\l;radar station\\u object\\radar; is " -"working.\n" -msgstr "" -"Список доступен только если \\l;radar station\\u object\\radar; работают\n" +msgid "Build a legged sniffer" +msgstr "Собрать шагающего искателя" -msgid "Open" -msgstr "Открыть" +msgid "Build a lightning conductor" +msgstr "Построить громоотвод" -msgid "Save" -msgstr "Сохранить" +msgid "Build a nuclear power plant" +msgstr "Построить завод атомных батарей (неперезаряж.)" -#, c-format -msgid "Folder: %s" -msgstr "Папка: %s" +msgid "Build a phazer shooter" +msgstr "Собрать фазового стрелка" -msgid "Name:" -msgstr "Имя:" +msgid "Build a power cell factory" +msgstr "Построить завод перезаряжаемых батарей" -msgid "Folder:" -msgstr "Папка" +msgid "Build a power station" +msgstr "Построить электростанцию" -msgid "Private\\Private folder" -msgstr "Личное\\Личная папка" +msgid "Build a radar station" +msgstr "Построить радарную станцию" -msgid "Public\\Common folder" -msgstr "Общее\\Общая папка" +msgid "Build a recycler" +msgstr "Собрать утилизатор" -msgid "Developed by :" -msgstr "Разработка :" +msgid "Build a repair center" +msgstr "Построить ремонтный пункт" -msgid "www.epsitec.com" -msgstr "www.epsitec.com" +msgid "Build a research center" +msgstr "Построить научно-исследовательский центр" -msgid " " -msgstr " " +msgid "Build a shielder" +msgstr "Собрать передвижной щит" -msgid "Recorder" -msgstr "Запись" +msgid "Build a subber" +msgstr "Собрать саббера" -msgid "OK" -msgstr "ОК" +msgid "Build a thumper" +msgstr "Собрать ударника" -msgid "Next" -msgstr "Следующий" +msgid "Build a tracked grabber" +msgstr "Собрать гусеничного сборщика" -msgid "Previous" -msgstr "Предыдущий" +msgid "Build a tracked orga shooter" +msgstr "Собрать гусеничного орга-стрелка" -msgid "Exercises\\Programming exercises" -msgstr "Упражнения\\Упражнения по программированию" +msgid "Build a tracked shooter" +msgstr "Собрать гусеничного стрелка" -msgid "Challenges\\Programming challenges" -msgstr "Задания\\Практика программирования" +msgid "Build a tracked sniffer" +msgstr "Собрать гусеничного искателя" -msgid "Missions\\Select mission" -msgstr "Миссии\\Выбор миссии" +msgid "Build a wheeled grabber" +msgstr "Собрать колесного сборщика" -msgid "Free game\\Free game without a specific goal" -msgstr "Свобод. игра\\Игра без четкой цели" +msgid "Build a wheeled orga shooter" +msgstr "Собрать колесного орга-стрелка" -msgid "User\\User levels" -msgstr "Польз.\\Пользовательские уровни" +msgid "Build a wheeled shooter" +msgstr "Собрать колесного стрелка" -msgid "Change player\\Change player" -msgstr "Новый игрок\\Выберите имя для игрока" +msgid "Build a wheeled sniffer" +msgstr "Собрать колесного искателя" -msgid "Options\\Preferences" -msgstr "Опции\\Настройки" +msgid "Build a winged grabber" +msgstr "Собрать летающего сборщика" -msgid "Restart\\Restart the mission from the beginning" -msgstr "Заново\\Начать данную миссию с начала" +msgid "Build a winged orga shooter" +msgstr "Собрать летающего орга-стрелка" -msgid "Save\\Save the current mission " -msgstr "Сохранить\\Сохранить текущую миссию" +msgid "Build a winged shooter" +msgstr "Собрать летающего стрелка" -msgid "Load\\Load a saved mission" -msgstr "Загрузить\\Загрузить сохраненную миссию" +msgid "Build a winged sniffer" +msgstr "Собрать летающего искателя" -msgid "\\Return to COLOBOT" -msgstr "\\Вернуться в COLOBOT" +msgid "Build an autolab" +msgstr "Построить лабораторию" -msgid "<< Back \\Back to the previous screen" -msgstr "<< Назад \\Вернуться на предыдущую страницу" +msgid "Building completed" +msgstr "Здание построено" -msgid "Play\\Start mission!" -msgstr "Начать\\Перейти к выполнению миссии!" +msgid "Building destroyed" +msgstr "Здание разрушено" -msgid "Device\\Driver and resolution settings" -msgstr "Устройство\\Драйвер и настройки разрешения" +msgid "Building too close" +msgstr "Здание слишком близко" -msgid "Graphics\\Graphics settings" -msgstr "Графика\\Настройки графики" +msgid "Button %1" +msgstr "Кнопка %1" -msgid "Game\\Game settings" -msgstr "Игра\\Настройки игры" +msgid "COLOBOT" +msgstr "КОЛОБОТ" -msgid "Controls\\Keyboard, joystick and mouse settings" -msgstr "Управление\\Настройки клавиатуры, джойстика и мыши" +msgid "COLOBOT: Gold Edition" +msgstr "" -msgid "Sound\\Music and game sound volume" -msgstr "Звук\\Громкость музыки и звуков" +msgid "Calling an unknown function" +msgstr "Вызов неизвестной функции" -msgid "Unit" -msgstr "Юнит" +msgid "Camera (\\key camera;)" +msgstr "Камера (\\key camera;)" -msgid "Resolution" -msgstr "Разрешение" +msgid "Camera awayest" +msgstr "Отдалить камеру" -msgid "Full screen\\Full screen or window mode" -msgstr "Во весь экран\\Выбор полноэкранного или оконного режима" +msgid "Camera back\\Moves the camera backward" +msgstr "Отдалить камеру\\Перемещение камеры назад" -msgid "Apply changes\\Activates the changed settings" -msgstr "Принять\\Принять изменения настроек" +msgid "Camera closer\\Moves the camera forward" +msgstr "Приблизать камеру\\Перемещение камеры вперед" -msgid "Robbie\\Your assistant" -msgstr "Робби\\Ваш помощник" +msgid "Camera nearest" +msgstr "Приблизить камеру" -msgid "Shadows\\Shadows on the ground" -msgstr "Тени\\Тени на земле" +msgid "Camera to left" +msgstr "Камеру влево" -msgid "Marks on the ground\\Marks on the ground" -msgstr "Метки на земле\\Метки на земле" +msgid "Camera to right" +msgstr "Камеру вправо" -msgid "Dust\\Dust and dirt on bots and buildings" -msgstr "Пыль\\Пыль и грязь на ботах и зданиях" +msgid "Can not create this; there are too many objects" +msgstr "Не удается это создать, слишком много объектов" -msgid "Fog\\Fog" -msgstr "Туман\\Туман" +msgid "Can not produce not researched object" +msgstr "" -msgid "Sunbeams\\Sunbeams in the sky" -msgstr "Солнечные лучи\\Солнечные лучи в небе" +msgid "Can not produce this object in this mission" +msgstr "" -msgid "Sky\\Clouds and nebulae" -msgstr "Небо\\Облака и туманности" +msgid "Can't open file" +msgstr "Невозможно открыть файл" -msgid "Planets and stars\\Astronomical objects in the sky" -msgstr "Планеты и звезды\\Астрономические объекты в небе" +msgid "Cancel" +msgstr "Отмена" -msgid "Dynamic lighting\\Mobile light sources" -msgstr "Динамическое освещение\\Подвижные источники света" +msgid "Cancel\\Cancel all changes" +msgstr "Отмена\\Отменить все изменения" -msgid "Number of particles\\Explosions, dust, reflections, etc." -msgstr "Количество частиц\\Взрывы, пыль, отражения и т.д." +msgid "Cancel\\Keep current player name" +msgstr "Отмена\\Отмена" -msgid "Depth of field\\Maximum visibility" -msgstr "Дальность прорисовки\\Максимальная видимость" +msgid "Challenges" +msgstr "Задания" -msgid "Details\\Visual quality of 3D objects" -msgstr "Детали\\Визуальное качество 3D-объектов" +msgid "Challenges\\Programming challenges" +msgstr "Задания\\Практика программирования" -msgid "Textures\\Quality of textures " -msgstr "Текстуры\\Качество текстур " +msgid "Change camera\\Switches between onboard camera and following camera" +msgstr "Изменить вид\\Переключение между бортовой камерой и следящей камерой" -msgid "Num of decorative objects\\Number of purely ornamental objects" -msgstr "Количество декораций\\Количество декоративных объектов" +msgid "Change player\\Change player" +msgstr "Новый игрок\\Выберите имя для игрока" -msgid "Particles in the interface\\Steam clouds and sparks in the interface" -msgstr "Частицы в интерфейсе меню\\Пар из труб и искры в интерфейсе меню" +msgid "Checkpoint" +msgstr "Контрольная точка" -msgid "Reflections on the buttons \\Shiny buttons" -msgstr "Отражения кнопок \\Блестящие кнопки" +msgid "Checkpoint crossed" +msgstr "Вы прошли контрольную точку" -msgid "Help balloons\\Explain the function of the buttons" -msgstr "Подсказки\\Объяснение функций кнопок" +msgid "Climb\\Increases the power of the jet" +msgstr "Взлет и подъем\\Увеличивает мощность реактивного двигателя" -msgid "Film sequences\\Films before and after the missions" -msgstr "Показывать видео\\Фильмы до и после миссий" +msgid "Close" +msgstr "Закрыть" -msgid "Exit film\\Film at the exit of exercises" -msgstr "Ролик при выходе\\Ролик во время выхода из упражнения" +msgid "Closing bracket missing " +msgstr "Закрывающая скобка отсутствует" -msgid "Friendly fire\\Your shooting can damage your own objects " -msgstr "Огонь по своим\\Вы можете повредить собственные объекты" +msgid "Colobot rules!" +msgstr "Правила игры!" -msgid "Scrolling\\Scrolling when the mouse touches right or left border" -msgstr "Прокрутка\\Прокрутка, когда указатель мыши касается граней экрана" +msgid "Command line" +msgstr "Командная строка" -msgid "Mouse inversion X\\Inversion of the scrolling direction on the X axis" -msgstr "Инверсия мыши по оси X\\Инверсия прокрутки по оси Х" +msgid "Compass" +msgstr "Компас" -msgid "Mouse inversion Y\\Inversion of the scrolling direction on the Y axis" -msgstr "Инверсия мыши по оси Y\\Инверсия прокрутки по оси Y" +msgid "Compilation ok (0 errors)" +msgstr "Компиляция завершена (0 ошибок)" -msgid "Quake at explosions\\The screen shakes at explosions" -msgstr "Землетряс. при взрывах\\Тряска экрана при взрывах" +msgid "Compile" +msgstr "Компилировать" -msgid "Mouse shadow\\Gives the mouse a shadow" -msgstr "Тень мыши\\Мышь отбрасывает тень" +msgid "Continue" +msgstr "Продолжить" -msgid "Automatic indent\\When program editing" -msgstr "Автоматический отступ\\При редактировании программы" +msgid "Continue\\Continue the current mission" +msgstr "Продолжить\\Продолжить текущую миссию" -msgid "Big indent\\Indent 2 or 4 spaces per level defined by braces" -msgstr "Большой отступ\\Отступать на 2 или 4 пробела, в зависимости от скобок" +msgid "Continue\\Continue the game" +msgstr "Продолжить\\Продолжить игру" -msgid "Access to solutions\\Show program \"4: Solution\" in the exercises" -msgstr "Доступ к решению\\Показывает решение \"4: Решение\" в упражнениях" +msgid "Controls\\Keyboard, joystick and mouse settings" +msgstr "Управление\\Настройки клавиатуры, джойстика и мыши" -msgid "Standard controls\\Standard key functions" -msgstr "Стандартное управление\\Сделать управление по умолчанию" +msgid "Converts ore to titanium" +msgstr "Преобразует руду в титан" -msgid "Turn left\\turns the bot to the left" -msgstr "Повернуть налево\\Поворот налево" +msgid "Copy" +msgstr "Копировать" -msgid "Turn right\\turns the bot to the right" -msgstr "Повернуть налево\\Поворот налево" +msgid "Copy (Ctrl+c)" +msgstr "Копировать (Ctrl+C)" -msgid "Forward\\Moves forward" -msgstr "Вперед\\Двигаться вперед" +msgid "Current mission saved" +msgstr "Текущая миссия сохранена" -msgid "Backward\\Moves backward" -msgstr "Назад\\Двигаться назад" +msgid "Customize your appearance" +msgstr "Настроить свой внешний вид" -msgid "Climb\\Increases the power of the jet" -msgstr "Взлет и подъем\\Увеличивает мощность реактивного двигателя" +msgid "Cut (Ctrl+x)" +msgstr "Вырезать (Ctrl+X)" -msgid "Descend\\Reduces the power of the jet" -msgstr "Снижение и посадка\\Понижение мощности реактивного двигателя" +msgid "Defense tower" +msgstr "Защитная башня" -msgid "Change camera\\Switches between onboard camera and following camera" -msgstr "Изменить вид\\Переключение между бортовой камерой и следящей камерой" +msgid "Delete" +msgstr "Удалить" -msgid "Previous object\\Selects the previous object" -msgstr "Предыдущий объект\\Выбор предыдущего объекта" +msgid "Delete player\\Deletes the player from the list" +msgstr "Удалить игрока\\Удаление игрока из списка" -msgid "" -"Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)" -msgstr "" -"Стандартное действие\\Стандартное действие бота (брать/взять, стрелять, " -"искать и т.д.)" +msgid "Delete\\Deletes the selected file" +msgstr "Удалить\\Удаление выбранного файла" -msgid "Camera closer\\Moves the camera forward" -msgstr "Приблизать камеру\\Перемещение камеры вперед" +msgid "Depth of field\\Maximum visibility" +msgstr "Дальность прорисовки\\Максимальная видимость" -msgid "Camera back\\Moves the camera backward" -msgstr "Отдалить камеру\\Перемещение камеры назад" +msgid "Derrick" +msgstr "Космический корабль" -msgid "Next object\\Selects the next object" -msgstr "Следующий объект\\Выбор следующего объекта" +msgid "Descend\\Reduces the power of the jet" +msgstr "Снижение и посадка\\Понижение мощности реактивного двигателя" -msgid "Select the astronaut\\Selects the astronaut" -msgstr "Выбор астронавта\\Выбор астронавта" +msgid "Destroy" +msgstr "" -msgid "Quit\\Quit the current mission or exercise" -msgstr "Выход\\Выход из текущей миссии" +msgid "Destroy the building" +msgstr "Уничтожить здание" -msgid "Instructions\\Shows the instructions for the current mission" -msgstr "Инструкции\\Показывает инструкции по текущей миссии" +msgid "Destroyer" +msgstr "Уничтожитель" -msgid "Programming help\\Gives more detailed help with programming" -msgstr "" -"Помощь в программировании\\Дает более детальную помощь в программировании" +msgid "Details\\Visual quality of 3D objects" +msgstr "Детали\\Визуальное качество 3D-объектов" -msgid "Key word help\\More detailed help about key words" -msgstr "Помощь по командам\\Более подробная справку по командам" +msgid "Developed by :" +msgstr "Разработка :" -msgid "Origin of last message\\Shows where the last message was sent from" -msgstr "" -"Источник сообщения\\Показывает место, откуда было отправлено последнеее " -"сообщение" +msgid "Device\\Driver and resolution settings" +msgstr "Устройство\\Драйвер и настройки разрешения" -msgid "Speed 1.0x\\Normal speed" -msgstr "Скорость 1.0х\\Нормальная скорость" +msgid "Dividing by zero" +msgstr "Деление на ноль (запрещено!)" -msgid "Speed 1.5x\\1.5 times faster" -msgstr "Скорость 1.5х\\В полтора раза быстрее" +msgid "Do not use in this exercise" +msgstr "Не используй в этом упражнении" -msgid "Speed 2.0x\\Double speed" -msgstr "Скорость 2.0х\\В два раза скорость" +msgid "Do you really want to destroy the selected building?" +msgstr "Вы действительно хотите уничтожить выбранное здание?" -msgid "Speed 3.0x\\Three times faster" -msgstr "Скорость 3.0х\\В три раза быстрее" +#, c-format +msgid "Do you want to delete %s's saved games? " +msgstr "Вы действительно хотите удалить сохраненные игры игрока %s?" -msgid "Sound effects:\\Volume of engines, voice, shooting, etc." -msgstr "Общий звук:\\Гормкость двигателя, голоса, стрельбы и т.д." +msgid "Do you want to quit COLOBOT ?" +msgstr "Вы хотите закрыть COLOBOT?" -msgid "Background sound :\\Volume of audio tracks on the CD" -msgstr "Фоновый звук:\\Громкость звуковых дорожек на CD" +msgid "Doors blocked by a robot or another object " +msgstr "Двери заблокированы роботом или другим объектом" -msgid "3D sound\\3D positioning of the sound" -msgstr "3D-звук\\Стерео звук" +msgid "Down (\\key gdown;)" +msgstr "Вниз (\\key gdown;)" -msgid "Lowest\\Minimum graphic quality (highest frame rate)" -msgstr "Низкое\\Минимальное качество графики (быстро)" +msgid "Drawer bot" +msgstr "Рисовальщик" -msgid "Normal\\Normal graphic quality" -msgstr "Средн.\\Нормальное качество графики" +msgid "Dust\\Dust and dirt on bots and buildings" +msgstr "Пыль\\Пыль и грязь на ботах и зданиях" -msgid "Highest\\Highest graphic quality (lowest frame rate)" -msgstr "Высок.\\Самые высокие настройки графики (лучшее качество)" +msgid "Dynamic lighting\\Mobile light sources" +msgstr "Динамическое освещение\\Подвижные источники света" -msgid "Mute\\No sound" -msgstr "Без звука\\Без звука" +msgid "Edit the selected program" +msgstr "Изменить выбранную программу" -msgid "Normal\\Normal sound volume" -msgstr "Нормально\\Нормальная громкость" +msgid "Egg" +msgstr "Яйцо" -msgid "Use a joystick\\Joystick or keyboard" -msgstr "Использовать джойстик\\Джойстик или клавиатура" +msgid "End of block missing" +msgstr "Отсутствует конец блока" -msgid "" -"Access to solution\\Shows the solution (detailed instructions for missions)" -msgstr "Доступ к решению\\Показывает решение (подробные инструкции для миссий)" +msgid "Energy deposit (site for power station)" +msgstr "Запасы энергии (место для электростанций)" -msgid "\\New player name" -msgstr "\\Новое имя" +msgid "Energy level" +msgstr "Уровень энергии" -msgid "OK\\Choose the selected player" -msgstr "ОК\\Выбрать игрока" +msgid "Engineer" +msgstr "Инженер" -msgid "Cancel\\Keep current player name" -msgstr "Отмена\\Отмена" +msgid "Error in instruction move" +msgstr "Ошибка движения" -msgid "Delete player\\Deletes the player from the list" -msgstr "Удалить игрока\\Удаление игрока из списка" +msgid "Execute the selected program" +msgstr "Выполнить выбранную программу" -msgid "Player name" -msgstr "Имя игрока" +msgid "Execute/stop" +msgstr "Выполнить/стоп" -msgid "Save\\Saves the current mission" -msgstr "Сохранить\\Сохранить текущую миссию" +msgid "Exercises\\Programming exercises" +msgstr "Упражнения\\Упражнения по программированию" -msgid "Load\\Loads the selected mission" -msgstr "Загрузить\\Загрузить выбранную миссию" +msgid "Exit film\\Film at the exit of exercises" +msgstr "Ролик при выходе\\Ролик во время выхода из упражнения" -msgid "List of saved missions" -msgstr "Список сохраненных миссий" +msgid "Explode (\\key action;)" +msgstr "" -msgid "Filename:" -msgstr "Имя файла:" +msgid "Explosive" +msgstr "Взрывчатка" -msgid "Mission name" -msgstr "Название миссии" +msgid "Extend shield (\\key action;)" +msgstr "Поднять щит (\\key action;)" -msgid "Photography" -msgstr "Фотография" +msgid "Eyeglasses:" +msgstr "Очки:" -msgid "Delete\\Deletes the selected file" -msgstr "Удалить\\Удаление выбранного файла" +msgid "Face type:" +msgstr "Лицо:" -msgid "Appearance\\Choose your appearance" -msgstr "Внешность\\Настройка внешности" +msgid "File not open" +msgstr "Файл не открыт" -msgid "Standard\\Standard appearance settings" -msgstr "По умолчанию\\Настройки внешнего вида по умолчанию" +msgid "Filename:" +msgstr "Имя файла:" -msgid "Head\\Face and hair" -msgstr "Голова\\Лицо и волосы" +msgid "Film sequences\\Films before and after the missions" +msgstr "Показывать видео\\Фильмы до и после миссий" -msgid "Suit\\Astronaut suit" -msgstr "Костюм\\Костюм астронавта" +msgid "Finish" +msgstr "Финиш" -msgid "\\Turn left" -msgstr "\\Повернуть налево" +msgid "Fixed mine" +msgstr "Мина" -msgid "\\Turn right" -msgstr "\\Повернуть направо" +msgid "Flat ground not large enough" +msgstr "Недостаточно плоской земли" -msgid "Red" -msgstr "Красный" +msgid "Fog\\Fog" +msgstr "Туман\\Туман" -msgid "Green" -msgstr "Зеленый" +msgid "Folder:" +msgstr "Папка" -msgid "Blue" -msgstr "Синий" +#, c-format +msgid "Folder: %s" +msgstr "Папка: %s" -msgid "\\Face 1" -msgstr "Лицо 1" +msgid "Font size" +msgstr "Размер шрифта" -msgid "\\Face 4" -msgstr "\\Лицо 4" +msgid "Forward" +msgstr "Вперед" -msgid "\\Face 3" -msgstr "\\Лицо 3" +msgid "Forward (\\key up;)" +msgstr "Вперед (\\key up;)" -msgid "\\Face 2" -msgstr "\\Лицо 4" +msgid "Forward\\Moves forward" +msgstr "Вперед\\Двигаться вперед" -msgid "\\No eyeglasses" -msgstr "\\Без очков" +msgid "Found a site for a derrick" +msgstr "Найдено место для буровой вышки" -msgid "\\Eyeglasses 1" -msgstr "\\Очки 1" +msgid "Found a site for power station" +msgstr "Найдено место для электростанции" -msgid "\\Eyeglasses 2" -msgstr "\\Очки 2" +msgid "Found key A (site for derrick)" +msgstr "Найден ключ A (место для буровой вышки)" -msgid "\\Eyeglasses 3" -msgstr "\\Очки 3" +msgid "Found key B (site for derrick)" +msgstr "Найден ключ B (место для буровой вышки)" -msgid "\\Eyeglasses 4" -msgstr "\\Очки 4" +msgid "Found key C (site for derrick)" +msgstr "Найден ключ C (место для буровой вышки)" -msgid "\\Eyeglasses 5" -msgstr "\\Очки 5" +msgid "Found key D (site for derrick)" +msgstr "Найден ключ D (место для буровой вышки)" -msgid "Previous selection (\\key desel;)" -msgstr "Предыдущий выбор (\\key desel;)" +msgid "Free game" +msgstr "Свободная игра" -msgid "Turn left (\\key left;)" -msgstr "Налево (\\key left;)" +msgid "Free game\\Free game without a specific goal" +msgstr "Свобод. игра\\Игра без четкой цели" -msgid "Turn right (\\key right;)" -msgstr "Направо (\\key right;)" +msgid "Friendly fire\\Your shooting can damage your own objects " +msgstr "Огонь по своим\\Вы можете повредить собственные объекты" -msgid "Forward (\\key up;)" -msgstr "Вперед (\\key up;)" +msgid "Full screen\\Full screen or window mode" +msgstr "Во весь экран\\Выбор полноэкранного или оконного режима" -msgid "Backward (\\key down;)" -msgstr "Назад (\\key down;)" +msgid "Function already exists" +msgstr "Функция уже существует" -msgid "Up (\\key gup;)" -msgstr "Вверх (\\key gup;)" +msgid "Function name missing" +msgstr "Имя функции отсутствует" -msgid "Down (\\key gdown;)" -msgstr "Вниз (\\key gdown;)" +msgid "Game speed" +msgstr "Скорость игры" -msgid "Grab or drop (\\key action;)" -msgstr "Взять или бросить (\\key action;)" +msgid "Game\\Game settings" +msgstr "Игра\\Настройки игры" -msgid "..in front" -msgstr "Спереди" +msgid "Gantry crane" +msgstr "Козловой кран" -msgid "..behind" -msgstr "Сзади" +msgid "Goto: destination occupied" +msgstr "Перейти: место занято" -msgid "..power cell" -msgstr "Батарею" +msgid "Goto: inaccessible destination" +msgstr "Перейти: место недоступно" -msgid "Instructions for the mission (\\key help;)" -msgstr "Инструкции для миссии (\\key help;)" +msgid "Grab or drop (\\key action;)" +msgstr "Взять или бросить (\\key action;)" -msgid "Take off to finish the mission" -msgstr "Взлететь, чтобы закончить миссию" +msgid "Graphics\\Graphics settings" +msgstr "Графика\\Настройки графики" -msgid "Destroy" -msgstr "" +msgid "Green" +msgstr "Зеленый" -msgid "Build a derrick" -msgstr "Построить буровую вышку" +msgid "Green flag" +msgstr "Зеленый флаг" -msgid "Build a power station" -msgstr "Построить электростанцию" +msgid "Ground inappropriate" +msgstr "Земля не подходит" -msgid "Build a bot factory" -msgstr "Построить завод ботов" +msgid "Ground not flat enough" +msgstr "Земля недостаточно плоская" -msgid "Build a repair center" -msgstr "Построить ремонтный пункт" +msgid "Hair color:" +msgstr "Волосы:" -msgid "Build a converter" -msgstr "Построить преобразователь" +msgid "Head\\Face and hair" +msgstr "Голова\\Лицо и волосы" -msgid "Build a defense tower" -msgstr "Построить защитную башню" +msgid "Help about selected object" +msgstr "Справка о выбранном объекте" -msgid "Build a research center" -msgstr "Построить научно-исследовательский центр" +msgid "Help balloons\\Explain the function of the buttons" +msgstr "Подсказки\\Объяснение функций кнопок" -msgid "Build a radar station" -msgstr "Построить радарную станцию" +msgid "Highest\\Highest graphic quality (lowest frame rate)" +msgstr "Высок.\\Самые высокие настройки графики (лучшее качество)" -msgid "Build a power cell factory" -msgstr "Построить завод перезаряжаемых батарей" +msgid "Home" +msgstr "Домой" -msgid "Build an autolab" -msgstr "Построить лабораторию" +msgid "Houston Mission Control" +msgstr "Центр управления Хьюстон" -msgid "Build a nuclear power plant" -msgstr "Построить завод атомных батарей (неперезаряж.)" +msgid "Illegal object" +msgstr "Запрещенный объект" -msgid "Build a lightning conductor" -msgstr "Построить громоотвод" +msgid "Impossible under water" +msgstr "Невозможно под водой" -msgid "Build a exchange post" -msgstr "Построить пост по обмену сообщениями" +msgid "Impossible when carrying an object" +msgstr "Невозможно при движении с объектом" -msgid "Build a destroyer" -msgstr "" +msgid "Impossible when flying" +msgstr "Невозможно в полете" -msgid "Show if the ground is flat" -msgstr "Показывать плоскую землю" +msgid "Impossible when moving" +msgstr "Невозможно в движении" -msgid "Plant a flag" -msgstr "Установить флаг" +msgid "Impossible when swimming" +msgstr "Невозможно в воде" -msgid "Remove a flag" -msgstr "Удалить флаг" +msgid "Inappropriate bot" +msgstr "Неверный бот" -msgid "\\Blue flags" -msgstr "\\Синий флаг" +msgid "Inappropriate cell type" +msgstr "Батарея не подходит" -msgid "\\Red flags" -msgstr "\\Красный флаг" +msgid "Inappropriate object" +msgstr "" -msgid "\\Green flags" -msgstr "\\Зеленый флаг" +msgid "Incorrect index type" +msgstr "Неверный тип индекса" -msgid "\\Yellow flags" -msgstr "\\Желтый флаг" +msgid "Infected by a virus; temporarily out of order" +msgstr "Заражено вирусом. Временно вышел из строя" -msgid "\\Violet flags" -msgstr "\\Фиолетовый флаг" +msgid "Information exchange post" +msgstr "Пост обмена информацией" -msgid "Build a winged grabber" -msgstr "Собрать летающего сборщика" +msgid "Instruction \"break\" outside a loop" +msgstr "Инструкция \"break\" вне цикла" -msgid "Build a tracked grabber" -msgstr "Собрать гусеничного сборщика" +msgid "Instruction \"case\" missing" +msgstr "Отсутствует инструкция \"case\"" -msgid "Build a wheeled grabber" -msgstr "Собрать колесного сборщика" +msgid "Instruction \"case\" outside a block \"switch\"" +msgstr "Инструкция \"case\" вне блока \"switch\" " -msgid "Build a legged grabber" -msgstr "Собрать шагающего сборщика" +msgid "Instruction \"else\" without corresponding \"if\" " +msgstr "Инструкция \"else\" без \"if\" " -msgid "Build a winged shooter" -msgstr "Собрать летающего стрелка" +msgid "Instructions (\\key help;)" +msgstr "Инструкции (\\key help;)" -msgid "Build a tracked shooter" -msgstr "Собрать гусеничного стрелка" +msgid "Instructions after the final closing brace" +msgstr "Инструкция после последней закрывающей фигурной скобки" -msgid "Build a wheeled shooter" -msgstr "Собрать колесного стрелка" +msgid "Instructions for the mission (\\key help;)" +msgstr "Инструкции для миссии (\\key help;)" -msgid "Build a legged shooter" -msgstr "Собрать шагающего стрелка" +msgid "Instructions from Houston" +msgstr "Инструкции из Хьюстона" -msgid "Build a winged orga shooter" -msgstr "Собрать летающего орга-стрелка" +msgid "Instructions\\Shows the instructions for the current mission" +msgstr "Инструкции\\Показывает инструкции по текущей миссии" -msgid "Build a tracked orga shooter" -msgstr "Собрать гусеничного орга-стрелка" +msgid "Internal error - tell the developers" +msgstr "" -msgid "Build a wheeled orga shooter" -msgstr "Собрать колесного орга-стрелка" +msgid "Jet temperature" +msgstr "Температура реактивного двигателя" -msgid "Build a legged orga shooter" -msgstr "Собрать шагающего орга-стрелка" +msgid "Key A" +msgstr "Ключ А" -msgid "Build a winged sniffer" -msgstr "Собрать летающего искателя" +msgid "Key B" +msgstr "Ключ B" -msgid "Build a tracked sniffer" -msgstr "Собрать гусеничного искателя" +msgid "Key C" +msgstr "Ключ C" -msgid "Build a wheeled sniffer" -msgstr "Собрать колесного искателя" +msgid "Key D" +msgstr "Ключ D" -msgid "Build a legged sniffer" -msgstr "Собрать шагающего искателя" +msgid "Key word help\\More detailed help about key words" +msgstr "Помощь по командам\\Более подробная справку по командам" -msgid "Build a thumper" -msgstr "Собрать ударника" +msgid "Keyword \"while\" missing" +msgstr "Нет ключевого слова \"while\" " -msgid "Build a phazer shooter" -msgstr "Собрать фазового стрелка" +msgid "Keyword help(\\key cbot;)" +msgstr "Помощь(\\key cbot;)" -msgid "Build a recycler" -msgstr "Собрать утилизатор" +msgid "LOADING" +msgstr "ЗАГРУЗКА" -msgid "Build a shielder" -msgstr "Собрать передвижной щит" +msgid "Legged grabber" +msgstr "Шагающий сборщик" -msgid "Build a subber" -msgstr "Собрать саббера" +msgid "Legged orga shooter" +msgstr "Шагающий орга-стрелка" -msgid "Run research program for tracked bots" -msgstr "Начать исследование программы для гусеничного бота " +msgid "Legged shooter" +msgstr "Шагающий стрелок" -msgid "Run research program for winged bots" -msgstr "Начать исследование программы для летающего бота" +msgid "Legged sniffer" +msgstr "Шагающий искатель" -msgid "Run research program for thumper" -msgstr "Начать исследование программы для ударника" +msgid "Lightning conductor" +msgstr "Громоотвод" -msgid "Run research program for shooter" -msgstr "Начать исследование программы для стрелка" +msgid "List of objects" +msgstr "Список объектов" -msgid "Run research program for defense tower" -msgstr "Начать исследование программы для защитной башни" +msgid "List of saved missions" +msgstr "Список сохраненных миссий" -msgid "Run research program for phazer shooter" -msgstr "Начать исследование программы для фазового стрелка" +msgid "Load a saved mission" +msgstr "Загрузить" -msgid "Run research program for shielder" -msgstr "Начать исследование программы для передвижного щита" +msgid "Load\\Load a saved mission" +msgstr "Загрузить\\Загрузить сохраненную миссию" -msgid "Run research program for nuclear power" -msgstr "Начать исследование программы для атомной энергетики" +msgid "Load\\Loads the selected mission" +msgstr "Загрузить\\Загрузить выбранную миссию" -msgid "Run research program for legged bots" -msgstr "Начать исследование программы для шагающих ботов" +msgid "Lowest\\Minimum graphic quality (highest frame rate)" +msgstr "Низкое\\Минимальное качество графики (быстро)" -msgid "Run research program for orga shooter" -msgstr "Начать исследование программы для орга-стерлка" +msgid "Lunar Roving Vehicle" +msgstr "Луноход" -msgid "Return to start" -msgstr "Вернуться в начало" +msgid "Marks on the ground\\Marks on the ground" +msgstr "Метки на земле\\Метки на земле" -msgid "Sniff (\\key action;)" -msgstr "Искать (\\key action;)" +msgid "Maximize" +msgstr "Развернуть" -msgid "Thump (\\key action;)" -msgstr "Удар (\\key action;)" +msgid "Minimize" +msgstr "Свернуть" -msgid "Shoot (\\key action;)" -msgstr "Огонь (\\key action;)" +msgid "Mission name" +msgstr "Название миссии" -msgid "Explode (\\key action;)" -msgstr "" +msgid "Missions" +msgstr "Миссии" -msgid "Recycle (\\key action;)" -msgstr "Утилизация (\\key action;)" +msgid "Missions\\Select mission" +msgstr "Миссии\\Выбор миссии" -msgid "Extend shield (\\key action;)" -msgstr "Поднять щит (\\key action;)" +msgid "Mouse inversion X\\Inversion of the scrolling direction on the X axis" +msgstr "Инверсия мыши по оси X\\Инверсия прокрутки по оси Х" -msgid "Withdraw shield (\\key action;)" -msgstr "Снять щит (\\key action;)" +msgid "Mouse inversion Y\\Inversion of the scrolling direction on the Y axis" +msgstr "Инверсия мыши по оси Y\\Инверсия прокрутки по оси Y" -msgid "Shield radius" -msgstr "Радиус щита" +msgid "Mouse shadow\\Gives the mouse a shadow" +msgstr "Тень мыши\\Мышь отбрасывает тень" -msgid "Execute the selected program" -msgstr "Выполнить выбранную программу" +msgid "Mute\\No sound" +msgstr "Без звука\\Без звука" -msgid "Edit the selected program" -msgstr "Изменить выбранную программу" +msgid "Name:" +msgstr "Имя:" -msgid "\\SatCom on standby" -msgstr "\\SatCom ждет" +msgid "Negative value rejected by \"throw\"" +msgstr "Отрицательное значение не принято" -msgid "Destroy the building" -msgstr "Уничтожить здание" +msgid "Nest" +msgstr "Гнездо" -msgid "Energy level" -msgstr "Уровень энергии" +msgid "New" +msgstr "Новый" -msgid "Shield level" -msgstr "Уровень брони" +msgid "New ..." +msgstr "Новый ..." -msgid "Jet temperature" -msgstr "Температура реактивного двигателя" +msgid "New bot available" +msgstr "Доступен новый бот" -msgid "Still working ..." -msgstr "Работает ..." +msgid "Next" +msgstr "Следующий" -msgid "Number of insects detected" -msgstr "Количество обнаруженных насекомых" +msgid "Next object\\Selects the next object" +msgstr "Следующий объект\\Выбор следующего объекта" -msgid "Transmitted information" -msgstr "Переданная информация" +msgid "No energy in the subsoil" +msgstr "Под землей нет запасов энергии" -msgid "Compass" -msgstr "Компас" +msgid "No flag nearby" +msgstr "Слишком много флагов этого цвета (максимум 5)" -msgid "Zoom mini-map" -msgstr "Масштаб мини-карты" +msgid "No function running" +msgstr "Нет запущенной функции" -msgid "Camera (\\key camera;)" -msgstr "Камера (\\key camera;)" +msgid "No function with this name accepts this kind of parameter" +msgstr "Нет функции с этим именем для этого вида параметра" -msgid "Camera to left" -msgstr "Камеру влево" +msgid "No function with this name accepts this number of parameters" +msgstr "Нет функции с этим именем для этого числа параметра" -msgid "Camera to right" -msgstr "Камеру вправо" +msgid "No information exchange post within range" +msgstr "Поста по обмену информацией нет рядом или он далеко" -msgid "Camera nearest" -msgstr "Приблизить камеру" +msgid "No more energy" +msgstr "Нет энергии" -msgid "Camera awayest" -msgstr "Отдалить камеру" +msgid "No ore in the subsoil" +msgstr "" -msgid "Help about selected object" -msgstr "Справка о выбранном объекте" +msgid "No other robot" +msgstr "Нет робота" -msgid "Show the solution" -msgstr "Показать решение" +msgid "No power cell" +msgstr "Нет батареи" -msgid "Switch bots <-> buildings" -msgstr "Переключение между ботами и зданиями" +msgid "No titanium" +msgstr "Нет титана" -msgid "Show the range" -msgstr "Дальность" +msgid "No titanium around" +msgstr "Вокруг нет титана" -msgid "\\Raise the pencil" -msgstr "\\Поднять перо" +msgid "No titanium ore to convert" +msgstr "Нет титановых руд для преобразования" -msgid "\\Use the black pencil" -msgstr "\\Использовать черное перо" +msgid "No titanium to transform" +msgstr "" -msgid "\\Use the yellow pencil" -msgstr "\\Использовать желтое перо" +msgid "No uranium to transform" +msgstr "Нет урана для преобразования" -msgid "\\Use the orange pencil" -msgstr "\\Использовать оранжевое перо" +msgid "Normal size" +msgstr "Нормальный размер" -msgid "\\Use the red pencil" -msgstr "\\Использовать красное перо" +msgid "Normal\\Normal graphic quality" +msgstr "Средн.\\Нормальное качество графики" -msgid "\\Use the purple pencil" -msgstr "" +msgid "Normal\\Normal sound volume" +msgstr "Нормально\\Нормальная громкость" -msgid "\\Use the blue pencil" -msgstr "\\Использовать синее перо" +msgid "Not enough energy" +msgstr "Не хватает энергии" -msgid "\\Use the green pencil" -msgstr "\\Использовать зеленое перо" +msgid "Not enough energy yet" +msgstr "Не хватает энергии" -msgid "\\Use the brown pencil" -msgstr "Использовать коричневое перо" +msgid "Not found anything to destroy" +msgstr "" -msgid "\\Start recording" -msgstr "\\Начать запись" +msgid "Not yet enough energy" +msgstr "Не хватает энергии" -msgid "\\Stop recording" -msgstr "\\Остановить запись" +msgid "Nothing to analyze" +msgstr "Нечего анализировать" -msgid "Show the place" -msgstr "Место" +msgid "Nothing to drop" +msgstr "Нечего бросить" -msgid "Continue" -msgstr "Продолжить" +msgid "Nothing to grab" +msgstr "Нечего взять" -msgid "Command line" -msgstr "Командная строка" +msgid "Nothing to recycle" +msgstr "Нечего утилизировать" -msgid "Game speed" -msgstr "Скорость игры" +msgid "Nuclear power cell" +msgstr "Атомная батарея" -msgid "Back" -msgstr "Назад" +msgid "Nuclear power cell available" +msgstr "Доступна атомная батарея" -msgid "Forward" -msgstr "Вперед" +msgid "Nuclear power station" +msgstr "Завод атомных батарей (неперезаряж.)" -msgid "Home" -msgstr "Домой" +msgid "Num of decorative objects\\Number of purely ornamental objects" +msgstr "Количество декораций\\Количество декоративных объектов" -msgid "Copy" -msgstr "Копировать" +msgid "Number missing" +msgstr "Нет числа" -msgid "Size 1" -msgstr "Размер 1" +msgid "Number of insects detected" +msgstr "Количество обнаруженных насекомых" -msgid "Size 2" -msgstr "Размер 2" +msgid "Number of particles\\Explosions, dust, reflections, etc." +msgstr "Количество частиц\\Взрывы, пыль, отражения и т.д." -msgid "Size 3" -msgstr "Размер 3" +msgid "OK" +msgstr "ОК" -msgid "Size 4" -msgstr "Размер 4" +msgid "OK\\Choose the selected player" +msgstr "ОК\\Выбрать игрока" -msgid "Size 5" -msgstr "Размер 5" +msgid "OK\\Close program editor and return to game" +msgstr "ОК\\Закрыть редактор программ и вернуться к игре" -msgid "Instructions from Houston" -msgstr "Инструкции из Хьюстона" +msgid "Object not found" +msgstr "Объект не найден" -msgid "Satellite report" -msgstr "Спутниковый отчет" +msgid "Object too close" +msgstr "Объект слишком близок" -msgid "Programs dispatched by Houston" -msgstr "Программы переданные с Хьюстона" +msgid "One step" +msgstr "Один шаг" -msgid "List of objects" -msgstr "Список объектов" +msgid "Open" +msgstr "Открыть" -msgid "Programming help" -msgstr "Помощь в программировании" +msgid "Open (Ctrl+o)" +msgstr "Открыть (Ctrl+o)" -msgid "Solution" -msgstr "Решение" +msgid "Opening brace missing " +msgstr "Открывающая скобка отсутствует " -msgid "OK\\Close program editor and return to game" -msgstr "ОК\\Закрыть редактор программ и вернуться к игре" +msgid "Opening bracket missing" +msgstr "Открывающая скобка отсутствует" -msgid "Cancel\\Cancel all changes" -msgstr "Отмена\\Отменить все изменения" +msgid "Operation impossible with value \"nan\"" +msgstr "Операция невозможна значение \"nan\"" -msgid "Open (Ctrl+o)" -msgstr "Открыть (Ctrl+o)" +msgid "Options" +msgstr "Опции" -msgid "Save (Ctrl+s)" -msgstr "Сохранить (Ctrl+s)" +msgid "Options\\Preferences" +msgstr "Опции\\Настройки" -msgid "Undo (Ctrl+z)" -msgstr "Отмена (Ctrl+Z)" +msgid "Organic matter" +msgstr "Органическое вещество" -msgid "Cut (Ctrl+x)" -msgstr "Вырезать (Ctrl+X)" +msgid "Origin of last message\\Shows where the last message was sent from" +msgstr "" +"Источник сообщения\\Показывает место, откуда было отправлено последнеее " +"сообщение" -msgid "Copy (Ctrl+c)" -msgstr "Копировать (Ctrl+C)" +msgid "Parameters missing " +msgstr "Отсутствуют параметры " + +msgid "Particles in the interface\\Steam clouds and sparks in the interface" +msgstr "Частицы в интерфейсе меню\\Пар из труб и искры в интерфейсе меню" msgid "Paste (Ctrl+v)" msgstr "Вставить (Ctrl+V)" -msgid "Font size" -msgstr "Размер шрифта" - -msgid "Instructions (\\key help;)" -msgstr "Инструкции (\\key help;)" +msgid "Pause/continue" +msgstr "Пауза/продолжить" -msgid "Programming help (\\key prog;)" -msgstr "Помощь в программировании (\\key prog;)" +msgid "Phazer shooter" +msgstr "Фазовый стрелок" -msgid "Compile" -msgstr "Компилировать" +msgid "Photography" +msgstr "Фотография" -msgid "Execute/stop" -msgstr "Выполнить/стоп" +msgid "Place occupied" +msgstr "Место занято" -msgid "Pause/continue" -msgstr "Пауза/продолжить" +msgid "Planets and stars\\Astronomical objects in the sky" +msgstr "Планеты и звезды\\Астрономические объекты в небе" -msgid "One step" -msgstr "Один шаг" +msgid "Plans for defense tower available" +msgstr "Доступны схемы защитной башни" -msgid "Gantry crane" -msgstr "Козловой кран" +msgid "Plans for nuclear power plant available" +msgstr "Доступны схемы АЭС" -msgid "Spaceship" -msgstr "Космический корабль" +msgid "Plans for phazer shooter available" +msgstr "Доступны схемы фазового стрелка" -msgid "Derrick" -msgstr "Космический корабль" +msgid "Plans for shielder available" +msgstr "Доступны схемы передвижного щита" -msgid "Bot factory" -msgstr "Завод ботов" +msgid "Plans for shooter available" +msgstr "Доступны схемы стрелка" -msgid "Repair center" -msgstr "Ремонтный пункт" +msgid "Plans for thumper available" +msgstr "Доступны схемы ударника" -msgid "Destroyer" -msgstr "Уничтожитель" +msgid "Plans for tracked robots available " +msgstr "Доступны схемы гусеничных роботов " -msgid "Power station" -msgstr "Электростанция" +msgid "Plant a flag" +msgstr "Установить флаг" -msgid "Converts ore to titanium" -msgstr "Преобразует руду в титан" +msgid "Play\\Start mission!" +msgstr "Начать\\Перейти к выполнению миссии!" -msgid "Defense tower" -msgstr "Защитная башня" +msgid "Player" +msgstr "Игрок" -msgid "Nest" -msgstr "Гнездо" +msgid "Player name" +msgstr "Имя игрока" -msgid "Research center" -msgstr "Научно-исследовательский центр" +msgid "Player's name" +msgstr "Имя игрока" -msgid "Radar station" -msgstr "Радар" +msgid "Power cell" +msgstr "Батарея" -msgid "Information exchange post" -msgstr "Пост обмена информацией" +msgid "Power cell available" +msgstr "Доступна батарея" msgid "Power cell factory" msgstr "Завод перезаряжаемых батарей" -msgid "Autolab" -msgstr "Лаборатория" - -msgid "Nuclear power station" -msgstr "Завод атомных батарей (неперезаряж.)" +msgid "Power station" +msgstr "Электростанция" -msgid "Lightning conductor" -msgstr "Громоотвод" +msgid "Practice bot" +msgstr "Тренировочный бот" -msgid "Vault" -msgstr "Хранилище" +msgid "Press \\key help; to read instructions on your SatCom" +msgstr "Нажмите \\key help; чтобы получить инструкции от SatCom" -msgid "Houston Mission Control" -msgstr "Центр управления Хьюстон" +msgid "Previous" +msgstr "Предыдущий" -msgid "Target" -msgstr "Цель" +msgid "Previous object\\Selects the previous object" +msgstr "Предыдущий объект\\Выбор предыдущего объекта" -msgid "Start" -msgstr "Начало" +msgid "Previous selection (\\key desel;)" +msgstr "Предыдущий выбор (\\key desel;)" -msgid "Finish" -msgstr "Финиш" +msgid "Private element" +msgstr "Частный элемент" -msgid "Titanium ore" -msgstr "Титановая руда" +msgid "Private\\Private folder" +msgstr "Личное\\Личная папка" -msgid "Uranium ore" -msgstr "Урановая руда" +msgid "Program editor" +msgstr "Редактор программ" -msgid "Organic matter" -msgstr "Органическое вещество" +msgid "Program finished" +msgstr "Программа выполнена" -msgid "Titanium" -msgstr "Титан" +msgid "Program infected by a virus" +msgstr "Программа заражена вирусом" -msgid "Power cell" -msgstr "Батарея" +msgid "Programming exercises" +msgstr "Упражнения" -msgid "Nuclear power cell" -msgstr "Атомная батарея" +msgid "Programming help" +msgstr "Помощь в программировании" -msgid "Black box" -msgstr "Черный ящик" +msgid "Programming help (\\key prog;)" +msgstr "Помощь в программировании (\\key prog;)" -msgid "Key A" -msgstr "Ключ А" +msgid "Programming help\\Gives more detailed help with programming" +msgstr "" +"Помощь в программировании\\Дает более детальную помощь в программировании" -msgid "Key B" -msgstr "Ключ B" +msgid "Programs dispatched by Houston" +msgstr "Программы переданные с Хьюстона" -msgid "Key C" -msgstr "Ключ C" +msgid "Public required" +msgstr "Требуется общественное" -msgid "Key D" -msgstr "Ключ D" +msgid "Public\\Common folder" +msgstr "Общее\\Общая папка" -msgid "Explosive" -msgstr "Взрывчатка" +msgid "Quake at explosions\\The screen shakes at explosions" +msgstr "Землетряс. при взрывах\\Тряска экрана при взрывах" -msgid "Fixed mine" -msgstr "Мина" +msgid "Quit the mission?" +msgstr "Завершить миссию?" -msgid "Survival kit" -msgstr "Аптечка" +msgid "Quit\\Quit COLOBOT" +msgstr "Выход\\Выход из COLOBOT" -msgid "Checkpoint" -msgstr "Контрольная точка" +msgid "Quit\\Quit the current mission or exercise" +msgstr "Выход\\Выход из текущей миссии" -msgid "Blue flag" -msgstr "Синий флаг" +msgid "Radar station" +msgstr "Радар" -msgid "Red flag" -msgstr "Красный флаг" +msgid "Read error" +msgstr "Ошибка чтения" -msgid "Green flag" -msgstr "Зеленый флаг" +msgid "Recorder" +msgstr "Запись" -msgid "Yellow flag" -msgstr "Желтый флаг" +msgid "Recycle (\\key action;)" +msgstr "Утилизация (\\key action;)" -msgid "Violet flag" -msgstr "Фиолетовый флаг" +msgid "Recycler" +msgstr "Утилизатор" -msgid "Energy deposit (site for power station)" -msgstr "Запасы энергии (место для электростанций)" +msgid "Red" +msgstr "Красный" -msgid "Uranium deposit (site for derrick)" -msgstr "Запасы урана (место для буровой вышки)" +msgid "Red flag" +msgstr "Красный флаг" -msgid "Found key A (site for derrick)" -msgstr "Найден ключ A (место для буровой вышки)" +msgid "Reflections on the buttons \\Shiny buttons" +msgstr "Отражения кнопок \\Блестящие кнопки" -msgid "Found key B (site for derrick)" -msgstr "Найден ключ B (место для буровой вышки)" +msgid "Remains of Apollo mission" +msgstr "Остатки миссии Аполлон" -msgid "Found key C (site for derrick)" -msgstr "Найден ключ C (место для буровой вышки)" +msgid "Remove a flag" +msgstr "Удалить флаг" -msgid "Found key D (site for derrick)" -msgstr "Найден ключ D (место для буровой вышки)" - -msgid "Titanium deposit (site for derrick)" -msgstr "Запасы титана (место для буровой вышки)" +msgid "Repair center" +msgstr "Ремонтный пункт" -msgid "Practice bot" -msgstr "Тренировочный бот" +msgid "Research center" +msgstr "Научно-исследовательский центр" -msgid "Winged grabber" -msgstr "Летающий сборщик" +msgid "Research program already performed" +msgstr "Научно-исследовательская программа уже выполняется" -msgid "Tracked grabber" -msgstr "Гусеничный сборщик" +msgid "Research program completed" +msgstr "Научно-исследовательская программа завершена" -msgid "Wheeled grabber" -msgstr "Колесный сборщик" +msgid "Reserved keyword of CBOT language" +msgstr "Резервное ключевое слово языка CBOT" -msgid "Legged grabber" -msgstr "Шагающий сборщик" +msgid "Resolution" +msgstr "Разрешение" -msgid "Winged shooter" -msgstr "Летающий стрелок" +msgid "Restart\\Restart the mission from the beginning" +msgstr "Заново\\Начать данную миссию с начала" -msgid "Tracked shooter" -msgstr "Гусеничный стрелок" +msgid "Return to start" +msgstr "Вернуться в начало" -msgid "Wheeled shooter" -msgstr "Колесный стрелок" +msgid "Robbie" +msgstr "Робби" -msgid "Legged shooter" -msgstr "Шагающий стрелок" +msgid "Robbie\\Your assistant" +msgstr "Робби\\Ваш помощник" -msgid "Winged orga shooter" -msgstr "Летающий орга-стрелок" +msgid "Ruin" +msgstr "Руины" -msgid "Tracked orga shooter" -msgstr "Гусеничный орга-стрелок" +msgid "Run research program for defense tower" +msgstr "Начать исследование программы для защитной башни" -msgid "Wheeled orga shooter" -msgstr "Колесный орга-стрелок" +msgid "Run research program for legged bots" +msgstr "Начать исследование программы для шагающих ботов" -msgid "Legged orga shooter" -msgstr "Шагающий орга-стрелка" +msgid "Run research program for nuclear power" +msgstr "Начать исследование программы для атомной энергетики" -msgid "Winged sniffer" -msgstr "Летающий искатель" +msgid "Run research program for orga shooter" +msgstr "Начать исследование программы для орга-стерлка" -msgid "Tracked sniffer" -msgstr "Гусеничный искатель" +msgid "Run research program for phazer shooter" +msgstr "Начать исследование программы для фазового стрелка" -msgid "Wheeled sniffer" -msgstr "Колесный искатель" +msgid "Run research program for shielder" +msgstr "Начать исследование программы для передвижного щита" -msgid "Legged sniffer" -msgstr "Шагающий искатель" +msgid "Run research program for shooter" +msgstr "Начать исследование программы для стрелка" -msgid "Thumper" -msgstr "Ударник" +msgid "Run research program for thumper" +msgstr "Начать исследование программы для ударника" -msgid "Phazer shooter" -msgstr "Фазовый стрелок" +msgid "Run research program for tracked bots" +msgstr "Начать исследование программы для гусеничного бота " -msgid "Recycler" -msgstr "Утилизатор" +msgid "Run research program for winged bots" +msgstr "Начать исследование программы для летающего бота" -msgid "Shielder" -msgstr "Передвижной щит" +msgid "SatCom" +msgstr "SatCom" -msgid "Subber" -msgstr "Саббер" +msgid "Satellite report" +msgstr "Спутниковый отчет" -msgid "Target bot" -msgstr "Целевой бот" +msgid "Save" +msgstr "Сохранить" -msgid "Drawer bot" -msgstr "Рисовальщик" +msgid "Save (Ctrl+s)" +msgstr "Сохранить (Ctrl+s)" -msgid "Engineer" -msgstr "Инженер" +msgid "Save the current mission" +msgstr "Сохранить" -msgid "Robbie" -msgstr "Робби" +msgid "Save\\Save the current mission " +msgstr "Сохранить\\Сохранить текущую миссию" -msgid "Alien Queen" -msgstr "Королева чужих" +msgid "Save\\Saves the current mission" +msgstr "Сохранить\\Сохранить текущую миссию" -msgid "Ant" -msgstr "Муравей" +msgid "Scrolling\\Scrolling when the mouse touches right or left border" +msgstr "Прокрутка\\Прокрутка, когда указатель мыши касается граней экрана" -msgid "Spider" -msgstr "Маук" +msgid "Select the astronaut\\Selects the astronaut" +msgstr "Выбор астронавта\\Выбор астронавта" -msgid "Wasp" -msgstr "Оса" +msgid "Semicolon terminator missing" +msgstr "Отсутствует точка с запятой" -msgid "Worm" -msgstr "Червь" +msgid "Shadows\\Shadows on the ground" +msgstr "Тени\\Тени на земле" -msgid "Egg" -msgstr "Яйцо" +msgid "Shield level" +msgstr "Уровень брони" -msgid "Wreckage" -msgstr "Обломки" +msgid "Shield radius" +msgstr "Радиус щита" -msgid "Ruin" -msgstr "Руины" +msgid "Shielder" +msgstr "Передвижной щит" -msgid "Waste" -msgstr "Мусор" +msgid "Shoot (\\key action;)" +msgstr "Огонь (\\key action;)" -msgid "Spaceship ruin" -msgstr "Обломки корабля" +msgid "Show if the ground is flat" +msgstr "Показывать плоскую землю" -msgid "Remains of Apollo mission" -msgstr "Остатки миссии Аполлон" +msgid "Show the place" +msgstr "Место" -msgid "Lunar Roving Vehicle" -msgstr "Луноход" +msgid "Show the range" +msgstr "Дальность" -msgid "Internal error - tell the developers" -msgstr "" +msgid "Show the solution" +msgstr "Показать решение" -msgid "Unknown command" -msgstr "Неизвестная команда" +msgid "Sign \" : \" missing" +msgstr "Знак \" : \" отсутствует" -msgid "Inappropriate bot" -msgstr "Неверный бот" +msgid "Size 1" +msgstr "Размер 1" -msgid "Impossible when flying" -msgstr "Невозможно в полете" +msgid "Size 2" +msgstr "Размер 2" -msgid "Already carrying something" -msgstr "Уже что-то несу" +msgid "Size 3" +msgstr "Размер 3" -msgid "Nothing to grab" -msgstr "Нечего взять" +msgid "Size 4" +msgstr "Размер 4" -msgid "Impossible when moving" -msgstr "Невозможно в движении" +msgid "Size 5" +msgstr "Размер 5" -msgid "Place occupied" -msgstr "Место занято" +msgid "Sky\\Clouds and nebulae" +msgstr "Небо\\Облака и туманности" -msgid "No other robot" -msgstr "Нет робота" +msgid "Sniff (\\key action;)" +msgstr "Искать (\\key action;)" -msgid "You can not carry a radioactive object" -msgstr "Вы не можете нести радиоактивные объекты" +msgid "Solution" +msgstr "Решение" -msgid "You can not carry an object under water" -msgstr "Вы не можете нести объекты под водой" +msgid "Sound effects:\\Volume of engines, voice, shooting, etc." +msgstr "Общий звук:\\Гормкость двигателя, голоса, стрельбы и т.д." -msgid "Nothing to drop" -msgstr "Нечего бросить" +msgid "Sound\\Music and game sound volume" +msgstr "Звук\\Громкость музыки и звуков" -msgid "Impossible under water" -msgstr "Невозможно под водой" +msgid "Spaceship" +msgstr "Космический корабль" -msgid "Not enough energy" -msgstr "Не хватает энергии" +msgid "Spaceship ruin" +msgstr "Обломки корабля" -msgid "Titanium too far away" -msgstr "Титан слишком далеко" +msgid "Speed 1.0x\\Normal speed" +msgstr "Скорость 1.0х\\Нормальная скорость" -msgid "Titanium too close" -msgstr "Титан слишком близко" +msgid "Speed 1.5x\\1.5 times faster" +msgstr "Скорость 1.5х\\В полтора раза быстрее" -msgid "No titanium around" -msgstr "Вокруг нет титана" +msgid "Speed 2.0x\\Double speed" +msgstr "Скорость 2.0х\\В два раза скорость" -msgid "Ground not flat enough" -msgstr "Земля недостаточно плоская" +msgid "Speed 3.0x\\Three times faster" +msgstr "Скорость 3.0х\\В три раза быстрее" -msgid "Flat ground not large enough" -msgstr "Недостаточно плоской земли" +msgid "Spider" +msgstr "Маук" -msgid "Too close to space ship" -msgstr "Слишком близко к кораблю" +msgid "Spider fatally wounded" +msgstr "Паук смертельно ранен" -msgid "Too close to a building" -msgstr "Слишком близко к зданию" +msgid "Stack overflow" +msgstr "Переполнение стека" -msgid "Can not produce this object in this mission" +msgid "" +"Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)" msgstr "" +"Стандартное действие\\Стандартное действие бота (брать/взять, стрелять, " +"искать и т.д.)" -msgid "Can not produce not researched object" -msgstr "" +msgid "Standard controls\\Standard key functions" +msgstr "Стандартное управление\\Сделать управление по умолчанию" -msgid "Ground inappropriate" -msgstr "Земля не подходит" +msgid "Standard\\Standard appearance settings" +msgstr "По умолчанию\\Настройки внешнего вида по умолчанию" -msgid "Building too close" -msgstr "Здание слишком близко" - -msgid "Object too close" -msgstr "Объект слишком близок" - -msgid "Nothing to recycle" -msgstr "Нечего утилизировать" - -msgid "No more energy" -msgstr "Нет энергии" - -msgid "Error in instruction move" -msgstr "Ошибка движения" - -msgid "Object not found" -msgstr "Объект не найден" - -msgid "Goto: inaccessible destination" -msgstr "Перейти: место недоступно" - -msgid "Goto: destination occupied" -msgstr "Перейти: место занято" - -msgid "No titanium ore to convert" -msgstr "Нет титановых руд для преобразования" - -msgid "No ore in the subsoil" -msgstr "" - -msgid "No energy in the subsoil" -msgstr "Под землей нет запасов энергии" - -msgid "No power cell" -msgstr "Нет батареи" - -msgid "Inappropriate cell type" -msgstr "Батарея не подходит" - -msgid "Research program already performed" -msgstr "Научно-исследовательская программа уже выполняется" - -msgid "Not enough energy yet" -msgstr "Не хватает энергии" - -msgid "No titanium to transform" -msgstr "" - -msgid "Transforms only titanium" -msgstr "Нет титана для преобразования" - -msgid "Doors blocked by a robot or another object " -msgstr "Двери заблокированы роботом или другим объектом" - -msgid "You must get on the spaceship to take off " -msgstr "Вы должны быть на борту корабля, чтобы взлететь" - -msgid "Nothing to analyze" -msgstr "Нечего анализировать" +msgid "Start" +msgstr "Начало" -msgid "Analyzes only organic matter" -msgstr "Анализирую только органические вещества" +msgid "Still working ..." +msgstr "Работает ..." -msgid "Analysis already performed" -msgstr "Анализ уже выполнен" +msgid "String missing" +msgstr "Отсутствует строка" -msgid "Not yet enough energy" -msgstr "Не хватает энергии" +msgid "Strip color:" +msgstr "Цвет полос" -msgid "No uranium to transform" -msgstr "Нет урана для преобразования" +msgid "Subber" +msgstr "Саббер" -msgid "Transforms only uranium" -msgstr "Преобразовывается только уран" +msgid "Suit color:" +msgstr "Костюм:" -msgid "No titanium" -msgstr "Нет титана" +msgid "Suit\\Astronaut suit" +msgstr "Костюм\\Костюм астронавта" -msgid "No information exchange post within range" -msgstr "Поста по обмену информацией нет рядом или он далеко" +msgid "Sunbeams\\Sunbeams in the sky" +msgstr "Солнечные лучи\\Солнечные лучи в небе" -msgid "Program infected by a virus" -msgstr "Программа заражена вирусом" +msgid "Survival kit" +msgstr "Аптечка" -msgid "Infected by a virus; temporarily out of order" -msgstr "Заражено вирусом. Временно вышел из строя" +msgid "Switch bots <-> buildings" +msgstr "Переключение между ботами и зданиями" -msgid "Impossible when swimming" -msgstr "Невозможно в воде" +msgid "Take off to finish the mission" +msgstr "Взлететь, чтобы закончить миссию" -msgid "Impossible when carrying an object" -msgstr "Невозможно при движении с объектом" +msgid "Target" +msgstr "Цель" -msgid "Too many flags of this color (maximum 5)" -msgstr "" +msgid "Target bot" +msgstr "Целевой бот" -msgid "Too close to an existing flag" -msgstr "" +msgid "Textures\\Quality of textures " +msgstr "Текстуры\\Качество текстур " -msgid "No flag nearby" -msgstr "Слишком много флагов этого цвета (максимум 5)" +msgid "The expression must return a boolean value" +msgstr "Выражение должно возвращать логическое значение" -msgid "Not found anything to destroy" -msgstr "" +msgid "The function returned no value " +msgstr "Функция не возвратила значения" -msgid "Inappropriate object" +msgid "" +"The list is only available if a \\l;radar station\\u object\\radar; is " +"working.\n" msgstr "" +"Список доступен только если \\l;radar station\\u object\\radar; работают\n" msgid "" "The mission is not accomplished yet (press \\key help; for more details)" msgstr "" "Миссия еще не выполнена (нажмите \\key help; для более подробной информации)" -msgid "Bot destroyed" -msgstr "Бот уничтожен" - -msgid "Building destroyed" -msgstr "Здание разрушено" - -msgid "Can not create this; there are too many objects" -msgstr "Не удается это создать, слишком много объектов" - -#, c-format -msgid "\"%s\" missing in this exercise" -msgstr "\"%s\" отсутствует в этом упражнении" - -msgid "Do not use in this exercise" -msgstr "Не используй в этом упражнении" - -msgid "Building completed" -msgstr "Здание построено" - -msgid "Titanium available" -msgstr "Титан доступен" - -msgid "Research program completed" -msgstr "Научно-исследовательская программа завершена" - -msgid "Plans for tracked robots available " -msgstr "Доступны схемы гусеничных роботов " - -msgid "You can fly with the keys (\\key gup;) and (\\key gdown;)" -msgstr "Вы можете лететь с помощью клавиш (\\key gup;) и (\\key gdown;)" - -msgid "Plans for thumper available" -msgstr "Доступны схемы ударника" - -msgid "Plans for shooter available" -msgstr "Доступны схемы стрелка" - -msgid "Plans for defense tower available" -msgstr "Доступны схемы защитной башни" +msgid "The types of the two operands are incompatible " +msgstr "Типы операндов несовместимы" -msgid "Plans for phazer shooter available" -msgstr "Доступны схемы фазового стрелка" +msgid "This class already exists" +msgstr "Этот класс уже существует" -msgid "Plans for shielder available" -msgstr "Доступны схемы передвижного щита" +msgid "This class does not exist" +msgstr "Этот класс не существует" -msgid "Plans for nuclear power plant available" -msgstr "Доступны схемы АЭС" +msgid "This is not a member of this class" +msgstr "Это не член этого класса" -msgid "New bot available" -msgstr "Доступен новый бот" +msgid "This label does not exist" +msgstr "Эта метка не существует" -msgid "Analysis performed" -msgstr "Анализ выполнен" +msgid "This object is not a member of a class" +msgstr "Этот объект не член класса" -msgid "Power cell available" -msgstr "Доступна батарея" +msgid "Thump (\\key action;)" +msgstr "Удар (\\key action;)" -msgid "Nuclear power cell available" -msgstr "Доступна атомная батарея" +msgid "Thumper" +msgstr "Ударник" -msgid "You found a usable object" -msgstr "Вы нашли рабочий объект" +msgid "Titanium" +msgstr "Титан" -msgid "Found a site for power station" -msgstr "Найдено место для электростанции" +msgid "Titanium available" +msgstr "Титан доступен" -msgid "Found a site for a derrick" -msgstr "Найдено место для буровой вышки" +msgid "Titanium deposit (site for derrick)" +msgstr "Запасы титана (место для буровой вышки)" -msgid "<<< Well done; mission accomplished >>>" -msgstr "<<< Отлично, миссия выполнена >>>" +msgid "Titanium ore" +msgstr "Титановая руда" -msgid "<<< Sorry; mission failed >>>" -msgstr "<<< Миссия провалена >>>" +msgid "Titanium too close" +msgstr "Титан слишком близко" -msgid "Current mission saved" -msgstr "Текущая миссия сохранена" +msgid "Titanium too far away" +msgstr "Титан слишком далеко" -msgid "Checkpoint crossed" -msgstr "Вы прошли контрольную точку" +msgid "Too close to a building" +msgstr "Слишком близко к зданию" -msgid "Alien Queen killed" -msgstr "Королева чужих убита" +msgid "Too close to an existing flag" +msgstr "" -msgid "Ant fatally wounded" -msgstr "Муравей смертельно ранен" +msgid "Too close to space ship" +msgstr "Слишком близко к кораблю" -msgid "Wasp fatally wounded" -msgstr "Оса смертельно ранена" +msgid "Too many flags of this color (maximum 5)" +msgstr "" -msgid "Worm fatally wounded" -msgstr "Червь смертельно ранен" +msgid "Too many parameters" +msgstr "Слишком много параметров" -msgid "Spider fatally wounded" -msgstr "Паук смертельно ранен" +msgid "Tracked grabber" +msgstr "Гусеничный сборщик" -msgid "Press \\key help; to read instructions on your SatCom" -msgstr "Нажмите \\key help; чтобы получить инструкции от SatCom" +msgid "Tracked orga shooter" +msgstr "Гусеничный орга-стрелок" -msgid "Opening bracket missing" -msgstr "Открывающая скобка отсутствует" +msgid "Tracked shooter" +msgstr "Гусеничный стрелок" -msgid "Closing bracket missing " -msgstr "Закрывающая скобка отсутствует" +msgid "Tracked sniffer" +msgstr "Гусеничный искатель" -msgid "The expression must return a boolean value" -msgstr "Выражение должно возвращать логическое значение" +msgid "Transforms only titanium" +msgstr "Нет титана для преобразования" -msgid "Variable not declared" -msgstr "Переменная не объявлена" +msgid "Transforms only uranium" +msgstr "Преобразовывается только уран" -msgid "Assignment impossible" -msgstr "Назначение невозможно" +msgid "Transmitted information" +msgstr "Переданная информация" -msgid "Semicolon terminator missing" -msgstr "Отсутствует точка с запятой" +msgid "Turn left (\\key left;)" +msgstr "Налево (\\key left;)" -msgid "Instruction \"case\" outside a block \"switch\"" -msgstr "Инструкция \"case\" вне блока \"switch\" " +msgid "Turn left\\turns the bot to the left" +msgstr "Повернуть налево\\Поворот налево" -msgid "Instructions after the final closing brace" -msgstr "Инструкция после последней закрывающей фигурной скобки" +msgid "Turn right (\\key right;)" +msgstr "Направо (\\key right;)" -msgid "End of block missing" -msgstr "Отсутствует конец блока" +msgid "Turn right\\turns the bot to the right" +msgstr "Повернуть налево\\Поворот налево" -msgid "Instruction \"else\" without corresponding \"if\" " -msgstr "Инструкция \"else\" без \"if\" " +msgid "Type declaration missing" +msgstr "Не задан тип" -msgid "Opening brace missing " -msgstr "Открывающая скобка отсутствует " +msgid "Undo (Ctrl+z)" +msgstr "Отмена (Ctrl+Z)" -msgid "Wrong type for the assignment" -msgstr "Неверный тип для назначения" +msgid "Unit" +msgstr "Юнит" -msgid "A variable can not be declared twice" -msgstr "Переменная не может быть объявлена дважды" +msgid "Unknown Object" +msgstr "Неизвестный объект" -msgid "The types of the two operands are incompatible " -msgstr "Типы операндов несовместимы" +msgid "Unknown command" +msgstr "Неизвестная команда" msgid "Unknown function" msgstr "Неизвестная функция" -msgid "Sign \" : \" missing" -msgstr "Знак \" : \" отсутствует" +msgid "Up (\\key gup;)" +msgstr "Вверх (\\key gup;)" -msgid "Keyword \"while\" missing" -msgstr "Нет ключевого слова \"while\" " +msgid "Uranium deposit (site for derrick)" +msgstr "Запасы урана (место для буровой вышки)" -msgid "Instruction \"break\" outside a loop" -msgstr "Инструкция \"break\" вне цикла" +msgid "Uranium ore" +msgstr "Урановая руда" -msgid "A label must be followed by \"for\"; \"while\"; \"do\" or \"switch\"" -msgstr "За меткой должен быть \"for\", \"while\", \"do\" или \"switch\"" +msgid "Use a joystick\\Joystick or keyboard" +msgstr "Использовать джойстик\\Джойстик или клавиатура" -msgid "This label does not exist" -msgstr "Эта метка не существует" +msgid "User levels" +msgstr "Пользовательские уровни" -msgid "Instruction \"case\" missing" -msgstr "Отсутствует инструкция \"case\"" +msgid "User\\User levels" +msgstr "Польз.\\Пользовательские уровни" -msgid "Number missing" -msgstr "Нет числа" +msgid "Variable name missing" +msgstr "Нет имени переменной" -msgid "Void parameter" -msgstr "Пустой параметр" +msgid "Variable not declared" +msgstr "Переменная не объявлена" -msgid "Type declaration missing" -msgstr "Не задан тип" +msgid "Variable not initialized" +msgstr "Переменная не инициализирована" -msgid "Variable name missing" -msgstr "Нет имени переменной" +msgid "Vault" +msgstr "Хранилище" -msgid "Function name missing" -msgstr "Имя функции отсутствует" +msgid "Violet flag" +msgstr "Фиолетовый флаг" -msgid "Too many parameters" -msgstr "Слишком много параметров" +msgid "Void parameter" +msgstr "Пустой параметр" -msgid "Function already exists" -msgstr "Функция уже существует" +msgid "Wasp" +msgstr "Оса" -msgid "Parameters missing " -msgstr "Отсутствуют параметры " +msgid "Wasp fatally wounded" +msgstr "Оса смертельно ранена" -msgid "No function with this name accepts this kind of parameter" -msgstr "Нет функции с этим именем для этого вида параметра" +msgid "Waste" +msgstr "Мусор" -msgid "No function with this name accepts this number of parameters" -msgstr "Нет функции с этим именем для этого числа параметра" +msgid "Wheeled grabber" +msgstr "Колесный сборщик" -msgid "This is not a member of this class" -msgstr "Это не член этого класса" +msgid "Wheeled orga shooter" +msgstr "Колесный орга-стрелок" -msgid "This object is not a member of a class" -msgstr "Этот объект не член класса" +msgid "Wheeled shooter" +msgstr "Колесный стрелок" -msgid "Appropriate constructor missing" -msgstr "Соответствующий конструктор отсутствует" +msgid "Wheeled sniffer" +msgstr "Колесный искатель" -msgid "This class already exists" -msgstr "Этот класс уже существует" +msgid "Winged grabber" +msgstr "Летающий сборщик" -msgid "\" ] \" missing" -msgstr "Отсутствует \"]\" " +msgid "Winged orga shooter" +msgstr "Летающий орга-стрелок" -msgid "Reserved keyword of CBOT language" -msgstr "Резервное ключевое слово языка CBOT" +msgid "Winged shooter" +msgstr "Летающий стрелок" -msgid "Bad argument for \"new\"" -msgstr "Неверный аргумент для \"new\"" +msgid "Winged sniffer" +msgstr "Летающий искатель" -msgid "\" [ \" expected" -msgstr "Ожидалось \" [ \"" +msgid "Withdraw shield (\\key action;)" +msgstr "Снять щит (\\key action;)" -msgid "String missing" -msgstr "Отсутствует строка" +msgid "Worm" +msgstr "Червь" -msgid "Incorrect index type" -msgstr "Неверный тип индекса" +msgid "Worm fatally wounded" +msgstr "Червь смертельно ранен" -msgid "Private element" -msgstr "Частный элемент" +msgid "Wreckage" +msgstr "Обломки" -msgid "Public required" -msgstr "Требуется общественное" +msgid "Write error" +msgstr "Ошибка записи" -msgid "Dividing by zero" -msgstr "Деление на ноль (запрещено!)" +msgid "Wrong type for the assignment" +msgstr "Неверный тип для назначения" -msgid "Variable not initialized" -msgstr "Переменная не инициализирована" +msgid "Yellow flag" +msgstr "Желтый флаг" -msgid "Negative value rejected by \"throw\"" -msgstr "Отрицательное значение не принято" +msgid "You can fly with the keys (\\key gup;) and (\\key gdown;)" +msgstr "Вы можете лететь с помощью клавиш (\\key gup;) и (\\key gdown;)" -msgid "The function returned no value " -msgstr "Функция не возвратила значения" +msgid "You can not carry a radioactive object" +msgstr "Вы не можете нести радиоактивные объекты" -msgid "No function running" -msgstr "Нет запущенной функции" +msgid "You can not carry an object under water" +msgstr "Вы не можете нести объекты под водой" -msgid "Calling an unknown function" -msgstr "Вызов неизвестной функции" +msgid "You found a usable object" +msgstr "Вы нашли рабочий объект" -msgid "This class does not exist" -msgstr "Этот класс не существует" +msgid "You must get on the spaceship to take off " +msgstr "Вы должны быть на борту корабля, чтобы взлететь" -msgid "Unknown Object" -msgstr "Неизвестный объект" +msgid "Zoom mini-map" +msgstr "Масштаб мини-карты" -msgid "Operation impossible with value \"nan\"" -msgstr "Операция невозможна значение \"nan\"" +msgid "\\Blue flags" +msgstr "\\Синий флаг" -msgid "Access beyond array limit" -msgstr "Доступ к массиву за предел" +msgid "\\Eyeglasses 1" +msgstr "\\Очки 1" -msgid "Stack overflow" -msgstr "Переполнение стека" +msgid "\\Eyeglasses 2" +msgstr "\\Очки 2" -msgid "Illegal object" -msgstr "Запрещенный объект" +msgid "\\Eyeglasses 3" +msgstr "\\Очки 3" -msgid "Can't open file" -msgstr "Невозможно открыть файл" +msgid "\\Eyeglasses 4" +msgstr "\\Очки 4" -msgid "File not open" -msgstr "Файл не открыт" +msgid "\\Eyeglasses 5" +msgstr "\\Очки 5" -msgid "Read error" -msgstr "Ошибка чтения" +msgid "\\Face 1" +msgstr "Лицо 1" -msgid "Write error" -msgstr "Ошибка записи" +msgid "\\Face 2" +msgstr "\\Лицо 4" + +msgid "\\Face 3" +msgstr "\\Лицо 3" + +msgid "\\Face 4" +msgstr "\\Лицо 4" -msgid "left;" -msgstr "влево" +msgid "\\Green flags" +msgstr "\\Зеленый флаг" -msgid "right;" -msgstr "вправо" +msgid "\\New player name" +msgstr "\\Новое имя" -msgid "up;" -msgstr "вверх" +msgid "\\No eyeglasses" +msgstr "\\Без очков" -msgid "down;" -msgstr "вниз" +msgid "\\Raise the pencil" +msgstr "\\Поднять перо" -msgid "gup;" -msgstr "вверх" +msgid "\\Red flags" +msgstr "\\Красный флаг" -msgid "gdown;" -msgstr "вниз" +msgid "\\Return to COLOBOT" +msgstr "\\Вернуться в COLOBOT" -msgid "camera;" -msgstr "камера" +msgid "\\SatCom on standby" +msgstr "\\SatCom ждет" -msgid "desel;" -msgstr "отмена" +msgid "\\Start recording" +msgstr "\\Начать запись" -msgid "action;" -msgstr "действие" +msgid "\\Stop recording" +msgstr "\\Остановить запись" -msgid "near;" -msgstr "ближе" +msgid "\\Turn left" +msgstr "\\Повернуть налево" -msgid "away;" -msgstr "дальше" +msgid "\\Turn right" +msgstr "\\Повернуть направо" -msgid "next;" -msgstr "следующий" +msgid "\\Use the black pencil" +msgstr "\\Использовать черное перо" -msgid "human;" -msgstr "человек" +msgid "\\Use the blue pencil" +msgstr "\\Использовать синее перо" -msgid "quit;" -msgstr "выйти" +msgid "\\Use the brown pencil" +msgstr "Использовать коричневое перо" -msgid "help;" -msgstr "помощь" +msgid "\\Use the green pencil" +msgstr "\\Использовать зеленое перо" -msgid "prog;" -msgstr "прог." +msgid "\\Use the orange pencil" +msgstr "\\Использовать оранжевое перо" -msgid "cbot;" -msgstr "cobt" +msgid "\\Use the purple pencil" +msgstr "" -msgid "visit;" -msgstr "посетить" +msgid "\\Use the red pencil" +msgstr "\\Использовать красное перо" -msgid "speed10;" -msgstr "скорость10" +msgid "\\Use the yellow pencil" +msgstr "\\Использовать желтое перо" -msgid "speed15;" -msgstr "скорость15" +msgid "\\Violet flags" +msgstr "\\Фиолетовый флаг" -msgid "speed20;" -msgstr "скорость20" +msgid "\\Yellow flags" +msgstr "\\Желтый флаг" -msgid "Ctrl" -msgstr "Ctrl" +msgid "\\b;Aliens\n" +msgstr "\\b;Чужаки\n" -msgid "Shift" -msgstr "Shift" +msgid "\\b;Buildings\n" +msgstr "\\b;Здания\n" -msgid "Alt" -msgstr "Alt" +msgid "\\b;Error\n" +msgstr "\\b;Ошибка\n" -msgid "Win" -msgstr "Win" +msgid "\\b;List of objects\n" +msgstr "\\b;Список объектов\n" -msgid "Button %1" -msgstr "Кнопка %1" +msgid "\\b;Moveable objects\n" +msgstr "\\b;Подвижные объекты\n" -msgid "%1" -msgstr "%1" +msgid "\\b;Robots\n" +msgstr "\\b;Роботы\n" -#~ msgid "Menu (\\key quit;)" -#~ msgstr "Меню (\\key выйти;)" +msgid "\\c; (none)\\n;\n" +msgstr "\\c; (нет)\\n;\n" -#, c-format -#~ msgid "GetResource event num out of range: %d\n" -#~ msgstr "событие GetResource, число вне диапазона: %d\n" +msgid "www.epsitec.com" +msgstr "www.epsitec.com" diff --git a/src/common/restext.cpp b/src/common/restext.cpp index 2248f2b..dd1d263 100644 --- a/src/common/restext.cpp +++ b/src/common/restext.cpp @@ -38,689 +38,696 @@ const char* stringsObject[OBJECT_MAX] = { nullptr }; const char* stringsErr[ERR_MAX] = { nullptr }; const char* stringsCbot[TX_MAX] = { nullptr }; +/* Macro to mark which texts are translatable by gettext + * It doesn't do anything at compile-time, as all texts represented here are used later + * in explicit call to gettext(), but it is used by xgettext executable to filter extracted + * texts from this file. + */ +#define TR(x) x + void InitializeRestext() { stringsText[RT_VERSION_ID] = COLOBOT_FULLNAME; - stringsText[RT_DISINFO_TITLE] = "SatCom"; - stringsText[RT_WINDOW_MAXIMIZED] = "Maximize"; - stringsText[RT_WINDOW_MINIMIZED] = "Minimize"; - stringsText[RT_WINDOW_STANDARD] = "Normal size"; - stringsText[RT_WINDOW_CLOSE] = "Close"; - - stringsText[RT_STUDIO_TITLE] = "Program editor"; - stringsText[RT_SCRIPT_NEW] = "New"; - stringsText[RT_NAME_DEFAULT] = "Player"; - stringsText[RT_IO_NEW] = "New ..."; - stringsText[RT_KEY_OR] = " or "; - - stringsText[RT_TITLE_BASE] = "COLOBOT"; - stringsText[RT_TITLE_INIT] = "COLOBOT: Gold Edition"; - stringsText[RT_TITLE_TRAINER] = "Programming exercises"; - stringsText[RT_TITLE_DEFI] = "Challenges"; - stringsText[RT_TITLE_MISSION] = "Missions"; - stringsText[RT_TITLE_FREE] = "Free game"; - stringsText[RT_TITLE_USER] = "User levels"; - stringsText[RT_TITLE_SETUP] = "Options"; - stringsText[RT_TITLE_NAME] = "Player's name"; - stringsText[RT_TITLE_PERSO] = "Customize your appearance"; - stringsText[RT_TITLE_WRITE] = "Save the current mission"; - stringsText[RT_TITLE_READ] = "Load a saved mission"; - - stringsText[RT_PLAY_CHAPt] = " Chapters:"; - stringsText[RT_PLAY_CHAPd] = " Chapters:"; - stringsText[RT_PLAY_CHAPm] = " Planets:"; - stringsText[RT_PLAY_CHAPf] = " Planets:"; - stringsText[RT_PLAY_CHAPu] = " User levels:"; - stringsText[RT_PLAY_CHAPte] = " Chapters:"; - stringsText[RT_PLAY_LISTt] = " Exercises in the chapter:"; - stringsText[RT_PLAY_LISTd] = " Challenges in the chapter:"; - stringsText[RT_PLAY_LISTm] = " Missions on this planet:"; - stringsText[RT_PLAY_LISTf] = " Free game on this planet:"; - stringsText[RT_PLAY_LISTu] = " Missions on this level:"; - stringsText[RT_PLAY_RESUME] = " Summary:"; - - stringsText[RT_SETUP_DEVICE] = " Drivers:"; - stringsText[RT_SETUP_MODE] = " Resolution:"; - stringsText[RT_SETUP_KEY1] = "1) First click on the key you want to redefine."; - stringsText[RT_SETUP_KEY2] = "2) Then press the key you want to use instead."; - - stringsText[RT_PERSO_FACE] = "Face type:"; - stringsText[RT_PERSO_GLASSES] = "Eyeglasses:"; - stringsText[RT_PERSO_HAIR] = "Hair color:"; - stringsText[RT_PERSO_COMBI] = "Suit color:"; - stringsText[RT_PERSO_BAND] = "Strip color:"; - - stringsText[RT_DIALOG_QUIT] = "Do you want to quit COLOBOT ?"; - stringsText[RT_DIALOG_TITLE] = "COLOBOT"; - stringsText[RT_DIALOG_YESQUIT] = "Quit\\Quit COLOBOT"; - stringsText[RT_DIALOG_ABORT] = "Quit the mission?"; - stringsText[RT_DIALOG_YES] = "Abort\\Abort the current mission"; - stringsText[RT_DIALOG_NO] = "Continue\\Continue the current mission"; - stringsText[RT_DIALOG_NOQUIT] = "Continue\\Continue the game"; - stringsText[RT_DIALOG_DELOBJ] = "Do you really want to destroy the selected building?"; - stringsText[RT_DIALOG_DELGAME] = "Do you want to delete %s's saved games? "; - stringsText[RT_DIALOG_YESDEL] = "Delete"; - stringsText[RT_DIALOG_NODEL] = "Cancel"; - stringsText[RT_DIALOG_LOADING] = "LOADING"; - - stringsText[RT_STUDIO_LISTTT] = "Keyword help(\\key cbot;)"; - stringsText[RT_STUDIO_COMPOK] = "Compilation ok (0 errors)"; - stringsText[RT_STUDIO_PROGSTOP] = "Program finished"; - - stringsText[RT_SATCOM_LIST] = "\\b;List of objects\n"; - stringsText[RT_SATCOM_BOT] = "\\b;Robots\n"; - stringsText[RT_SATCOM_BUILDING] = "\\b;Buildings\n"; - stringsText[RT_SATCOM_FRET] = "\\b;Moveable objects\n"; - stringsText[RT_SATCOM_ALIEN] = "\\b;Aliens\n"; - stringsText[RT_SATCOM_NULL] = "\\c; (none)\\n;\n"; - stringsText[RT_SATCOM_ERROR1] = "\\b;Error\n"; - stringsText[RT_SATCOM_ERROR2] = "The list is only available if a \\l;radar station\\u object\\radar; is working.\n"; - - stringsText[RT_IO_OPEN] = "Open"; - stringsText[RT_IO_SAVE] = "Save"; - stringsText[RT_IO_LIST] = "Folder: %s"; - stringsText[RT_IO_NAME] = "Name:"; - stringsText[RT_IO_DIR] = "Folder:"; - stringsText[RT_IO_PRIVATE] = "Private\\Private folder"; - stringsText[RT_IO_PUBLIC] = "Public\\Common folder"; - - stringsText[RT_GENERIC_DEV1] = "Developed by :"; - stringsText[RT_GENERIC_DEV2] = "www.epsitec.com"; - stringsText[RT_GENERIC_EDIT1] = " "; - stringsText[RT_GENERIC_EDIT2] = " "; - - stringsText[RT_INTERFACE_REC] = "Recorder"; - - - - stringsEvent[EVENT_BUTTON_OK] = "OK"; - stringsEvent[EVENT_BUTTON_CANCEL] = "Cancel"; - stringsEvent[EVENT_BUTTON_NEXT] = "Next"; - stringsEvent[EVENT_BUTTON_PREV] = "Previous"; - - stringsEvent[EVENT_DIALOG_OK] = "OK"; - stringsEvent[EVENT_DIALOG_CANCEL] = "Cancel"; - - stringsEvent[EVENT_INTERFACE_TRAINER] = "Exercises\\Programming exercises"; - stringsEvent[EVENT_INTERFACE_DEFI] = "Challenges\\Programming challenges"; - stringsEvent[EVENT_INTERFACE_MISSION] = "Missions\\Select mission"; - stringsEvent[EVENT_INTERFACE_FREE] = "Free game\\Free game without a specific goal"; - stringsEvent[EVENT_INTERFACE_USER] = "User\\User levels"; - stringsEvent[EVENT_INTERFACE_NAME] = "Change player\\Change player"; - stringsEvent[EVENT_INTERFACE_SETUP] = "Options\\Preferences"; - stringsEvent[EVENT_INTERFACE_AGAIN] = "Restart\\Restart the mission from the beginning"; - stringsEvent[EVENT_INTERFACE_WRITE] = "Save\\Save the current mission "; - stringsEvent[EVENT_INTERFACE_READ] = "Load\\Load a saved mission"; - stringsEvent[EVENT_INTERFACE_ABORT] = "\\Return to COLOBOT"; - stringsEvent[EVENT_INTERFACE_QUIT] = "Quit\\Quit COLOBOT"; - stringsEvent[EVENT_INTERFACE_BACK] = "<< Back \\Back to the previous screen"; - stringsEvent[EVENT_INTERFACE_PLAY] = "Play\\Start mission!"; - stringsEvent[EVENT_INTERFACE_SETUPd] = "Device\\Driver and resolution settings"; - stringsEvent[EVENT_INTERFACE_SETUPg] = "Graphics\\Graphics settings"; - stringsEvent[EVENT_INTERFACE_SETUPp] = "Game\\Game settings"; - stringsEvent[EVENT_INTERFACE_SETUPc] = "Controls\\Keyboard, joystick and mouse settings"; - stringsEvent[EVENT_INTERFACE_SETUPs] = "Sound\\Music and game sound volume"; - stringsEvent[EVENT_INTERFACE_DEVICE] = "Unit"; - stringsEvent[EVENT_INTERFACE_RESOL] = "Resolution"; - stringsEvent[EVENT_INTERFACE_FULL] = "Full screen\\Full screen or window mode"; - stringsEvent[EVENT_INTERFACE_APPLY] = "Apply changes\\Activates the changed settings"; - - stringsEvent[EVENT_INTERFACE_TOTO] = "Robbie\\Your assistant"; - stringsEvent[EVENT_INTERFACE_SHADOW] = "Shadows\\Shadows on the ground"; - stringsEvent[EVENT_INTERFACE_GROUND] = "Marks on the ground\\Marks on the ground"; - stringsEvent[EVENT_INTERFACE_DIRTY] = "Dust\\Dust and dirt on bots and buildings"; - stringsEvent[EVENT_INTERFACE_FOG] = "Fog\\Fog"; - stringsEvent[EVENT_INTERFACE_LENS] = "Sunbeams\\Sunbeams in the sky"; - stringsEvent[EVENT_INTERFACE_SKY] = "Sky\\Clouds and nebulae"; - stringsEvent[EVENT_INTERFACE_PLANET] = "Planets and stars\\Astronomical objects in the sky"; - stringsEvent[EVENT_INTERFACE_LIGHT] = "Dynamic lighting\\Mobile light sources"; - stringsEvent[EVENT_INTERFACE_PARTI] = "Number of particles\\Explosions, dust, reflections, etc."; - stringsEvent[EVENT_INTERFACE_CLIP] = "Depth of field\\Maximum visibility"; - stringsEvent[EVENT_INTERFACE_DETAIL] = "Details\\Visual quality of 3D objects"; - stringsEvent[EVENT_INTERFACE_TEXTURE] = "Textures\\Quality of textures "; - stringsEvent[EVENT_INTERFACE_GADGET] = "Num of decorative objects\\Number of purely ornamental objects"; - stringsEvent[EVENT_INTERFACE_RAIN] = "Particles in the interface\\Steam clouds and sparks in the interface"; - stringsEvent[EVENT_INTERFACE_GLINT] = "Reflections on the buttons \\Shiny buttons"; - stringsEvent[EVENT_INTERFACE_TOOLTIP] = "Help balloons\\Explain the function of the buttons"; - stringsEvent[EVENT_INTERFACE_MOVIES] = "Film sequences\\Films before and after the missions"; - stringsEvent[EVENT_INTERFACE_NICERST] = "Exit film\\Film at the exit of exercises"; - stringsEvent[EVENT_INTERFACE_HIMSELF] = "Friendly fire\\Your shooting can damage your own objects "; - stringsEvent[EVENT_INTERFACE_SCROLL] = "Scrolling\\Scrolling when the mouse touches right or left border"; - stringsEvent[EVENT_INTERFACE_INVERTX] = "Mouse inversion X\\Inversion of the scrolling direction on the X axis"; - stringsEvent[EVENT_INTERFACE_INVERTY] = "Mouse inversion Y\\Inversion of the scrolling direction on the Y axis"; - stringsEvent[EVENT_INTERFACE_EFFECT] = "Quake at explosions\\The screen shakes at explosions"; - stringsEvent[EVENT_INTERFACE_MOUSE] = "Mouse shadow\\Gives the mouse a shadow"; - stringsEvent[EVENT_INTERFACE_EDITMODE] = "Automatic indent\\When program editing"; - stringsEvent[EVENT_INTERFACE_EDITVALUE] = "Big indent\\Indent 2 or 4 spaces per level defined by braces"; - stringsEvent[EVENT_INTERFACE_SOLUCE4] = "Access to solutions\\Show program \"4: Solution\" in the exercises"; - - stringsEvent[EVENT_INTERFACE_KDEF] = "Standard controls\\Standard key functions"; - stringsEvent[EVENT_INTERFACE_KLEFT] = "Turn left\\turns the bot to the left"; - stringsEvent[EVENT_INTERFACE_KRIGHT] = "Turn right\\turns the bot to the right"; - stringsEvent[EVENT_INTERFACE_KUP] = "Forward\\Moves forward"; - stringsEvent[EVENT_INTERFACE_KDOWN] = "Backward\\Moves backward"; - stringsEvent[EVENT_INTERFACE_KGUP] = "Climb\\Increases the power of the jet"; - stringsEvent[EVENT_INTERFACE_KGDOWN] = "Descend\\Reduces the power of the jet"; - stringsEvent[EVENT_INTERFACE_KCAMERA] = "Change camera\\Switches between onboard camera and following camera"; - stringsEvent[EVENT_INTERFACE_KDESEL] = "Previous object\\Selects the previous object"; - stringsEvent[EVENT_INTERFACE_KACTION] = "Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)"; - stringsEvent[EVENT_INTERFACE_KNEAR] = "Camera closer\\Moves the camera forward"; - stringsEvent[EVENT_INTERFACE_KAWAY] = "Camera back\\Moves the camera backward"; - stringsEvent[EVENT_INTERFACE_KNEXT] = "Next object\\Selects the next object"; - stringsEvent[EVENT_INTERFACE_KHUMAN] = "Select the astronaut\\Selects the astronaut"; - stringsEvent[EVENT_INTERFACE_KQUIT] = "Quit\\Quit the current mission or exercise"; - stringsEvent[EVENT_INTERFACE_KHELP] = "Instructions\\Shows the instructions for the current mission"; - stringsEvent[EVENT_INTERFACE_KPROG] = "Programming help\\Gives more detailed help with programming"; - stringsEvent[EVENT_INTERFACE_KCBOT] = "Key word help\\More detailed help about key words"; - stringsEvent[EVENT_INTERFACE_KVISIT] = "Origin of last message\\Shows where the last message was sent from"; - stringsEvent[EVENT_INTERFACE_KSPEED10] = "Speed 1.0x\\Normal speed"; - stringsEvent[EVENT_INTERFACE_KSPEED15] = "Speed 1.5x\\1.5 times faster"; - stringsEvent[EVENT_INTERFACE_KSPEED20] = "Speed 2.0x\\Double speed"; - stringsEvent[EVENT_INTERFACE_KSPEED30] = "Speed 3.0x\\Three times faster"; - - stringsEvent[EVENT_INTERFACE_VOLSOUND] = "Sound effects:\\Volume of engines, voice, shooting, etc."; - stringsEvent[EVENT_INTERFACE_VOLMUSIC] = "Background sound :\\Volume of audio tracks on the CD"; - stringsEvent[EVENT_INTERFACE_SOUND3D] = "3D sound\\3D positioning of the sound"; - - stringsEvent[EVENT_INTERFACE_MIN] = "Lowest\\Minimum graphic quality (highest frame rate)"; - stringsEvent[EVENT_INTERFACE_NORM] = "Normal\\Normal graphic quality"; - stringsEvent[EVENT_INTERFACE_MAX] = "Highest\\Highest graphic quality (lowest frame rate)"; - - stringsEvent[EVENT_INTERFACE_SILENT] = "Mute\\No sound"; - stringsEvent[EVENT_INTERFACE_NOISY] = "Normal\\Normal sound volume"; - - stringsEvent[EVENT_INTERFACE_JOYSTICK] = "Use a joystick\\Joystick or keyboard"; - stringsEvent[EVENT_INTERFACE_SOLUCE] = "Access to solution\\Shows the solution (detailed instructions for missions)"; - - stringsEvent[EVENT_INTERFACE_NEDIT] = "\\New player name"; - stringsEvent[EVENT_INTERFACE_NOK] = "OK\\Choose the selected player"; - stringsEvent[EVENT_INTERFACE_NCANCEL] = "Cancel\\Keep current player name"; - stringsEvent[EVENT_INTERFACE_NDELETE] = "Delete player\\Deletes the player from the list"; - stringsEvent[EVENT_INTERFACE_NLABEL] = "Player name"; - - stringsEvent[EVENT_INTERFACE_IOWRITE] = "Save\\Saves the current mission"; - stringsEvent[EVENT_INTERFACE_IOREAD] = "Load\\Loads the selected mission"; - stringsEvent[EVENT_INTERFACE_IOLIST] = "List of saved missions"; - stringsEvent[EVENT_INTERFACE_IOLABEL] = "Filename:"; - stringsEvent[EVENT_INTERFACE_IONAME] = "Mission name"; - stringsEvent[EVENT_INTERFACE_IOIMAGE] = "Photography"; - stringsEvent[EVENT_INTERFACE_IODELETE] = "Delete\\Deletes the selected file"; - - stringsEvent[EVENT_INTERFACE_PERSO] = "Appearance\\Choose your appearance"; - stringsEvent[EVENT_INTERFACE_POK] = "OK"; - stringsEvent[EVENT_INTERFACE_PCANCEL] = "Cancel"; - stringsEvent[EVENT_INTERFACE_PDEF] = "Standard\\Standard appearance settings"; - stringsEvent[EVENT_INTERFACE_PHEAD] = "Head\\Face and hair"; - stringsEvent[EVENT_INTERFACE_PBODY] = "Suit\\Astronaut suit"; - stringsEvent[EVENT_INTERFACE_PLROT] = "\\Turn left"; - stringsEvent[EVENT_INTERFACE_PRROT] = "\\Turn right"; - stringsEvent[EVENT_INTERFACE_PCRa] = "Red"; - stringsEvent[EVENT_INTERFACE_PCGa] = "Green"; - stringsEvent[EVENT_INTERFACE_PCBa] = "Blue"; - stringsEvent[EVENT_INTERFACE_PCRb] = "Red"; - stringsEvent[EVENT_INTERFACE_PCGb] = "Green"; - stringsEvent[EVENT_INTERFACE_PCBb] = "Blue"; - stringsEvent[EVENT_INTERFACE_PFACE1] = "\\Face 1"; - stringsEvent[EVENT_INTERFACE_PFACE2] = "\\Face 4"; - stringsEvent[EVENT_INTERFACE_PFACE3] = "\\Face 3"; - stringsEvent[EVENT_INTERFACE_PFACE4] = "\\Face 2"; - stringsEvent[EVENT_INTERFACE_PGLASS0] = "\\No eyeglasses"; - stringsEvent[EVENT_INTERFACE_PGLASS1] = "\\Eyeglasses 1"; - stringsEvent[EVENT_INTERFACE_PGLASS2] = "\\Eyeglasses 2"; - stringsEvent[EVENT_INTERFACE_PGLASS3] = "\\Eyeglasses 3"; - stringsEvent[EVENT_INTERFACE_PGLASS4] = "\\Eyeglasses 4"; - stringsEvent[EVENT_INTERFACE_PGLASS5] = "\\Eyeglasses 5"; - - stringsEvent[EVENT_OBJECT_DESELECT] = "Previous selection (\\key desel;)"; - stringsEvent[EVENT_OBJECT_LEFT] = "Turn left (\\key left;)"; - stringsEvent[EVENT_OBJECT_RIGHT] = "Turn right (\\key right;)"; - stringsEvent[EVENT_OBJECT_UP] = "Forward (\\key up;)"; - stringsEvent[EVENT_OBJECT_DOWN] = "Backward (\\key down;)"; - stringsEvent[EVENT_OBJECT_GASUP] = "Up (\\key gup;)"; - stringsEvent[EVENT_OBJECT_GASDOWN] = "Down (\\key gdown;)"; - stringsEvent[EVENT_OBJECT_HTAKE] = "Grab or drop (\\key action;)"; - stringsEvent[EVENT_OBJECT_MTAKE] = "Grab or drop (\\key action;)"; - stringsEvent[EVENT_OBJECT_MFRONT] = "..in front"; - stringsEvent[EVENT_OBJECT_MBACK] = "..behind"; - stringsEvent[EVENT_OBJECT_MPOWER] = "..power cell"; - stringsEvent[EVENT_OBJECT_BHELP] = "Instructions for the mission (\\key help;)"; - stringsEvent[EVENT_OBJECT_BTAKEOFF] = "Take off to finish the mission"; - stringsEvent[EVENT_OBJECT_BDESTROY] = "Destroy"; - stringsEvent[EVENT_OBJECT_BDERRICK] = "Build a derrick"; - stringsEvent[EVENT_OBJECT_BSTATION] = "Build a power station"; - stringsEvent[EVENT_OBJECT_BFACTORY] = "Build a bot factory"; - stringsEvent[EVENT_OBJECT_BREPAIR] = "Build a repair center"; - stringsEvent[EVENT_OBJECT_BCONVERT] = "Build a converter"; - stringsEvent[EVENT_OBJECT_BTOWER] = "Build a defense tower"; - stringsEvent[EVENT_OBJECT_BRESEARCH] = "Build a research center"; - stringsEvent[EVENT_OBJECT_BRADAR] = "Build a radar station"; - stringsEvent[EVENT_OBJECT_BENERGY] = "Build a power cell factory"; - stringsEvent[EVENT_OBJECT_BLABO] = "Build an autolab"; - stringsEvent[EVENT_OBJECT_BNUCLEAR] = "Build a nuclear power plant"; - stringsEvent[EVENT_OBJECT_BPARA] = "Build a lightning conductor"; - stringsEvent[EVENT_OBJECT_BINFO] = "Build a exchange post"; - stringsEvent[EVENT_OBJECT_BDESTROYER] = "Build a destroyer"; - stringsEvent[EVENT_OBJECT_GFLAT] = "Show if the ground is flat"; - stringsEvent[EVENT_OBJECT_FCREATE] = "Plant a flag"; - stringsEvent[EVENT_OBJECT_FDELETE] = "Remove a flag"; - stringsEvent[EVENT_OBJECT_FCOLORb] = "\\Blue flags"; - stringsEvent[EVENT_OBJECT_FCOLORr] = "\\Red flags"; - stringsEvent[EVENT_OBJECT_FCOLORg] = "\\Green flags"; - stringsEvent[EVENT_OBJECT_FCOLORy] = "\\Yellow flags"; - stringsEvent[EVENT_OBJECT_FCOLORv] = "\\Violet flags"; - stringsEvent[EVENT_OBJECT_FACTORYfa] = "Build a winged grabber"; - stringsEvent[EVENT_OBJECT_FACTORYta] = "Build a tracked grabber"; - stringsEvent[EVENT_OBJECT_FACTORYwa] = "Build a wheeled grabber"; - stringsEvent[EVENT_OBJECT_FACTORYia] = "Build a legged grabber"; - stringsEvent[EVENT_OBJECT_FACTORYfc] = "Build a winged shooter"; - stringsEvent[EVENT_OBJECT_FACTORYtc] = "Build a tracked shooter"; - stringsEvent[EVENT_OBJECT_FACTORYwc] = "Build a wheeled shooter"; - stringsEvent[EVENT_OBJECT_FACTORYic] = "Build a legged shooter"; - stringsEvent[EVENT_OBJECT_FACTORYfi] = "Build a winged orga shooter"; - stringsEvent[EVENT_OBJECT_FACTORYti] = "Build a tracked orga shooter"; - stringsEvent[EVENT_OBJECT_FACTORYwi] = "Build a wheeled orga shooter"; - stringsEvent[EVENT_OBJECT_FACTORYii] = "Build a legged orga shooter"; - stringsEvent[EVENT_OBJECT_FACTORYfs] = "Build a winged sniffer"; - stringsEvent[EVENT_OBJECT_FACTORYts] = "Build a tracked sniffer"; - stringsEvent[EVENT_OBJECT_FACTORYws] = "Build a wheeled sniffer"; - stringsEvent[EVENT_OBJECT_FACTORYis] = "Build a legged sniffer"; - stringsEvent[EVENT_OBJECT_FACTORYrt] = "Build a thumper"; - stringsEvent[EVENT_OBJECT_FACTORYrc] = "Build a phazer shooter"; - stringsEvent[EVENT_OBJECT_FACTORYrr] = "Build a recycler"; - stringsEvent[EVENT_OBJECT_FACTORYrs] = "Build a shielder"; - stringsEvent[EVENT_OBJECT_FACTORYsa] = "Build a subber"; - stringsEvent[EVENT_OBJECT_RTANK] = "Run research program for tracked bots"; - stringsEvent[EVENT_OBJECT_RFLY] = "Run research program for winged bots"; - stringsEvent[EVENT_OBJECT_RTHUMP] = "Run research program for thumper"; - stringsEvent[EVENT_OBJECT_RCANON] = "Run research program for shooter"; - stringsEvent[EVENT_OBJECT_RTOWER] = "Run research program for defense tower"; - stringsEvent[EVENT_OBJECT_RPHAZER] = "Run research program for phazer shooter"; - stringsEvent[EVENT_OBJECT_RSHIELD] = "Run research program for shielder"; - stringsEvent[EVENT_OBJECT_RATOMIC] = "Run research program for nuclear power"; - stringsEvent[EVENT_OBJECT_RiPAW] = "Run research program for legged bots"; - stringsEvent[EVENT_OBJECT_RiGUN] = "Run research program for orga shooter"; - stringsEvent[EVENT_OBJECT_RESET] = "Return to start"; - stringsEvent[EVENT_OBJECT_SEARCH] = "Sniff (\\key action;)"; - stringsEvent[EVENT_OBJECT_TERRAFORM] = "Thump (\\key action;)"; - stringsEvent[EVENT_OBJECT_FIRE] = "Shoot (\\key action;)"; - stringsEvent[EVENT_OBJECT_SPIDEREXPLO] = "Explode (\\key action;)"; - stringsEvent[EVENT_OBJECT_RECOVER] = "Recycle (\\key action;)"; - stringsEvent[EVENT_OBJECT_BEGSHIELD] = "Extend shield (\\key action;)"; - stringsEvent[EVENT_OBJECT_ENDSHIELD] = "Withdraw shield (\\key action;)"; - stringsEvent[EVENT_OBJECT_DIMSHIELD] = "Shield radius"; - stringsEvent[EVENT_OBJECT_PROGRUN] = "Execute the selected program"; - stringsEvent[EVENT_OBJECT_PROGEDIT] = "Edit the selected program"; - stringsEvent[EVENT_OBJECT_INFOOK] = "\\SatCom on standby"; - stringsEvent[EVENT_OBJECT_DELETE] = "Destroy the building"; - stringsEvent[EVENT_OBJECT_GENERGY] = "Energy level"; - stringsEvent[EVENT_OBJECT_GSHIELD] = "Shield level"; - stringsEvent[EVENT_OBJECT_GRANGE] = "Jet temperature"; - stringsEvent[EVENT_OBJECT_GPROGRESS] = "Still working ..."; - stringsEvent[EVENT_OBJECT_GRADAR] = "Number of insects detected"; - stringsEvent[EVENT_OBJECT_GINFO] = "Transmitted information"; - stringsEvent[EVENT_OBJECT_COMPASS] = "Compass"; - stringsEvent[EVENT_OBJECT_MAPZOOM] = "Zoom mini-map"; - stringsEvent[EVENT_OBJECT_CAMERA] = "Camera (\\key camera;)"; - stringsEvent[EVENT_OBJECT_CAMERAleft] = "Camera to left"; - stringsEvent[EVENT_OBJECT_CAMERAright] = "Camera to right"; - stringsEvent[EVENT_OBJECT_CAMERAnear] = "Camera nearest"; - stringsEvent[EVENT_OBJECT_CAMERAaway] = "Camera awayest"; - stringsEvent[EVENT_OBJECT_HELP] = "Help about selected object"; - stringsEvent[EVENT_OBJECT_SOLUCE] = "Show the solution"; - stringsEvent[EVENT_OBJECT_SHORTCUT00] = "Switch bots <-> buildings"; - stringsEvent[EVENT_OBJECT_LIMIT] = "Show the range"; - stringsEvent[EVENT_OBJECT_PEN0] = "\\Raise the pencil"; - stringsEvent[EVENT_OBJECT_PEN1] = "\\Use the black pencil"; - stringsEvent[EVENT_OBJECT_PEN2] = "\\Use the yellow pencil"; - stringsEvent[EVENT_OBJECT_PEN3] = "\\Use the orange pencil"; - stringsEvent[EVENT_OBJECT_PEN4] = "\\Use the red pencil"; - stringsEvent[EVENT_OBJECT_PEN5] = "\\Use the purple pencil"; - stringsEvent[EVENT_OBJECT_PEN6] = "\\Use the blue pencil"; - stringsEvent[EVENT_OBJECT_PEN7] = "\\Use the green pencil"; - stringsEvent[EVENT_OBJECT_PEN8] = "\\Use the brown pencil"; - stringsEvent[EVENT_OBJECT_REC] = "\\Start recording"; - stringsEvent[EVENT_OBJECT_STOP] = "\\Stop recording"; - stringsEvent[EVENT_DT_VISIT0] = "Show the place"; - stringsEvent[EVENT_DT_VISIT1] = "Show the place"; - stringsEvent[EVENT_DT_VISIT2] = "Show the place"; - stringsEvent[EVENT_DT_VISIT3] = "Show the place"; - stringsEvent[EVENT_DT_VISIT4] = "Show the place"; - stringsEvent[EVENT_DT_END] = "Continue"; - stringsEvent[EVENT_CMD] = "Command line"; - stringsEvent[EVENT_SPEED] = "Game speed"; - - stringsEvent[EVENT_HYPER_PREV] = "Back"; - stringsEvent[EVENT_HYPER_NEXT] = "Forward"; - stringsEvent[EVENT_HYPER_HOME] = "Home"; - stringsEvent[EVENT_HYPER_COPY] = "Copy"; - stringsEvent[EVENT_HYPER_SIZE1] = "Size 1"; - stringsEvent[EVENT_HYPER_SIZE2] = "Size 2"; - stringsEvent[EVENT_HYPER_SIZE3] = "Size 3"; - stringsEvent[EVENT_HYPER_SIZE4] = "Size 4"; - stringsEvent[EVENT_HYPER_SIZE5] = "Size 5"; - stringsEvent[EVENT_SATCOM_HUSTON] = "Instructions from Houston"; - stringsEvent[EVENT_SATCOM_SAT] = "Satellite report"; - stringsEvent[EVENT_SATCOM_LOADING] = "Programs dispatched by Houston"; - stringsEvent[EVENT_SATCOM_OBJECT] = "List of objects"; - stringsEvent[EVENT_SATCOM_PROG] = "Programming help"; - stringsEvent[EVENT_SATCOM_SOLUCE] = "Solution"; - - stringsEvent[EVENT_STUDIO_OK] = "OK\\Close program editor and return to game"; - stringsEvent[EVENT_STUDIO_CANCEL] = "Cancel\\Cancel all changes"; - stringsEvent[EVENT_STUDIO_NEW] = "New"; - stringsEvent[EVENT_STUDIO_OPEN] = "Open (Ctrl+o)"; - stringsEvent[EVENT_STUDIO_SAVE] = "Save (Ctrl+s)"; - stringsEvent[EVENT_STUDIO_UNDO] = "Undo (Ctrl+z)"; - stringsEvent[EVENT_STUDIO_CUT] = "Cut (Ctrl+x)"; - stringsEvent[EVENT_STUDIO_COPY] = "Copy (Ctrl+c)"; - stringsEvent[EVENT_STUDIO_PASTE] = "Paste (Ctrl+v)"; - stringsEvent[EVENT_STUDIO_SIZE] = "Font size"; - stringsEvent[EVENT_STUDIO_TOOL] = "Instructions (\\key help;)"; - stringsEvent[EVENT_STUDIO_HELP] = "Programming help (\\key prog;)"; - stringsEvent[EVENT_STUDIO_COMPILE] = "Compile"; - stringsEvent[EVENT_STUDIO_RUN] = "Execute/stop"; - stringsEvent[EVENT_STUDIO_REALTIME] = "Pause/continue"; - stringsEvent[EVENT_STUDIO_STEP] = "One step"; - - - - stringsObject[OBJECT_PORTICO] = "Gantry crane"; - stringsObject[OBJECT_BASE] = "Spaceship"; - stringsObject[OBJECT_DERRICK] = "Derrick"; - stringsObject[OBJECT_FACTORY] = "Bot factory"; - stringsObject[OBJECT_REPAIR] = "Repair center"; - stringsObject[OBJECT_DESTROYER] = "Destroyer"; - stringsObject[OBJECT_STATION] = "Power station"; - stringsObject[OBJECT_CONVERT] = "Converts ore to titanium"; - stringsObject[OBJECT_TOWER] = "Defense tower"; - stringsObject[OBJECT_NEST] = "Nest"; - stringsObject[OBJECT_RESEARCH] = "Research center"; - stringsObject[OBJECT_RADAR] = "Radar station"; - stringsObject[OBJECT_INFO] = "Information exchange post"; - stringsObject[OBJECT_ENERGY] = "Power cell factory"; - stringsObject[OBJECT_LABO] = "Autolab"; - stringsObject[OBJECT_NUCLEAR] = "Nuclear power station"; - stringsObject[OBJECT_PARA] = "Lightning conductor"; - stringsObject[OBJECT_SAFE] = "Vault"; - stringsObject[OBJECT_HUSTON] = "Houston Mission Control"; - stringsObject[OBJECT_TARGET1] = "Target"; - stringsObject[OBJECT_TARGET2] = "Target"; - stringsObject[OBJECT_START] = "Start"; - stringsObject[OBJECT_END] = "Finish"; - stringsObject[OBJECT_STONE] = "Titanium ore"; - stringsObject[OBJECT_URANIUM] = "Uranium ore"; - stringsObject[OBJECT_BULLET] = "Organic matter"; - stringsObject[OBJECT_METAL] = "Titanium"; - stringsObject[OBJECT_POWER] = "Power cell"; - stringsObject[OBJECT_ATOMIC] = "Nuclear power cell"; - stringsObject[OBJECT_BBOX] = "Black box"; - stringsObject[OBJECT_KEYa] = "Key A"; - stringsObject[OBJECT_KEYb] = "Key B"; - stringsObject[OBJECT_KEYc] = "Key C"; - stringsObject[OBJECT_KEYd] = "Key D"; - stringsObject[OBJECT_TNT] = "Explosive"; - stringsObject[OBJECT_BOMB] = "Fixed mine"; - stringsObject[OBJECT_BAG] = "Survival kit"; - stringsObject[OBJECT_WAYPOINT] = "Checkpoint"; - stringsObject[OBJECT_FLAGb] = "Blue flag"; - stringsObject[OBJECT_FLAGr] = "Red flag"; - stringsObject[OBJECT_FLAGg] = "Green flag"; - stringsObject[OBJECT_FLAGy] = "Yellow flag"; - stringsObject[OBJECT_FLAGv] = "Violet flag"; - stringsObject[OBJECT_MARKPOWER] = "Energy deposit (site for power station)"; - stringsObject[OBJECT_MARKURANIUM] = "Uranium deposit (site for derrick)"; - stringsObject[OBJECT_MARKKEYa] = "Found key A (site for derrick)"; - stringsObject[OBJECT_MARKKEYb] = "Found key B (site for derrick)"; - stringsObject[OBJECT_MARKKEYc] = "Found key C (site for derrick)"; - stringsObject[OBJECT_MARKKEYd] = "Found key D (site for derrick)"; - stringsObject[OBJECT_MARKSTONE] = "Titanium deposit (site for derrick)"; - stringsObject[OBJECT_MOBILEft] = "Practice bot"; - stringsObject[OBJECT_MOBILEtt] = "Practice bot"; - stringsObject[OBJECT_MOBILEwt] = "Practice bot"; - stringsObject[OBJECT_MOBILEit] = "Practice bot"; - stringsObject[OBJECT_MOBILEfa] = "Winged grabber"; - stringsObject[OBJECT_MOBILEta] = "Tracked grabber"; - stringsObject[OBJECT_MOBILEwa] = "Wheeled grabber"; - stringsObject[OBJECT_MOBILEia] = "Legged grabber"; - stringsObject[OBJECT_MOBILEfc] = "Winged shooter"; - stringsObject[OBJECT_MOBILEtc] = "Tracked shooter"; - stringsObject[OBJECT_MOBILEwc] = "Wheeled shooter"; - stringsObject[OBJECT_MOBILEic] = "Legged shooter"; - stringsObject[OBJECT_MOBILEfi] = "Winged orga shooter"; - stringsObject[OBJECT_MOBILEti] = "Tracked orga shooter"; - stringsObject[OBJECT_MOBILEwi] = "Wheeled orga shooter"; - stringsObject[OBJECT_MOBILEii] = "Legged orga shooter"; - stringsObject[OBJECT_MOBILEfs] = "Winged sniffer"; - stringsObject[OBJECT_MOBILEts] = "Tracked sniffer"; - stringsObject[OBJECT_MOBILEws] = "Wheeled sniffer"; - stringsObject[OBJECT_MOBILEis] = "Legged sniffer"; - stringsObject[OBJECT_MOBILErt] = "Thumper"; - stringsObject[OBJECT_MOBILErc] = "Phazer shooter"; - stringsObject[OBJECT_MOBILErr] = "Recycler"; - stringsObject[OBJECT_MOBILErs] = "Shielder"; - stringsObject[OBJECT_MOBILEsa] = "Subber"; - stringsObject[OBJECT_MOBILEtg] = "Target bot"; - stringsObject[OBJECT_MOBILEdr] = "Drawer bot"; - stringsObject[OBJECT_TECH] = "Engineer"; - stringsObject[OBJECT_TOTO] = "Robbie"; - stringsObject[OBJECT_MOTHER] = "Alien Queen"; - stringsObject[OBJECT_ANT] = "Ant"; - stringsObject[OBJECT_SPIDER] = "Spider"; - stringsObject[OBJECT_BEE] = "Wasp"; - stringsObject[OBJECT_WORM] = "Worm"; - stringsObject[OBJECT_EGG] = "Egg"; - stringsObject[OBJECT_RUINmobilew1] = "Wreckage"; - stringsObject[OBJECT_RUINmobilew2] = "Wreckage"; - stringsObject[OBJECT_RUINmobilet1] = "Wreckage"; - stringsObject[OBJECT_RUINmobilet2] = "Wreckage"; - stringsObject[OBJECT_RUINmobiler1] = "Wreckage"; - stringsObject[OBJECT_RUINmobiler2] = "Wreckage"; - stringsObject[OBJECT_RUINfactory] = "Ruin"; - stringsObject[OBJECT_RUINdoor] = "Ruin"; - stringsObject[OBJECT_RUINsupport] = "Waste"; - stringsObject[OBJECT_RUINradar] = "Ruin"; - stringsObject[OBJECT_RUINconvert] = "Ruin"; - stringsObject[OBJECT_RUINbase] = "Spaceship ruin"; - stringsObject[OBJECT_RUINhead] = "Spaceship ruin"; - stringsObject[OBJECT_APOLLO1] = "Remains of Apollo mission"; - stringsObject[OBJECT_APOLLO3] = "Remains of Apollo mission"; - stringsObject[OBJECT_APOLLO4] = "Remains of Apollo mission"; - stringsObject[OBJECT_APOLLO5] = "Remains of Apollo mission"; - stringsObject[OBJECT_APOLLO2] = "Lunar Roving Vehicle"; - - - - stringsErr[ERR_GENERIC] = "Internal error - tell the developers"; - stringsErr[ERR_CMD] = "Unknown command"; - stringsErr[ERR_MANIP_VEH] = "Inappropriate bot"; - stringsErr[ERR_MANIP_FLY] = "Impossible when flying"; - stringsErr[ERR_MANIP_BUSY] = "Already carrying something"; - stringsErr[ERR_MANIP_NIL] = "Nothing to grab"; - stringsErr[ERR_MANIP_MOTOR] = "Impossible when moving"; - stringsErr[ERR_MANIP_OCC] = "Place occupied"; - stringsErr[ERR_MANIP_FRIEND] = "No other robot"; - stringsErr[ERR_MANIP_RADIO] = "You can not carry a radioactive object"; - stringsErr[ERR_MANIP_WATER] = "You can not carry an object under water"; - stringsErr[ERR_MANIP_EMPTY] = "Nothing to drop"; - stringsErr[ERR_BUILD_FLY] = "Impossible when flying"; - stringsErr[ERR_BUILD_WATER] = "Impossible under water"; - stringsErr[ERR_BUILD_ENERGY] = "Not enough energy"; - stringsErr[ERR_BUILD_METALAWAY] = "Titanium too far away"; - stringsErr[ERR_BUILD_METALNEAR] = "Titanium too close"; - stringsErr[ERR_BUILD_METALINEX] = "No titanium around"; - stringsErr[ERR_BUILD_FLAT] = "Ground not flat enough"; - stringsErr[ERR_BUILD_FLATLIT] = "Flat ground not large enough"; - stringsErr[ERR_BUILD_BUSY] = "Place occupied"; - stringsErr[ERR_BUILD_BASE] = "Too close to space ship"; - stringsErr[ERR_BUILD_NARROW] = "Too close to a building"; - stringsErr[ERR_BUILD_MOTOR] = "Impossible when moving"; - stringsErr[ERR_SEARCH_FLY] = "Impossible when flying"; - stringsErr[ERR_BUILD_DISABLED] = "Can not produce this object in this mission"; - stringsErr[ERR_BUILD_RESEARCH] = "Can not produce not researched object"; - stringsErr[ERR_SEARCH_VEH] = "Inappropriate bot"; - stringsErr[ERR_SEARCH_MOTOR] = "Impossible when moving"; - stringsErr[ERR_TERRA_VEH] = "Inappropriate bot"; - stringsErr[ERR_TERRA_ENERGY] = "Not enough energy"; - stringsErr[ERR_TERRA_FLOOR] = "Ground inappropriate"; - stringsErr[ERR_TERRA_BUILDING] = "Building too close"; - stringsErr[ERR_TERRA_OBJECT] = "Object too close"; - stringsErr[ERR_RECOVER_VEH] = "Inappropriate bot"; - stringsErr[ERR_RECOVER_ENERGY] = "Not enough energy"; - stringsErr[ERR_RECOVER_NULL] = "Nothing to recycle"; - stringsErr[ERR_SHIELD_VEH] = "Inappropriate bot"; - stringsErr[ERR_SHIELD_ENERGY] = "No more energy"; - stringsErr[ERR_MOVE_IMPOSSIBLE] = "Error in instruction move"; - stringsErr[ERR_FIND_IMPOSSIBLE] = "Object not found"; - stringsErr[ERR_GOTO_IMPOSSIBLE] = "Goto: inaccessible destination"; - stringsErr[ERR_GOTO_ITER] = "Goto: inaccessible destination"; - stringsErr[ERR_GOTO_BUSY] = "Goto: destination occupied"; - stringsErr[ERR_FIRE_VEH] = "Inappropriate bot"; - stringsErr[ERR_FIRE_ENERGY] = "Not enough energy"; - stringsErr[ERR_FIRE_FLY] = "Impossible when flying"; - stringsErr[ERR_CONVERT_EMPTY] = "No titanium ore to convert"; - stringsErr[ERR_DERRICK_NULL] = "No ore in the subsoil"; - stringsErr[ERR_STATION_NULL] = "No energy in the subsoil"; - stringsErr[ERR_TOWER_POWER] = "No power cell"; - stringsErr[ERR_TOWER_ENERGY] = "No more energy"; - stringsErr[ERR_RESEARCH_POWER] = "No power cell"; - stringsErr[ERR_RESEARCH_ENERGY] = "Not enough energy"; - stringsErr[ERR_RESEARCH_TYPE] = "Inappropriate cell type"; - stringsErr[ERR_RESEARCH_ALREADY]= "Research program already performed"; - stringsErr[ERR_ENERGY_NULL] = "No energy in the subsoil"; - stringsErr[ERR_ENERGY_LOW] = "Not enough energy yet"; - stringsErr[ERR_ENERGY_EMPTY] = "No titanium to transform"; - stringsErr[ERR_ENERGY_BAD] = "Transforms only titanium"; - stringsErr[ERR_BASE_DLOCK] = "Doors blocked by a robot or another object "; - stringsErr[ERR_BASE_DHUMAN] = "You must get on the spaceship to take off "; - stringsErr[ERR_LABO_NULL] = "Nothing to analyze"; - stringsErr[ERR_LABO_BAD] = "Analyzes only organic matter"; - stringsErr[ERR_LABO_ALREADY] = "Analysis already performed"; - stringsErr[ERR_NUCLEAR_NULL] = "No energy in the subsoil"; - stringsErr[ERR_NUCLEAR_LOW] = "Not yet enough energy"; - stringsErr[ERR_NUCLEAR_EMPTY] = "No uranium to transform"; - stringsErr[ERR_NUCLEAR_BAD] = "Transforms only uranium"; - stringsErr[ERR_FACTORY_NULL] = "No titanium"; - stringsErr[ERR_FACTORY_NEAR] = "Object too close"; - stringsErr[ERR_RESET_NEAR] = "Place occupied"; - stringsErr[ERR_INFO_NULL] = "No information exchange post within range"; - stringsErr[ERR_VEH_VIRUS] = "Program infected by a virus"; - stringsErr[ERR_BAT_VIRUS] = "Infected by a virus; temporarily out of order"; - stringsErr[ERR_VEH_POWER] = "No power cell"; - stringsErr[ERR_VEH_ENERGY] = "No more energy"; - stringsErr[ERR_FLAG_FLY] = "Impossible when flying"; - stringsErr[ERR_FLAG_WATER] = "Impossible when swimming"; - stringsErr[ERR_FLAG_MOTOR] = "Impossible when moving"; - stringsErr[ERR_FLAG_BUSY] = "Impossible when carrying an object"; - stringsErr[ERR_FLAG_CREATE] = "Too many flags of this color (maximum 5)"; - stringsErr[ERR_FLAG_PROXY] = "Too close to an existing flag"; - stringsErr[ERR_FLAG_DELETE] = "No flag nearby"; - stringsErr[ERR_DESTROY_NOTFOUND]= "Not found anything to destroy"; - stringsErr[ERR_WRONG_OBJ] = "Inappropriate object"; - stringsErr[ERR_MISSION_NOTERM] = "The mission is not accomplished yet (press \\key help; for more details)"; - stringsErr[ERR_DELETEMOBILE] = "Bot destroyed"; - stringsErr[ERR_DELETEBUILDING] = "Building destroyed"; - stringsErr[ERR_TOOMANY] = "Can not create this; there are too many objects"; - stringsErr[ERR_OBLIGATORYTOKEN] = "\"%s\" missing in this exercise"; - stringsErr[ERR_PROHIBITEDTOKEN] = "Do not use in this exercise"; - - stringsErr[INFO_BUILD] = "Building completed"; - stringsErr[INFO_CONVERT] = "Titanium available"; - stringsErr[INFO_RESEARCH] = "Research program completed"; - stringsErr[INFO_RESEARCHTANK] = "Plans for tracked robots available "; - stringsErr[INFO_RESEARCHFLY] = "You can fly with the keys (\\key gup;) and (\\key gdown;)"; - stringsErr[INFO_RESEARCHTHUMP] = "Plans for thumper available"; - stringsErr[INFO_RESEARCHCANON] = "Plans for shooter available"; - stringsErr[INFO_RESEARCHTOWER] = "Plans for defense tower available"; - stringsErr[INFO_RESEARCHPHAZER] = "Plans for phazer shooter available"; - stringsErr[INFO_RESEARCHSHIELD] = "Plans for shielder available"; - stringsErr[INFO_RESEARCHATOMIC] = "Plans for nuclear power plant available"; - stringsErr[INFO_FACTORY] = "New bot available"; - stringsErr[INFO_LABO] = "Analysis performed"; - stringsErr[INFO_ENERGY] = "Power cell available"; - stringsErr[INFO_NUCLEAR] = "Nuclear power cell available"; - stringsErr[INFO_FINDING] = "You found a usable object"; - stringsErr[INFO_MARKPOWER] = "Found a site for power station"; - stringsErr[INFO_MARKURANIUM] = "Found a site for a derrick"; - stringsErr[INFO_MARKSTONE] = "Found a site for a derrick"; - stringsErr[INFO_MARKKEYa] = "Found a site for a derrick"; - stringsErr[INFO_MARKKEYb] = "Found a site for a derrick"; - stringsErr[INFO_MARKKEYc] = "Found a site for a derrick"; - stringsErr[INFO_MARKKEYd] = "Found a site for a derrick"; - stringsErr[INFO_WIN] = "<<< Well done; mission accomplished >>>"; - stringsErr[INFO_LOST] = "<<< Sorry; mission failed >>>"; - stringsErr[INFO_LOSTq] = "<<< Sorry; mission failed >>>"; - stringsErr[INFO_WRITEOK] = "Current mission saved"; - stringsErr[INFO_DELETEPATH] = "Checkpoint crossed"; - stringsErr[INFO_DELETEMOTHER] = "Alien Queen killed"; - stringsErr[INFO_DELETEANT] = "Ant fatally wounded"; - stringsErr[INFO_DELETEBEE] = "Wasp fatally wounded"; - stringsErr[INFO_DELETEWORM] = "Worm fatally wounded"; - stringsErr[INFO_DELETESPIDER] = "Spider fatally wounded"; - stringsErr[INFO_BEGINSATCOM] = "Press \\key help; to read instructions on your SatCom"; - - - - stringsCbot[TX_OPENPAR] = "Opening bracket missing"; - stringsCbot[TX_CLOSEPAR] = "Closing bracket missing "; - stringsCbot[TX_NOTBOOL] = "The expression must return a boolean value"; - stringsCbot[TX_UNDEFVAR] = "Variable not declared"; - stringsCbot[TX_BADLEFT] = "Assignment impossible"; - stringsCbot[TX_ENDOF] = "Semicolon terminator missing"; - stringsCbot[TX_OUTCASE] = "Instruction \"case\" outside a block \"switch\""; - stringsCbot[TX_NOTERM] = "Instructions after the final closing brace"; - stringsCbot[TX_CLOSEBLK] = "End of block missing"; - stringsCbot[TX_ELSEWITHOUTIF] = "Instruction \"else\" without corresponding \"if\" "; - stringsCbot[TX_OPENBLK] = "Opening brace missing "; - stringsCbot[TX_BADTYPE] = "Wrong type for the assignment"; - stringsCbot[TX_REDEFVAR] = "A variable can not be declared twice"; - stringsCbot[TX_BAD2TYPE] = "The types of the two operands are incompatible "; - stringsCbot[TX_UNDEFCALL] = "Unknown function"; - stringsCbot[TX_MISDOTS] = "Sign \" : \" missing"; - stringsCbot[TX_WHILE] = "Keyword \"while\" missing"; - stringsCbot[TX_BREAK] = "Instruction \"break\" outside a loop"; - stringsCbot[TX_LABEL] = "A label must be followed by \"for\"; \"while\"; \"do\" or \"switch\""; - stringsCbot[TX_NOLABEL] = "This label does not exist"; - stringsCbot[TX_NOCASE] = "Instruction \"case\" missing"; - stringsCbot[TX_BADNUM] = "Number missing"; - stringsCbot[TX_VOID] = "Void parameter"; - stringsCbot[TX_NOTYP] = "Type declaration missing"; - stringsCbot[TX_NOVAR] = "Variable name missing"; - stringsCbot[TX_NOFONC] = "Function name missing"; - stringsCbot[TX_OVERPARAM] = "Too many parameters"; - stringsCbot[TX_REDEF] = "Function already exists"; - stringsCbot[TX_LOWPARAM] = "Parameters missing "; - stringsCbot[TX_BADPARAM] = "No function with this name accepts this kind of parameter"; - stringsCbot[TX_NUMPARAM] = "No function with this name accepts this number of parameters"; - stringsCbot[TX_NOITEM] = "This is not a member of this class"; - stringsCbot[TX_DOT] = "This object is not a member of a class"; - stringsCbot[TX_NOCONST] = "Appropriate constructor missing"; - stringsCbot[TX_REDEFCLASS] = "This class already exists"; - stringsCbot[TX_CLBRK] = "\" ] \" missing"; - stringsCbot[TX_RESERVED] = "Reserved keyword of CBOT language"; - stringsCbot[TX_BADNEW] = "Bad argument for \"new\""; - stringsCbot[TX_OPBRK] = "\" [ \" expected"; - stringsCbot[TX_BADSTRING] = "String missing"; - stringsCbot[TX_BADINDEX] = "Incorrect index type"; - stringsCbot[TX_PRIVATE] = "Private element"; - stringsCbot[TX_NOPUBLIC] = "Public required"; - stringsCbot[TX_DIVZERO] = "Dividing by zero"; - stringsCbot[TX_NOTINIT] = "Variable not initialized"; - stringsCbot[TX_BADTHROW] = "Negative value rejected by \"throw\""; - stringsCbot[TX_NORETVAL] = "The function returned no value "; - stringsCbot[TX_NORUN] = "No function running"; - stringsCbot[TX_NOCALL] = "Calling an unknown function"; - stringsCbot[TX_NOCLASS] = "This class does not exist"; - stringsCbot[TX_NULLPT] = "Unknown Object"; - stringsCbot[TX_OPNAN] = "Operation impossible with value \"nan\""; - stringsCbot[TX_OUTARRAY] = "Access beyond array limit"; - stringsCbot[TX_STACKOVER] = "Stack overflow"; - stringsCbot[TX_DELETEDPT] = "Illegal object"; - stringsCbot[TX_FILEOPEN] = "Can't open file"; - stringsCbot[TX_NOTOPEN] = "File not open"; - stringsCbot[TX_ERRREAD] = "Read error"; - stringsCbot[TX_ERRWRITE] = "Write error"; + stringsText[RT_DISINFO_TITLE] = TR("SatCom"); + stringsText[RT_WINDOW_MAXIMIZED] = TR("Maximize"); + stringsText[RT_WINDOW_MINIMIZED] = TR("Minimize"); + stringsText[RT_WINDOW_STANDARD] = TR("Normal size"); + stringsText[RT_WINDOW_CLOSE] = TR("Close"); + + stringsText[RT_STUDIO_TITLE] = TR("Program editor"); + stringsText[RT_SCRIPT_NEW] = TR("New"); + stringsText[RT_NAME_DEFAULT] = TR("Player"); + stringsText[RT_IO_NEW] = TR("New ..."); + stringsText[RT_KEY_OR] = TR(" or "); + + stringsText[RT_TITLE_BASE] = TR("COLOBOT"); + stringsText[RT_TITLE_INIT] = TR("COLOBOT: Gold Edition"); + stringsText[RT_TITLE_TRAINER] = TR("Programming exercises"); + stringsText[RT_TITLE_DEFI] = TR("Challenges"); + stringsText[RT_TITLE_MISSION] = TR("Missions"); + stringsText[RT_TITLE_FREE] = TR("Free game"); + stringsText[RT_TITLE_USER] = TR("User levels"); + stringsText[RT_TITLE_SETUP] = TR("Options"); + stringsText[RT_TITLE_NAME] = TR("Player's name"); + stringsText[RT_TITLE_PERSO] = TR("Customize your appearance"); + stringsText[RT_TITLE_WRITE] = TR("Save the current mission"); + stringsText[RT_TITLE_READ] = TR("Load a saved mission"); + + stringsText[RT_PLAY_CHAPt] = TR(" Chapters:"); + stringsText[RT_PLAY_CHAPd] = TR(" Chapters:"); + stringsText[RT_PLAY_CHAPm] = TR(" Planets:"); + stringsText[RT_PLAY_CHAPf] = TR(" Planets:"); + stringsText[RT_PLAY_CHAPu] = TR(" User levels:"); + stringsText[RT_PLAY_CHAPte] = TR(" Chapters:"); + stringsText[RT_PLAY_LISTt] = TR(" Exercises in the chapter:"); + stringsText[RT_PLAY_LISTd] = TR(" Challenges in the chapter:"); + stringsText[RT_PLAY_LISTm] = TR(" Missions on this planet:"); + stringsText[RT_PLAY_LISTf] = TR(" Free game on this planet:"); + stringsText[RT_PLAY_LISTu] = TR(" Missions on this level:"); + stringsText[RT_PLAY_RESUME] = TR(" Summary:"); + + stringsText[RT_SETUP_DEVICE] = TR(" Drivers:"); + stringsText[RT_SETUP_MODE] = TR(" Resolution:"); + stringsText[RT_SETUP_KEY1] = TR("1) First click on the key you want to redefine."); + stringsText[RT_SETUP_KEY2] = TR("2) Then press the key you want to use instead."); + + stringsText[RT_PERSO_FACE] = TR("Face type:"); + stringsText[RT_PERSO_GLASSES] = TR("Eyeglasses:"); + stringsText[RT_PERSO_HAIR] = TR("Hair color:"); + stringsText[RT_PERSO_COMBI] = TR("Suit color:"); + stringsText[RT_PERSO_BAND] = TR("Strip color:"); + + stringsText[RT_DIALOG_QUIT] = TR("Do you want to quit COLOBOT ?"); + stringsText[RT_DIALOG_TITLE] = TR("COLOBOT"); + stringsText[RT_DIALOG_YESQUIT] = TR("Quit\\Quit COLOBOT"); + stringsText[RT_DIALOG_ABORT] = TR("Quit the mission?"); + stringsText[RT_DIALOG_YES] = TR("Abort\\Abort the current mission"); + stringsText[RT_DIALOG_NO] = TR("Continue\\Continue the current mission"); + stringsText[RT_DIALOG_NOQUIT] = TR("Continue\\Continue the game"); + stringsText[RT_DIALOG_DELOBJ] = TR("Do you really want to destroy the selected building?"); + stringsText[RT_DIALOG_DELGAME] = TR("Do you want to delete %s's saved games? "); + stringsText[RT_DIALOG_YESDEL] = TR("Delete"); + stringsText[RT_DIALOG_NODEL] = TR("Cancel"); + stringsText[RT_DIALOG_LOADING] = TR("LOADING"); + + stringsText[RT_STUDIO_LISTTT] = TR("Keyword help(\\key cbot;)"); + stringsText[RT_STUDIO_COMPOK] = TR("Compilation ok (0 errors)"); + stringsText[RT_STUDIO_PROGSTOP] = TR("Program finished"); + + stringsText[RT_SATCOM_LIST] = TR("\\b;List of objects\n"); + stringsText[RT_SATCOM_BOT] = TR("\\b;Robots\n"); + stringsText[RT_SATCOM_BUILDING] = TR("\\b;Buildings\n"); + stringsText[RT_SATCOM_FRET] = TR("\\b;Moveable objects\n"); + stringsText[RT_SATCOM_ALIEN] = TR("\\b;Aliens\n"); + stringsText[RT_SATCOM_NULL] = TR("\\c; (none)\\n;\n"); + stringsText[RT_SATCOM_ERROR1] = TR("\\b;Error\n"); + stringsText[RT_SATCOM_ERROR2] = TR("The list is only available if a \\l;radar station\\u object\\radar; is working.\n"); + + stringsText[RT_IO_OPEN] = TR("Open"); + stringsText[RT_IO_SAVE] = TR("Save"); + stringsText[RT_IO_LIST] = TR("Folder: %s"); + stringsText[RT_IO_NAME] = TR("Name:"); + stringsText[RT_IO_DIR] = TR("Folder:"); + stringsText[RT_IO_PRIVATE] = TR("Private\\Private folder"); + stringsText[RT_IO_PUBLIC] = TR("Public\\Common folder"); + + stringsText[RT_GENERIC_DEV1] = TR("Developed by :"); + stringsText[RT_GENERIC_DEV2] = TR("www.epsitec.com"); + stringsText[RT_GENERIC_EDIT1] = TR(" "); + stringsText[RT_GENERIC_EDIT2] = TR(" "); + + stringsText[RT_INTERFACE_REC] = TR("Recorder"); + + + + stringsEvent[EVENT_BUTTON_OK] = TR("OK"); + stringsEvent[EVENT_BUTTON_CANCEL] = TR("Cancel"); + stringsEvent[EVENT_BUTTON_NEXT] = TR("Next"); + stringsEvent[EVENT_BUTTON_PREV] = TR("Previous"); + + stringsEvent[EVENT_DIALOG_OK] = TR("OK"); + stringsEvent[EVENT_DIALOG_CANCEL] = TR("Cancel"); + + stringsEvent[EVENT_INTERFACE_TRAINER] = TR("Exercises\\Programming exercises"); + stringsEvent[EVENT_INTERFACE_DEFI] = TR("Challenges\\Programming challenges"); + stringsEvent[EVENT_INTERFACE_MISSION] = TR("Missions\\Select mission"); + stringsEvent[EVENT_INTERFACE_FREE] = TR("Free game\\Free game without a specific goal"); + stringsEvent[EVENT_INTERFACE_USER] = TR("User\\User levels"); + stringsEvent[EVENT_INTERFACE_NAME] = TR("Change player\\Change player"); + stringsEvent[EVENT_INTERFACE_SETUP] = TR("Options\\Preferences"); + stringsEvent[EVENT_INTERFACE_AGAIN] = TR("Restart\\Restart the mission from the beginning"); + stringsEvent[EVENT_INTERFACE_WRITE] = TR("Save\\Save the current mission "); + stringsEvent[EVENT_INTERFACE_READ] = TR("Load\\Load a saved mission"); + stringsEvent[EVENT_INTERFACE_ABORT] = TR("\\Return to COLOBOT"); + stringsEvent[EVENT_INTERFACE_QUIT] = TR("Quit\\Quit COLOBOT"); + stringsEvent[EVENT_INTERFACE_BACK] = TR("<< Back \\Back to the previous screen"); + stringsEvent[EVENT_INTERFACE_PLAY] = TR("Play\\Start mission!"); + stringsEvent[EVENT_INTERFACE_SETUPd] = TR("Device\\Driver and resolution settings"); + stringsEvent[EVENT_INTERFACE_SETUPg] = TR("Graphics\\Graphics settings"); + stringsEvent[EVENT_INTERFACE_SETUPp] = TR("Game\\Game settings"); + stringsEvent[EVENT_INTERFACE_SETUPc] = TR("Controls\\Keyboard, joystick and mouse settings"); + stringsEvent[EVENT_INTERFACE_SETUPs] = TR("Sound\\Music and game sound volume"); + stringsEvent[EVENT_INTERFACE_DEVICE] = TR("Unit"); + stringsEvent[EVENT_INTERFACE_RESOL] = TR("Resolution"); + stringsEvent[EVENT_INTERFACE_FULL] = TR("Full screen\\Full screen or window mode"); + stringsEvent[EVENT_INTERFACE_APPLY] = TR("Apply changes\\Activates the changed settings"); + + stringsEvent[EVENT_INTERFACE_TOTO] = TR("Robbie\\Your assistant"); + stringsEvent[EVENT_INTERFACE_SHADOW] = TR("Shadows\\Shadows on the ground"); + stringsEvent[EVENT_INTERFACE_GROUND] = TR("Marks on the ground\\Marks on the ground"); + stringsEvent[EVENT_INTERFACE_DIRTY] = TR("Dust\\Dust and dirt on bots and buildings"); + stringsEvent[EVENT_INTERFACE_FOG] = TR("Fog\\Fog"); + stringsEvent[EVENT_INTERFACE_LENS] = TR("Sunbeams\\Sunbeams in the sky"); + stringsEvent[EVENT_INTERFACE_SKY] = TR("Sky\\Clouds and nebulae"); + stringsEvent[EVENT_INTERFACE_PLANET] = TR("Planets and stars\\Astronomical objects in the sky"); + stringsEvent[EVENT_INTERFACE_LIGHT] = TR("Dynamic lighting\\Mobile light sources"); + stringsEvent[EVENT_INTERFACE_PARTI] = TR("Number of particles\\Explosions, dust, reflections, etc."); + stringsEvent[EVENT_INTERFACE_CLIP] = TR("Depth of field\\Maximum visibility"); + stringsEvent[EVENT_INTERFACE_DETAIL] = TR("Details\\Visual quality of 3D objects"); + stringsEvent[EVENT_INTERFACE_TEXTURE] = TR("Textures\\Quality of textures "); + stringsEvent[EVENT_INTERFACE_GADGET] = TR("Num of decorative objects\\Number of purely ornamental objects"); + stringsEvent[EVENT_INTERFACE_RAIN] = TR("Particles in the interface\\Steam clouds and sparks in the interface"); + stringsEvent[EVENT_INTERFACE_GLINT] = TR("Reflections on the buttons \\Shiny buttons"); + stringsEvent[EVENT_INTERFACE_TOOLTIP] = TR("Help balloons\\Explain the function of the buttons"); + stringsEvent[EVENT_INTERFACE_MOVIES] = TR("Film sequences\\Films before and after the missions"); + stringsEvent[EVENT_INTERFACE_NICERST] = TR("Exit film\\Film at the exit of exercises"); + stringsEvent[EVENT_INTERFACE_HIMSELF] = TR("Friendly fire\\Your shooting can damage your own objects "); + stringsEvent[EVENT_INTERFACE_SCROLL] = TR("Scrolling\\Scrolling when the mouse touches right or left border"); + stringsEvent[EVENT_INTERFACE_INVERTX] = TR("Mouse inversion X\\Inversion of the scrolling direction on the X axis"); + stringsEvent[EVENT_INTERFACE_INVERTY] = TR("Mouse inversion Y\\Inversion of the scrolling direction on the Y axis"); + stringsEvent[EVENT_INTERFACE_EFFECT] = TR("Quake at explosions\\The screen shakes at explosions"); + stringsEvent[EVENT_INTERFACE_MOUSE] = TR("Mouse shadow\\Gives the mouse a shadow"); + stringsEvent[EVENT_INTERFACE_EDITMODE] = TR("Automatic indent\\When program editing"); + stringsEvent[EVENT_INTERFACE_EDITVALUE] = TR("Big indent\\Indent 2 or 4 spaces per level defined by braces"); + stringsEvent[EVENT_INTERFACE_SOLUCE4] = TR("Access to solutions\\Show program \"4: Solution\" in the exercises"); + + stringsEvent[EVENT_INTERFACE_KDEF] = TR("Standard controls\\Standard key functions"); + stringsEvent[EVENT_INTERFACE_KLEFT] = TR("Turn left\\turns the bot to the left"); + stringsEvent[EVENT_INTERFACE_KRIGHT] = TR("Turn right\\turns the bot to the right"); + stringsEvent[EVENT_INTERFACE_KUP] = TR("Forward\\Moves forward"); + stringsEvent[EVENT_INTERFACE_KDOWN] = TR("Backward\\Moves backward"); + stringsEvent[EVENT_INTERFACE_KGUP] = TR("Climb\\Increases the power of the jet"); + stringsEvent[EVENT_INTERFACE_KGDOWN] = TR("Descend\\Reduces the power of the jet"); + stringsEvent[EVENT_INTERFACE_KCAMERA] = TR("Change camera\\Switches between onboard camera and following camera"); + stringsEvent[EVENT_INTERFACE_KDESEL] = TR("Previous object\\Selects the previous object"); + stringsEvent[EVENT_INTERFACE_KACTION] = TR("Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)"); + stringsEvent[EVENT_INTERFACE_KNEAR] = TR("Camera closer\\Moves the camera forward"); + stringsEvent[EVENT_INTERFACE_KAWAY] = TR("Camera back\\Moves the camera backward"); + stringsEvent[EVENT_INTERFACE_KNEXT] = TR("Next object\\Selects the next object"); + stringsEvent[EVENT_INTERFACE_KHUMAN] = TR("Select the astronaut\\Selects the astronaut"); + stringsEvent[EVENT_INTERFACE_KQUIT] = TR("Quit\\Quit the current mission or exercise"); + stringsEvent[EVENT_INTERFACE_KHELP] = TR("Instructions\\Shows the instructions for the current mission"); + stringsEvent[EVENT_INTERFACE_KPROG] = TR("Programming help\\Gives more detailed help with programming"); + stringsEvent[EVENT_INTERFACE_KCBOT] = TR("Key word help\\More detailed help about key words"); + stringsEvent[EVENT_INTERFACE_KVISIT] = TR("Origin of last message\\Shows where the last message was sent from"); + stringsEvent[EVENT_INTERFACE_KSPEED10] = TR("Speed 1.0x\\Normal speed"); + stringsEvent[EVENT_INTERFACE_KSPEED15] = TR("Speed 1.5x\\1.5 times faster"); + stringsEvent[EVENT_INTERFACE_KSPEED20] = TR("Speed 2.0x\\Double speed"); + stringsEvent[EVENT_INTERFACE_KSPEED30] = TR("Speed 3.0x\\Three times faster"); + + stringsEvent[EVENT_INTERFACE_VOLSOUND] = TR("Sound effects:\\Volume of engines, voice, shooting, etc."); + stringsEvent[EVENT_INTERFACE_VOLMUSIC] = TR("Background sound :\\Volume of audio tracks on the CD"); + stringsEvent[EVENT_INTERFACE_SOUND3D] = TR("3D sound\\3D positioning of the sound"); + + stringsEvent[EVENT_INTERFACE_MIN] = TR("Lowest\\Minimum graphic quality (highest frame rate)"); + stringsEvent[EVENT_INTERFACE_NORM] = TR("Normal\\Normal graphic quality"); + stringsEvent[EVENT_INTERFACE_MAX] = TR("Highest\\Highest graphic quality (lowest frame rate)"); + + stringsEvent[EVENT_INTERFACE_SILENT] = TR("Mute\\No sound"); + stringsEvent[EVENT_INTERFACE_NOISY] = TR("Normal\\Normal sound volume"); + + stringsEvent[EVENT_INTERFACE_JOYSTICK] = TR("Use a joystick\\Joystick or keyboard"); + stringsEvent[EVENT_INTERFACE_SOLUCE] = TR("Access to solution\\Shows the solution (detailed instructions for missions)"); + + stringsEvent[EVENT_INTERFACE_NEDIT] = TR("\\New player name"); + stringsEvent[EVENT_INTERFACE_NOK] = TR("OK\\Choose the selected player"); + stringsEvent[EVENT_INTERFACE_NCANCEL] = TR("Cancel\\Keep current player name"); + stringsEvent[EVENT_INTERFACE_NDELETE] = TR("Delete player\\Deletes the player from the list"); + stringsEvent[EVENT_INTERFACE_NLABEL] = TR("Player name"); + + stringsEvent[EVENT_INTERFACE_IOWRITE] = TR("Save\\Saves the current mission"); + stringsEvent[EVENT_INTERFACE_IOREAD] = TR("Load\\Loads the selected mission"); + stringsEvent[EVENT_INTERFACE_IOLIST] = TR("List of saved missions"); + stringsEvent[EVENT_INTERFACE_IOLABEL] = TR("Filename:"); + stringsEvent[EVENT_INTERFACE_IONAME] = TR("Mission name"); + stringsEvent[EVENT_INTERFACE_IOIMAGE] = TR("Photography"); + stringsEvent[EVENT_INTERFACE_IODELETE] = TR("Delete\\Deletes the selected file"); + + stringsEvent[EVENT_INTERFACE_PERSO] = TR("Appearance\\Choose your appearance"); + stringsEvent[EVENT_INTERFACE_POK] = TR("OK"); + stringsEvent[EVENT_INTERFACE_PCANCEL] = TR("Cancel"); + stringsEvent[EVENT_INTERFACE_PDEF] = TR("Standard\\Standard appearance settings"); + stringsEvent[EVENT_INTERFACE_PHEAD] = TR("Head\\Face and hair"); + stringsEvent[EVENT_INTERFACE_PBODY] = TR("Suit\\Astronaut suit"); + stringsEvent[EVENT_INTERFACE_PLROT] = TR("\\Turn left"); + stringsEvent[EVENT_INTERFACE_PRROT] = TR("\\Turn right"); + stringsEvent[EVENT_INTERFACE_PCRa] = TR("Red"); + stringsEvent[EVENT_INTERFACE_PCGa] = TR("Green"); + stringsEvent[EVENT_INTERFACE_PCBa] = TR("Blue"); + stringsEvent[EVENT_INTERFACE_PCRb] = TR("Red"); + stringsEvent[EVENT_INTERFACE_PCGb] = TR("Green"); + stringsEvent[EVENT_INTERFACE_PCBb] = TR("Blue"); + stringsEvent[EVENT_INTERFACE_PFACE1] = TR("\\Face 1"); + stringsEvent[EVENT_INTERFACE_PFACE2] = TR("\\Face 4"); + stringsEvent[EVENT_INTERFACE_PFACE3] = TR("\\Face 3"); + stringsEvent[EVENT_INTERFACE_PFACE4] = TR("\\Face 2"); + stringsEvent[EVENT_INTERFACE_PGLASS0] = TR("\\No eyeglasses"); + stringsEvent[EVENT_INTERFACE_PGLASS1] = TR("\\Eyeglasses 1"); + stringsEvent[EVENT_INTERFACE_PGLASS2] = TR("\\Eyeglasses 2"); + stringsEvent[EVENT_INTERFACE_PGLASS3] = TR("\\Eyeglasses 3"); + stringsEvent[EVENT_INTERFACE_PGLASS4] = TR("\\Eyeglasses 4"); + stringsEvent[EVENT_INTERFACE_PGLASS5] = TR("\\Eyeglasses 5"); + + stringsEvent[EVENT_OBJECT_DESELECT] = TR("Previous selection (\\key desel;)"); + stringsEvent[EVENT_OBJECT_LEFT] = TR("Turn left (\\key left;)"); + stringsEvent[EVENT_OBJECT_RIGHT] = TR("Turn right (\\key right;)"); + stringsEvent[EVENT_OBJECT_UP] = TR("Forward (\\key up;)"); + stringsEvent[EVENT_OBJECT_DOWN] = TR("Backward (\\key down;)"); + stringsEvent[EVENT_OBJECT_GASUP] = TR("Up (\\key gup;)"); + stringsEvent[EVENT_OBJECT_GASDOWN] = TR("Down (\\key gdown;)"); + stringsEvent[EVENT_OBJECT_HTAKE] = TR("Grab or drop (\\key action;)"); + stringsEvent[EVENT_OBJECT_MTAKE] = TR("Grab or drop (\\key action;)"); + stringsEvent[EVENT_OBJECT_MFRONT] = TR("..in front"); + stringsEvent[EVENT_OBJECT_MBACK] = TR("..behind"); + stringsEvent[EVENT_OBJECT_MPOWER] = TR("..power cell"); + stringsEvent[EVENT_OBJECT_BHELP] = TR("Instructions for the mission (\\key help;)"); + stringsEvent[EVENT_OBJECT_BTAKEOFF] = TR("Take off to finish the mission"); + stringsEvent[EVENT_OBJECT_BDESTROY] = TR("Destroy"); + stringsEvent[EVENT_OBJECT_BDERRICK] = TR("Build a derrick"); + stringsEvent[EVENT_OBJECT_BSTATION] = TR("Build a power station"); + stringsEvent[EVENT_OBJECT_BFACTORY] = TR("Build a bot factory"); + stringsEvent[EVENT_OBJECT_BREPAIR] = TR("Build a repair center"); + stringsEvent[EVENT_OBJECT_BCONVERT] = TR("Build a converter"); + stringsEvent[EVENT_OBJECT_BTOWER] = TR("Build a defense tower"); + stringsEvent[EVENT_OBJECT_BRESEARCH] = TR("Build a research center"); + stringsEvent[EVENT_OBJECT_BRADAR] = TR("Build a radar station"); + stringsEvent[EVENT_OBJECT_BENERGY] = TR("Build a power cell factory"); + stringsEvent[EVENT_OBJECT_BLABO] = TR("Build an autolab"); + stringsEvent[EVENT_OBJECT_BNUCLEAR] = TR("Build a nuclear power plant"); + stringsEvent[EVENT_OBJECT_BPARA] = TR("Build a lightning conductor"); + stringsEvent[EVENT_OBJECT_BINFO] = TR("Build a exchange post"); + stringsEvent[EVENT_OBJECT_BDESTROYER] = TR("Build a destroyer"); + stringsEvent[EVENT_OBJECT_GFLAT] = TR("Show if the ground is flat"); + stringsEvent[EVENT_OBJECT_FCREATE] = TR("Plant a flag"); + stringsEvent[EVENT_OBJECT_FDELETE] = TR("Remove a flag"); + stringsEvent[EVENT_OBJECT_FCOLORb] = TR("\\Blue flags"); + stringsEvent[EVENT_OBJECT_FCOLORr] = TR("\\Red flags"); + stringsEvent[EVENT_OBJECT_FCOLORg] = TR("\\Green flags"); + stringsEvent[EVENT_OBJECT_FCOLORy] = TR("\\Yellow flags"); + stringsEvent[EVENT_OBJECT_FCOLORv] = TR("\\Violet flags"); + stringsEvent[EVENT_OBJECT_FACTORYfa] = TR("Build a winged grabber"); + stringsEvent[EVENT_OBJECT_FACTORYta] = TR("Build a tracked grabber"); + stringsEvent[EVENT_OBJECT_FACTORYwa] = TR("Build a wheeled grabber"); + stringsEvent[EVENT_OBJECT_FACTORYia] = TR("Build a legged grabber"); + stringsEvent[EVENT_OBJECT_FACTORYfc] = TR("Build a winged shooter"); + stringsEvent[EVENT_OBJECT_FACTORYtc] = TR("Build a tracked shooter"); + stringsEvent[EVENT_OBJECT_FACTORYwc] = TR("Build a wheeled shooter"); + stringsEvent[EVENT_OBJECT_FACTORYic] = TR("Build a legged shooter"); + stringsEvent[EVENT_OBJECT_FACTORYfi] = TR("Build a winged orga shooter"); + stringsEvent[EVENT_OBJECT_FACTORYti] = TR("Build a tracked orga shooter"); + stringsEvent[EVENT_OBJECT_FACTORYwi] = TR("Build a wheeled orga shooter"); + stringsEvent[EVENT_OBJECT_FACTORYii] = TR("Build a legged orga shooter"); + stringsEvent[EVENT_OBJECT_FACTORYfs] = TR("Build a winged sniffer"); + stringsEvent[EVENT_OBJECT_FACTORYts] = TR("Build a tracked sniffer"); + stringsEvent[EVENT_OBJECT_FACTORYws] = TR("Build a wheeled sniffer"); + stringsEvent[EVENT_OBJECT_FACTORYis] = TR("Build a legged sniffer"); + stringsEvent[EVENT_OBJECT_FACTORYrt] = TR("Build a thumper"); + stringsEvent[EVENT_OBJECT_FACTORYrc] = TR("Build a phazer shooter"); + stringsEvent[EVENT_OBJECT_FACTORYrr] = TR("Build a recycler"); + stringsEvent[EVENT_OBJECT_FACTORYrs] = TR("Build a shielder"); + stringsEvent[EVENT_OBJECT_FACTORYsa] = TR("Build a subber"); + stringsEvent[EVENT_OBJECT_RTANK] = TR("Run research program for tracked bots"); + stringsEvent[EVENT_OBJECT_RFLY] = TR("Run research program for winged bots"); + stringsEvent[EVENT_OBJECT_RTHUMP] = TR("Run research program for thumper"); + stringsEvent[EVENT_OBJECT_RCANON] = TR("Run research program for shooter"); + stringsEvent[EVENT_OBJECT_RTOWER] = TR("Run research program for defense tower"); + stringsEvent[EVENT_OBJECT_RPHAZER] = TR("Run research program for phazer shooter"); + stringsEvent[EVENT_OBJECT_RSHIELD] = TR("Run research program for shielder"); + stringsEvent[EVENT_OBJECT_RATOMIC] = TR("Run research program for nuclear power"); + stringsEvent[EVENT_OBJECT_RiPAW] = TR("Run research program for legged bots"); + stringsEvent[EVENT_OBJECT_RiGUN] = TR("Run research program for orga shooter"); + stringsEvent[EVENT_OBJECT_RESET] = TR("Return to start"); + stringsEvent[EVENT_OBJECT_SEARCH] = TR("Sniff (\\key action;)"); + stringsEvent[EVENT_OBJECT_TERRAFORM] = TR("Thump (\\key action;)"); + stringsEvent[EVENT_OBJECT_FIRE] = TR("Shoot (\\key action;)"); + stringsEvent[EVENT_OBJECT_SPIDEREXPLO] = TR("Explode (\\key action;)"); + stringsEvent[EVENT_OBJECT_RECOVER] = TR("Recycle (\\key action;)"); + stringsEvent[EVENT_OBJECT_BEGSHIELD] = TR("Extend shield (\\key action;)"); + stringsEvent[EVENT_OBJECT_ENDSHIELD] = TR("Withdraw shield (\\key action;)"); + stringsEvent[EVENT_OBJECT_DIMSHIELD] = TR("Shield radius"); + stringsEvent[EVENT_OBJECT_PROGRUN] = TR("Execute the selected program"); + stringsEvent[EVENT_OBJECT_PROGEDIT] = TR("Edit the selected program"); + stringsEvent[EVENT_OBJECT_INFOOK] = TR("\\SatCom on standby"); + stringsEvent[EVENT_OBJECT_DELETE] = TR("Destroy the building"); + stringsEvent[EVENT_OBJECT_GENERGY] = TR("Energy level"); + stringsEvent[EVENT_OBJECT_GSHIELD] = TR("Shield level"); + stringsEvent[EVENT_OBJECT_GRANGE] = TR("Jet temperature"); + stringsEvent[EVENT_OBJECT_GPROGRESS] = TR("Still working ..."); + stringsEvent[EVENT_OBJECT_GRADAR] = TR("Number of insects detected"); + stringsEvent[EVENT_OBJECT_GINFO] = TR("Transmitted information"); + stringsEvent[EVENT_OBJECT_COMPASS] = TR("Compass"); + stringsEvent[EVENT_OBJECT_MAPZOOM] = TR("Zoom mini-map"); + stringsEvent[EVENT_OBJECT_CAMERA] = TR("Camera (\\key camera;)"); + stringsEvent[EVENT_OBJECT_CAMERAleft] = TR("Camera to left"); + stringsEvent[EVENT_OBJECT_CAMERAright] = TR("Camera to right"); + stringsEvent[EVENT_OBJECT_CAMERAnear] = TR("Camera nearest"); + stringsEvent[EVENT_OBJECT_CAMERAaway] = TR("Camera awayest"); + stringsEvent[EVENT_OBJECT_HELP] = TR("Help about selected object"); + stringsEvent[EVENT_OBJECT_SOLUCE] = TR("Show the solution"); + stringsEvent[EVENT_OBJECT_SHORTCUT00] = TR("Switch bots <-> buildings"); + stringsEvent[EVENT_OBJECT_LIMIT] = TR("Show the range"); + stringsEvent[EVENT_OBJECT_PEN0] = TR("\\Raise the pencil"); + stringsEvent[EVENT_OBJECT_PEN1] = TR("\\Use the black pencil"); + stringsEvent[EVENT_OBJECT_PEN2] = TR("\\Use the yellow pencil"); + stringsEvent[EVENT_OBJECT_PEN3] = TR("\\Use the orange pencil"); + stringsEvent[EVENT_OBJECT_PEN4] = TR("\\Use the red pencil"); + stringsEvent[EVENT_OBJECT_PEN5] = TR("\\Use the purple pencil"); + stringsEvent[EVENT_OBJECT_PEN6] = TR("\\Use the blue pencil"); + stringsEvent[EVENT_OBJECT_PEN7] = TR("\\Use the green pencil"); + stringsEvent[EVENT_OBJECT_PEN8] = TR("\\Use the brown pencil"); + stringsEvent[EVENT_OBJECT_REC] = TR("\\Start recording"); + stringsEvent[EVENT_OBJECT_STOP] = TR("\\Stop recording"); + stringsEvent[EVENT_DT_VISIT0] = TR("Show the place"); + stringsEvent[EVENT_DT_VISIT1] = TR("Show the place"); + stringsEvent[EVENT_DT_VISIT2] = TR("Show the place"); + stringsEvent[EVENT_DT_VISIT3] = TR("Show the place"); + stringsEvent[EVENT_DT_VISIT4] = TR("Show the place"); + stringsEvent[EVENT_DT_END] = TR("Continue"); + stringsEvent[EVENT_CMD] = TR("Command line"); + stringsEvent[EVENT_SPEED] = TR("Game speed"); + + stringsEvent[EVENT_HYPER_PREV] = TR("Back"); + stringsEvent[EVENT_HYPER_NEXT] = TR("Forward"); + stringsEvent[EVENT_HYPER_HOME] = TR("Home"); + stringsEvent[EVENT_HYPER_COPY] = TR("Copy"); + stringsEvent[EVENT_HYPER_SIZE1] = TR("Size 1"); + stringsEvent[EVENT_HYPER_SIZE2] = TR("Size 2"); + stringsEvent[EVENT_HYPER_SIZE3] = TR("Size 3"); + stringsEvent[EVENT_HYPER_SIZE4] = TR("Size 4"); + stringsEvent[EVENT_HYPER_SIZE5] = TR("Size 5"); + stringsEvent[EVENT_SATCOM_HUSTON] = TR("Instructions from Houston"); + stringsEvent[EVENT_SATCOM_SAT] = TR("Satellite report"); + stringsEvent[EVENT_SATCOM_LOADING] = TR("Programs dispatched by Houston"); + stringsEvent[EVENT_SATCOM_OBJECT] = TR("List of objects"); + stringsEvent[EVENT_SATCOM_PROG] = TR("Programming help"); + stringsEvent[EVENT_SATCOM_SOLUCE] = TR("Solution"); + + stringsEvent[EVENT_STUDIO_OK] = TR("OK\\Close program editor and return to game"); + stringsEvent[EVENT_STUDIO_CANCEL] = TR("Cancel\\Cancel all changes"); + stringsEvent[EVENT_STUDIO_NEW] = TR("New"); + stringsEvent[EVENT_STUDIO_OPEN] = TR("Open (Ctrl+o)"); + stringsEvent[EVENT_STUDIO_SAVE] = TR("Save (Ctrl+s)"); + stringsEvent[EVENT_STUDIO_UNDO] = TR("Undo (Ctrl+z)"); + stringsEvent[EVENT_STUDIO_CUT] = TR("Cut (Ctrl+x)"); + stringsEvent[EVENT_STUDIO_COPY] = TR("Copy (Ctrl+c)"); + stringsEvent[EVENT_STUDIO_PASTE] = TR("Paste (Ctrl+v)"); + stringsEvent[EVENT_STUDIO_SIZE] = TR("Font size"); + stringsEvent[EVENT_STUDIO_TOOL] = TR("Instructions (\\key help;)"); + stringsEvent[EVENT_STUDIO_HELP] = TR("Programming help (\\key prog;)"); + stringsEvent[EVENT_STUDIO_COMPILE] = TR("Compile"); + stringsEvent[EVENT_STUDIO_RUN] = TR("Execute/stop"); + stringsEvent[EVENT_STUDIO_REALTIME] = TR("Pause/continue"); + stringsEvent[EVENT_STUDIO_STEP] = TR("One step"); + + + + stringsObject[OBJECT_PORTICO] = TR("Gantry crane"); + stringsObject[OBJECT_BASE] = TR("Spaceship"); + stringsObject[OBJECT_DERRICK] = TR("Derrick"); + stringsObject[OBJECT_FACTORY] = TR("Bot factory"); + stringsObject[OBJECT_REPAIR] = TR("Repair center"); + stringsObject[OBJECT_DESTROYER] = TR("Destroyer"); + stringsObject[OBJECT_STATION] = TR("Power station"); + stringsObject[OBJECT_CONVERT] = TR("Converts ore to titanium"); + stringsObject[OBJECT_TOWER] = TR("Defense tower"); + stringsObject[OBJECT_NEST] = TR("Nest"); + stringsObject[OBJECT_RESEARCH] = TR("Research center"); + stringsObject[OBJECT_RADAR] = TR("Radar station"); + stringsObject[OBJECT_INFO] = TR("Information exchange post"); + stringsObject[OBJECT_ENERGY] = TR("Power cell factory"); + stringsObject[OBJECT_LABO] = TR("Autolab"); + stringsObject[OBJECT_NUCLEAR] = TR("Nuclear power station"); + stringsObject[OBJECT_PARA] = TR("Lightning conductor"); + stringsObject[OBJECT_SAFE] = TR("Vault"); + stringsObject[OBJECT_HUSTON] = TR("Houston Mission Control"); + stringsObject[OBJECT_TARGET1] = TR("Target"); + stringsObject[OBJECT_TARGET2] = TR("Target"); + stringsObject[OBJECT_START] = TR("Start"); + stringsObject[OBJECT_END] = TR("Finish"); + stringsObject[OBJECT_STONE] = TR("Titanium ore"); + stringsObject[OBJECT_URANIUM] = TR("Uranium ore"); + stringsObject[OBJECT_BULLET] = TR("Organic matter"); + stringsObject[OBJECT_METAL] = TR("Titanium"); + stringsObject[OBJECT_POWER] = TR("Power cell"); + stringsObject[OBJECT_ATOMIC] = TR("Nuclear power cell"); + stringsObject[OBJECT_BBOX] = TR("Black box"); + stringsObject[OBJECT_KEYa] = TR("Key A"); + stringsObject[OBJECT_KEYb] = TR("Key B"); + stringsObject[OBJECT_KEYc] = TR("Key C"); + stringsObject[OBJECT_KEYd] = TR("Key D"); + stringsObject[OBJECT_TNT] = TR("Explosive"); + stringsObject[OBJECT_BOMB] = TR("Fixed mine"); + stringsObject[OBJECT_BAG] = TR("Survival kit"); + stringsObject[OBJECT_WAYPOINT] = TR("Checkpoint"); + stringsObject[OBJECT_FLAGb] = TR("Blue flag"); + stringsObject[OBJECT_FLAGr] = TR("Red flag"); + stringsObject[OBJECT_FLAGg] = TR("Green flag"); + stringsObject[OBJECT_FLAGy] = TR("Yellow flag"); + stringsObject[OBJECT_FLAGv] = TR("Violet flag"); + stringsObject[OBJECT_MARKPOWER] = TR("Energy deposit (site for power station)"); + stringsObject[OBJECT_MARKURANIUM] = TR("Uranium deposit (site for derrick)"); + stringsObject[OBJECT_MARKKEYa] = TR("Found key A (site for derrick)"); + stringsObject[OBJECT_MARKKEYb] = TR("Found key B (site for derrick)"); + stringsObject[OBJECT_MARKKEYc] = TR("Found key C (site for derrick)"); + stringsObject[OBJECT_MARKKEYd] = TR("Found key D (site for derrick)"); + stringsObject[OBJECT_MARKSTONE] = TR("Titanium deposit (site for derrick)"); + stringsObject[OBJECT_MOBILEft] = TR("Practice bot"); + stringsObject[OBJECT_MOBILEtt] = TR("Practice bot"); + stringsObject[OBJECT_MOBILEwt] = TR("Practice bot"); + stringsObject[OBJECT_MOBILEit] = TR("Practice bot"); + stringsObject[OBJECT_MOBILEfa] = TR("Winged grabber"); + stringsObject[OBJECT_MOBILEta] = TR("Tracked grabber"); + stringsObject[OBJECT_MOBILEwa] = TR("Wheeled grabber"); + stringsObject[OBJECT_MOBILEia] = TR("Legged grabber"); + stringsObject[OBJECT_MOBILEfc] = TR("Winged shooter"); + stringsObject[OBJECT_MOBILEtc] = TR("Tracked shooter"); + stringsObject[OBJECT_MOBILEwc] = TR("Wheeled shooter"); + stringsObject[OBJECT_MOBILEic] = TR("Legged shooter"); + stringsObject[OBJECT_MOBILEfi] = TR("Winged orga shooter"); + stringsObject[OBJECT_MOBILEti] = TR("Tracked orga shooter"); + stringsObject[OBJECT_MOBILEwi] = TR("Wheeled orga shooter"); + stringsObject[OBJECT_MOBILEii] = TR("Legged orga shooter"); + stringsObject[OBJECT_MOBILEfs] = TR("Winged sniffer"); + stringsObject[OBJECT_MOBILEts] = TR("Tracked sniffer"); + stringsObject[OBJECT_MOBILEws] = TR("Wheeled sniffer"); + stringsObject[OBJECT_MOBILEis] = TR("Legged sniffer"); + stringsObject[OBJECT_MOBILErt] = TR("Thumper"); + stringsObject[OBJECT_MOBILErc] = TR("Phazer shooter"); + stringsObject[OBJECT_MOBILErr] = TR("Recycler"); + stringsObject[OBJECT_MOBILErs] = TR("Shielder"); + stringsObject[OBJECT_MOBILEsa] = TR("Subber"); + stringsObject[OBJECT_MOBILEtg] = TR("Target bot"); + stringsObject[OBJECT_MOBILEdr] = TR("Drawer bot"); + stringsObject[OBJECT_TECH] = TR("Engineer"); + stringsObject[OBJECT_TOTO] = TR("Robbie"); + stringsObject[OBJECT_MOTHER] = TR("Alien Queen"); + stringsObject[OBJECT_ANT] = TR("Ant"); + stringsObject[OBJECT_SPIDER] = TR("Spider"); + stringsObject[OBJECT_BEE] = TR("Wasp"); + stringsObject[OBJECT_WORM] = TR("Worm"); + stringsObject[OBJECT_EGG] = TR("Egg"); + stringsObject[OBJECT_RUINmobilew1] = TR("Wreckage"); + stringsObject[OBJECT_RUINmobilew2] = TR("Wreckage"); + stringsObject[OBJECT_RUINmobilet1] = TR("Wreckage"); + stringsObject[OBJECT_RUINmobilet2] = TR("Wreckage"); + stringsObject[OBJECT_RUINmobiler1] = TR("Wreckage"); + stringsObject[OBJECT_RUINmobiler2] = TR("Wreckage"); + stringsObject[OBJECT_RUINfactory] = TR("Ruin"); + stringsObject[OBJECT_RUINdoor] = TR("Ruin"); + stringsObject[OBJECT_RUINsupport] = TR("Waste"); + stringsObject[OBJECT_RUINradar] = TR("Ruin"); + stringsObject[OBJECT_RUINconvert] = TR("Ruin"); + stringsObject[OBJECT_RUINbase] = TR("Spaceship ruin"); + stringsObject[OBJECT_RUINhead] = TR("Spaceship ruin"); + stringsObject[OBJECT_APOLLO1] = TR("Remains of Apollo mission"); + stringsObject[OBJECT_APOLLO3] = TR("Remains of Apollo mission"); + stringsObject[OBJECT_APOLLO4] = TR("Remains of Apollo mission"); + stringsObject[OBJECT_APOLLO5] = TR("Remains of Apollo mission"); + stringsObject[OBJECT_APOLLO2] = TR("Lunar Roving Vehicle"); + + + + stringsErr[ERR_GENERIC] = TR("Internal error - tell the developers"); + stringsErr[ERR_CMD] = TR("Unknown command"); + stringsErr[ERR_MANIP_VEH] = TR("Inappropriate bot"); + stringsErr[ERR_MANIP_FLY] = TR("Impossible when flying"); + stringsErr[ERR_MANIP_BUSY] = TR("Already carrying something"); + stringsErr[ERR_MANIP_NIL] = TR("Nothing to grab"); + stringsErr[ERR_MANIP_MOTOR] = TR("Impossible when moving"); + stringsErr[ERR_MANIP_OCC] = TR("Place occupied"); + stringsErr[ERR_MANIP_FRIEND] = TR("No other robot"); + stringsErr[ERR_MANIP_RADIO] = TR("You can not carry a radioactive object"); + stringsErr[ERR_MANIP_WATER] = TR("You can not carry an object under water"); + stringsErr[ERR_MANIP_EMPTY] = TR("Nothing to drop"); + stringsErr[ERR_BUILD_FLY] = TR("Impossible when flying"); + stringsErr[ERR_BUILD_WATER] = TR("Impossible under water"); + stringsErr[ERR_BUILD_ENERGY] = TR("Not enough energy"); + stringsErr[ERR_BUILD_METALAWAY] = TR("Titanium too far away"); + stringsErr[ERR_BUILD_METALNEAR] = TR("Titanium too close"); + stringsErr[ERR_BUILD_METALINEX] = TR("No titanium around"); + stringsErr[ERR_BUILD_FLAT] = TR("Ground not flat enough"); + stringsErr[ERR_BUILD_FLATLIT] = TR("Flat ground not large enough"); + stringsErr[ERR_BUILD_BUSY] = TR("Place occupied"); + stringsErr[ERR_BUILD_BASE] = TR("Too close to space ship"); + stringsErr[ERR_BUILD_NARROW] = TR("Too close to a building"); + stringsErr[ERR_BUILD_MOTOR] = TR("Impossible when moving"); + stringsErr[ERR_SEARCH_FLY] = TR("Impossible when flying"); + stringsErr[ERR_BUILD_DISABLED] = TR("Can not produce this object in this mission"); + stringsErr[ERR_BUILD_RESEARCH] = TR("Can not produce not researched object"); + stringsErr[ERR_SEARCH_VEH] = TR("Inappropriate bot"); + stringsErr[ERR_SEARCH_MOTOR] = TR("Impossible when moving"); + stringsErr[ERR_TERRA_VEH] = TR("Inappropriate bot"); + stringsErr[ERR_TERRA_ENERGY] = TR("Not enough energy"); + stringsErr[ERR_TERRA_FLOOR] = TR("Ground inappropriate"); + stringsErr[ERR_TERRA_BUILDING] = TR("Building too close"); + stringsErr[ERR_TERRA_OBJECT] = TR("Object too close"); + stringsErr[ERR_RECOVER_VEH] = TR("Inappropriate bot"); + stringsErr[ERR_RECOVER_ENERGY] = TR("Not enough energy"); + stringsErr[ERR_RECOVER_NULL] = TR("Nothing to recycle"); + stringsErr[ERR_SHIELD_VEH] = TR("Inappropriate bot"); + stringsErr[ERR_SHIELD_ENERGY] = TR("No more energy"); + stringsErr[ERR_MOVE_IMPOSSIBLE] = TR("Error in instruction move"); + stringsErr[ERR_FIND_IMPOSSIBLE] = TR("Object not found"); + stringsErr[ERR_GOTO_IMPOSSIBLE] = TR("Goto: inaccessible destination"); + stringsErr[ERR_GOTO_ITER] = TR("Goto: inaccessible destination"); + stringsErr[ERR_GOTO_BUSY] = TR("Goto: destination occupied"); + stringsErr[ERR_FIRE_VEH] = TR("Inappropriate bot"); + stringsErr[ERR_FIRE_ENERGY] = TR("Not enough energy"); + stringsErr[ERR_FIRE_FLY] = TR("Impossible when flying"); + stringsErr[ERR_CONVERT_EMPTY] = TR("No titanium ore to convert"); + stringsErr[ERR_DERRICK_NULL] = TR("No ore in the subsoil"); + stringsErr[ERR_STATION_NULL] = TR("No energy in the subsoil"); + stringsErr[ERR_TOWER_POWER] = TR("No power cell"); + stringsErr[ERR_TOWER_ENERGY] = TR("No more energy"); + stringsErr[ERR_RESEARCH_POWER] = TR("No power cell"); + stringsErr[ERR_RESEARCH_ENERGY] = TR("Not enough energy"); + stringsErr[ERR_RESEARCH_TYPE] = TR("Inappropriate cell type"); + stringsErr[ERR_RESEARCH_ALREADY]= TR("Research program already performed"); + stringsErr[ERR_ENERGY_NULL] = TR("No energy in the subsoil"); + stringsErr[ERR_ENERGY_LOW] = TR("Not enough energy yet"); + stringsErr[ERR_ENERGY_EMPTY] = TR("No titanium to transform"); + stringsErr[ERR_ENERGY_BAD] = TR("Transforms only titanium"); + stringsErr[ERR_BASE_DLOCK] = TR("Doors blocked by a robot or another object "); + stringsErr[ERR_BASE_DHUMAN] = TR("You must get on the spaceship to take off "); + stringsErr[ERR_LABO_NULL] = TR("Nothing to analyze"); + stringsErr[ERR_LABO_BAD] = TR("Analyzes only organic matter"); + stringsErr[ERR_LABO_ALREADY] = TR("Analysis already performed"); + stringsErr[ERR_NUCLEAR_NULL] = TR("No energy in the subsoil"); + stringsErr[ERR_NUCLEAR_LOW] = TR("Not yet enough energy"); + stringsErr[ERR_NUCLEAR_EMPTY] = TR("No uranium to transform"); + stringsErr[ERR_NUCLEAR_BAD] = TR("Transforms only uranium"); + stringsErr[ERR_FACTORY_NULL] = TR("No titanium"); + stringsErr[ERR_FACTORY_NEAR] = TR("Object too close"); + stringsErr[ERR_RESET_NEAR] = TR("Place occupied"); + stringsErr[ERR_INFO_NULL] = TR("No information exchange post within range"); + stringsErr[ERR_VEH_VIRUS] = TR("Program infected by a virus"); + stringsErr[ERR_BAT_VIRUS] = TR("Infected by a virus; temporarily out of order"); + stringsErr[ERR_VEH_POWER] = TR("No power cell"); + stringsErr[ERR_VEH_ENERGY] = TR("No more energy"); + stringsErr[ERR_FLAG_FLY] = TR("Impossible when flying"); + stringsErr[ERR_FLAG_WATER] = TR("Impossible when swimming"); + stringsErr[ERR_FLAG_MOTOR] = TR("Impossible when moving"); + stringsErr[ERR_FLAG_BUSY] = TR("Impossible when carrying an object"); + stringsErr[ERR_FLAG_CREATE] = TR("Too many flags of this color (maximum 5)"); + stringsErr[ERR_FLAG_PROXY] = TR("Too close to an existing flag"); + stringsErr[ERR_FLAG_DELETE] = TR("No flag nearby"); + stringsErr[ERR_DESTROY_NOTFOUND]= TR("Not found anything to destroy"); + stringsErr[ERR_WRONG_OBJ] = TR("Inappropriate object"); + stringsErr[ERR_MISSION_NOTERM] = TR("The mission is not accomplished yet (press \\key help; for more details)"); + stringsErr[ERR_DELETEMOBILE] = TR("Bot destroyed"); + stringsErr[ERR_DELETEBUILDING] = TR("Building destroyed"); + stringsErr[ERR_TOOMANY] = TR("Can not create this; there are too many objects"); + stringsErr[ERR_OBLIGATORYTOKEN] = TR("\"%s\" missing in this exercise"); + stringsErr[ERR_PROHIBITEDTOKEN] = TR("Do not use in this exercise"); + + stringsErr[INFO_BUILD] = TR("Building completed"); + stringsErr[INFO_CONVERT] = TR("Titanium available"); + stringsErr[INFO_RESEARCH] = TR("Research program completed"); + stringsErr[INFO_RESEARCHTANK] = TR("Plans for tracked robots available "); + stringsErr[INFO_RESEARCHFLY] = TR("You can fly with the keys (\\key gup;) and (\\key gdown;)"); + stringsErr[INFO_RESEARCHTHUMP] = TR("Plans for thumper available"); + stringsErr[INFO_RESEARCHCANON] = TR("Plans for shooter available"); + stringsErr[INFO_RESEARCHTOWER] = TR("Plans for defense tower available"); + stringsErr[INFO_RESEARCHPHAZER] = TR("Plans for phazer shooter available"); + stringsErr[INFO_RESEARCHSHIELD] = TR("Plans for shielder available"); + stringsErr[INFO_RESEARCHATOMIC] = TR("Plans for nuclear power plant available"); + stringsErr[INFO_FACTORY] = TR("New bot available"); + stringsErr[INFO_LABO] = TR("Analysis performed"); + stringsErr[INFO_ENERGY] = TR("Power cell available"); + stringsErr[INFO_NUCLEAR] = TR("Nuclear power cell available"); + stringsErr[INFO_FINDING] = TR("You found a usable object"); + stringsErr[INFO_MARKPOWER] = TR("Found a site for power station"); + stringsErr[INFO_MARKURANIUM] = TR("Found a site for a derrick"); + stringsErr[INFO_MARKSTONE] = TR("Found a site for a derrick"); + stringsErr[INFO_MARKKEYa] = TR("Found a site for a derrick"); + stringsErr[INFO_MARKKEYb] = TR("Found a site for a derrick"); + stringsErr[INFO_MARKKEYc] = TR("Found a site for a derrick"); + stringsErr[INFO_MARKKEYd] = TR("Found a site for a derrick"); + stringsErr[INFO_WIN] = TR("<<< Well done; mission accomplished >>>"); + stringsErr[INFO_LOST] = TR("<<< Sorry; mission failed >>>"); + stringsErr[INFO_LOSTq] = TR("<<< Sorry; mission failed >>>"); + stringsErr[INFO_WRITEOK] = TR("Current mission saved"); + stringsErr[INFO_DELETEPATH] = TR("Checkpoint crossed"); + stringsErr[INFO_DELETEMOTHER] = TR("Alien Queen killed"); + stringsErr[INFO_DELETEANT] = TR("Ant fatally wounded"); + stringsErr[INFO_DELETEBEE] = TR("Wasp fatally wounded"); + stringsErr[INFO_DELETEWORM] = TR("Worm fatally wounded"); + stringsErr[INFO_DELETESPIDER] = TR("Spider fatally wounded"); + stringsErr[INFO_BEGINSATCOM] = TR("Press \\key help; to read instructions on your SatCom"); + + + + stringsCbot[TX_OPENPAR] = TR("Opening bracket missing"); + stringsCbot[TX_CLOSEPAR] = TR("Closing bracket missing "); + stringsCbot[TX_NOTBOOL] = TR("The expression must return a boolean value"); + stringsCbot[TX_UNDEFVAR] = TR("Variable not declared"); + stringsCbot[TX_BADLEFT] = TR("Assignment impossible"); + stringsCbot[TX_ENDOF] = TR("Semicolon terminator missing"); + stringsCbot[TX_OUTCASE] = TR("Instruction \"case\" outside a block \"switch\""); + stringsCbot[TX_NOTERM] = TR("Instructions after the final closing brace"); + stringsCbot[TX_CLOSEBLK] = TR("End of block missing"); + stringsCbot[TX_ELSEWITHOUTIF] = TR("Instruction \"else\" without corresponding \"if\" "); + stringsCbot[TX_OPENBLK] = TR("Opening brace missing "); + stringsCbot[TX_BADTYPE] = TR("Wrong type for the assignment"); + stringsCbot[TX_REDEFVAR] = TR("A variable can not be declared twice"); + stringsCbot[TX_BAD2TYPE] = TR("The types of the two operands are incompatible "); + stringsCbot[TX_UNDEFCALL] = TR("Unknown function"); + stringsCbot[TX_MISDOTS] = TR("Sign \" : \" missing"); + stringsCbot[TX_WHILE] = TR("Keyword \"while\" missing"); + stringsCbot[TX_BREAK] = TR("Instruction \"break\" outside a loop"); + stringsCbot[TX_LABEL] = TR("A label must be followed by \"for\"; \"while\"; \"do\" or \"switch\""); + stringsCbot[TX_NOLABEL] = TR("This label does not exist"); + stringsCbot[TX_NOCASE] = TR("Instruction \"case\" missing"); + stringsCbot[TX_BADNUM] = TR("Number missing"); + stringsCbot[TX_VOID] = TR("Void parameter"); + stringsCbot[TX_NOTYP] = TR("Type declaration missing"); + stringsCbot[TX_NOVAR] = TR("Variable name missing"); + stringsCbot[TX_NOFONC] = TR("Function name missing"); + stringsCbot[TX_OVERPARAM] = TR("Too many parameters"); + stringsCbot[TX_REDEF] = TR("Function already exists"); + stringsCbot[TX_LOWPARAM] = TR("Parameters missing "); + stringsCbot[TX_BADPARAM] = TR("No function with this name accepts this kind of parameter"); + stringsCbot[TX_NUMPARAM] = TR("No function with this name accepts this number of parameters"); + stringsCbot[TX_NOITEM] = TR("This is not a member of this class"); + stringsCbot[TX_DOT] = TR("This object is not a member of a class"); + stringsCbot[TX_NOCONST] = TR("Appropriate constructor missing"); + stringsCbot[TX_REDEFCLASS] = TR("This class already exists"); + stringsCbot[TX_CLBRK] = TR("\" ] \" missing"); + stringsCbot[TX_RESERVED] = TR("Reserved keyword of CBOT language"); + stringsCbot[TX_BADNEW] = TR("Bad argument for \"new\""); + stringsCbot[TX_OPBRK] = TR("\" [ \" expected"); + stringsCbot[TX_BADSTRING] = TR("String missing"); + stringsCbot[TX_BADINDEX] = TR("Incorrect index type"); + stringsCbot[TX_PRIVATE] = TR("Private element"); + stringsCbot[TX_NOPUBLIC] = TR("Public required"); + stringsCbot[TX_DIVZERO] = TR("Dividing by zero"); + stringsCbot[TX_NOTINIT] = TR("Variable not initialized"); + stringsCbot[TX_BADTHROW] = TR("Negative value rejected by \"throw\""); + stringsCbot[TX_NORETVAL] = TR("The function returned no value "); + stringsCbot[TX_NORUN] = TR("No function running"); + stringsCbot[TX_NOCALL] = TR("Calling an unknown function"); + stringsCbot[TX_NOCLASS] = TR("This class does not exist"); + stringsCbot[TX_NULLPT] = TR("Unknown Object"); + stringsCbot[TX_OPNAN] = TR("Operation impossible with value \"nan\""); + stringsCbot[TX_OUTARRAY] = TR("Access beyond array limit"); + stringsCbot[TX_STACKOVER] = TR("Stack overflow"); + stringsCbot[TX_DELETEDPT] = TR("Illegal object"); + stringsCbot[TX_FILEOPEN] = TR("Can't open file"); + stringsCbot[TX_NOTOPEN] = TR("File not open"); + stringsCbot[TX_ERRREAD] = TR("Read error"); + stringsCbot[TX_ERRWRITE] = TR("Write error"); } -- cgit v1.2.3-1-g7c22 From ca18d01630a70147e69de235e8f5c2c3e4e0a44b Mon Sep 17 00:00:00 2001 From: krzys-h Date: Tue, 14 Oct 2014 15:07:44 +0200 Subject: Updated license from PPC to TerranovaTeam Polish Portal of Colobot (PPC) changed name to International Colobot Community (ICC). The part of the community actively working on the game is known as TerranovaTeam. --- LICENSE-HEADER.txt | 18 ++++++++++++++++++ README.md | 30 +++++++++++++++--------------- tools/update-license.sh | 12 ++++++++++++ 3 files changed, 45 insertions(+), 15 deletions(-) create mode 100644 LICENSE-HEADER.txt create mode 100755 tools/update-license.sh diff --git a/LICENSE-HEADER.txt b/LICENSE-HEADER.txt new file mode 100644 index 0000000..bd65abe --- /dev/null +++ b/LICENSE-HEADER.txt @@ -0,0 +1,18 @@ +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ diff --git a/README.md b/README.md index 7961e90..7987b7e 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@ # English -Welcome to the Colobot project code repository +Welcome to the Colobot: Gold Edition project code repository -This is official repository for the open-source Colobot project developed by Polish Portal of Colobot (PPC; in Polish: Polski Portal Colobota) with the official site at: [colobot.info](http://colobot.info/joomla). +This is official repository for the open-source Colobot: Gold Edition project developed by TerranovaTeam, part of International Colobot Community (ICC, previously known as Polish Portal of Colobot/PPC) with the official site at: [colobot.info](http://colobot.info/). -The source code contained here was released by Epsitec -- the original creator of the game -- on open source (GPLv3) license. The code was given and the rights granted specifically to PPC community in March 2012. Since then, we have been developing the game further. +The source code contained here was released by Epsitec -- the original creator of the game -- on open source (GPLv3) license. The code was given and the rights granted specifically to ICC community in March 2012. Since then, we have been developing the game further. -More information for developers (in English) can be found on the [developer wiki](http://colobot.info/wiki/Dev:Main_Page) or (in Polish) [our forum](http://colobot.info/forum/). However, the freshest source of information is our IRC channels (see below). +More information for developers (in English) can be found on the [developer wiki](http://colobot.info/wiki/dev/) or [our forum](http://colobot.info/forum/). However, the freshest source of information is our IRC channels (see below). This repository contains only the source code of the project. The game requires also data files which are now provided as git submodule and are hosted in [separate repository](https://github.com/colobot/colobot-data). @@ -24,7 +24,7 @@ In the future, we will begin development on a new installment in the Colobot ser ## Download packages -We provide compiled packages of most recent versions using an [automated build bot service](http://colobot.info/files/compiled.php). Available versions include packages for Windows and Linux in both Release and Debug configurations. +We provide compiled packages of most recent versions using an [automated build bot service](http://compiled.colobot.info/). Available versions include packages for Windows and Linux in both Release and Debug configurations. On some Linux distributions there are also distribution packages available: * Debian Sid (unstable): http://packages.debian.org/sid/colobot @@ -38,7 +38,7 @@ If you want to compile colobot yourself, see [INSTALL.md](https://github.com/col ## Contact -If you want to help in the project, please contact us on our IRC channels or [our forum](http://colobot.info/forum/) (Polish, though there is an English board as well). +If you want to help in the project, please contact us on our IRC channels or [our forum](http://colobot.info/forum/). ### IRC channels @@ -48,15 +48,15 @@ If you want to help in the project, please contact us on our IRC channels or [ou # Polski -Witamy w repozytorium projektu Colobot +Witamy w repozytorium projektu Colobot: Gold Edition -To jest oficjalne repozytorium z kodem projektu open-source Colobot rozwijanego przez Polski Portal Colobota (PPC; po angielsku: Polish Portal of Colobot) z oficjalną stroną: [colobot.info](http://colobot.info/joomla/?lang=pl). +To jest oficjalne repozytorium z kodem otwartoźródłowego projektu Colobot: Gold Edition rozwijanego przez TerranovaTeam (część International Colobot Community, dawniej znanej jako Polski Portal Colobota/PPC) z oficjalną stroną: [colobot.info](http://colobot.info/). -Kod źródłowy zawarty tutaj został wydany przez Epsitec -- oryginalnego twórcę gry -- na otwartej licencji (GPLv3). Kod został wydany i prawa nadane specjalnie dla społeczności PPC w marcu 2012. Od tamtej pory, zajmowaliśmy się dalszym rozwojem gry. +Kod źródłowy zawarty tutaj został wydany przez Epsitec -- oryginalnego twórcę gry -- na otwartej licencji (GPLv3). Kod został wydany i prawa nadane specjalnie dla społeczności ICC w marcu 2012. Od tamtej pory, zajmowaliśmy się dalszym rozwojem gry. -Więcej informacji dla developerów projektu (po angielsku) można znaleźć na [wiki dla developerów](htt://colobot.info/wiki/Dev:Main_Page) lub (po polsku) na [naszym forum](http://colobot.info/forum/). Jednak źródłem najświeższych informacji są nasze kanały IRC (patrz niżej). +Więcej informacji dla developerów projektu (po angielsku) można znaleźć na [wiki dla developerów](htt://colobot.info/wiki/dev/) lub (po polsku) na [naszym forum](http://colobot.info/forum/). Jednak źródłem najświeższych informacji są nasze kanały IRC (patrz niżej). -To repozytorium zawiera jedynie kod źródłowy projektu. Gra wymaga jeszcze plików danych, które są teraz udostępniane jako submoduł gita i hostowane w [osobnym repozytorium]((https://github.com/colobot/colobot-data). +To repozytorium zawiera jedynie kod źródłowy projektu. Gra wymaga jeszcze plików danych, które są teraz udostępniane jako submoduł gita i hostowane w [osobnym repozytorium](https://github.com/colobot/colobot-data). ## Status @@ -72,7 +72,7 @@ W przyszłości, planujemy rozpocząć prace nad nową częścią z serii Colobo ## Paczki do pobrania -Udostępniamy gotowe skompilowane paczki z ostatnich wersji używając [automatycznego build bota](http://colobot.info/files/compiled.php?lang=pl). Dostępne są paczki dla Windowsa i Linuksa w konfiguracjach Release i Debug. +Udostępniamy gotowe skompilowane paczki z ostatnich wersji używając [automatycznego build bota](http://compiled.colobot.info/?lang=pl). Dostępne są paczki dla Windowsa i Linuksa w konfiguracjach Release i Debug. Dla niektórych dystrybucji Linuksa, dostępne są pakiety danej dystrybucji: * Debian Sid (unstable): http://packages.debian.org/sid/colobot @@ -86,10 +86,10 @@ Jeżeli chcesz sam skompilować colobota, zobacz plik [INSTALL.md](https://githu ## Kontakt -Jeżeli chcesz pomóc w projekcie, prosimy o kontakt na naszych kanałach IRC lub [naszym forum](http://colobot.info/forum/). +Jeżeli chcesz pomóc w projekcie, prosimy o kontakt na naszych kanałach IRC lub [naszym forum](http://colobot.info/forum/). ### Kanały IRC -* [#colobot on pirc.pl](irc://pirc.pl#colobot) polski; -* [#colobot on Freenode](irc://freenode.net#colobot) angielski; +* [#colobot na pirc.pl](irc://pirc.pl#colobot) (polski); +* [#colobot na Freenode](irc://freenode.net#colobot) (angielski); diff --git a/tools/update-license.sh b/tools/update-license.sh new file mode 100755 index 0000000..870e173 --- /dev/null +++ b/tools/update-license.sh @@ -0,0 +1,12 @@ +#!/bin/bash +# Replaces license text with contents of file provided as an argument +if [ ! $# -eq 1 ]; then + echo "Usage: $0 [file with new license header]" + exit 1 +fi +find . -name "*.cpp" -or -name "*.h" | while read file; do + echo $file + sed '/\/\/ \* This.*/,/If not\, see.*/d' $file > $file.tmp + cat $1 $file.tmp > $file + rm $file.tmp +done -- cgit v1.2.3-1-g7c22 From 9fd6cf54492cedd7f6231a0b1d0655120cb1c4d7 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Tue, 14 Oct 2014 15:11:37 +0200 Subject: Changed all occurences of PPC in the code to TerranovaTeam --- data | 2 +- src/CBot/CBot.cpp | 33 ++++++++++++++------------ src/CBot/CBot.h | 33 ++++++++++++++------------ src/CBot/CBotAddExpr.cpp | 33 ++++++++++++++------------ src/CBot/CBotClass.cpp | 33 ++++++++++++++------------ src/CBot/CBotCompExpr.cpp | 33 ++++++++++++++------------ src/CBot/CBotDll.h | 33 ++++++++++++++------------ src/CBot/CBotFunction.cpp | 33 ++++++++++++++------------ src/CBot/CBotIf.cpp | 33 ++++++++++++++------------ src/CBot/CBotProgram.cpp | 33 ++++++++++++++------------ src/CBot/CBotStack.cpp | 33 ++++++++++++++------------ src/CBot/CBotString.cpp | 33 ++++++++++++++------------ src/CBot/CBotToken.cpp | 33 ++++++++++++++------------ src/CBot/CBotToken.h | 33 ++++++++++++++------------ src/CBot/CBotTwoOpExpr.cpp | 33 ++++++++++++++------------ src/CBot/CBotVar.cpp | 33 ++++++++++++++------------ src/CBot/CBotWhile.cpp | 33 ++++++++++++++------------ src/CBot/StringFunctions.cpp | 33 ++++++++++++++------------ src/CBot/resource.h | 33 ++++++++++++++------------ src/app/app.cpp | 34 ++++++++++++++------------- src/app/app.h | 34 ++++++++++++++------------- src/app/gamedata.cpp | 33 ++++++++++++++------------ src/app/gamedata.h | 33 ++++++++++++++------------ src/app/main.cpp | 34 ++++++++++++++------------- src/app/pausemanager.cpp | 34 ++++++++++++++------------- src/app/pausemanager.h | 34 ++++++++++++++------------- src/app/system.cpp | 34 ++++++++++++++------------- src/app/system.h | 34 ++++++++++++++------------- src/app/system_linux.cpp | 34 ++++++++++++++------------- src/app/system_linux.h | 34 ++++++++++++++------------- src/app/system_macosx.cpp | 34 ++++++++++++++------------- src/app/system_macosx.h | 34 ++++++++++++++------------- src/app/system_other.cpp | 34 ++++++++++++++------------- src/app/system_other.h | 34 ++++++++++++++------------- src/app/system_windows.cpp | 34 ++++++++++++++------------- src/app/system_windows.h | 34 ++++++++++++++------------- src/common/event.cpp | 33 ++++++++++++++------------ src/common/event.h | 33 ++++++++++++++------------ src/common/global.h | 33 ++++++++++++++------------ src/common/image.cpp | 33 ++++++++++++++------------ src/common/image.h | 33 ++++++++++++++------------ src/common/iman.cpp | 33 ++++++++++++++------------ src/common/iman.h | 33 ++++++++++++++------------ src/common/ioutils.h | 33 ++++++++++++++------------ src/common/key.h | 33 ++++++++++++++------------ src/common/logger.cpp | 33 ++++++++++++++------------ src/common/logger.h | 33 ++++++++++++++------------ src/common/misc.cpp | 33 ++++++++++++++------------ src/common/misc.h | 33 ++++++++++++++------------ src/common/profile.cpp | 33 ++++++++++++++------------ src/common/profile.h | 33 ++++++++++++++------------ src/common/restext.cpp | 33 ++++++++++++++------------ src/common/restext.h | 33 ++++++++++++++------------ src/common/singleton.h | 33 ++++++++++++++------------ src/common/stringutils.cpp | 33 ++++++++++++++------------ src/common/stringutils.h | 33 ++++++++++++++------------ src/graphics/core/color.cpp | 33 ++++++++++++++------------ src/graphics/core/color.h | 33 ++++++++++++++------------ src/graphics/core/device.h | 34 ++++++++++++++------------- src/graphics/core/light.h | 34 ++++++++++++++------------- src/graphics/core/material.h | 33 ++++++++++++++------------ src/graphics/core/texture.h | 33 ++++++++++++++------------ src/graphics/core/vertex.h | 33 ++++++++++++++------------ src/graphics/engine/camera.cpp | 34 ++++++++++++++------------- src/graphics/engine/camera.h | 34 ++++++++++++++------------- src/graphics/engine/cloud.cpp | 34 ++++++++++++++------------- src/graphics/engine/cloud.h | 34 ++++++++++++++------------- src/graphics/engine/engine.cpp | 34 ++++++++++++++------------- src/graphics/engine/engine.h | 34 ++++++++++++++------------- src/graphics/engine/lightman.cpp | 34 ++++++++++++++------------- src/graphics/engine/lightman.h | 34 ++++++++++++++------------- src/graphics/engine/lightning.cpp | 34 ++++++++++++++------------- src/graphics/engine/lightning.h | 34 ++++++++++++++------------- src/graphics/engine/modelfile.cpp | 34 ++++++++++++++------------- src/graphics/engine/modelfile.h | 34 ++++++++++++++------------- src/graphics/engine/modelmanager.cpp | 34 ++++++++++++++------------- src/graphics/engine/modelmanager.h | 34 ++++++++++++++------------- src/graphics/engine/particle.cpp | 34 ++++++++++++++------------- src/graphics/engine/particle.h | 34 ++++++++++++++------------- src/graphics/engine/planet.cpp | 34 ++++++++++++++------------- src/graphics/engine/planet.h | 34 ++++++++++++++------------- src/graphics/engine/pyro.cpp | 34 ++++++++++++++------------- src/graphics/engine/pyro.h | 34 ++++++++++++++------------- src/graphics/engine/terrain.cpp | 34 ++++++++++++++------------- src/graphics/engine/terrain.h | 34 ++++++++++++++------------- src/graphics/engine/text.cpp | 34 ++++++++++++++------------- src/graphics/engine/text.h | 34 ++++++++++++++------------- src/graphics/engine/water.cpp | 34 ++++++++++++++------------- src/graphics/engine/water.h | 34 ++++++++++++++------------- src/graphics/opengl/gldevice.cpp | 33 ++++++++++++++------------ src/graphics/opengl/gldevice.h | 33 ++++++++++++++------------ src/math/all.h | 33 ++++++++++++++------------ src/math/const.h | 33 ++++++++++++++------------ src/math/func.h | 34 ++++++++++++++------------- src/math/geometry.h | 34 ++++++++++++++------------- src/math/intpoint.h | 33 ++++++++++++++------------ src/math/matrix.h | 33 ++++++++++++++------------ src/math/point.h | 33 ++++++++++++++------------ src/math/vector.h | 33 ++++++++++++++------------ src/object/auto/auto.cpp | 33 ++++++++++++++------------ src/object/auto/auto.h | 33 ++++++++++++++------------ src/object/auto/autobase.cpp | 33 ++++++++++++++------------ src/object/auto/autobase.h | 34 ++++++++++++++------------- src/object/auto/autoconvert.cpp | 34 ++++++++++++++------------- src/object/auto/autoconvert.h | 34 ++++++++++++++------------- src/object/auto/autoderrick.cpp | 34 ++++++++++++++------------- src/object/auto/autoderrick.h | 34 ++++++++++++++------------- src/object/auto/autodestroyer.cpp | 34 ++++++++++++++------------- src/object/auto/autodestroyer.h | 34 ++++++++++++++------------- src/object/auto/autoegg.cpp | 34 ++++++++++++++------------- src/object/auto/autoegg.h | 34 ++++++++++++++------------- src/object/auto/autoenergy.cpp | 34 ++++++++++++++------------- src/object/auto/autoenergy.h | 34 ++++++++++++++------------- src/object/auto/autofactory.cpp | 34 ++++++++++++++------------- src/object/auto/autofactory.h | 34 ++++++++++++++------------- src/object/auto/autoflag.cpp | 34 ++++++++++++++------------- src/object/auto/autoflag.h | 34 ++++++++++++++------------- src/object/auto/autohuston.cpp | 34 ++++++++++++++------------- src/object/auto/autohuston.h | 34 ++++++++++++++------------- src/object/auto/autoinfo.cpp | 34 ++++++++++++++------------- src/object/auto/autoinfo.h | 34 ++++++++++++++------------- src/object/auto/autojostle.cpp | 34 ++++++++++++++------------- src/object/auto/autojostle.h | 34 ++++++++++++++------------- src/object/auto/autokid.cpp | 34 ++++++++++++++------------- src/object/auto/autokid.h | 34 ++++++++++++++------------- src/object/auto/autolabo.cpp | 34 ++++++++++++++------------- src/object/auto/autolabo.h | 34 ++++++++++++++------------- src/object/auto/automush.cpp | 34 ++++++++++++++------------- src/object/auto/automush.h | 34 ++++++++++++++------------- src/object/auto/autonest.cpp | 34 ++++++++++++++------------- src/object/auto/autonest.h | 34 ++++++++++++++------------- src/object/auto/autonuclear.cpp | 34 ++++++++++++++------------- src/object/auto/autonuclear.h | 34 ++++++++++++++------------- src/object/auto/autopara.cpp | 34 ++++++++++++++------------- src/object/auto/autopara.h | 34 ++++++++++++++------------- src/object/auto/autoportico.cpp | 34 ++++++++++++++------------- src/object/auto/autoportico.h | 34 ++++++++++++++------------- src/object/auto/autoradar.cpp | 34 ++++++++++++++------------- src/object/auto/autoradar.h | 34 ++++++++++++++------------- src/object/auto/autorepair.cpp | 34 ++++++++++++++------------- src/object/auto/autorepair.h | 34 ++++++++++++++------------- src/object/auto/autoresearch.cpp | 34 ++++++++++++++------------- src/object/auto/autoresearch.h | 34 ++++++++++++++------------- src/object/auto/autoroot.cpp | 33 ++++++++++++++------------ src/object/auto/autoroot.h | 34 ++++++++++++++------------- src/object/auto/autosafe.cpp | 34 ++++++++++++++------------- src/object/auto/autosafe.h | 34 ++++++++++++++------------- src/object/auto/autostation.cpp | 34 ++++++++++++++------------- src/object/auto/autostation.h | 34 ++++++++++++++------------- src/object/auto/autotower.cpp | 34 ++++++++++++++------------- src/object/auto/autotower.h | 34 ++++++++++++++------------- src/object/brain.cpp | 33 ++++++++++++++------------ src/object/brain.h | 33 ++++++++++++++------------ src/object/mainmovie.cpp | 33 ++++++++++++++------------ src/object/mainmovie.h | 33 ++++++++++++++------------ src/object/motion/motion.cpp | 33 ++++++++++++++------------ src/object/motion/motion.h | 33 ++++++++++++++------------ src/object/motion/motionant.cpp | 33 ++++++++++++++------------ src/object/motion/motionant.h | 33 ++++++++++++++------------ src/object/motion/motionbee.cpp | 33 ++++++++++++++------------ src/object/motion/motionbee.h | 33 ++++++++++++++------------ src/object/motion/motiondummy.cpp | 34 ++++++++++++++------------- src/object/motion/motiondummy.h | 34 ++++++++++++++------------- src/object/motion/motionhuman.cpp | 33 ++++++++++++++------------ src/object/motion/motionhuman.h | 33 ++++++++++++++------------ src/object/motion/motionmother.cpp | 33 ++++++++++++++------------ src/object/motion/motionmother.h | 33 ++++++++++++++------------ src/object/motion/motionspider.cpp | 33 ++++++++++++++------------ src/object/motion/motionspider.h | 33 ++++++++++++++------------ src/object/motion/motiontoto.cpp | 33 ++++++++++++++------------ src/object/motion/motiontoto.h | 33 ++++++++++++++------------ src/object/motion/motionvehicle.cpp | 33 ++++++++++++++------------ src/object/motion/motionvehicle.h | 33 ++++++++++++++------------ src/object/motion/motionworm.cpp | 33 ++++++++++++++------------ src/object/motion/motionworm.h | 33 ++++++++++++++------------ src/object/object.cpp | 33 ++++++++++++++------------ src/object/object.h | 33 ++++++++++++++------------ src/object/objman.cpp | 33 ++++++++++++++------------ src/object/objman.h | 33 ++++++++++++++------------ src/object/robotmain.cpp | 33 ++++++++++++++------------ src/object/robotmain.h | 33 ++++++++++++++------------ src/object/task/task.cpp | 33 ++++++++++++++------------ src/object/task/task.h | 33 ++++++++++++++------------ src/object/task/taskadvance.cpp | 33 ++++++++++++++------------ src/object/task/taskadvance.h | 33 ++++++++++++++------------ src/object/task/taskbuild.cpp | 33 ++++++++++++++------------ src/object/task/taskbuild.h | 33 ++++++++++++++------------ src/object/task/taskfire.cpp | 33 ++++++++++++++------------ src/object/task/taskfire.h | 33 ++++++++++++++------------ src/object/task/taskfireant.cpp | 33 ++++++++++++++------------ src/object/task/taskfireant.h | 33 ++++++++++++++------------ src/object/task/taskflag.cpp | 33 ++++++++++++++------------ src/object/task/taskflag.h | 33 ++++++++++++++------------ src/object/task/taskgoto.cpp | 33 ++++++++++++++------------ src/object/task/taskgoto.h | 33 ++++++++++++++------------ src/object/task/taskgungoal.cpp | 33 ++++++++++++++------------ src/object/task/taskgungoal.h | 33 ++++++++++++++------------ src/object/task/taskinfo.cpp | 33 ++++++++++++++------------ src/object/task/taskinfo.h | 33 ++++++++++++++------------ src/object/task/taskmanager.cpp | 33 ++++++++++++++------------ src/object/task/taskmanager.h | 33 ++++++++++++++------------ src/object/task/taskmanip.cpp | 33 ++++++++++++++------------ src/object/task/taskmanip.h | 33 ++++++++++++++------------ src/object/task/taskpen.cpp | 33 ++++++++++++++------------ src/object/task/taskpen.h | 33 ++++++++++++++------------ src/object/task/taskrecover.cpp | 33 ++++++++++++++------------ src/object/task/taskrecover.h | 33 ++++++++++++++------------ src/object/task/taskreset.cpp | 33 ++++++++++++++------------ src/object/task/taskreset.h | 33 ++++++++++++++------------ src/object/task/tasksearch.cpp | 33 ++++++++++++++------------ src/object/task/tasksearch.h | 33 ++++++++++++++------------ src/object/task/taskshield.cpp | 33 ++++++++++++++------------ src/object/task/taskshield.h | 33 ++++++++++++++------------ src/object/task/taskspiderexplo.cpp | 33 ++++++++++++++------------ src/object/task/taskspiderexplo.h | 33 ++++++++++++++------------ src/object/task/tasktake.cpp | 33 ++++++++++++++------------ src/object/task/tasktake.h | 33 ++++++++++++++------------ src/object/task/taskterraform.cpp | 33 ++++++++++++++------------ src/object/task/taskterraform.h | 33 ++++++++++++++------------ src/object/task/taskturn.cpp | 33 ++++++++++++++------------ src/object/task/taskturn.h | 33 ++++++++++++++------------ src/object/task/taskwait.cpp | 33 ++++++++++++++------------ src/object/task/taskwait.h | 33 ++++++++++++++------------ src/physics/physics.cpp | 33 ++++++++++++++------------ src/physics/physics.h | 34 ++++++++++++++------------- src/script/cbottoken.cpp | 33 ++++++++++++++------------ src/script/cbottoken.h | 33 ++++++++++++++------------ src/script/cmdtoken.cpp | 33 ++++++++++++++------------ src/script/cmdtoken.h | 33 ++++++++++++++------------ src/script/dd.cpp | 33 ++++++++++++++------------ src/script/script.cpp | 33 ++++++++++++++------------ src/script/script.h | 33 ++++++++++++++------------ src/sound/oalsound/alsound.cpp | 34 ++++++++++++++------------- src/sound/oalsound/alsound.h | 34 ++++++++++++++------------- src/sound/oalsound/buffer.cpp | 33 ++++++++++++++------------ src/sound/oalsound/buffer.h | 33 ++++++++++++++------------ src/sound/oalsound/channel.cpp | 33 ++++++++++++++------------ src/sound/oalsound/channel.h | 33 ++++++++++++++------------ src/sound/oalsound/check.h | 33 ++++++++++++++------------ src/sound/sound.cpp | 34 ++++++++++++++------------- src/sound/sound.h | 34 ++++++++++++++------------- src/tools/convert_model.cpp | 18 ++++++++++++++ src/ui/button.cpp | 34 ++++++++++++++------------- src/ui/button.h | 34 ++++++++++++++------------- src/ui/check.cpp | 34 ++++++++++++++------------- src/ui/check.h | 34 ++++++++++++++------------- src/ui/color.cpp | 34 ++++++++++++++------------- src/ui/color.h | 34 ++++++++++++++------------- src/ui/compass.cpp | 34 ++++++++++++++------------- src/ui/compass.h | 34 ++++++++++++++------------- src/ui/control.cpp | 34 ++++++++++++++------------- src/ui/control.h | 34 ++++++++++++++------------- src/ui/displayinfo.cpp | 34 ++++++++++++++------------- src/ui/displayinfo.h | 34 ++++++++++++++------------- src/ui/displaytext.cpp | 34 ++++++++++++++------------- src/ui/displaytext.h | 34 ++++++++++++++------------- src/ui/edit.cpp | 34 ++++++++++++++------------- src/ui/edit.h | 34 ++++++++++++++------------- src/ui/editvalue.cpp | 34 ++++++++++++++------------- src/ui/editvalue.h | 34 ++++++++++++++------------- src/ui/gauge.cpp | 34 ++++++++++++++------------- src/ui/gauge.h | 34 ++++++++++++++------------- src/ui/group.cpp | 33 ++++++++++++++------------ src/ui/group.h | 33 ++++++++++++++------------ src/ui/image.cpp | 34 ++++++++++++++------------- src/ui/image.h | 34 ++++++++++++++------------- src/ui/interface.cpp | 34 ++++++++++++++------------- src/ui/interface.h | 34 ++++++++++++++------------- src/ui/key.cpp | 34 ++++++++++++++------------- src/ui/key.h | 34 ++++++++++++++------------- src/ui/label.cpp | 34 ++++++++++++++------------- src/ui/label.h | 34 ++++++++++++++------------- src/ui/list.cpp | 34 ++++++++++++++------------- src/ui/list.h | 34 ++++++++++++++------------- src/ui/maindialog.cpp | 35 +++++++++++++++------------- src/ui/maindialog.h | 33 ++++++++++++++------------ src/ui/mainmap.cpp | 34 ++++++++++++++------------- src/ui/mainmap.h | 34 ++++++++++++++------------- src/ui/mainshort.cpp | 34 ++++++++++++++------------- src/ui/mainshort.h | 34 ++++++++++++++------------- src/ui/map.cpp | 34 ++++++++++++++------------- src/ui/map.h | 34 ++++++++++++++------------- src/ui/scroll.cpp | 34 ++++++++++++++------------- src/ui/scroll.h | 34 ++++++++++++++------------- src/ui/shortcut.cpp | 34 ++++++++++++++------------- src/ui/shortcut.h | 34 ++++++++++++++------------- src/ui/slider.cpp | 34 ++++++++++++++------------- src/ui/slider.h | 34 ++++++++++++++------------- src/ui/studio.cpp | 34 ++++++++++++++------------- src/ui/studio.h | 34 ++++++++++++++------------- src/ui/target.cpp | 33 ++++++++++++++------------ src/ui/target.h | 33 ++++++++++++++------------ src/ui/window.cpp | 34 ++++++++++++++------------- src/ui/window.h | 34 ++++++++++++++------------- test/cbot/CBot_console/CBotConsole.cpp | 18 ++++++++++++++ test/cbot/CBot_console/CBotConsole.h | 18 ++++++++++++++ test/cbot/CBot_console/CBotDoc.cpp | 18 ++++++++++++++ test/cbot/CBot_console/CBotDoc.h | 18 ++++++++++++++ test/cbot/CBot_console/CClass.cpp | 18 ++++++++++++++ test/cbot/CBot_console/CClass.h | 18 ++++++++++++++ test/cbot/CBot_console/main.cpp | 18 ++++++++++++++ test/cbot/CBot_console/routines.cpp | 33 ++++++++++++++------------ test/envs/opengl/light_test.cpp | 18 ++++++++++++++ test/envs/opengl/model_test.cpp | 18 ++++++++++++++ test/envs/opengl/texture_test.cpp | 18 ++++++++++++++ test/envs/opengl/transform_test.cpp | 18 ++++++++++++++ test/unit/app/app_test.cpp | 18 ++++++++++++++ test/unit/app/system_linux_test.cpp | 18 ++++++++++++++ test/unit/app/system_mock.h | 18 ++++++++++++++ test/unit/app/system_windows_test.cpp | 18 ++++++++++++++ test/unit/common/profile_test.cpp | 18 ++++++++++++++ test/unit/graphics/core/device_mock.h | 18 ++++++++++++++ test/unit/graphics/engine/engine_mock.h | 18 ++++++++++++++ test/unit/graphics/engine/lightman_test.cpp | 18 ++++++++++++++ test/unit/graphics/engine/modelfile_test.cpp | 18 ++++++++++++++ test/unit/main.cpp | 33 ++++++++++++++------------ test/unit/math/func_test.cpp | 18 ++++++++++++++ test/unit/math/geometry_test.cpp | 18 ++++++++++++++ test/unit/math/matrix_test.cpp | 18 ++++++++++++++ test/unit/math/vector_test.cpp | 18 ++++++++++++++ tools/blender-scripts.py | 4 ++-- 321 files changed, 5746 insertions(+), 4560 deletions(-) diff --git a/data b/data index 559797f..89158ea 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit 559797f35b88a2d5e882119034923b2ab75817e2 +Subproject commit 89158ea0b4876e3c75209df2ee1679076ffca7b2 diff --git a/src/CBot/CBot.cpp b/src/CBot/CBot.cpp index 403be6e..72bdef7 100644 --- a/src/CBot/CBot.cpp +++ b/src/CBot/CBot.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /////////////////////////////////////////////////////////////////////// // compilation of various instructions diff --git a/src/CBot/CBot.h b/src/CBot/CBot.h index df6614e..3355881 100644 --- a/src/CBot/CBot.h +++ b/src/CBot/CBot.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ //////////////////////////////////////////////////////////////////// /** * \file CBot.h diff --git a/src/CBot/CBotAddExpr.cpp b/src/CBot/CBotAddExpr.cpp index ec007ae..03317f8 100644 --- a/src/CBot/CBotAddExpr.cpp +++ b/src/CBot/CBotAddExpr.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /////////////////////////////////////////////////// // expressions of type Operand1 + Operand2 diff --git a/src/CBot/CBotClass.cpp b/src/CBot/CBotClass.cpp index 12765ba..5369b77 100644 --- a/src/CBot/CBotClass.cpp +++ b/src/CBot/CBotClass.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/.// +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ ///////////////////////////////////////////////////////////////////// // Management of variables of class type diff --git a/src/CBot/CBotCompExpr.cpp b/src/CBot/CBotCompExpr.cpp index c9a977c..6217638 100644 --- a/src/CBot/CBotCompExpr.cpp +++ b/src/CBot/CBotCompExpr.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /////////////////////////////////////////////////// // expression of type Opérande1 > Opérande2 diff --git a/src/CBot/CBotDll.h b/src/CBot/CBotDll.h index 8858559..8ae0a14 100644 --- a/src/CBot/CBotDll.h +++ b/src/CBot/CBotDll.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ //////////////////////////////////////////////////////////////////////// /** diff --git a/src/CBot/CBotFunction.cpp b/src/CBot/CBotFunction.cpp index e6aa2c9..9c8a2ce 100644 --- a/src/CBot/CBotFunction.cpp +++ b/src/CBot/CBotFunction.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /////////////////////////////////////////////////////////////////////// // compilation of various functions declared by the user diff --git a/src/CBot/CBotIf.cpp b/src/CBot/CBotIf.cpp index bc58af1..2bd6448 100644 --- a/src/CBot/CBotIf.cpp +++ b/src/CBot/CBotIf.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /////////////////////////////////////////////////////////////////////// // instruction if (condition) operation1 else operation2; diff --git a/src/CBot/CBotProgram.cpp b/src/CBot/CBotProgram.cpp index 1944f92..d3c5eb3 100644 --- a/src/CBot/CBotProgram.cpp +++ b/src/CBot/CBotProgram.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ ////////////////////////////////////////////////////////////////////// // database management of CBoT program diff --git a/src/CBot/CBotStack.cpp b/src/CBot/CBotStack.cpp index 84472ac..6e5e7d8 100644 --- a/src/CBot/CBotStack.cpp +++ b/src/CBot/CBotStack.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ //Management of the stack diff --git a/src/CBot/CBotString.cpp b/src/CBot/CBotString.cpp index 2929977..ef3950a 100644 --- a/src/CBot/CBotString.cpp +++ b/src/CBot/CBotString.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ ///////////////////////////////////////////////////// //strings management diff --git a/src/CBot/CBotToken.cpp b/src/CBot/CBotToken.cpp index 17cdba1..40c020a 100644 --- a/src/CBot/CBotToken.cpp +++ b/src/CBot/CBotToken.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ ////////////////////////////////////////////////////////////////// diff --git a/src/CBot/CBotToken.h b/src/CBot/CBotToken.h index a423375..d789734 100644 --- a/src/CBot/CBotToken.h +++ b/src/CBot/CBotToken.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // interpreter of the lanuage CBot for game COLOBOT diff --git a/src/CBot/CBotTwoOpExpr.cpp b/src/CBot/CBotTwoOpExpr.cpp index 4d4add8..e4e98ec 100644 --- a/src/CBot/CBotTwoOpExpr.cpp +++ b/src/CBot/CBotTwoOpExpr.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /////////////////////////////////////////////////// // expression of type Opérande1 + Opérande2 diff --git a/src/CBot/CBotVar.cpp b/src/CBot/CBotVar.cpp index b84006f..f696db7 100644 --- a/src/CBot/CBotVar.cpp +++ b/src/CBot/CBotVar.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ //////////////////////////////////////////////////////////////////// // Definition for the class CBotVar diff --git a/src/CBot/CBotWhile.cpp b/src/CBot/CBotWhile.cpp index 73bcab9..f94cf74 100644 --- a/src/CBot/CBotWhile.cpp +++ b/src/CBot/CBotWhile.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /////////////////////////////////////////////////////////////////////// // This file defined the following statements: diff --git a/src/CBot/StringFunctions.cpp b/src/CBot/StringFunctions.cpp index abdcc18..d897c04 100644 --- a/src/CBot/StringFunctions.cpp +++ b/src/CBot/StringFunctions.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // definition of string functions diff --git a/src/CBot/resource.h b/src/CBot/resource.h index 9c7e82e..8b2e149 100644 --- a/src/CBot/resource.h +++ b/src/CBot/resource.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #pragma once diff --git a/src/app/app.cpp b/src/app/app.cpp index 42ebd39..ce6a6b5 100644 --- a/src/app/app.cpp +++ b/src/app/app.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "common/config.h" diff --git a/src/app/app.h b/src/app/app.h index 86a757f..21ece4c 100644 --- a/src/app/app.h +++ b/src/app/app.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file app/app.h diff --git a/src/app/gamedata.cpp b/src/app/gamedata.cpp index ceeb7b3..f758716 100644 --- a/src/app/gamedata.cpp +++ b/src/app/gamedata.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2014, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "app/gamedata.h" diff --git a/src/app/gamedata.h b/src/app/gamedata.h index b7536a2..1164d60 100644 --- a/src/app/gamedata.h +++ b/src/app/gamedata.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2014, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file app/gamedata.h diff --git a/src/app/main.cpp b/src/app/main.cpp index 5c0afd3..27952db 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file app/main.cpp diff --git a/src/app/pausemanager.cpp b/src/app/pausemanager.cpp index d357bba..3376ae4 100644 --- a/src/app/pausemanager.cpp +++ b/src/app/pausemanager.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "app/app.h" #include "app/pausemanager.h" diff --git a/src/app/pausemanager.h b/src/app/pausemanager.h index fefc4a5..411742e 100644 --- a/src/app/pausemanager.h +++ b/src/app/pausemanager.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file app/pausemanager.h diff --git a/src/app/system.cpp b/src/app/system.cpp index eaa9e4c..118bc80 100644 --- a/src/app/system.cpp +++ b/src/app/system.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "app/system.h" diff --git a/src/app/system.h b/src/app/system.h index c2125fe..36e558a 100644 --- a/src/app/system.h +++ b/src/app/system.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file app/system.h diff --git a/src/app/system_linux.cpp b/src/app/system_linux.cpp index 492af7d..a10e371 100644 --- a/src/app/system_linux.cpp +++ b/src/app/system_linux.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "app/system_linux.h" diff --git a/src/app/system_linux.h b/src/app/system_linux.h index 212d840..2b32660 100644 --- a/src/app/system_linux.h +++ b/src/app/system_linux.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file app/system_linux.h diff --git a/src/app/system_macosx.cpp b/src/app/system_macosx.cpp index 68f5c79..c44831f 100644 --- a/src/app/system_macosx.cpp +++ b/src/app/system_macosx.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2013, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "app/system_macosx.h" diff --git a/src/app/system_macosx.h b/src/app/system_macosx.h index b6a044b..39c5702 100644 --- a/src/app/system_macosx.h +++ b/src/app/system_macosx.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file app/system_macosx.h diff --git a/src/app/system_other.cpp b/src/app/system_other.cpp index 9d9f76a..c21314c 100644 --- a/src/app/system_other.cpp +++ b/src/app/system_other.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "app/system_other.h" diff --git a/src/app/system_other.h b/src/app/system_other.h index 7eccf3f..3be6d59 100644 --- a/src/app/system_other.h +++ b/src/app/system_other.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file app/system_other.h diff --git a/src/app/system_windows.cpp b/src/app/system_windows.cpp index f48d4e0..9f4cd2c 100644 --- a/src/app/system_windows.cpp +++ b/src/app/system_windows.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "app/system_windows.h" diff --git a/src/app/system_windows.h b/src/app/system_windows.h index fbc71a1..2d8e146 100644 --- a/src/app/system_windows.h +++ b/src/app/system_windows.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file app/system_windows.h diff --git a/src/common/event.cpp b/src/common/event.cpp index fc5bc98..37a6fe8 100644 --- a/src/common/event.cpp +++ b/src/common/event.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "common/event.h" diff --git a/src/common/event.h b/src/common/event.h index 220b807..7637e34 100644 --- a/src/common/event.h +++ b/src/common/event.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file common/event.h diff --git a/src/common/global.h b/src/common/global.h index 4049bdc..b41ea53 100644 --- a/src/common/global.h +++ b/src/common/global.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file common/global.h diff --git a/src/common/image.cpp b/src/common/image.cpp index e3d1ef7..e9cf422 100644 --- a/src/common/image.cpp +++ b/src/common/image.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "common/image.h" diff --git a/src/common/image.h b/src/common/image.h index b93f2f9..e0e270a 100644 --- a/src/common/image.h +++ b/src/common/image.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file common/image.h diff --git a/src/common/iman.cpp b/src/common/iman.cpp index edfa9c7..d85c313 100644 --- a/src/common/iman.cpp +++ b/src/common/iman.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "common/iman.h" diff --git a/src/common/iman.h b/src/common/iman.h index bfa2204..112ca12 100644 --- a/src/common/iman.h +++ b/src/common/iman.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file common/iman.h diff --git a/src/common/ioutils.h b/src/common/ioutils.h index 823b720..12c2943 100644 --- a/src/common/ioutils.h +++ b/src/common/ioutils.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file common/ioutils.h diff --git a/src/common/key.h b/src/common/key.h index 82b3fbd..d4d2a55 100644 --- a/src/common/key.h +++ b/src/common/key.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file common/key.h diff --git a/src/common/logger.cpp b/src/common/logger.cpp index 7fc8fb0..fd0d418 100644 --- a/src/common/logger.cpp +++ b/src/common/logger.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "common/logger.h" diff --git a/src/common/logger.h b/src/common/logger.h index 1a5f3b9..bca0845 100644 --- a/src/common/logger.h +++ b/src/common/logger.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file common/logger.h diff --git a/src/common/misc.cpp b/src/common/misc.cpp index 92c3e9a..1cbd3b1 100644 --- a/src/common/misc.cpp +++ b/src/common/misc.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "common/misc.h" diff --git a/src/common/misc.h b/src/common/misc.h index 3c147b1..a079ba6 100644 --- a/src/common/misc.h +++ b/src/common/misc.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #pragma once diff --git a/src/common/profile.cpp b/src/common/profile.cpp index 79d7152..fa7aa26 100644 --- a/src/common/profile.cpp +++ b/src/common/profile.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "common/profile.h" diff --git a/src/common/profile.h b/src/common/profile.h index ad0458e..c53c2f6 100644 --- a/src/common/profile.h +++ b/src/common/profile.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file common/profile.h diff --git a/src/common/restext.cpp b/src/common/restext.cpp index dd1d263..dcecb81 100644 --- a/src/common/restext.cpp +++ b/src/common/restext.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "common/restext.h" diff --git a/src/common/restext.h b/src/common/restext.h index d145f24..8eb6bdb 100644 --- a/src/common/restext.h +++ b/src/common/restext.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file common/restext.h diff --git a/src/common/singleton.h b/src/common/singleton.h index bf5bc9d..eab7ec5 100644 --- a/src/common/singleton.h +++ b/src/common/singleton.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file common/singleton.h diff --git a/src/common/stringutils.cpp b/src/common/stringutils.cpp index 03a0f0b..9edc82d 100644 --- a/src/common/stringutils.cpp +++ b/src/common/stringutils.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "common/stringutils.h" diff --git a/src/common/stringutils.h b/src/common/stringutils.h index e80163a..46c1d2a 100644 --- a/src/common/stringutils.h +++ b/src/common/stringutils.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file common/stringutils.h diff --git a/src/graphics/core/color.cpp b/src/graphics/core/color.cpp index f0b74f8..d51eb1a 100644 --- a/src/graphics/core/color.cpp +++ b/src/graphics/core/color.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "graphics/core/color.h" diff --git a/src/graphics/core/color.h b/src/graphics/core/color.h index 87a50f4..d73b47e 100644 --- a/src/graphics/core/color.h +++ b/src/graphics/core/color.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file graphics/core/color.h diff --git a/src/graphics/core/device.h b/src/graphics/core/device.h index 476136e..f52e07f 100644 --- a/src/graphics/core/device.h +++ b/src/graphics/core/device.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file graphics/core/device.h diff --git a/src/graphics/core/light.h b/src/graphics/core/light.h index 923d0e9..e8eda7b 100644 --- a/src/graphics/core/light.h +++ b/src/graphics/core/light.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file graphics/core/light.h diff --git a/src/graphics/core/material.h b/src/graphics/core/material.h index e0bfaff..1fde860 100644 --- a/src/graphics/core/material.h +++ b/src/graphics/core/material.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file graphics/core/material.h diff --git a/src/graphics/core/texture.h b/src/graphics/core/texture.h index 0702428..3ce06ee 100644 --- a/src/graphics/core/texture.h +++ b/src/graphics/core/texture.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file graphics/core/texture.h diff --git a/src/graphics/core/vertex.h b/src/graphics/core/vertex.h index ca68352..7af7212 100644 --- a/src/graphics/core/vertex.h +++ b/src/graphics/core/vertex.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file graphics/core/vertex.h diff --git a/src/graphics/engine/camera.cpp b/src/graphics/engine/camera.cpp index fedc70a..b7769ab 100644 --- a/src/graphics/engine/camera.cpp +++ b/src/graphics/engine/camera.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "graphics/engine/camera.h" diff --git a/src/graphics/engine/camera.h b/src/graphics/engine/camera.h index 6d94dad..3478086 100644 --- a/src/graphics/engine/camera.h +++ b/src/graphics/engine/camera.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file graphics/engine/camera.h diff --git a/src/graphics/engine/cloud.cpp b/src/graphics/engine/cloud.cpp index 74083af..d3e40cf 100644 --- a/src/graphics/engine/cloud.cpp +++ b/src/graphics/engine/cloud.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "graphics/engine/cloud.h" diff --git a/src/graphics/engine/cloud.h b/src/graphics/engine/cloud.h index 8e820c7..decf1d6 100644 --- a/src/graphics/engine/cloud.h +++ b/src/graphics/engine/cloud.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file graphics/engine/cloud.h diff --git a/src/graphics/engine/engine.cpp b/src/graphics/engine/engine.cpp index e4bf068..6766a27 100644 --- a/src/graphics/engine/engine.cpp +++ b/src/graphics/engine/engine.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "graphics/engine/engine.h" diff --git a/src/graphics/engine/engine.h b/src/graphics/engine/engine.h index d56bf38..a4d0152 100644 --- a/src/graphics/engine/engine.h +++ b/src/graphics/engine/engine.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX& EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file graphics/engine/engine.h diff --git a/src/graphics/engine/lightman.cpp b/src/graphics/engine/lightman.cpp index 564cced..bb67ad0 100644 --- a/src/graphics/engine/lightman.cpp +++ b/src/graphics/engine/lightman.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "graphics/engine/lightman.h" diff --git a/src/graphics/engine/lightman.h b/src/graphics/engine/lightman.h index 5df466d..d8f32bb 100644 --- a/src/graphics/engine/lightman.h +++ b/src/graphics/engine/lightman.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file graphics/engine/lightman.h diff --git a/src/graphics/engine/lightning.cpp b/src/graphics/engine/lightning.cpp index 4395eec..373a35c 100644 --- a/src/graphics/engine/lightning.cpp +++ b/src/graphics/engine/lightning.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "graphics/engine/lightning.h" diff --git a/src/graphics/engine/lightning.h b/src/graphics/engine/lightning.h index 1b1d339..3426515 100644 --- a/src/graphics/engine/lightning.h +++ b/src/graphics/engine/lightning.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file graphics/engine/lightning.h diff --git a/src/graphics/engine/modelfile.cpp b/src/graphics/engine/modelfile.cpp index 99496aa..ba7c1d6 100644 --- a/src/graphics/engine/modelfile.cpp +++ b/src/graphics/engine/modelfile.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "graphics/engine/modelfile.h" diff --git a/src/graphics/engine/modelfile.h b/src/graphics/engine/modelfile.h index 3b4019b..f6ac229 100644 --- a/src/graphics/engine/modelfile.h +++ b/src/graphics/engine/modelfile.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file graphics/engine/modelfile.h diff --git a/src/graphics/engine/modelmanager.cpp b/src/graphics/engine/modelmanager.cpp index 0c0fb98..25f6d35 100644 --- a/src/graphics/engine/modelmanager.cpp +++ b/src/graphics/engine/modelmanager.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012-2014, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "graphics/engine/modelmanager.h" diff --git a/src/graphics/engine/modelmanager.h b/src/graphics/engine/modelmanager.h index ee5fc27..3805631 100644 --- a/src/graphics/engine/modelmanager.h +++ b/src/graphics/engine/modelmanager.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012-2014, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #pragma once diff --git a/src/graphics/engine/particle.cpp b/src/graphics/engine/particle.cpp index abee2e2..beb4a02 100644 --- a/src/graphics/engine/particle.cpp +++ b/src/graphics/engine/particle.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "graphics/engine/particle.h" diff --git a/src/graphics/engine/particle.h b/src/graphics/engine/particle.h index 7fb24a1..c7c7cef 100644 --- a/src/graphics/engine/particle.h +++ b/src/graphics/engine/particle.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file graphics/engine/particle.h diff --git a/src/graphics/engine/planet.cpp b/src/graphics/engine/planet.cpp index 0c96f63..66eecca 100644 --- a/src/graphics/engine/planet.cpp +++ b/src/graphics/engine/planet.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "graphics/engine/planet.h" diff --git a/src/graphics/engine/planet.h b/src/graphics/engine/planet.h index 58d3aeb..52ffd24 100644 --- a/src/graphics/engine/planet.h +++ b/src/graphics/engine/planet.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file graphics/engine/planet.h diff --git a/src/graphics/engine/pyro.cpp b/src/graphics/engine/pyro.cpp index d3e0405..9dfc5a4 100644 --- a/src/graphics/engine/pyro.cpp +++ b/src/graphics/engine/pyro.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "graphics/engine/pyro.h" diff --git a/src/graphics/engine/pyro.h b/src/graphics/engine/pyro.h index 60724b4..9646988 100644 --- a/src/graphics/engine/pyro.h +++ b/src/graphics/engine/pyro.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file graphics/engine/pyro.h diff --git a/src/graphics/engine/terrain.cpp b/src/graphics/engine/terrain.cpp index 5f37cd8..6dc8708 100644 --- a/src/graphics/engine/terrain.cpp +++ b/src/graphics/engine/terrain.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "graphics/engine/terrain.h" diff --git a/src/graphics/engine/terrain.h b/src/graphics/engine/terrain.h index 75a8975..a2bb36a 100644 --- a/src/graphics/engine/terrain.h +++ b/src/graphics/engine/terrain.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file graphics/engine/terrain.h diff --git a/src/graphics/engine/text.cpp b/src/graphics/engine/text.cpp index 8fd01b7..ea7fd14 100644 --- a/src/graphics/engine/text.cpp +++ b/src/graphics/engine/text.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "graphics/engine/text.h" diff --git a/src/graphics/engine/text.h b/src/graphics/engine/text.h index 3abb8b7..0551dcd 100644 --- a/src/graphics/engine/text.h +++ b/src/graphics/engine/text.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file graphics/engine/text.h diff --git a/src/graphics/engine/water.cpp b/src/graphics/engine/water.cpp index d1f8d29..d4c7d11 100644 --- a/src/graphics/engine/water.cpp +++ b/src/graphics/engine/water.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "graphics/engine/water.h" diff --git a/src/graphics/engine/water.h b/src/graphics/engine/water.h index 5e9f4b2..5e488d5 100644 --- a/src/graphics/engine/water.h +++ b/src/graphics/engine/water.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file graphics/engine/water.h diff --git a/src/graphics/opengl/gldevice.cpp b/src/graphics/opengl/gldevice.cpp index 10eec90..69d295d 100644 --- a/src/graphics/opengl/gldevice.cpp +++ b/src/graphics/opengl/gldevice.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "graphics/opengl/gldevice.h" diff --git a/src/graphics/opengl/gldevice.h b/src/graphics/opengl/gldevice.h index ef9d1a6..723b0f2 100644 --- a/src/graphics/opengl/gldevice.h +++ b/src/graphics/opengl/gldevice.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file graphics/opengl/gldevice.h diff --git a/src/math/all.h b/src/math/all.h index 7d716c8..fc289ee 100644 --- a/src/math/all.h +++ b/src/math/all.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file math/all.h diff --git a/src/math/const.h b/src/math/const.h index fee635e..1e2cddf 100644 --- a/src/math/const.h +++ b/src/math/const.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file math/const.h diff --git a/src/math/func.h b/src/math/func.h index 98111c5..78bfeb4 100644 --- a/src/math/func.h +++ b/src/math/func.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file math/func.h diff --git a/src/math/geometry.h b/src/math/geometry.h index 9dcb447..595046e 100644 --- a/src/math/geometry.h +++ b/src/math/geometry.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file math/geometry.h diff --git a/src/math/intpoint.h b/src/math/intpoint.h index 872e614..7d27b33 100644 --- a/src/math/intpoint.h +++ b/src/math/intpoint.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file math/intpoint.h diff --git a/src/math/matrix.h b/src/math/matrix.h index f139517..75e515c 100644 --- a/src/math/matrix.h +++ b/src/math/matrix.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file math/matrix.h diff --git a/src/math/point.h b/src/math/point.h index edb902b..e8ae4d6 100644 --- a/src/math/point.h +++ b/src/math/point.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file math/point.h diff --git a/src/math/vector.h b/src/math/vector.h index 6827785..31a6162 100644 --- a/src/math/vector.h +++ b/src/math/vector.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file math/vector.h diff --git a/src/object/auto/auto.cpp b/src/object/auto/auto.cpp index 9e593a9..fb6698b 100644 --- a/src/object/auto/auto.cpp +++ b/src/object/auto/auto.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/auto/auto.h" diff --git a/src/object/auto/auto.h b/src/object/auto/auto.h index fd25e70..af7766c 100644 --- a/src/object/auto/auto.h +++ b/src/object/auto/auto.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // auto.h diff --git a/src/object/auto/autobase.cpp b/src/object/auto/autobase.cpp index af6c6e0..7cae9c8 100644 --- a/src/object/auto/autobase.cpp +++ b/src/object/auto/autobase.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include diff --git a/src/object/auto/autobase.h b/src/object/auto/autobase.h index 967e43d..c0b2b88 100644 --- a/src/object/auto/autobase.h +++ b/src/object/auto/autobase.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // autobase.h diff --git a/src/object/auto/autoconvert.cpp b/src/object/auto/autoconvert.cpp index ee1e83b..5dc80e9 100644 --- a/src/object/auto/autoconvert.cpp +++ b/src/object/auto/autoconvert.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/auto/autoconvert.h" diff --git a/src/object/auto/autoconvert.h b/src/object/auto/autoconvert.h index 56591f7..54cdb98 100644 --- a/src/object/auto/autoconvert.h +++ b/src/object/auto/autoconvert.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // autoconvert.h diff --git a/src/object/auto/autoderrick.cpp b/src/object/auto/autoderrick.cpp index 5b6cea4..f797ed9 100644 --- a/src/object/auto/autoderrick.cpp +++ b/src/object/auto/autoderrick.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/auto/autoderrick.h" diff --git a/src/object/auto/autoderrick.h b/src/object/auto/autoderrick.h index 81ed8b4..dd2f4d9 100644 --- a/src/object/auto/autoderrick.h +++ b/src/object/auto/autoderrick.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // autoderrick.h diff --git a/src/object/auto/autodestroyer.cpp b/src/object/auto/autodestroyer.cpp index dfe8e78..bc392f5 100644 --- a/src/object/auto/autodestroyer.cpp +++ b/src/object/auto/autodestroyer.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/auto/autodestroyer.h" diff --git a/src/object/auto/autodestroyer.h b/src/object/auto/autodestroyer.h index ef3d5ae..14949e2 100644 --- a/src/object/auto/autodestroyer.h +++ b/src/object/auto/autodestroyer.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // autodestroyer.h diff --git a/src/object/auto/autoegg.cpp b/src/object/auto/autoegg.cpp index e510ca6..828821a 100644 --- a/src/object/auto/autoegg.cpp +++ b/src/object/auto/autoegg.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/auto/autoegg.h" diff --git a/src/object/auto/autoegg.h b/src/object/auto/autoegg.h index 00725db..54c6e34 100644 --- a/src/object/auto/autoegg.h +++ b/src/object/auto/autoegg.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // autoegg.h diff --git a/src/object/auto/autoenergy.cpp b/src/object/auto/autoenergy.cpp index a38caf2..ea97cc8 100644 --- a/src/object/auto/autoenergy.cpp +++ b/src/object/auto/autoenergy.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/auto/autoenergy.h" diff --git a/src/object/auto/autoenergy.h b/src/object/auto/autoenergy.h index d3ed5fe..fc6f470 100644 --- a/src/object/auto/autoenergy.h +++ b/src/object/auto/autoenergy.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // autoenergy.h diff --git a/src/object/auto/autofactory.cpp b/src/object/auto/autofactory.cpp index 49abad4..825ea53 100644 --- a/src/object/auto/autofactory.cpp +++ b/src/object/auto/autofactory.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/auto/autofactory.h" diff --git a/src/object/auto/autofactory.h b/src/object/auto/autofactory.h index d9350e6..60a44fb 100644 --- a/src/object/auto/autofactory.h +++ b/src/object/auto/autofactory.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // autofactory.h diff --git a/src/object/auto/autoflag.cpp b/src/object/auto/autoflag.cpp index cc00db0..402c87a 100644 --- a/src/object/auto/autoflag.cpp +++ b/src/object/auto/autoflag.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/auto/autoflag.h" diff --git a/src/object/auto/autoflag.h b/src/object/auto/autoflag.h index c3fd35a..59c7b71 100644 --- a/src/object/auto/autoflag.h +++ b/src/object/auto/autoflag.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // autoflag.h diff --git a/src/object/auto/autohuston.cpp b/src/object/auto/autohuston.cpp index 80f9185..864919e 100644 --- a/src/object/auto/autohuston.cpp +++ b/src/object/auto/autohuston.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/auto/autohuston.h" diff --git a/src/object/auto/autohuston.h b/src/object/auto/autohuston.h index f99876a..d3f561c 100644 --- a/src/object/auto/autohuston.h +++ b/src/object/auto/autohuston.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // autohuston.h diff --git a/src/object/auto/autoinfo.cpp b/src/object/auto/autoinfo.cpp index 6d4a484..7b8622f 100644 --- a/src/object/auto/autoinfo.cpp +++ b/src/object/auto/autoinfo.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/auto/autoinfo.h" diff --git a/src/object/auto/autoinfo.h b/src/object/auto/autoinfo.h index 41b74d3..632edf8 100644 --- a/src/object/auto/autoinfo.h +++ b/src/object/auto/autoinfo.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // autoinfo.h diff --git a/src/object/auto/autojostle.cpp b/src/object/auto/autojostle.cpp index 5ce01c2..4ff49e5 100644 --- a/src/object/auto/autojostle.cpp +++ b/src/object/auto/autojostle.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/auto/autojostle.h" diff --git a/src/object/auto/autojostle.h b/src/object/auto/autojostle.h index 3822421..faaea23 100644 --- a/src/object/auto/autojostle.h +++ b/src/object/auto/autojostle.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // autojostle.h diff --git a/src/object/auto/autokid.cpp b/src/object/auto/autokid.cpp index 7d61d64..b291280 100644 --- a/src/object/auto/autokid.cpp +++ b/src/object/auto/autokid.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/auto/autokid.h" diff --git a/src/object/auto/autokid.h b/src/object/auto/autokid.h index 19836a7..3fb5ca9 100644 --- a/src/object/auto/autokid.h +++ b/src/object/auto/autokid.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // autokid.h diff --git a/src/object/auto/autolabo.cpp b/src/object/auto/autolabo.cpp index 07112b7..3a0be92 100644 --- a/src/object/auto/autolabo.cpp +++ b/src/object/auto/autolabo.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/auto/autolabo.h" diff --git a/src/object/auto/autolabo.h b/src/object/auto/autolabo.h index b3b08bb..b62668e 100644 --- a/src/object/auto/autolabo.h +++ b/src/object/auto/autolabo.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // autolabo.h diff --git a/src/object/auto/automush.cpp b/src/object/auto/automush.cpp index 1e4796d..c05878d 100644 --- a/src/object/auto/automush.cpp +++ b/src/object/auto/automush.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/auto/automush.h" diff --git a/src/object/auto/automush.h b/src/object/auto/automush.h index 1697c5a..2d70eaa 100644 --- a/src/object/auto/automush.h +++ b/src/object/auto/automush.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // automush.h diff --git a/src/object/auto/autonest.cpp b/src/object/auto/autonest.cpp index 8a2d644..1c3b834 100644 --- a/src/object/auto/autonest.cpp +++ b/src/object/auto/autonest.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/auto/autonest.h" diff --git a/src/object/auto/autonest.h b/src/object/auto/autonest.h index 4d734a8..df16367 100644 --- a/src/object/auto/autonest.h +++ b/src/object/auto/autonest.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // autonest.h diff --git a/src/object/auto/autonuclear.cpp b/src/object/auto/autonuclear.cpp index edab5eb..8fc7461 100644 --- a/src/object/auto/autonuclear.cpp +++ b/src/object/auto/autonuclear.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/auto/autonuclear.h" diff --git a/src/object/auto/autonuclear.h b/src/object/auto/autonuclear.h index 5b01bba..83d8a91 100644 --- a/src/object/auto/autonuclear.h +++ b/src/object/auto/autonuclear.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // autonuclear.h diff --git a/src/object/auto/autopara.cpp b/src/object/auto/autopara.cpp index 24bc119..4a8e608 100644 --- a/src/object/auto/autopara.cpp +++ b/src/object/auto/autopara.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/auto/autopara.h" diff --git a/src/object/auto/autopara.h b/src/object/auto/autopara.h index 1f0b805..059d813 100644 --- a/src/object/auto/autopara.h +++ b/src/object/auto/autopara.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // autopara.h diff --git a/src/object/auto/autoportico.cpp b/src/object/auto/autoportico.cpp index 1646874..c0c4988 100644 --- a/src/object/auto/autoportico.cpp +++ b/src/object/auto/autoportico.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/auto/autoportico.h" diff --git a/src/object/auto/autoportico.h b/src/object/auto/autoportico.h index 0aa580f..f055448 100644 --- a/src/object/auto/autoportico.h +++ b/src/object/auto/autoportico.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // autoportico.h diff --git a/src/object/auto/autoradar.cpp b/src/object/auto/autoradar.cpp index 4afd3fe..1a1b209 100644 --- a/src/object/auto/autoradar.cpp +++ b/src/object/auto/autoradar.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/auto/autoradar.h" diff --git a/src/object/auto/autoradar.h b/src/object/auto/autoradar.h index 86833f9..6cdb21a 100644 --- a/src/object/auto/autoradar.h +++ b/src/object/auto/autoradar.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // autoradar.h diff --git a/src/object/auto/autorepair.cpp b/src/object/auto/autorepair.cpp index 2f813f8..f118ab5 100644 --- a/src/object/auto/autorepair.cpp +++ b/src/object/auto/autorepair.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/auto/autorepair.h" diff --git a/src/object/auto/autorepair.h b/src/object/auto/autorepair.h index f522a55..e377279 100644 --- a/src/object/auto/autorepair.h +++ b/src/object/auto/autorepair.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // autorepair.h diff --git a/src/object/auto/autoresearch.cpp b/src/object/auto/autoresearch.cpp index 834a48c..ed6ce9d 100644 --- a/src/object/auto/autoresearch.cpp +++ b/src/object/auto/autoresearch.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/auto/autoresearch.h" diff --git a/src/object/auto/autoresearch.h b/src/object/auto/autoresearch.h index dcb9f7b..6b76b3d 100644 --- a/src/object/auto/autoresearch.h +++ b/src/object/auto/autoresearch.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // autoresearch.h diff --git a/src/object/auto/autoroot.cpp b/src/object/auto/autoroot.cpp index 7e5c5e7..429f1c6 100644 --- a/src/object/auto/autoroot.cpp +++ b/src/object/auto/autoroot.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/auto/autoroot.h" diff --git a/src/object/auto/autoroot.h b/src/object/auto/autoroot.h index 3eb906c..88c85d5 100644 --- a/src/object/auto/autoroot.h +++ b/src/object/auto/autoroot.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // autoroot.h diff --git a/src/object/auto/autosafe.cpp b/src/object/auto/autosafe.cpp index 2871a70..7337c1b 100644 --- a/src/object/auto/autosafe.cpp +++ b/src/object/auto/autosafe.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/auto/autosafe.h" diff --git a/src/object/auto/autosafe.h b/src/object/auto/autosafe.h index b575b4e..60219dd 100644 --- a/src/object/auto/autosafe.h +++ b/src/object/auto/autosafe.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // autosafe.h diff --git a/src/object/auto/autostation.cpp b/src/object/auto/autostation.cpp index 2c0aa02..d5aa347 100644 --- a/src/object/auto/autostation.cpp +++ b/src/object/auto/autostation.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/auto/autostation.h" diff --git a/src/object/auto/autostation.h b/src/object/auto/autostation.h index d8a37b4..0c17948 100644 --- a/src/object/auto/autostation.h +++ b/src/object/auto/autostation.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // autostation.h diff --git a/src/object/auto/autotower.cpp b/src/object/auto/autotower.cpp index 329cab0..c06fa55 100644 --- a/src/object/auto/autotower.cpp +++ b/src/object/auto/autotower.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/auto/autotower.h" diff --git a/src/object/auto/autotower.h b/src/object/auto/autotower.h index d219fb5..0158b22 100644 --- a/src/object/auto/autotower.h +++ b/src/object/auto/autotower.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // autotower.h diff --git a/src/object/brain.cpp b/src/object/brain.cpp index 01f20f9..dec8cca 100644 --- a/src/object/brain.cpp +++ b/src/object/brain.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/brain.h" diff --git a/src/object/brain.h b/src/object/brain.h index 6b0d790..a0d1869 100644 --- a/src/object/brain.h +++ b/src/object/brain.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file object/brain.h diff --git a/src/object/mainmovie.cpp b/src/object/mainmovie.cpp index 85abee2..1459cf4 100644 --- a/src/object/mainmovie.cpp +++ b/src/object/mainmovie.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/mainmovie.h" diff --git a/src/object/mainmovie.h b/src/object/mainmovie.h index 4554431..c4fc79a 100644 --- a/src/object/mainmovie.h +++ b/src/object/mainmovie.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file object/mainmovie.h diff --git a/src/object/motion/motion.cpp b/src/object/motion/motion.cpp index 00b3073..6693317 100644 --- a/src/object/motion/motion.cpp +++ b/src/object/motion/motion.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/motion/motion.h" diff --git a/src/object/motion/motion.h b/src/object/motion/motion.h index d35ee67..81350b7 100644 --- a/src/object/motion/motion.h +++ b/src/object/motion/motion.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // motion.h diff --git a/src/object/motion/motionant.cpp b/src/object/motion/motionant.cpp index 16e53aa..6ca0707 100644 --- a/src/object/motion/motionant.cpp +++ b/src/object/motion/motionant.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/motion/motionant.h" diff --git a/src/object/motion/motionant.h b/src/object/motion/motionant.h index 45d02b3..660418a 100644 --- a/src/object/motion/motionant.h +++ b/src/object/motion/motionant.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // motionant.h diff --git a/src/object/motion/motionbee.cpp b/src/object/motion/motionbee.cpp index 2a052b2..07e295a 100644 --- a/src/object/motion/motionbee.cpp +++ b/src/object/motion/motionbee.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/motion/motionbee.h" diff --git a/src/object/motion/motionbee.h b/src/object/motion/motionbee.h index c0347a0..a09ef3a 100644 --- a/src/object/motion/motionbee.h +++ b/src/object/motion/motionbee.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // motionbee.h diff --git a/src/object/motion/motiondummy.cpp b/src/object/motion/motiondummy.cpp index 86e389e..a3ba540 100644 --- a/src/object/motion/motiondummy.cpp +++ b/src/object/motion/motiondummy.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2013 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/motion/motiondummy.h" diff --git a/src/object/motion/motiondummy.h b/src/object/motion/motiondummy.h index 2cb3a88..a2c8460 100644 --- a/src/object/motion/motiondummy.h +++ b/src/object/motion/motiondummy.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2013 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // motiondummy.h diff --git a/src/object/motion/motionhuman.cpp b/src/object/motion/motionhuman.cpp index edee260..2c6005b 100644 --- a/src/object/motion/motionhuman.cpp +++ b/src/object/motion/motionhuman.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/motion/motionhuman.h" diff --git a/src/object/motion/motionhuman.h b/src/object/motion/motionhuman.h index ddb0843..4eac403 100644 --- a/src/object/motion/motionhuman.h +++ b/src/object/motion/motionhuman.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // motionhuman.h diff --git a/src/object/motion/motionmother.cpp b/src/object/motion/motionmother.cpp index 03e7c21..161187e 100644 --- a/src/object/motion/motionmother.cpp +++ b/src/object/motion/motionmother.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/motion/motionmother.h" diff --git a/src/object/motion/motionmother.h b/src/object/motion/motionmother.h index a6c7e93..13fe466 100644 --- a/src/object/motion/motionmother.h +++ b/src/object/motion/motionmother.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // motionmother.h diff --git a/src/object/motion/motionspider.cpp b/src/object/motion/motionspider.cpp index 8d339b6..082ab51 100644 --- a/src/object/motion/motionspider.cpp +++ b/src/object/motion/motionspider.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/motion/motionspider.h" diff --git a/src/object/motion/motionspider.h b/src/object/motion/motionspider.h index 89745c4..1a99bfd 100644 --- a/src/object/motion/motionspider.h +++ b/src/object/motion/motionspider.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // motionspider.h diff --git a/src/object/motion/motiontoto.cpp b/src/object/motion/motiontoto.cpp index b4ed89d..ef3fb68 100644 --- a/src/object/motion/motiontoto.cpp +++ b/src/object/motion/motiontoto.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/motion/motiontoto.h" diff --git a/src/object/motion/motiontoto.h b/src/object/motion/motiontoto.h index 47baa28..a071781 100644 --- a/src/object/motion/motiontoto.h +++ b/src/object/motion/motiontoto.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // motiontoto.h diff --git a/src/object/motion/motionvehicle.cpp b/src/object/motion/motionvehicle.cpp index a67ae24..2197d6f 100644 --- a/src/object/motion/motionvehicle.cpp +++ b/src/object/motion/motionvehicle.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/motion/motionvehicle.h" diff --git a/src/object/motion/motionvehicle.h b/src/object/motion/motionvehicle.h index ffb25ef..9342886 100644 --- a/src/object/motion/motionvehicle.h +++ b/src/object/motion/motionvehicle.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // motionvehicle.h diff --git a/src/object/motion/motionworm.cpp b/src/object/motion/motionworm.cpp index 80bf7fc..073a962 100644 --- a/src/object/motion/motionworm.cpp +++ b/src/object/motion/motionworm.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/motion/motionworm.h" diff --git a/src/object/motion/motionworm.h b/src/object/motion/motionworm.h index 7684faf..5353bf2 100644 --- a/src/object/motion/motionworm.h +++ b/src/object/motion/motionworm.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // motionworm.h diff --git a/src/object/object.cpp b/src/object/object.cpp index 3c225d0..a64bcb5 100644 --- a/src/object/object.cpp +++ b/src/object/object.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/object.h" diff --git a/src/object/object.h b/src/object/object.h index 0e469f2..9283c9b 100644 --- a/src/object/object.h +++ b/src/object/object.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file object/object.h diff --git a/src/object/objman.cpp b/src/object/objman.cpp index b0bac1a..25f907a 100644 --- a/src/object/objman.cpp +++ b/src/object/objman.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/object.h" diff --git a/src/object/objman.h b/src/object/objman.h index 390587b..137cbc8 100644 --- a/src/object/objman.h +++ b/src/object/objman.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file object/objman.h diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp index d33ea27..43b1bf9 100644 --- a/src/object/robotmain.cpp +++ b/src/object/robotmain.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/robotmain.h" diff --git a/src/object/robotmain.h b/src/object/robotmain.h index 73ddc35..2db7bfe 100644 --- a/src/object/robotmain.h +++ b/src/object/robotmain.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file object/robotmain.h diff --git a/src/object/task/task.cpp b/src/object/task/task.cpp index 3624816..1459125 100644 --- a/src/object/task/task.cpp +++ b/src/object/task/task.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/task/task.h" diff --git a/src/object/task/task.h b/src/object/task/task.h index 800b880..366bcfe 100644 --- a/src/object/task/task.h +++ b/src/object/task/task.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // task.h diff --git a/src/object/task/taskadvance.cpp b/src/object/task/taskadvance.cpp index 885e100..0b1bf85 100644 --- a/src/object/task/taskadvance.cpp +++ b/src/object/task/taskadvance.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/task/taskadvance.h" diff --git a/src/object/task/taskadvance.h b/src/object/task/taskadvance.h index f8c672d..bb966b4 100644 --- a/src/object/task/taskadvance.h +++ b/src/object/task/taskadvance.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // taskadvance.h diff --git a/src/object/task/taskbuild.cpp b/src/object/task/taskbuild.cpp index 4dfd6fb..67661b6 100644 --- a/src/object/task/taskbuild.cpp +++ b/src/object/task/taskbuild.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/task/taskbuild.h" diff --git a/src/object/task/taskbuild.h b/src/object/task/taskbuild.h index b3193a0..38b7193 100644 --- a/src/object/task/taskbuild.h +++ b/src/object/task/taskbuild.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // taskbuild.h diff --git a/src/object/task/taskfire.cpp b/src/object/task/taskfire.cpp index beb4944..010151f 100644 --- a/src/object/task/taskfire.cpp +++ b/src/object/task/taskfire.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/task/taskfire.h" diff --git a/src/object/task/taskfire.h b/src/object/task/taskfire.h index 81058df..bf3a775 100644 --- a/src/object/task/taskfire.h +++ b/src/object/task/taskfire.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // taskfire.h diff --git a/src/object/task/taskfireant.cpp b/src/object/task/taskfireant.cpp index c0acf64..b0ef429 100644 --- a/src/object/task/taskfireant.cpp +++ b/src/object/task/taskfireant.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/task/taskfireant.h" diff --git a/src/object/task/taskfireant.h b/src/object/task/taskfireant.h index 2a0ead8..9875480 100644 --- a/src/object/task/taskfireant.h +++ b/src/object/task/taskfireant.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // taskfireant.h diff --git a/src/object/task/taskflag.cpp b/src/object/task/taskflag.cpp index dd5e11d..598e019 100644 --- a/src/object/task/taskflag.cpp +++ b/src/object/task/taskflag.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/task/taskflag.h" diff --git a/src/object/task/taskflag.h b/src/object/task/taskflag.h index 7e3e4ef..a1d61b1 100644 --- a/src/object/task/taskflag.h +++ b/src/object/task/taskflag.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // taskflag.h #pragma once diff --git a/src/object/task/taskgoto.cpp b/src/object/task/taskgoto.cpp index 8070d13..2ddb92e 100644 --- a/src/object/task/taskgoto.cpp +++ b/src/object/task/taskgoto.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include diff --git a/src/object/task/taskgoto.h b/src/object/task/taskgoto.h index d2b2d7e..383338e 100644 --- a/src/object/task/taskgoto.h +++ b/src/object/task/taskgoto.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // taskgoto.h diff --git a/src/object/task/taskgungoal.cpp b/src/object/task/taskgungoal.cpp index c9c8d30..f4e4aa6 100644 --- a/src/object/task/taskgungoal.cpp +++ b/src/object/task/taskgungoal.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/task/taskgungoal.h" diff --git a/src/object/task/taskgungoal.h b/src/object/task/taskgungoal.h index 9fc509d..59b7d3f 100644 --- a/src/object/task/taskgungoal.h +++ b/src/object/task/taskgungoal.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // taskgungoal.h diff --git a/src/object/task/taskinfo.cpp b/src/object/task/taskinfo.cpp index 32ac342..50c5e4f 100644 --- a/src/object/task/taskinfo.cpp +++ b/src/object/task/taskinfo.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/task/taskinfo.h" diff --git a/src/object/task/taskinfo.h b/src/object/task/taskinfo.h index 1ce3dca..5fdb974 100644 --- a/src/object/task/taskinfo.h +++ b/src/object/task/taskinfo.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // taskinfo.h diff --git a/src/object/task/taskmanager.cpp b/src/object/task/taskmanager.cpp index 11fba6c..f34b464 100644 --- a/src/object/task/taskmanager.cpp +++ b/src/object/task/taskmanager.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include diff --git a/src/object/task/taskmanager.h b/src/object/task/taskmanager.h index 80a78fd..908a37a 100644 --- a/src/object/task/taskmanager.h +++ b/src/object/task/taskmanager.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // taskmanager.h diff --git a/src/object/task/taskmanip.cpp b/src/object/task/taskmanip.cpp index 0608b6e..f12bde4 100644 --- a/src/object/task/taskmanip.cpp +++ b/src/object/task/taskmanip.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/task/taskmanip.h" diff --git a/src/object/task/taskmanip.h b/src/object/task/taskmanip.h index e80602c..ed20b7a 100644 --- a/src/object/task/taskmanip.h +++ b/src/object/task/taskmanip.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // taskmanip.h diff --git a/src/object/task/taskpen.cpp b/src/object/task/taskpen.cpp index 03c2322..b8d2c70 100644 --- a/src/object/task/taskpen.cpp +++ b/src/object/task/taskpen.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/task/taskpen.h" diff --git a/src/object/task/taskpen.h b/src/object/task/taskpen.h index adaba6c..ad2658a 100644 --- a/src/object/task/taskpen.h +++ b/src/object/task/taskpen.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // taskpen.h diff --git a/src/object/task/taskrecover.cpp b/src/object/task/taskrecover.cpp index d8bbafd..62f675a 100644 --- a/src/object/task/taskrecover.cpp +++ b/src/object/task/taskrecover.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include diff --git a/src/object/task/taskrecover.h b/src/object/task/taskrecover.h index 817ed5f..685cbd4 100644 --- a/src/object/task/taskrecover.h +++ b/src/object/task/taskrecover.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // taskrecover.h diff --git a/src/object/task/taskreset.cpp b/src/object/task/taskreset.cpp index 98d9730..75b02b0 100644 --- a/src/object/task/taskreset.cpp +++ b/src/object/task/taskreset.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/task/taskreset.h" diff --git a/src/object/task/taskreset.h b/src/object/task/taskreset.h index 5f1bb34..2ba08b5 100644 --- a/src/object/task/taskreset.h +++ b/src/object/task/taskreset.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // taskreset.h diff --git a/src/object/task/tasksearch.cpp b/src/object/task/tasksearch.cpp index aa731a0..ce6e4b9 100644 --- a/src/object/task/tasksearch.cpp +++ b/src/object/task/tasksearch.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/task/tasksearch.h" diff --git a/src/object/task/tasksearch.h b/src/object/task/tasksearch.h index 582d45a..7f6939b 100644 --- a/src/object/task/tasksearch.h +++ b/src/object/task/tasksearch.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // tasksearch.h diff --git a/src/object/task/taskshield.cpp b/src/object/task/taskshield.cpp index e9ab157..bd74a4a 100644 --- a/src/object/task/taskshield.cpp +++ b/src/object/task/taskshield.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/task/taskshield.h" diff --git a/src/object/task/taskshield.h b/src/object/task/taskshield.h index 36d3819..beb7b56 100644 --- a/src/object/task/taskshield.h +++ b/src/object/task/taskshield.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // taskshield.h diff --git a/src/object/task/taskspiderexplo.cpp b/src/object/task/taskspiderexplo.cpp index f629714..2dd798f 100644 --- a/src/object/task/taskspiderexplo.cpp +++ b/src/object/task/taskspiderexplo.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/task/taskspiderexplo.h" diff --git a/src/object/task/taskspiderexplo.h b/src/object/task/taskspiderexplo.h index 0984020..1b0dba0 100644 --- a/src/object/task/taskspiderexplo.h +++ b/src/object/task/taskspiderexplo.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // taskspiderexplo.h diff --git a/src/object/task/tasktake.cpp b/src/object/task/tasktake.cpp index c7f0530..14688f3 100644 --- a/src/object/task/tasktake.cpp +++ b/src/object/task/tasktake.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/task/tasktake.h" diff --git a/src/object/task/tasktake.h b/src/object/task/tasktake.h index 7f3f831..a128e94 100644 --- a/src/object/task/tasktake.h +++ b/src/object/task/tasktake.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // tasktake.h diff --git a/src/object/task/taskterraform.cpp b/src/object/task/taskterraform.cpp index 61ff045..58148fa 100644 --- a/src/object/task/taskterraform.cpp +++ b/src/object/task/taskterraform.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include diff --git a/src/object/task/taskterraform.h b/src/object/task/taskterraform.h index 8ae0d64..952b875 100644 --- a/src/object/task/taskterraform.h +++ b/src/object/task/taskterraform.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // taskterraform.h diff --git a/src/object/task/taskturn.cpp b/src/object/task/taskturn.cpp index 9c099d2..661fb21 100644 --- a/src/object/task/taskturn.cpp +++ b/src/object/task/taskturn.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/task/taskturn.h" diff --git a/src/object/task/taskturn.h b/src/object/task/taskturn.h index 11de476..23cf83c 100644 --- a/src/object/task/taskturn.h +++ b/src/object/task/taskturn.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // taskturn.h diff --git a/src/object/task/taskwait.cpp b/src/object/task/taskwait.cpp index 5b9fdb3..6ad21f4 100644 --- a/src/object/task/taskwait.cpp +++ b/src/object/task/taskwait.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/task/taskwait.h" diff --git a/src/object/task/taskwait.h b/src/object/task/taskwait.h index 3225c9a..4270e27 100644 --- a/src/object/task/taskwait.h +++ b/src/object/task/taskwait.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // taskwait.h diff --git a/src/physics/physics.cpp b/src/physics/physics.cpp index a3aaa28..6dd9d32 100644 --- a/src/physics/physics.cpp +++ b/src/physics/physics.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "physics/physics.h" diff --git a/src/physics/physics.h b/src/physics/physics.h index fea5601..ace5b58 100644 --- a/src/physics/physics.h +++ b/src/physics/physics.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file physics/physics.h diff --git a/src/script/cbottoken.cpp b/src/script/cbottoken.cpp index 81219df..5a23c3e 100644 --- a/src/script/cbottoken.cpp +++ b/src/script/cbottoken.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "script/cbottoken.h" diff --git a/src/script/cbottoken.h b/src/script/cbottoken.h index 976d856..c897726 100644 --- a/src/script/cbottoken.h +++ b/src/script/cbottoken.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file script/cbottoken.h diff --git a/src/script/cmdtoken.cpp b/src/script/cmdtoken.cpp index 6393505..d40be82 100644 --- a/src/script/cmdtoken.cpp +++ b/src/script/cmdtoken.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "script/cmdtoken.h" diff --git a/src/script/cmdtoken.h b/src/script/cmdtoken.h index 8a423c5..de99e41 100644 --- a/src/script/cmdtoken.h +++ b/src/script/cmdtoken.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file script/cmdtoken.h diff --git a/src/script/dd.cpp b/src/script/dd.cpp index a7f5eb9..6c6eab2 100644 --- a/src/script/dd.cpp +++ b/src/script/dd.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // Compilation of a procedure with a "dot". diff --git a/src/script/script.cpp b/src/script/script.cpp index 2299fbf..ae640d4 100644 --- a/src/script/script.cpp +++ b/src/script/script.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "script/script.h" diff --git a/src/script/script.h b/src/script/script.h index fb44342..029c875 100644 --- a/src/script/script.h +++ b/src/script/script.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file script/script.h diff --git a/src/sound/oalsound/alsound.cpp b/src/sound/oalsound/alsound.cpp index 327bb6f..72cb557 100644 --- a/src/sound/oalsound/alsound.cpp +++ b/src/sound/oalsound/alsound.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "sound/oalsound/alsound.h" diff --git a/src/sound/oalsound/alsound.h b/src/sound/oalsound/alsound.h index bb9bf28..25ef3d6 100644 --- a/src/sound/oalsound/alsound.h +++ b/src/sound/oalsound/alsound.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file alsound.h diff --git a/src/sound/oalsound/buffer.cpp b/src/sound/oalsound/buffer.cpp index b27029c..5a46566 100644 --- a/src/sound/oalsound/buffer.cpp +++ b/src/sound/oalsound/buffer.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "sound/oalsound/buffer.h" diff --git a/src/sound/oalsound/buffer.h b/src/sound/oalsound/buffer.h index e693d75..a34f764 100644 --- a/src/sound/oalsound/buffer.h +++ b/src/sound/oalsound/buffer.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file buffer.h diff --git a/src/sound/oalsound/channel.cpp b/src/sound/oalsound/channel.cpp index 7021c2f..c7311f7 100644 --- a/src/sound/oalsound/channel.cpp +++ b/src/sound/oalsound/channel.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "sound/oalsound/channel.h" diff --git a/src/sound/oalsound/channel.h b/src/sound/oalsound/channel.h index 1d988c9..4e0b52c 100644 --- a/src/sound/oalsound/channel.h +++ b/src/sound/oalsound/channel.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file channel.h diff --git a/src/sound/oalsound/check.h b/src/sound/oalsound/check.h index b8f67c0..ec0a328 100644 --- a/src/sound/oalsound/check.h +++ b/src/sound/oalsound/check.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // check.h diff --git a/src/sound/sound.cpp b/src/sound/sound.cpp index 9cae1fd..da60dbc 100644 --- a/src/sound/sound.cpp +++ b/src/sound/sound.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012-2013, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "sound/sound.h" diff --git a/src/sound/sound.h b/src/sound/sound.h index 22a5ee2..2ed4199 100644 --- a/src/sound/sound.h +++ b/src/sound/sound.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file sound/sound.h diff --git a/src/tools/convert_model.cpp b/src/tools/convert_model.cpp index 57e8789..44afecd 100644 --- a/src/tools/convert_model.cpp +++ b/src/tools/convert_model.cpp @@ -1,3 +1,21 @@ +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "common/logger.h" #include "graphics/engine/modelfile.h" diff --git a/src/ui/button.cpp b/src/ui/button.cpp index 810d365..3cb7d25 100644 --- a/src/ui/button.cpp +++ b/src/ui/button.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "ui/button.h" diff --git a/src/ui/button.h b/src/ui/button.h index b71ef4a..2c66468 100644 --- a/src/ui/button.h +++ b/src/ui/button.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // button.h diff --git a/src/ui/check.cpp b/src/ui/check.cpp index 6a92554..2e6f8ff 100644 --- a/src/ui/check.cpp +++ b/src/ui/check.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "ui/check.h" diff --git a/src/ui/check.h b/src/ui/check.h index 65bc367..cdb5134 100644 --- a/src/ui/check.h +++ b/src/ui/check.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // check.h diff --git a/src/ui/color.cpp b/src/ui/color.cpp index d1dc746..0ffdc72 100644 --- a/src/ui/color.cpp +++ b/src/ui/color.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "ui/color.h" diff --git a/src/ui/color.h b/src/ui/color.h index fe96b87..06b259e 100644 --- a/src/ui/color.h +++ b/src/ui/color.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // color.h diff --git a/src/ui/compass.cpp b/src/ui/compass.cpp index d0fe96f..e49302a 100644 --- a/src/ui/compass.cpp +++ b/src/ui/compass.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "ui/compass.h" diff --git a/src/ui/compass.h b/src/ui/compass.h index 956631a..510d9e8 100644 --- a/src/ui/compass.h +++ b/src/ui/compass.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // compass.h diff --git a/src/ui/control.cpp b/src/ui/control.cpp index 4e64ee9..22f863b 100644 --- a/src/ui/control.cpp +++ b/src/ui/control.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "ui/control.h" diff --git a/src/ui/control.h b/src/ui/control.h index 1ca07cf..5306641 100644 --- a/src/ui/control.h +++ b/src/ui/control.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code; -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // control.h diff --git a/src/ui/displayinfo.cpp b/src/ui/displayinfo.cpp index e7748ae..d619f00 100644 --- a/src/ui/displayinfo.cpp +++ b/src/ui/displayinfo.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "ui/displayinfo.h" diff --git a/src/ui/displayinfo.h b/src/ui/displayinfo.h index 891551b..47bdec9 100644 --- a/src/ui/displayinfo.h +++ b/src/ui/displayinfo.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // displayinfo.h diff --git a/src/ui/displaytext.cpp b/src/ui/displaytext.cpp index 5b3144d..8e944de 100644 --- a/src/ui/displaytext.cpp +++ b/src/ui/displaytext.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "ui/displaytext.h" diff --git a/src/ui/displaytext.h b/src/ui/displaytext.h index 94572a8..3815407 100644 --- a/src/ui/displaytext.h +++ b/src/ui/displaytext.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // displaytext.h diff --git a/src/ui/edit.cpp b/src/ui/edit.cpp index 4132896..36bfd5a 100644 --- a/src/ui/edit.cpp +++ b/src/ui/edit.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "ui/edit.h" diff --git a/src/ui/edit.h b/src/ui/edit.h index 9484fc8..cbad394 100644 --- a/src/ui/edit.h +++ b/src/ui/edit.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** diff --git a/src/ui/editvalue.cpp b/src/ui/editvalue.cpp index 3fb9b79..676f2a6 100644 --- a/src/ui/editvalue.cpp +++ b/src/ui/editvalue.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "ui/editvalue.h" diff --git a/src/ui/editvalue.h b/src/ui/editvalue.h index 2734847..3011d55 100644 --- a/src/ui/editvalue.h +++ b/src/ui/editvalue.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // editvalue.h diff --git a/src/ui/gauge.cpp b/src/ui/gauge.cpp index a8ee41c..4bc9d7d 100644 --- a/src/ui/gauge.cpp +++ b/src/ui/gauge.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "ui/gauge.h" diff --git a/src/ui/gauge.h b/src/ui/gauge.h index 3dbeef8..798171f 100644 --- a/src/ui/gauge.h +++ b/src/ui/gauge.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // gauge.h diff --git a/src/ui/group.cpp b/src/ui/group.cpp index 64495e0..6ca6067 100644 --- a/src/ui/group.cpp +++ b/src/ui/group.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "ui/group.h" diff --git a/src/ui/group.h b/src/ui/group.h index 89996cc..e12bf78 100644 --- a/src/ui/group.h +++ b/src/ui/group.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // group.h diff --git a/src/ui/image.cpp b/src/ui/image.cpp index 8f9b5ca..b4c19f8 100644 --- a/src/ui/image.cpp +++ b/src/ui/image.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "ui/image.h" diff --git a/src/ui/image.h b/src/ui/image.h index fd71e33..cff43a8 100644 --- a/src/ui/image.h +++ b/src/ui/image.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // image.h diff --git a/src/ui/interface.cpp b/src/ui/interface.cpp index 4a0c221..bd25bee 100644 --- a/src/ui/interface.cpp +++ b/src/ui/interface.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "ui/interface.h" diff --git a/src/ui/interface.h b/src/ui/interface.h index d5734f0..f3e81bb 100644 --- a/src/ui/interface.h +++ b/src/ui/interface.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // interface.h diff --git a/src/ui/key.cpp b/src/ui/key.cpp index aacc8d8..ecc000c 100644 --- a/src/ui/key.cpp +++ b/src/ui/key.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "ui/key.h" diff --git a/src/ui/key.h b/src/ui/key.h index d8e935c..0cc8a4c 100644 --- a/src/ui/key.h +++ b/src/ui/key.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file ui/key.h diff --git a/src/ui/label.cpp b/src/ui/label.cpp index 76a95f2..f4d0119 100644 --- a/src/ui/label.cpp +++ b/src/ui/label.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "ui/label.h" diff --git a/src/ui/label.h b/src/ui/label.h index 305aca2..36b6da1 100644 --- a/src/ui/label.h +++ b/src/ui/label.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // label.h diff --git a/src/ui/list.cpp b/src/ui/list.cpp index b3e55e1..16f0457 100644 --- a/src/ui/list.cpp +++ b/src/ui/list.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "ui/list.h" diff --git a/src/ui/list.h b/src/ui/list.h index a2e033f..4632f76 100644 --- a/src/ui/list.h +++ b/src/ui/list.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // list.h diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index 1b0facb..41e5bc2 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "ui/maindialog.h" @@ -339,7 +342,7 @@ void CMainDialog::ChangePhase(Phase phase) pg = pw->CreateGroup(pos, ddim, 1, EVENT_LABEL1); pg->SetState(STATE_SHADOW); pos.y -= 5.0f/480.0f; - pl = pw->CreateLabel(pos, ddim, 0, EVENT_LABEL1, "PPC Team"); + pl = pw->CreateLabel(pos, ddim, 0, EVENT_LABEL1, "TerranovaTeam"); pl->SetFontType(Gfx::FONT_COURIER); pl->SetFontSize(Gfx::FONT_SIZE_SMALL); diff --git a/src/ui/maindialog.h b/src/ui/maindialog.h index 444a568..1f15176 100644 --- a/src/ui/maindialog.h +++ b/src/ui/maindialog.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // maindialog.h diff --git a/src/ui/mainmap.cpp b/src/ui/mainmap.cpp index 8c81160..11b2517 100644 --- a/src/ui/mainmap.cpp +++ b/src/ui/mainmap.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "ui/mainmap.h" diff --git a/src/ui/mainmap.h b/src/ui/mainmap.h index 9b20548..0cc7959 100644 --- a/src/ui/mainmap.h +++ b/src/ui/mainmap.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // mainmap.h diff --git a/src/ui/mainshort.cpp b/src/ui/mainshort.cpp index f6dce4b..76fd569 100644 --- a/src/ui/mainshort.cpp +++ b/src/ui/mainshort.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "ui/mainshort.h" diff --git a/src/ui/mainshort.h b/src/ui/mainshort.h index b185aed..1d0a327 100644 --- a/src/ui/mainshort.h +++ b/src/ui/mainshort.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // mainshort.h diff --git a/src/ui/map.cpp b/src/ui/map.cpp index c5f0062..89c3397 100644 --- a/src/ui/map.cpp +++ b/src/ui/map.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "ui/map.h" diff --git a/src/ui/map.h b/src/ui/map.h index 4ebe688..e1ad1a2 100644 --- a/src/ui/map.h +++ b/src/ui/map.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // map.h diff --git a/src/ui/scroll.cpp b/src/ui/scroll.cpp index b3422ec..de2f26b 100644 --- a/src/ui/scroll.cpp +++ b/src/ui/scroll.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "ui/scroll.h" diff --git a/src/ui/scroll.h b/src/ui/scroll.h index c115aa4..505af09 100644 --- a/src/ui/scroll.h +++ b/src/ui/scroll.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // scroll.h diff --git a/src/ui/shortcut.cpp b/src/ui/shortcut.cpp index a01864a..5164a10 100644 --- a/src/ui/shortcut.cpp +++ b/src/ui/shortcut.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "ui/shortcut.h" diff --git a/src/ui/shortcut.h b/src/ui/shortcut.h index 6495ba0..9f3a339 100644 --- a/src/ui/shortcut.h +++ b/src/ui/shortcut.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // shortcut.h diff --git a/src/ui/slider.cpp b/src/ui/slider.cpp index 33293d1..7752441 100644 --- a/src/ui/slider.cpp +++ b/src/ui/slider.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "ui/slider.h" diff --git a/src/ui/slider.h b/src/ui/slider.h index bc38aec..c55d64b 100644 --- a/src/ui/slider.h +++ b/src/ui/slider.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // slider.h diff --git a/src/ui/studio.cpp b/src/ui/studio.cpp index 91e4ea2..6f3145f 100644 --- a/src/ui/studio.cpp +++ b/src/ui/studio.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "ui/studio.h" diff --git a/src/ui/studio.h b/src/ui/studio.h index d1c6a51..a11d706 100644 --- a/src/ui/studio.h +++ b/src/ui/studio.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // studio.h diff --git a/src/ui/target.cpp b/src/ui/target.cpp index 455c530..a406820 100644 --- a/src/ui/target.cpp +++ b/src/ui/target.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "ui/target.h" diff --git a/src/ui/target.h b/src/ui/target.h index 2344e59..4f95b6c 100644 --- a/src/ui/target.h +++ b/src/ui/target.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // target.h diff --git a/src/ui/window.cpp b/src/ui/window.cpp index 21e2b30..20a9e69 100644 --- a/src/ui/window.cpp +++ b/src/ui/window.cpp @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "ui/window.h" diff --git a/src/ui/window.h b/src/ui/window.h index 87805e2..701407e 100644 --- a/src/ui/window.h +++ b/src/ui/window.h @@ -1,19 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ // window.h diff --git a/test/cbot/CBot_console/CBotConsole.cpp b/test/cbot/CBot_console/CBotConsole.cpp index e9209d3..1b0b185 100644 --- a/test/cbot/CBot_console/CBotConsole.cpp +++ b/test/cbot/CBot_console/CBotConsole.cpp @@ -1,3 +1,21 @@ +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /* * CBotConsole.cpp * diff --git a/test/cbot/CBot_console/CBotConsole.h b/test/cbot/CBot_console/CBotConsole.h index ac87911..83556f5 100644 --- a/test/cbot/CBot_console/CBotConsole.h +++ b/test/cbot/CBot_console/CBotConsole.h @@ -1,3 +1,21 @@ +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /* * CBotConsole.h * diff --git a/test/cbot/CBot_console/CBotDoc.cpp b/test/cbot/CBot_console/CBotDoc.cpp index 1c694c9..5871fb5 100644 --- a/test/cbot/CBot_console/CBotDoc.cpp +++ b/test/cbot/CBot_console/CBotDoc.cpp @@ -1,3 +1,21 @@ +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /* * CBotDoc.cpp * diff --git a/test/cbot/CBot_console/CBotDoc.h b/test/cbot/CBot_console/CBotDoc.h index 82af7b0..5f58ed5 100644 --- a/test/cbot/CBot_console/CBotDoc.h +++ b/test/cbot/CBot_console/CBotDoc.h @@ -1,3 +1,21 @@ +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /* * CBotDoc.h * diff --git a/test/cbot/CBot_console/CClass.cpp b/test/cbot/CBot_console/CClass.cpp index 9b7c842..ec6cd8f 100644 --- a/test/cbot/CBot_console/CClass.cpp +++ b/test/cbot/CBot_console/CClass.cpp @@ -1,3 +1,21 @@ +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "CClass.h" #include "routines.cpp" diff --git a/test/cbot/CBot_console/CClass.h b/test/cbot/CBot_console/CClass.h index da2c46c..187d090 100644 --- a/test/cbot/CBot_console/CClass.h +++ b/test/cbot/CBot_console/CClass.h @@ -1,3 +1,21 @@ +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #pragma once #include diff --git a/test/cbot/CBot_console/main.cpp b/test/cbot/CBot_console/main.cpp index a2d3668..98c8c18 100644 --- a/test/cbot/CBot_console/main.cpp +++ b/test/cbot/CBot_console/main.cpp @@ -1,3 +1,21 @@ +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "CClass.h" #include "CBotDoc.h" #include diff --git a/test/cbot/CBot_console/routines.cpp b/test/cbot/CBot_console/routines.cpp index 8b8a1d4..a967305 100644 --- a/test/cbot/CBot_console/routines.cpp +++ b/test/cbot/CBot_console/routines.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ //////////////////////////////////////////////////////////////////// // routine show() diff --git a/test/envs/opengl/light_test.cpp b/test/envs/opengl/light_test.cpp index 5c5af7c..7f1c652 100644 --- a/test/envs/opengl/light_test.cpp +++ b/test/envs/opengl/light_test.cpp @@ -1,3 +1,21 @@ +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "app/system.h" #include "common/config.h" diff --git a/test/envs/opengl/model_test.cpp b/test/envs/opengl/model_test.cpp index fa4042c..006b16e 100644 --- a/test/envs/opengl/model_test.cpp +++ b/test/envs/opengl/model_test.cpp @@ -1,3 +1,21 @@ +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "app/system.h" #include "common/config.h" diff --git a/test/envs/opengl/texture_test.cpp b/test/envs/opengl/texture_test.cpp index 5c27b43..0a0575b 100644 --- a/test/envs/opengl/texture_test.cpp +++ b/test/envs/opengl/texture_test.cpp @@ -1,3 +1,21 @@ +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "common/config.h" #include "common/logger.h" #include "common/image.h" diff --git a/test/envs/opengl/transform_test.cpp b/test/envs/opengl/transform_test.cpp index 99ec9f0..9536740 100644 --- a/test/envs/opengl/transform_test.cpp +++ b/test/envs/opengl/transform_test.cpp @@ -1,3 +1,21 @@ +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "app/system.h" #include "common/config.h" diff --git a/test/unit/app/app_test.cpp b/test/unit/app/app_test.cpp index b517d7d..fff08a5 100644 --- a/test/unit/app/app_test.cpp +++ b/test/unit/app/app_test.cpp @@ -1,3 +1,21 @@ +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "app/app.h" #if defined(PLATFORM_WINDOWS) diff --git a/test/unit/app/system_linux_test.cpp b/test/unit/app/system_linux_test.cpp index b0a05ca..7b734c6 100644 --- a/test/unit/app/system_linux_test.cpp +++ b/test/unit/app/system_linux_test.cpp @@ -1,3 +1,21 @@ +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "app/system.h" #include "app/system_linux.h" diff --git a/test/unit/app/system_mock.h b/test/unit/app/system_mock.h index 470a4e1..2f2c464 100644 --- a/test/unit/app/system_mock.h +++ b/test/unit/app/system_mock.h @@ -1,3 +1,21 @@ +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #pragma once #include "app/system.h" diff --git a/test/unit/app/system_windows_test.cpp b/test/unit/app/system_windows_test.cpp index 79f8c7f..cfba1ae 100644 --- a/test/unit/app/system_windows_test.cpp +++ b/test/unit/app/system_windows_test.cpp @@ -1,3 +1,21 @@ +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "app/system.h" #include "app/system_windows.h" diff --git a/test/unit/common/profile_test.cpp b/test/unit/common/profile_test.cpp index 2d21a90..714b2c2 100644 --- a/test/unit/common/profile_test.cpp +++ b/test/unit/common/profile_test.cpp @@ -1,3 +1,21 @@ +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "common/profile.h" #include "common/logger.h" #include "app/system.h" diff --git a/test/unit/graphics/core/device_mock.h b/test/unit/graphics/core/device_mock.h index 78c8502..5ab0b7d 100644 --- a/test/unit/graphics/core/device_mock.h +++ b/test/unit/graphics/core/device_mock.h @@ -1,3 +1,21 @@ +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #pragma once #include "graphics/core/device.h" diff --git a/test/unit/graphics/engine/engine_mock.h b/test/unit/graphics/engine/engine_mock.h index 1a15eca..72ceddb 100644 --- a/test/unit/graphics/engine/engine_mock.h +++ b/test/unit/graphics/engine/engine_mock.h @@ -1,3 +1,21 @@ +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "graphics/engine/engine.h" #include diff --git a/test/unit/graphics/engine/lightman_test.cpp b/test/unit/graphics/engine/lightman_test.cpp index e2dc785..d493afb 100644 --- a/test/unit/graphics/engine/lightman_test.cpp +++ b/test/unit/graphics/engine/lightman_test.cpp @@ -1,3 +1,21 @@ +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "graphics/engine/lightman.h" #include "app/system_mock.h" diff --git a/test/unit/graphics/engine/modelfile_test.cpp b/test/unit/graphics/engine/modelfile_test.cpp index 0598e84..ba95d04 100644 --- a/test/unit/graphics/engine/modelfile_test.cpp +++ b/test/unit/graphics/engine/modelfile_test.cpp @@ -1,3 +1,21 @@ +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "graphics/engine/modelfile.h" #include "math/func.h" diff --git a/test/unit/main.cpp b/test/unit/main.cpp index 7d08f58..f136ebc 100644 --- a/test/unit/main.cpp +++ b/test/unit/main.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "common/logger.h" diff --git a/test/unit/math/func_test.cpp b/test/unit/math/func_test.cpp index 57f1347..aa06f9e 100644 --- a/test/unit/math/func_test.cpp +++ b/test/unit/math/func_test.cpp @@ -1,3 +1,21 @@ +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /* Unit tests for math functions. */ diff --git a/test/unit/math/geometry_test.cpp b/test/unit/math/geometry_test.cpp index 581ef89..49caaa4 100644 --- a/test/unit/math/geometry_test.cpp +++ b/test/unit/math/geometry_test.cpp @@ -1,3 +1,21 @@ +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /* Unit tests for functions in geometry.h */ #include "math/func.h" diff --git a/test/unit/math/matrix_test.cpp b/test/unit/math/matrix_test.cpp index 7693a85..3b67d69 100644 --- a/test/unit/math/matrix_test.cpp +++ b/test/unit/math/matrix_test.cpp @@ -1,3 +1,21 @@ +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /* Unit tests for Matrix struct diff --git a/test/unit/math/vector_test.cpp b/test/unit/math/vector_test.cpp index 6fe30be..f8a8b10 100644 --- a/test/unit/math/vector_test.cpp +++ b/test/unit/math/vector_test.cpp @@ -1,3 +1,21 @@ +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /* Unit tests for Vector struct diff --git a/tools/blender-scripts.py b/tools/blender-scripts.py index c2361c7..d2273d6 100644 --- a/tools/blender-scripts.py +++ b/tools/blender-scripts.py @@ -2,12 +2,12 @@ # Script for exporting Blender models (meshes) to Colobot model files # (text format) # -# Copyright (C) 2012, PPC (Polish Portal of Colobot) +# Copyright (C) 2012-2014, TerranovaTeam # bl_info = { "name": "Colobot Model Format (.txt)", - "author": "PPC (Polish Portal of Colobot)", + "author": "TerranovaTeam", "version": (0, 0, 2), "blender": (2, 6, 4), "location": "File > Export > Colobot (.txt)", -- cgit v1.2.3-1-g7c22 From 47ea8a1175488564c11e09f71447cb19515c6e6c Mon Sep 17 00:00:00 2001 From: krzys-h Date: Wed, 15 Oct 2014 21:14:34 +0200 Subject: Updated some more license headers --- src/common/resources/inputstream.cpp | 33 ++++++++++++++++------------- src/common/resources/inputstream.h | 33 ++++++++++++++++------------- src/common/resources/inputstreambuffer.cpp | 33 ++++++++++++++++------------- src/common/resources/inputstreambuffer.h | 33 ++++++++++++++++------------- src/common/resources/outputstream.cpp | 33 ++++++++++++++++------------- src/common/resources/outputstream.h | 33 ++++++++++++++++------------- src/common/resources/outputstreambuffer.cpp | 33 ++++++++++++++++------------- src/common/resources/outputstreambuffer.h | 33 ++++++++++++++++------------- src/common/resources/resourcemanager.cpp | 33 ++++++++++++++++------------- src/common/resources/resourcemanager.h | 33 ++++++++++++++++------------- src/common/resources/sndfile.cpp | 33 ++++++++++++++++------------- src/common/resources/sndfile.h | 33 ++++++++++++++++------------- src/object/level/parser.cpp | 33 ++++++++++++++++------------- src/object/level/parser.h | 33 ++++++++++++++++------------- src/object/level/parserexceptions.cpp | 33 ++++++++++++++++------------- src/object/level/parserexceptions.h | 33 ++++++++++++++++------------- src/object/level/parserline.cpp | 33 ++++++++++++++++------------- src/object/level/parserline.h | 33 ++++++++++++++++------------- src/object/level/parserparam.cpp | 33 ++++++++++++++++------------- src/object/level/parserparam.h | 33 ++++++++++++++++------------- 20 files changed, 360 insertions(+), 300 deletions(-) diff --git a/src/common/resources/inputstream.cpp b/src/common/resources/inputstream.cpp index 3907c76..57d1305 100644 --- a/src/common/resources/inputstream.cpp +++ b/src/common/resources/inputstream.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2014 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "common/resources/inputstream.h" #include "common/resources/inputstreambuffer.h" diff --git a/src/common/resources/inputstream.h b/src/common/resources/inputstream.h index 70d9ff5..74e17b2 100644 --- a/src/common/resources/inputstream.h +++ b/src/common/resources/inputstream.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2014 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #pragma once diff --git a/src/common/resources/inputstreambuffer.cpp b/src/common/resources/inputstreambuffer.cpp index cfa06fb..7059d60 100644 --- a/src/common/resources/inputstreambuffer.cpp +++ b/src/common/resources/inputstreambuffer.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2014 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "common/resources/inputstreambuffer.h" diff --git a/src/common/resources/inputstreambuffer.h b/src/common/resources/inputstreambuffer.h index 384ebfb..8c45c22 100644 --- a/src/common/resources/inputstreambuffer.h +++ b/src/common/resources/inputstreambuffer.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2014 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #pragma once diff --git a/src/common/resources/outputstream.cpp b/src/common/resources/outputstream.cpp index bce194e..e88520e 100644 --- a/src/common/resources/outputstream.cpp +++ b/src/common/resources/outputstream.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2014 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "common/resources/outputstream.h" #include "common/resources/outputstreambuffer.h" diff --git a/src/common/resources/outputstream.h b/src/common/resources/outputstream.h index 2927a99..30b9429 100644 --- a/src/common/resources/outputstream.h +++ b/src/common/resources/outputstream.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2014 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #pragma once diff --git a/src/common/resources/outputstreambuffer.cpp b/src/common/resources/outputstreambuffer.cpp index 38979db..f8b4100 100644 --- a/src/common/resources/outputstreambuffer.cpp +++ b/src/common/resources/outputstreambuffer.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2014 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "common/resources/outputstreambuffer.h" diff --git a/src/common/resources/outputstreambuffer.h b/src/common/resources/outputstreambuffer.h index 1318530..758c4df 100644 --- a/src/common/resources/outputstreambuffer.h +++ b/src/common/resources/outputstreambuffer.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2014 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #pragma once diff --git a/src/common/resources/resourcemanager.cpp b/src/common/resources/resourcemanager.cpp index 8e7f09f..21aceec 100644 --- a/src/common/resources/resourcemanager.cpp +++ b/src/common/resources/resourcemanager.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2014 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "common/resources/resourcemanager.h" diff --git a/src/common/resources/resourcemanager.h b/src/common/resources/resourcemanager.h index 7f99210..e949746 100644 --- a/src/common/resources/resourcemanager.h +++ b/src/common/resources/resourcemanager.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2014 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #pragma once diff --git a/src/common/resources/sndfile.cpp b/src/common/resources/sndfile.cpp index d9d4ccb..d2330e1 100644 --- a/src/common/resources/sndfile.cpp +++ b/src/common/resources/sndfile.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2014 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "common/resources/sndfile.h" diff --git a/src/common/resources/sndfile.h b/src/common/resources/sndfile.h index 7d6d589..f083666 100644 --- a/src/common/resources/sndfile.h +++ b/src/common/resources/sndfile.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2014 Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #pragma once diff --git a/src/object/level/parser.cpp b/src/object/level/parser.cpp index 2bd43a3..ab3e6bc 100644 --- a/src/object/level/parser.cpp +++ b/src/object/level/parser.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/level/parser.h" diff --git a/src/object/level/parser.h b/src/object/level/parser.h index 3bae2eb..7e87e2d 100644 --- a/src/object/level/parser.h +++ b/src/object/level/parser.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file object/level/parser.h diff --git a/src/object/level/parserexceptions.cpp b/src/object/level/parserexceptions.cpp index b495de7..8f74078 100644 --- a/src/object/level/parserexceptions.cpp +++ b/src/object/level/parserexceptions.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/level/parserexceptions.h" diff --git a/src/object/level/parserexceptions.h b/src/object/level/parserexceptions.h index ca87ce1..7265d8b 100644 --- a/src/object/level/parserexceptions.h +++ b/src/object/level/parserexceptions.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file object/level/parserexceptions.h diff --git a/src/object/level/parserline.cpp b/src/object/level/parserline.cpp index 37f6397..e0e8097 100644 --- a/src/object/level/parserline.cpp +++ b/src/object/level/parserline.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/level/parserline.h" diff --git a/src/object/level/parserline.h b/src/object/level/parserline.h index e8da34f..9881ac7 100644 --- a/src/object/level/parserline.h +++ b/src/object/level/parserline.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file object/level/parserline.h diff --git a/src/object/level/parserparam.cpp b/src/object/level/parserparam.cpp index 4dc5742..aa5a963 100644 --- a/src/object/level/parserparam.cpp +++ b/src/object/level/parserparam.cpp @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ #include "object/level/parserline.h" diff --git a/src/object/level/parserparam.h b/src/object/level/parserparam.h index 93865a2..f59b40f 100644 --- a/src/object/level/parserparam.h +++ b/src/object/level/parserparam.h @@ -1,18 +1,21 @@ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch -// * -// * 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 http://www.gnu.org/licenses/. +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ /** * \file object/level/parserparam.h -- cgit v1.2.3-1-g7c22 From 63b6aa56b01d3764f87eb9f3ddcde68bc98f0e6b Mon Sep 17 00:00:00 2001 From: krzys-h Date: Wed, 15 Oct 2014 21:28:40 +0200 Subject: Fixed crash when colobot.ini doesn't exist --- src/common/profile.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/common/profile.cpp b/src/common/profile.cpp index 2fddd51..c43cd75 100644 --- a/src/common/profile.cpp +++ b/src/common/profile.cpp @@ -59,16 +59,21 @@ bool CProfile::Init() try { std::unique_ptr stream; + bool good = false; if (m_useCurrentDirectory) { - stream = std::unique_ptr(new std::ifstream("./colobot.ini")); + std::ifstream* inputStream = new std::ifstream("./colobot.ini"); + stream = std::unique_ptr(inputStream); + good = inputStream->good(); } else { - stream = std::unique_ptr(new CInputStream("colobot.ini")); + CInputStream* inputStream = new CInputStream("colobot.ini"); + stream = std::unique_ptr(inputStream); + good = inputStream->is_open(); } - if (stream->good()) + if (good) { bp::ini_parser::read_ini(*stream, m_propertyTree); } -- cgit v1.2.3-1-g7c22 From b85a41b42a2f95555ceaa985789ec7608085790c Mon Sep 17 00:00:00 2001 From: krzys-h Date: Wed, 15 Oct 2014 21:31:43 +0200 Subject: Also fixed the same thing in file writing code --- src/common/profile.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/common/profile.cpp b/src/common/profile.cpp index c43cd75..92fc1d6 100644 --- a/src/common/profile.cpp +++ b/src/common/profile.cpp @@ -59,7 +59,7 @@ bool CProfile::Init() try { std::unique_ptr stream; - bool good = false; + bool good; if (m_useCurrentDirectory) { std::ifstream* inputStream = new std::ifstream("./colobot.ini"); @@ -98,16 +98,21 @@ bool CProfile::Save() try { std::unique_ptr stream; + bool good; if (m_useCurrentDirectory) { - stream = std::unique_ptr(new std::ofstream("./colobot.ini")); + std::ofstream* outputStream = new std::ofstream("./colobot.ini"); + stream = std::unique_ptr(outputStream); + good = outputStream->good(); } else { - stream = std::unique_ptr(new COutputStream("colobot.ini")); + COutputStream* outputStream = new COutputStream("colobot.ini"); + stream = std::unique_ptr(outputStream); + good = outputStream->is_open(); } - if (stream->good()) + if (good) { bp::ini_parser::write_ini(*stream, m_propertyTree); } -- cgit v1.2.3-1-g7c22 From 7af92cc4ce04ecf5e9232bc89acee6311c0f6bc4 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sat, 18 Oct 2014 20:00:30 +0200 Subject: Added portable build flag --- CMakeLists.txt | 3 +++ src/app/app.cpp | 5 +++++ src/common/config.h.cmake | 2 ++ 3 files changed, 10 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6deed31..d0d1416 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -156,6 +156,9 @@ option(ASSERTS "Enable assert()s" ON) # Development build can be enabled/disabled regardless of build type option(DEV_BUILD "Enable development build (enables some debugging tools, local setting paths, etc.)" OFF) +# Portable build - load all data from current directory +option(PORTABLE "Portable build" OFF) + # Building tests can be enabled/disabled option(TESTS "Build tests" OFF) diff --git a/src/app/app.cpp b/src/app/app.cpp index ce6a6b5..adc7ea3 100644 --- a/src/app/app.cpp +++ b/src/app/app.cpp @@ -151,8 +151,13 @@ CApplication::CApplication() m_mouseButtonsState = 0; m_trackedKeys = 0; + #ifdef PORTABLE + m_dataPath = "./data"; + m_langPath = "./lang"; + #else m_dataPath = GetSystemUtils()->GetDataPath(); m_langPath = GetSystemUtils()->GetLangPath(); + #endif m_runSceneName = ""; m_runSceneRank = 0; diff --git a/src/common/config.h.cmake b/src/common/config.h.cmake index 98ccefe..44c1085 100644 --- a/src/common/config.h.cmake +++ b/src/common/config.h.cmake @@ -24,6 +24,8 @@ #define SDL_MAIN_FUNC main #endif +#cmakedefine PORTABLE @PORTABLE@ + #define COLOBOT_VERSION "@COLOBOT_VERSION_FULL@" #define COLOBOT_CODENAME "@COLOBOT_VERSION_CODENAME@" #define COLOBOT_FULLNAME "Colobot @COLOBOT_VERSION_CODENAME@" -- cgit v1.2.3-1-g7c22 From 83abb8ca8e74176d64944e9681d74aa11ef6cdf9 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sun, 19 Oct 2014 13:18:31 +0200 Subject: Fixed program saving --- src/ui/maindialog.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index 482d00b..7d1da0a 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -3527,7 +3527,7 @@ void CMainDialog::NameCreate() char c; int len, i, j; - GetLogger()->Debug("Creating new player\n"); + GetLogger()->Info("Creating new player\n"); pw = static_cast(m_interface->SearchControl(EVENT_WINDOW5)); if ( pw == 0 ) return; pe = static_cast(pw->SearchControl(EVENT_INTERFACE_NEDIT)); @@ -3564,13 +3564,16 @@ void CMainDialog::NameCreate() return; } - // TODO: _mkdir(m_savegameDir); // if does not exist yet! - + if(!CResourceManager::DirectoryExists(m_savegameDir)) + CResourceManager::CreateDirectory(m_savegameDir); + dir = m_savegameDir + "/" + name; if (!fs::exists(dir)) { fs::create_directories(dir); + if(!CResourceManager::DirectoryExists(dir)) + CResourceManager::CreateDirectory(dir); } else { -- cgit v1.2.3-1-g7c22 From 0fb1cb11d4675f17023de43b3ffed6314ce31e8c Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sun, 19 Oct 2014 13:33:19 +0200 Subject: Changed max and default font size Min font size is 9, max is now 24 (previously 21) Default size is now 19 (previously 9) Closes #330 --- src/object/robotmain.cpp | 2 +- src/ui/displayinfo.cpp | 18 +++++++++--------- src/ui/studio.cpp | 4 ++-- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp index 43b1bf9..2ca2409 100644 --- a/src/object/robotmain.cpp +++ b/src/object/robotmain.cpp @@ -715,7 +715,7 @@ CRobotMain::CRobotMain(CApplication* app, bool loadProfile) FlushDisplayInfo(); - m_fontSize = 9.0f; + m_fontSize = 19.0f; m_windowPos = Math::Point(0.15f, 0.17f); m_windowDim = Math::Point(0.70f, 0.66f); diff --git a/src/ui/displayinfo.cpp b/src/ui/displayinfo.cpp index d619f00..891c1ab 100644 --- a/src/ui/displayinfo.cpp +++ b/src/ui/displayinfo.cpp @@ -158,28 +158,28 @@ bool CDisplayInfo::EventProcess(const Event &event) { m_main->SetFontSize(9.0f); slider = static_cast(pw->SearchControl(EVENT_STUDIO_SIZE)); - if ( slider != 0 ) slider->SetVisibleValue((m_main->GetFontSize()-9.0f)/12.0f); + if ( slider != 0 ) slider->SetVisibleValue((m_main->GetFontSize()-9.0f)/15.0f); ViewDisplayInfo(); } if ( event.type == EVENT_HYPER_SIZE2 ) // size 2? { - m_main->SetFontSize(10.0f); + m_main->SetFontSize(14.0f); slider = static_cast(pw->SearchControl(EVENT_STUDIO_SIZE)); - if ( slider != 0 ) slider->SetVisibleValue((m_main->GetFontSize()-9.0f)/12.0f); + if ( slider != 0 ) slider->SetVisibleValue((m_main->GetFontSize()-9.0f)/15.0f); ViewDisplayInfo(); } if ( event.type == EVENT_HYPER_SIZE3 ) // size 3? { - m_main->SetFontSize(12.0f); + m_main->SetFontSize(19.0f); slider = static_cast(pw->SearchControl(EVENT_STUDIO_SIZE)); - if ( slider != 0 ) slider->SetVisibleValue((m_main->GetFontSize()-9.0f)/12.0f); + if ( slider != 0 ) slider->SetVisibleValue((m_main->GetFontSize()-9.0f)/15.0f); ViewDisplayInfo(); } if ( event.type == EVENT_HYPER_SIZE4 ) // size 4? { - m_main->SetFontSize(15.0f); + m_main->SetFontSize(24.0f); slider = static_cast(pw->SearchControl(EVENT_STUDIO_SIZE)); - if ( slider != 0 ) slider->SetVisibleValue((m_main->GetFontSize()-9.0f)/12.0f); + if ( slider != 0 ) slider->SetVisibleValue((m_main->GetFontSize()-9.0f)/15.0f); ViewDisplayInfo(); } @@ -187,7 +187,7 @@ bool CDisplayInfo::EventProcess(const Event &event) { slider = static_cast(pw->SearchControl(EVENT_STUDIO_SIZE)); if ( slider == 0 ) return false; - m_main->SetFontSize(9.0f+slider->GetVisibleValue()*12.0f); + m_main->SetFontSize(9.0f+slider->GetVisibleValue()*15.0f); ViewDisplayInfo(); } @@ -422,7 +422,7 @@ void CDisplayInfo::StartDisplayInfo(std::string filename, int index, bool bSoluc button->SetState(STATE_SHADOW); slider = pw->CreateSlider(pos, dim, 0, EVENT_STUDIO_SIZE); slider->SetState(STATE_SHADOW); - slider->SetVisibleValue((m_main->GetFontSize()-9.0f)/6.0f); + slider->SetVisibleValue((m_main->GetFontSize()-9.0f)/15.0f); button = pw->CreateButton(pos, dim, 61, EVENT_HYPER_COPY); button->SetState(STATE_SHADOW); HyperUpdate(); diff --git a/src/ui/studio.cpp b/src/ui/studio.cpp index 6f3145f..5400265 100644 --- a/src/ui/studio.cpp +++ b/src/ui/studio.cpp @@ -169,7 +169,7 @@ bool CStudio::EventProcess(const Event &event) { slider = static_cast< CSlider* >(pw->SearchControl(EVENT_STUDIO_SIZE)); if ( slider == nullptr ) return false; - m_main->SetFontSize(9.0f+slider->GetVisibleValue()*12.0f); + m_main->SetFontSize(9.0f+slider->GetVisibleValue()*15.0f); ViewEditScript(); } @@ -636,7 +636,7 @@ void CStudio::StartEditScript(CScript *script, std::string name, int rank) button->SetState(STATE_SHADOW); slider = pw->CreateSlider(pos, dim, 0, EVENT_STUDIO_SIZE); slider->SetState(STATE_SHADOW); - slider->SetVisibleValue((m_main->GetFontSize()-9.0f)/6.0f); + slider->SetVisibleValue((m_main->GetFontSize()-9.0f)/15.0f); pw->CreateGroup(pos, dim, 19, EVENT_LABEL1); // SatCom logo button = pw->CreateButton(pos, dim, 128+57, EVENT_STUDIO_TOOL); button->SetState(STATE_SHADOW); -- cgit v1.2.3-1-g7c22 From 9ea0b374082b651c9147e609aa4c8e2b8a83966a Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sun, 19 Oct 2014 14:21:55 +0200 Subject: Possible fix for #331 --- src/sound/oalsound/alsound.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/sound/oalsound/alsound.cpp b/src/sound/oalsound/alsound.cpp index 72cb557..960faac 100644 --- a/src/sound/oalsound/alsound.cpp +++ b/src/sound/oalsound/alsound.cpp @@ -297,6 +297,7 @@ bool ALSound::SearchFreeBuffer(Sound sound, int &channel, bool &bAlreadyLoaded) } delete chn; GetLogger()->Debug("Could not open additional channel to play sound!\n"); + break; } } } -- cgit v1.2.3-1-g7c22 From c001c46cb53b3aedc7cbb0670f1c475679cf3d3d Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sun, 19 Oct 2014 15:27:00 +0200 Subject: Small fix to 72b4228abe583cd953491575cf42bae17ff5e9d2 --- src/CBot/CBotStack.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/CBot/CBotStack.cpp b/src/CBot/CBotStack.cpp index 6e5e7d8..42d5617 100644 --- a/src/CBot/CBotStack.cpp +++ b/src/CBot/CBotStack.cpp @@ -790,7 +790,6 @@ void CBotStack::GetRunPos(const char* &FunctionName, int &start, int &end) while (p->m_next != NULL) { - if ( p->m_instr != NULL ) instr = p->m_instr; if ( p->m_bFunc == 1 && p->m_instr != NULL ) funct = p->m_instr; if ( p->m_next->m_prog != prog ) break ; @@ -800,7 +799,7 @@ void CBotStack::GetRunPos(const char* &FunctionName, int &start, int &end) } if ( p->m_instr != NULL ) instr = p->m_instr; - if ( p->m_bFunc == 1 ) funct = p->m_instr; + if ( p->m_bFunc == 1 && p->m_instr != NULL ) funct = p->m_instr; if ( funct == NULL ) return; @@ -829,16 +828,19 @@ CBotVar* CBotStack::GetStackVars(const char* &FunctionName, int level) if (p->m_next2 && p->m_next2->m_state != 0) p = p->m_next2 ; else p = p->m_next; } + // Now p is the highest element on the stack // descends upon the elements of block while ( p != NULL && !p->m_bBlock ) p = p->m_prev; + // Now p is on the beggining of the top block (with local variables) while ( p != NULL && level++ < 0 ) { p = p->m_prev; while ( p != NULL && !p->m_bBlock ) p = p->m_prev; } + // Now p is on the block "level" if ( p == NULL ) return NULL; -- cgit v1.2.3-1-g7c22 From d7ef0a1a5f7cee44eb8faaafefb7bb78e69be1f6 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sun, 19 Oct 2014 15:45:59 +0200 Subject: Implemented "Apply changes" button (issue #141) --- src/app/app.cpp | 6 ++--- src/ui/maindialog.cpp | 72 ++++++++++----------------------------------------- src/ui/maindialog.h | 2 -- 3 files changed, 16 insertions(+), 64 deletions(-) diff --git a/src/app/app.cpp b/src/app/app.cpp index adc7ea3..77930ed 100644 --- a/src/app/app.cpp +++ b/src/app/app.cpp @@ -116,7 +116,7 @@ CApplication::CApplication() m_debugModes = 0; m_customDataPath = false; - m_windowTitle = "COLOBOT GOLD"; + m_windowTitle = "COLOBOT: Gold Edition"; m_simulationSuspended = false; @@ -672,7 +672,7 @@ bool CApplication::ChangeVideoConfig(const Gfx::GLDeviceConfig &newConfig) std::string(SDL_GetError()) + std::string("\n") + std::string("Previous mode will be restored"); GetLogger()->Error(error.c_str()); - GetSystemUtils()->SystemDialog( SDT_ERROR, "COLOBT - Error", error); + GetSystemUtils()->SystemDialog( SDT_ERROR, "COLOBOT - Error", error); restore = true; ChangeVideoConfig(m_lastDeviceConfig); @@ -685,7 +685,7 @@ bool CApplication::ChangeVideoConfig(const Gfx::GLDeviceConfig &newConfig) std::string error = std::string("SDL error while restoring previous video mode:\n") + std::string(SDL_GetError()); GetLogger()->Error(error.c_str()); - GetSystemUtils()->SystemDialog( SDT_ERROR, "COLOBT - Fatal Error", error); + GetSystemUtils()->SystemDialog( SDT_ERROR, "COLOBOT - Fatal Error", error); // Fatal error, so post the quit event diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index 41e5bc2..c0656a6 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -2309,7 +2309,6 @@ bool CMainDialog::EventProcess(const Event &event) { switch( event.type ) { - case EVENT_LIST1: case EVENT_LIST2: UpdateApply(); break; @@ -2341,8 +2340,7 @@ bool CMainDialog::EventProcess(const Event &event) if ( pb == 0 ) break; pb->ClearState(STATE_PRESS); pb->ClearState(STATE_HILIGHT); - // TODO: uncomment when changing display is implemented - //ChangeDisplay(); + ChangeDisplay(); UpdateApply(); break; @@ -4745,43 +4743,6 @@ void CMainDialog::UpdateSceneResume(int rank) pe->SetText(name); } -// Updates the list of devices. - -void CMainDialog::UpdateDisplayDevice() -{ - CWindow* pw; - CList* pl; - char bufDevices[1000]; - //char bufModes[5000]; - int i, j; - - pw = static_cast(m_interface->SearchControl(EVENT_WINDOW5)); - if ( pw == 0 ) return; - pl = static_cast(pw->SearchControl(EVENT_LIST1)); - if ( pl == 0 ) return; - pl->Flush(); - - //bufModes[0] = 0; - /* TODO: remove device choice - m_engine->EnumDevices(bufDevices, 1000, - bufModes, 5000, - totalDevices, selectDevices, - totalModes, selectModes);*/ - - i = 0; - j = 0; - while ( bufDevices[i] != 0 ) - { - pl->SetItemName(j++, bufDevices+i); - while ( bufDevices[i++] != 0 ); - } - - pl->SetSelect(0); - pl->ShowSelect(false); - - m_setupSelDevice = 0; -} - // Updates the list of modes. void CMainDialog::UpdateDisplayMode() @@ -4817,31 +4778,30 @@ void CMainDialog::ChangeDisplay() CWindow* pw; CList* pl; CCheck* pc; - //char* device; - //char* mode; bool bFull; pw = static_cast(m_interface->SearchControl(EVENT_WINDOW5)); if ( pw == 0 ) return; - pl = static_cast(pw->SearchControl(EVENT_LIST1)); - if ( pl == 0 ) return; - m_setupSelDevice = pl->GetSelect(); - //device = pl->GetItemName(m_setupSelDevice); - pl = static_cast(pw->SearchControl(EVENT_LIST2)); if ( pl == 0 ) return; m_setupSelMode = pl->GetSelect(); - //mode = pl->GetItemName(m_setupSelMode); pc = static_cast(pw->SearchControl(EVENT_INTERFACE_FULL)); if ( pc == 0 ) return; bFull = pc->TestState(STATE_CHECK); m_setupFull = bFull; + + + std::vector modes; + m_app->GetVideoResolutionList(modes, true, true); + + Gfx::GLDeviceConfig config = m_app->GetVideoConfig(); + config.size = modes[m_setupSelMode]; + config.fullScreen = bFull; + m_app->ChangeVideoConfig(config); - // TODO: remove device choice - // m_engine->ChangeDevice(device, mode, bFull); - + if ( m_bSimulSetup ) { m_main->ChangeColor(); @@ -4859,18 +4819,13 @@ void CMainDialog::UpdateApply() CButton* pb; CList* pl; CCheck* pc; - int sel1, sel2; + int sel2; bool bFull; pw = static_cast(m_interface->SearchControl(EVENT_WINDOW5)); if ( pw == 0 ) return; pb = static_cast(pw->SearchControl(EVENT_INTERFACE_APPLY)); - if ( pb == 0 ) return; - - pl = static_cast(pw->SearchControl(EVENT_LIST1)); - if ( pl == 0 ) return; - sel1 = pl->GetSelect(); pl = static_cast(pw->SearchControl(EVENT_LIST2)); if ( pl == 0 ) return; @@ -4879,8 +4834,7 @@ void CMainDialog::UpdateApply() pc = static_cast(pw->SearchControl(EVENT_INTERFACE_FULL)); bFull = pc->TestState(STATE_CHECK); - if ( sel1 == m_setupSelDevice && - sel2 == m_setupSelMode && + if ( sel2 == m_setupSelMode && bFull == m_setupFull ) { pb->ClearState(STATE_ENABLE); diff --git a/src/ui/maindialog.h b/src/ui/maindialog.h index 1f15176..0cf8db4 100644 --- a/src/ui/maindialog.h +++ b/src/ui/maindialog.h @@ -172,7 +172,6 @@ protected: void UpdateSceneChap(int &chap); void UpdateSceneList(int chap, int &sel); void UpdateSceneResume(int rank); - void UpdateDisplayDevice(); void UpdateDisplayMode(); void ChangeDisplay(); void UpdateApply(); @@ -232,7 +231,6 @@ protected: int m_shotDelay; // number of frames before copy std::string m_shotName; // generate a file name - int m_setupSelDevice; int m_setupSelMode; bool m_setupFull; -- cgit v1.2.3-1-g7c22 From aea698c8a63a185e50c41bc0aff0e6988d8ad97e Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sun, 19 Oct 2014 16:20:10 +0200 Subject: Updated data submodule --- data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data b/data index e19711d..f071d24 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit e19711d1909b43d269e4a725d5a20d916180acfc +Subproject commit f071d2403aab82830a3df2b89e32122b57cba175 -- cgit v1.2.3-1-g7c22 From 02d23f8a7ff6ba45eed155a5b9697b467ae17638 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sun, 19 Oct 2014 16:26:16 +0200 Subject: Updated README with new dependencies --- INSTALL-MXE.md | 1 + INSTALL.md | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/INSTALL-MXE.md b/INSTALL-MXE.md index 89bec0e..d4b0bff 100644 --- a/INSTALL-MXE.md +++ b/INSTALL-MXE.md @@ -44,6 +44,7 @@ To cross-compile Colobot using MXE: * mingwrt * ogg * openal + * physfs * portaudio * sdl * sdl_image diff --git a/INSTALL.md b/INSTALL.md index ec7b152..fbf4ece 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -115,11 +115,12 @@ You will need: * libvorbis >= 1.3.2 * libogg >= 1.3.0 * OpenAL (OpenAL-Soft) >= 1.13 + * PhysFS * po4a >= 0.45 (to generate translated data files) On Ubuntu (and probably any other Debian-based system), you can use the following command to install all required packages: ``` - $ apt-get install build-essential cmake libsdl1.2debian libsdl1.2-dev libsdl-image1.2 libsdl-image1.2-dev libsdl-ttf2.0-0 libsdl-ttf2.0-dev libsdl-mixer1.2 libsdl-mixer1.2-dev libsndfile1-dev libvorbis-dev libogg-dev libpng12-dev libglew-dev libopenal-dev libboost-dev libboost-system-dev libboost-filesystem-dev libboost-regex-dev gettext git po4a + $ apt-get install build-essential cmake libsdl1.2debian libsdl1.2-dev libsdl-image1.2 libsdl-image1.2-dev libsdl-ttf2.0-0 libsdl-ttf2.0-dev libsdl-mixer1.2 libsdl-mixer1.2-dev libsndfile1-dev libvorbis-dev libogg-dev libpng12-dev libglew-dev libopenal-dev libboost-dev libboost-system-dev libboost-filesystem-dev libboost-regex-dev libphysfs-dev gettext git po4a ``` Make sure you install the packages along with header files (often distributed in separate *-dev packages). If you miss any requirements, -- cgit v1.2.3-1-g7c22 From cf7be276dcfac10891422773cee79da9a5e09d6c Mon Sep 17 00:00:00 2001 From: krzys-h Date: Mon, 20 Oct 2014 20:44:57 +0200 Subject: Possibly fixed goto() by changing safety margin TODO: More testing Closes #326 --- src/object/task/taskgoto.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/object/task/taskgoto.cpp b/src/object/task/taskgoto.cpp index 2ddb92e..46629e0 100644 --- a/src/object/task/taskgoto.cpp +++ b/src/object/task/taskgoto.cpp @@ -37,7 +37,12 @@ const float FLY_DIST_GROUND = 80.0f; // minimum distance to remain on the ground const float FLY_DEF_HEIGHT = 50.0f; // default flying height -const float BM_DIM_STEP = 5.0f; + +// Settings that define goto() accuracy: +const float BM_DIM_STEP = 5.0f; // Size of one pixel on the bitmap. Setting 5 means that 5x5 square (in game units) will be represented by 1 px on the bitmap. Decreasing this value will make a bigger bitmap, and may increase accuracy. TODO: Check how it actually impacts goto() accuracy +const float BEAM_ACCURACY = 5.0f; // higher value = more accurate, but slower +const float SAFETY_MARGIN = 0.5f; // Smallest distance between two objects. Smaller = less "no route to destination", but higher probability of collisions between objects. +// Changing SAFETY_MARGIN (old value was 4.0f) seems to have fixed many issues with goto(). TODO: maybe we could make it even smaller? Did changing it introduce any new bugs? @@ -1739,7 +1744,7 @@ Error CTaskGoto::BeamSearch(const Math::Vector &start, const Math::Vector &goal, m_bmStep ++; len = Math::DistanceProjected(start, goal); - step = len/5.0f; + step = len/BEAM_ACCURACY; if ( step < BM_DIM_STEP*2.1f ) step = BM_DIM_STEP*2.1f; if ( step > 20.0f ) step = 20.0f; nbIter = 200; // in order not to lower the framerate @@ -1969,7 +1974,7 @@ void CTaskGoto::BitmapObject() } if ( type == OBJECT_PARA ) oRadius -= 2.0f; - BitmapSetCircle(oPos, oRadius+iRadius+4.0f); + BitmapSetCircle(oPos, oRadius+iRadius+SAFETY_MARGIN); } } } -- cgit v1.2.3-1-g7c22 From c0ac60e4facfc9d7a588dd2a23fe548b7212975b Mon Sep 17 00:00:00 2001 From: krzys-h Date: Mon, 20 Oct 2014 21:15:39 +0200 Subject: Fixed save directories in things not yet refactored to use PHYSFS --- src/common/resources/resourcemanager.cpp | 8 ++++++ src/common/resources/resourcemanager.h | 1 + src/object/robotmain.cpp | 10 ++++++-- src/object/robotmain.h | 1 + src/ui/maindialog.cpp | 42 ++++++++++++++++++-------------- src/ui/maindialog.h | 3 ++- src/ui/studio.cpp | 2 +- 7 files changed, 45 insertions(+), 22 deletions(-) diff --git a/src/common/resources/resourcemanager.cpp b/src/common/resources/resourcemanager.cpp index 21aceec..42f9634 100644 --- a/src/common/resources/resourcemanager.cpp +++ b/src/common/resources/resourcemanager.cpp @@ -97,6 +97,14 @@ bool CResourceManager::SetSaveLocation(const std::string &location) return false; } +std::string CResourceManager::GetSaveLocation() +{ + if(PHYSFS_isInit()) { + return PHYSFS_getWriteDir(); + } + return ""; +} + SDL_RWops* CResourceManager::GetSDLFileHandler(const std::string &filename) { diff --git a/src/common/resources/resourcemanager.h b/src/common/resources/resourcemanager.h index e949746..730cf3e 100644 --- a/src/common/resources/resourcemanager.h +++ b/src/common/resources/resourcemanager.h @@ -35,6 +35,7 @@ public: static bool RemoveLocation(const std::string &location); static bool SetSaveLocation(const std::string &location); + static std::string GetSaveLocation(); static SDL_RWops* GetSDLFileHandler(const std::string &filename); static CSNDFile* GetSNDFileHandler(const std::string &filename); diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp index 91e2d61..6ca1da1 100644 --- a/src/object/robotmain.cpp +++ b/src/object/robotmain.cpp @@ -5427,7 +5427,7 @@ void CRobotMain::LoadOneScript(CObject *obj, int &nbError) char filename[MAX_FNAME]; sprintf(filename, "%s/%s/%c%.3d%.3d%.1d.txt", - GetSavegameDir(), m_gamerName.c_str(), name[0], rank, objRank, i); + GetPHYSFSSavegameDir(), m_gamerName.c_str(), name[0], rank, objRank, i); brain->ReadProgram(i, filename); if (!brain->GetCompile(i)) nbError++; } @@ -5497,7 +5497,7 @@ void CRobotMain::SaveOneScript(CObject *obj) { char filename[MAX_FNAME]; sprintf(filename, "%s/%s/%c%.3d%.3d%.1d.txt", - GetSavegameDir(), m_gamerName.c_str(), name[0], rank, objRank, i); + GetPHYSFSSavegameDir(), m_gamerName.c_str(), name[0], rank, objRank, i); brain->WriteProgram(i, filename); } } @@ -6623,6 +6623,12 @@ bool CRobotMain::GetRadar() return false; } +//TODO: Use PHYSFS everywhere +const char* CRobotMain::GetPHYSFSSavegameDir() +{ + return m_dialog->GetPHYSFSSavegameDir().c_str(); +} + const char* CRobotMain::GetSavegameDir() { return m_dialog->GetSavegameDir().c_str(); diff --git a/src/object/robotmain.h b/src/object/robotmain.h index 882265c..a55318d 100644 --- a/src/object/robotmain.h +++ b/src/object/robotmain.h @@ -329,6 +329,7 @@ public: bool GetSceneSoluce(); bool GetShowAll(); bool GetRadar(); + const char* GetPHYSFSSavegameDir(); const char* GetSavegameDir(); const char* GetPublicDir(); const char* GetFilesDir(); diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index dec4586..3857d2e 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -182,8 +182,8 @@ CMainDialog::CMainDialog() } m_savegameDir = "savegame"; - m_publicDir = "program"; - m_filesDir = m_savegameDir; + m_publicDir = CResourceManager::GetSaveLocation()+"/program"; //TODO: Refactor to use PHYSFS + m_filesDir = CResourceManager::GetSaveLocation()+"/files"; //TODO: Refactor to use PHYSFS m_setupFull = m_app->GetVideoConfig().fullScreen; @@ -3311,13 +3311,13 @@ void CMainDialog::ReadNameList() try { - if (! fs::exists(m_savegameDir) && fs::is_directory(m_savegameDir)) + if (! fs::exists(GetSavegameDir()) && fs::is_directory(GetSavegameDir())) { GetLogger()->Error("Savegame dir does not exist %s\n",dir); } else { - fs::directory_iterator dirIt(m_savegameDir), dirEndIt; + fs::directory_iterator dirIt(GetSavegameDir()), dirEndIt; for (; dirIt != dirEndIt; ++dirIt) { @@ -3563,15 +3563,15 @@ void CMainDialog::NameCreate() } - if(!CResourceManager::DirectoryExists(m_savegameDir)) - CResourceManager::CreateDirectory(m_savegameDir); + if(!CResourceManager::DirectoryExists(GetPHYSFSSavegameDir())) + CResourceManager::CreateDirectory(GetPHYSFSSavegameDir()); - dir = m_savegameDir + "/" + name; + dir = GetSavegameDir() + "/" + name; if (!fs::exists(dir)) { fs::create_directories(dir); - if(!CResourceManager::DirectoryExists(dir)) - CResourceManager::CreateDirectory(dir); + if(!CResourceManager::DirectoryExists(GetPHYSFSSavegameDir()+"/"+name)) + CResourceManager::CreateDirectory(GetPHYSFSSavegameDir()+"/"+name); } else { @@ -3638,7 +3638,7 @@ void CMainDialog::NameDelete() gamer = pl->GetItemName(sel); // Deletes all the contents of the file. - sprintf(dir, "%s/%s", m_savegameDir.c_str(), gamer); + sprintf(dir, "%s/%s", GetSavegameDir().c_str(), gamer); if ( !RemoveDir(dir) ) { m_sound->Play(SOUND_TZOING); @@ -3951,7 +3951,7 @@ bool CMainDialog::IsIOReadScene() { fs::directory_iterator end_iter; - fs::path saveDir(m_savegameDir + "/" + m_main->GetGamerName()); + fs::path saveDir(GetSavegameDir() + "/" + m_main->GetGamerName()); if (fs::exists(saveDir) && fs::is_directory(saveDir)) { for( fs::directory_iterator dir_iter(saveDir) ; dir_iter != end_iter ; ++dir_iter) @@ -4048,7 +4048,7 @@ void CMainDialog::IOReadList() pl->Flush(); - fs::path saveDir(m_savegameDir + "/" + m_main->GetGamerName()); + fs::path saveDir(GetSavegameDir() + "/" + m_main->GetGamerName()); m_saveList.clear(); if (fs::exists(saveDir) && fs::is_directory(saveDir)) @@ -4225,7 +4225,7 @@ bool CMainDialog::IOWriteScene() pe->GetText(info, 100); if (static_cast(sel) >= m_saveList.size()) { - dir = fs::path(m_savegameDir) / m_main->GetGamerName() / ("save" + clearName(info)); + dir = fs::path(GetSavegameDir()) / m_main->GetGamerName() / ("save" + clearName(info)); } else { @@ -6001,7 +6001,13 @@ bool CMainDialog::GetSceneSoluce() // Returns the name of the folder to save. -std::string & CMainDialog::GetSavegameDir() +std::string CMainDialog::GetSavegameDir() +{ + return CResourceManager::GetSaveLocation()+"/"+m_savegameDir; +} + +//TODO: Use PHYSFS everywhere +std::string & CMainDialog::GetPHYSFSSavegameDir() { return m_savegameDir; } @@ -6059,7 +6065,7 @@ void CMainDialog::WriteGamerPerso(char *gamer) char filename[100]; char line[100]; - sprintf(filename, "%s/%s/face.gam", m_savegameDir.c_str(), gamer); + sprintf(filename, "%s/%s/face.gam", GetSavegameDir().c_str(), gamer); file = fopen(filename, "w"); if ( file == NULL ) return; @@ -6092,7 +6098,7 @@ void CMainDialog::ReadGamerPerso(char *gamer) m_perso.face = 0; DefPerso(); - sprintf(filename, "%s/%s/face.gam", m_savegameDir.c_str(), gamer); + sprintf(filename, "%s/%s/face.gam", GetSavegameDir().c_str(), gamer); file = fopen(filename, "r"); if ( file == NULL ) return; @@ -6201,7 +6207,7 @@ bool CMainDialog::ReadGamerInfo() m_sceneInfo[i].bPassed = false; } - sprintf(line, "%s/%s/%s.gam", m_savegameDir.c_str(), m_main->GetGamerName(), m_sceneName); + sprintf(line, "%s/%s/%s.gam", GetSavegameDir().c_str(), m_main->GetGamerName(), m_sceneName); file = fopen(line, "r"); if ( file == NULL ) return false; @@ -6237,7 +6243,7 @@ bool CMainDialog::WriteGamerInfo() char line[100]; int i; - sprintf(line, "%s/%s/%s.gam", m_savegameDir.c_str(), m_main->GetGamerName(), m_sceneName); + sprintf(line, "%s/%s/%s.gam", GetSavegameDir().c_str(), m_main->GetGamerName(), m_sceneName); file = fopen(line, "w"); if ( file == NULL ) return false; diff --git a/src/ui/maindialog.h b/src/ui/maindialog.h index 390aa31..1ff9045 100644 --- a/src/ui/maindialog.h +++ b/src/ui/maindialog.h @@ -91,7 +91,8 @@ public: int GetSceneRank(); const char* GetSceneDir(); bool GetSceneSoluce(); - std::string & GetSavegameDir(); + std::string GetSavegameDir(); + std::string & GetPHYSFSSavegameDir(); std::string & GetPublicDir(); bool GetTooltip(); diff --git a/src/ui/studio.cpp b/src/ui/studio.cpp index abe4e5c..01ffd6a 100644 --- a/src/ui/studio.cpp +++ b/src/ui/studio.cpp @@ -1533,7 +1533,7 @@ std::string CStudio::SearchDirectory(bool bCreate) } else { - sprintf(dir, "%s/%s/Program/", m_main->GetSavegameDir(), m_main->GetGamerName()); + sprintf(dir, "%s/%s/Program/", m_main->GetPHYSFSSavegameDir(), m_main->GetGamerName()); } fs::path path = fs::path(dir); -- cgit v1.2.3-1-g7c22 From 97b7c0cab173bd5556c831ad60adc146911416d0 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Mon, 20 Oct 2014 21:54:52 +0200 Subject: Fixed map turning gray after resizing window --- src/app/app.cpp | 1 + src/graphics/engine/engine.cpp | 2 +- src/object/robotmain.cpp | 14 ++++++++++++++ src/object/robotmain.h | 2 ++ src/ui/maindialog.cpp | 7 ------- 5 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/app/app.cpp b/src/app/app.cpp index 06e3f01..3ea0f5f 100644 --- a/src/app/app.cpp +++ b/src/app/app.cpp @@ -725,6 +725,7 @@ bool CApplication::ChangeVideoConfig(const Gfx::GLDeviceConfig &newConfig) ( static_cast(m_device) )->ConfigChanged(m_deviceConfig); m_engine->ResetAfterDeviceChanged(); + m_robotMain->ResetAfterDeviceChanged(); return true; } diff --git a/src/graphics/engine/engine.cpp b/src/graphics/engine/engine.cpp index 2c412ec..db702b7 100644 --- a/src/graphics/engine/engine.cpp +++ b/src/graphics/engine/engine.cpp @@ -320,7 +320,7 @@ void CEngine::Destroy() void CEngine::ResetAfterDeviceChanged() { - m_size = m_app->GetVideoConfig().size;; + m_size = m_app->GetVideoConfig().size; m_text->FlushCache(); diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp index 6ca1da1..1ad3c6d 100644 --- a/src/object/robotmain.cpp +++ b/src/object/robotmain.cpp @@ -959,6 +959,20 @@ void CRobotMain::LoadSceneOnStart(const std::string& name, int rank) ChangePhase(PHASE_LOADING); } +void CRobotMain::ResetAfterDeviceChanged() +{ + if(m_phase == PHASE_SETUPds || + m_phase == PHASE_SETUPgs || + m_phase == PHASE_SETUPps || + m_phase == PHASE_SETUPcs || + m_phase == PHASE_SETUPss || + m_phase == PHASE_SIMUL || + m_phase == PHASE_WIN || + m_phase == PHASE_LOST) + ChangeColor(); + UpdateMap(); +} + //! Creates the file colobot.ini at the first time void CRobotMain::CreateIni() diff --git a/src/object/robotmain.h b/src/object/robotmain.h index a55318d..2c819cc 100644 --- a/src/object/robotmain.h +++ b/src/object/robotmain.h @@ -210,6 +210,8 @@ public: void LoadSceneOnStart(const std::string& name, int rank); void CreateIni(); + + void ResetAfterDeviceChanged(); //! Sets the default input bindings (key and axes) void SetDefaultInputBindings(); diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index 3857d2e..cc0c8ec 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -4713,13 +4713,6 @@ void CMainDialog::ChangeDisplay() config.size = modes[m_setupSelMode]; config.fullScreen = bFull; m_app->ChangeVideoConfig(config); - - - if ( m_bSimulSetup ) - { - m_main->ChangeColor(); - m_main->UpdateMap(); - } } -- cgit v1.2.3-1-g7c22 From 1ab5746ca7500e1f759774497d75d9a9b23ecef7 Mon Sep 17 00:00:00 2001 From: CoLoRaptor Date: Tue, 21 Oct 2014 22:22:32 +0200 Subject: Disabled active window resizing that crashes in some software/hardware configurations --- src/app/app.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/app.cpp b/src/app/app.cpp index 3ea0f5f..1b53a28 100644 --- a/src/app/app.cpp +++ b/src/app/app.cpp @@ -586,8 +586,8 @@ bool CApplication::CreateVideoSurface() if (m_deviceConfig.fullScreen) videoFlags |= SDL_FULLSCREEN; - if (m_deviceConfig.resizeable) - videoFlags |= SDL_RESIZABLE; + //if (m_deviceConfig.resizeable) + // videoFlags |= SDL_RESIZABLE; // Set OpenGL attributes -- cgit v1.2.3-1-g7c22 From d3a722a0c56119f13d5ff3e68e9f4560c7924788 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Kapu=C5=9Bci=C5=84ski?= Date: Wed, 22 Oct 2014 00:53:35 +0200 Subject: Improved VBO support detection --- src/graphics/opengl/gldevice.cpp | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/graphics/opengl/gldevice.cpp b/src/graphics/opengl/gldevice.cpp index 69d295d..0ae6f88 100644 --- a/src/graphics/opengl/gldevice.cpp +++ b/src/graphics/opengl/gldevice.cpp @@ -217,12 +217,25 @@ bool CGLDevice::Create() else { GetLogger()->Info("Auto-detecting VBO support\n"); - m_vboAvailable = glewIsSupported("GL_ARB_vertex_buffer_object"); + + // extracting OpenGL version + const char *version = reinterpret_cast(glGetString(GL_VERSION)); + int major = 0, minor = 0; - if (m_vboAvailable) - GetLogger()->Info("Detected ARB_vertex_buffer_object extension - using VBOs\n"); + sscanf(version, "%d.%d", &major, &minor); + + // VBO is core OpenGL feature since 1.5 + // everything below 1.5 means no VBO support + if(major > 1 || minor > 4) + { + GetLogger()->Info("OpenGL %d.%d, VBO supported\n", major, minor); + m_vboAvailable = true; + } else - GetLogger()->Info("No ARB_vertex_buffer_object extension present - using display lists\n"); + { + GetLogger()->Info("OpenGL %d.%d, VBO not supported\n", major, minor); + m_vboAvailable = false; + } } } -- cgit v1.2.3-1-g7c22 From d019a4990f2e2da71555daf085a3e09c92085fa5 Mon Sep 17 00:00:00 2001 From: Victor Vieux Date: Tue, 21 Oct 2014 21:44:17 -0700 Subject: add option to disable blood --- src/common/event.h | 1 + src/common/restext.cpp | 1 + src/graphics/engine/camera.cpp | 10 ++++++++++ src/graphics/engine/camera.h | 4 ++++ src/graphics/engine/pyro.cpp | 6 +++--- src/ui/maindialog.cpp | 23 +++++++++++++++++++++++ src/ui/maindialog.h | 1 + 7 files changed, 43 insertions(+), 3 deletions(-) diff --git a/src/common/event.h b/src/common/event.h index c5eb615..1df675e 100644 --- a/src/common/event.h +++ b/src/common/event.h @@ -239,6 +239,7 @@ enum EventType EVENT_INTERFACE_EDITMODE= 476, EVENT_INTERFACE_EDITVALUE= 477, EVENT_INTERFACE_SOLUCE4 = 478, + EVENT_INTERFACE_BLOOD = 479, EVENT_INTERFACE_KINFO1 = 500, EVENT_INTERFACE_KINFO2 = 501, diff --git a/src/common/restext.cpp b/src/common/restext.cpp index b63160d..bc488b8 100644 --- a/src/common/restext.cpp +++ b/src/common/restext.cpp @@ -199,6 +199,7 @@ void InitializeRestext() stringsEvent[EVENT_INTERFACE_EDITMODE] = "Automatic indent\\When program editing"; stringsEvent[EVENT_INTERFACE_EDITVALUE] = "Big indent\\Indent 2 or 4 spaces per level defined by braces"; stringsEvent[EVENT_INTERFACE_SOLUCE4] = "Access to solutions\\Show program \"4: Solution\" in the exercises"; + stringsEvent[EVENT_INTERFACE_BLOOD] = "Blood\\Display blood when the astronaut or the alien queen is hit"; stringsEvent[EVENT_INTERFACE_KDEF] = "Standard controls\\Standard key functions"; stringsEvent[EVENT_INTERFACE_KLEFT] = "Turn left\\turns the bot to the left"; diff --git a/src/graphics/engine/camera.cpp b/src/graphics/engine/camera.cpp index fedc70a..c37ed39 100644 --- a/src/graphics/engine/camera.cpp +++ b/src/graphics/engine/camera.cpp @@ -137,6 +137,7 @@ CCamera::CCamera() m_scriptLookat = Math::Vector(0.0f, 0.0f, 0.0f); m_effect = true; + m_blood = true; m_cameraScroll = true; m_cameraInvertX = false; m_cameraInvertY = false; @@ -151,6 +152,15 @@ void CCamera::SetEffect(bool enable) m_effect = enable; } +void CCamera::SetBlood(bool enable) +{ + m_blood = enable; +} + +bool CCamera::GetBlood() { + return m_blood; +} + void CCamera::SetCameraScroll(bool scroll) { m_cameraScroll = scroll; diff --git a/src/graphics/engine/camera.h b/src/graphics/engine/camera.h index 6d94dad..699593c 100644 --- a/src/graphics/engine/camera.h +++ b/src/graphics/engine/camera.h @@ -198,6 +198,8 @@ public: void SetScriptLookat(Math::Vector lookat); void SetEffect(bool enable); + void SetBlood(bool enable); + bool GetBlood(); void SetCameraScroll(bool scroll); void SetCameraInvertX(bool invert); void SetCameraInvertY(bool invert); @@ -379,6 +381,8 @@ protected: //! Shocks if explosion? bool m_effect; + //! Blood? + bool m_blood; //! Scroll in the edges? bool m_cameraScroll; //! X inversion in the edges? diff --git a/src/graphics/engine/pyro.cpp b/src/graphics/engine/pyro.cpp index d3e0405..d7edf51 100644 --- a/src/graphics/engine/pyro.cpp +++ b/src/graphics/engine/pyro.cpp @@ -312,7 +312,7 @@ bool CPyro::Create(PyroType type, CObject* obj, float force) } if ( m_type == PT_SHOTH ) { - if ( m_object->GetSelect() ) + if ( m_camera->GetBlood() && m_object->GetSelect() ) { m_camera->StartOver(CAM_OVER_EFFECT_BLOOD, m_pos, force); } @@ -672,7 +672,7 @@ bool CPyro::EventProcess(const Event &event) } } - if ( m_type == PT_SHOTH && + if ( m_camera->GetBlood() && m_type == PT_SHOTH && m_lastParticle+m_engine->ParticleAdapt(0.05f) <= m_time ) { m_lastParticle = m_time; @@ -694,7 +694,7 @@ bool CPyro::EventProcess(const Event &event) } } - if ( m_type == PT_SHOTM && + if ( m_camera->GetBlood() && m_type == PT_SHOTM && m_lastParticle+m_engine->ParticleAdapt(0.05f) <= m_time ) { m_lastParticle = m_time; diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index 11f8f4a..f63d22e 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -162,6 +162,7 @@ CMainDialog::CMainDialog() m_bCameraInvertX = false; m_bCameraInvertY = false; m_bEffect = true; + m_bBlood = true; m_shotDelay = 0; m_glintMouse = Math::Point(0.0f, 0.0f); @@ -1223,6 +1224,9 @@ void CMainDialog::ChangePhase(Phase phase) pos.y -= 0.048f; pc = pw->CreateCheck(pos, ddim, -1, EVENT_INTERFACE_EFFECT); pc->SetState(STATE_SHADOW); + pos.y -= 0.048f; + pc = pw->CreateCheck(pos, ddim, -1, EVENT_INTERFACE_BLOOD); + pc->SetState(STATE_SHADOW); //? pos.y -= 0.048f; //? pc = pw->CreateCheck(pos, ddim, -1, EVENT_INTERFACE_NICERST); //? pc->SetState(STATE_SHADOW); @@ -2554,6 +2558,13 @@ bool CMainDialog::EventProcess(const Event &event) UpdateSetupButtons(); break; + case EVENT_INTERFACE_BLOOD: + m_bBlood = !m_bBlood; + m_camera->SetBlood(m_bBlood); + ChangeSetupButtons(); + UpdateSetupButtons(); + break; + default: break; } @@ -5011,6 +5022,12 @@ void CMainDialog::UpdateSetupButtons() pc->SetState(STATE_CHECK, m_bEffect); } + pc = static_cast(pw->SearchControl(EVENT_INTERFACE_BLOOD)); + if ( pc != 0 ) + { + pc->SetState(STATE_CHECK, m_bBlood); + } + pc = static_cast(pw->SearchControl(EVENT_INTERFACE_SHADOW)); if ( pc != 0 ) { @@ -5198,6 +5215,7 @@ void CMainDialog::SetupMemorize() GetProfile().SetLocalProfileInt("Setup", "CameraInvertX", m_bCameraInvertX); GetProfile().SetLocalProfileInt("Setup", "CameraInvertY", m_bCameraInvertY); GetProfile().SetLocalProfileInt("Setup", "InterfaceEffect", m_bEffect); + GetProfile().SetLocalProfileInt("Setup", "Blood", m_bBlood); GetProfile().SetLocalProfileInt("Setup", "GroundShadow", m_engine->GetShadow()); GetProfile().SetLocalProfileInt("Setup", "GroundSpot", m_engine->GetGroundSpot()); GetProfile().SetLocalProfileInt("Setup", "ObjectDirty", m_engine->GetDirty()); @@ -5356,6 +5374,11 @@ void CMainDialog::SetupRecall() m_bEffect = iValue; } + if ( GetProfile().GetLocalProfileInt("Setup", "Blood", iValue) ) + { + m_bBlood = iValue; + } + if ( GetProfile().GetLocalProfileInt("Setup", "GroundShadow", iValue) ) { m_engine->SetShadow(iValue); diff --git a/src/ui/maindialog.h b/src/ui/maindialog.h index 444a568..0ab7897 100644 --- a/src/ui/maindialog.h +++ b/src/ui/maindialog.h @@ -244,6 +244,7 @@ protected: bool m_bCameraInvertX; // for CCamera bool m_bCameraInvertY; // for CCamera bool m_bEffect; // for CCamera + bool m_bBlood; // for CCamera Math::Point m_glintMouse; float m_glintTime; -- cgit v1.2.3-1-g7c22 From 3c299f66f79dbe6c73116eb750757ee25b95dc5a Mon Sep 17 00:00:00 2001 From: krzys-h Date: Wed, 22 Oct 2014 17:55:34 +0200 Subject: Updated translations --- po/colobot.pot | 3 +++ po/de.po | 3 +++ po/fr.po | 3 +++ po/pl.po | 3 +++ po/ru.po | 3 +++ 5 files changed, 15 insertions(+) diff --git a/po/colobot.pot b/po/colobot.pot index 43a73b9..eac81e7 100644 --- a/po/colobot.pot +++ b/po/colobot.pot @@ -402,6 +402,9 @@ msgstr "" msgid "Access to solutions\\Show program \"4: Solution\" in the exercises" msgstr "" +msgid "Blood\\Display blood when the astronaut or the alien queen is hit" +msgstr "" + msgid "Standard controls\\Standard key functions" msgstr "" diff --git a/po/de.po b/po/de.po index c5dfb0c..fe44ba0 100644 --- a/po/de.po +++ b/po/de.po @@ -181,6 +181,9 @@ msgstr "Einrücken mit 4 Leerstellen\\Einrücken mit 2 oder 4 Leerstellen" msgid "Black box" msgstr "Flugschreiber" +msgid "Blood\\Display blood when the astronaut or the alien queen is hit" +msgstr "" + msgid "Blue" msgstr "Blau" diff --git a/po/fr.po b/po/fr.po index 78683e0..f9dabcc 100644 --- a/po/fr.po +++ b/po/fr.po @@ -176,6 +176,9 @@ msgstr "Grande indentation\\Indente avec 2 ou 4 espaces" msgid "Black box" msgstr "Boîte noire" +msgid "Blood\\Display blood when the astronaut or the alien queen is hit" +msgstr "" + msgid "Blue" msgstr "Bleu" diff --git a/po/pl.po b/po/pl.po index 6468e89..2c7ae2c 100644 --- a/po/pl.po +++ b/po/pl.po @@ -183,6 +183,9 @@ msgstr "" msgid "Black box" msgstr "Czarna skrzynka" +msgid "Blood\\Display blood when the astronaut or the alien queen is hit" +msgstr "Krew\\Pokazuj krew gdy astronauta lub Królowa Obcych zostaje trafiona" + msgid "Blue" msgstr "Niebieski" diff --git a/po/ru.po b/po/ru.po index 9a1af23..76bc87b 100644 --- a/po/ru.po +++ b/po/ru.po @@ -176,6 +176,9 @@ msgstr "Большой отступ\\Отступать на 2 или 4 проб msgid "Black box" msgstr "Черный ящик" +msgid "Blood\\Display blood when the astronaut or the alien queen is hit" +msgstr "" + msgid "Blue" msgstr "Синий" -- cgit v1.2.3-1-g7c22 From 5e66677dcec088f7bb458f235827e9fda70bb9c0 Mon Sep 17 00:00:00 2001 From: Victor Vieux Date: Wed, 22 Oct 2014 13:29:07 -0700 Subject: update some french translations --- po/fr.po | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/po/fr.po b/po/fr.po index f9dabcc..136d445 100644 --- a/po/fr.po +++ b/po/fr.po @@ -177,7 +177,7 @@ msgid "Black box" msgstr "Boîte noire" msgid "Blood\\Display blood when the astronaut or the alien queen is hit" -msgstr "" +msgstr "Sang\\Afficher du sang quand le cosmonaute ou la pondeuse sont touchés" msgid "Blue" msgstr "Bleu" @@ -204,7 +204,7 @@ msgid "Build a derrick" msgstr "Construit un derrick" msgid "Build a destroyer" -msgstr "" +msgstr "Construit un destructeur" msgid "Build a exchange post" msgstr "Construit une borne d'information" @@ -345,7 +345,7 @@ msgid "Can not produce not researched object" msgstr "" msgid "Can not produce this object in this mission" -msgstr "" +msgstr "Impossible de créer cet objet dans cette mission" msgid "Can't open file" msgstr "Ouverture du fichier impossible" @@ -453,7 +453,7 @@ msgid "Descend\\Reduces the power of the jet" msgstr "Descendre\\Diminuer la puissance du réacteur" msgid "Destroy" -msgstr "" +msgstr "Détruire" msgid "Destroy the building" msgstr "Démolit le bâtiment" @@ -535,7 +535,7 @@ msgid "Exit film\\Film at the exit of exercises" msgstr "Retour animé\\Retour animé dans les exercices" msgid "Explode (\\key action;)" -msgstr "" +msgstr "Exploser (\\key action;)" msgid "Explosive" msgstr "Explosif" @@ -704,7 +704,7 @@ msgid "Inappropriate cell type" msgstr "Pas le bon type de pile" msgid "Inappropriate object" -msgstr "" +msgstr "Pas le bon objet" msgid "Incorrect index type" msgstr "Mauvais type d'index" @@ -743,7 +743,7 @@ msgid "Instructions\\Shows the instructions for the current mission" msgstr "Instructions mission\\Marche à suivre" msgid "Internal error - tell the developers" -msgstr "" +msgstr "Erreur interne - contacter les développeurs" msgid "Jet temperature" msgstr "Température du réacteur" -- cgit v1.2.3-1-g7c22 From 1aebe8af0314c4da7cd6bd01bae13cc34dde102c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Kapu=C5=9Bci=C5=84ski?= Date: Fri, 24 Oct 2014 00:29:26 +0200 Subject: Added support for VBO in OpenGL older than 1.5 if ARB extension is present --- src/graphics/opengl/gldevice.cpp | 146 ++++++++++++++++++++++++++++++--------- src/graphics/opengl/gldevice.h | 14 ++++ 2 files changed, 129 insertions(+), 31 deletions(-) diff --git a/src/graphics/opengl/gldevice.cpp b/src/graphics/opengl/gldevice.cpp index 0ae6f88..032fa24 100644 --- a/src/graphics/opengl/gldevice.cpp +++ b/src/graphics/opengl/gldevice.cpp @@ -68,6 +68,7 @@ CGLDevice::CGLDevice(const GLDeviceConfig &config) m_lastVboId = 0; m_multitextureAvailable = false; m_vboAvailable = false; + m_vertexBufferType = VBT_DISPLAY_LIST; } @@ -207,12 +208,12 @@ bool CGLDevice::Create() if (m_config.vboMode == VBO_MODE_ENABLE) { GetLogger()->Info("VBO enabled by override - using VBOs\n"); - m_vboAvailable = true; + SetVertexBufferType(VBT_VBO_CORE); } else if (m_config.vboMode == VBO_MODE_DISABLE) { GetLogger()->Info("VBO disabled by override - using display lists\n"); - m_vboAvailable = false; + SetVertexBufferType(VBT_DISPLAY_LIST); } else { @@ -223,18 +224,26 @@ bool CGLDevice::Create() int major = 0, minor = 0; sscanf(version, "%d.%d", &major, &minor); + + // detecting VBO ARB extension + bool vboARB = glewIsSupported("GL_ARB_vertex_buffer_object"); // VBO is core OpenGL feature since 1.5 // everything below 1.5 means no VBO support if(major > 1 || minor > 4) { GetLogger()->Info("OpenGL %d.%d, VBO supported\n", major, minor); - m_vboAvailable = true; + SetVertexBufferType(VBT_VBO_CORE); } - else + else if(vboARB) // VBO ARB extension available + { + GetLogger()->Info("OpenGL %d.%d with GL_ARB_vertex_buffer_object, VBO supported\n", major, minor); + SetVertexBufferType(VBT_VBO_ARB); + } + else // no VBO support { - GetLogger()->Info("OpenGL %d.%d, VBO not supported\n", major, minor); - m_vboAvailable = false; + GetLogger()->Info("OpenGL %d.%d without GL_ARB_vertex_buffer_object, VBO not supported\n", major, minor); + SetVertexBufferType(VBT_DISPLAY_LIST); } } } @@ -304,6 +313,13 @@ void CGLDevice::ConfigChanged(const GLDeviceConfig& newConfig) void CGLDevice::SetUseVbo(bool vboAvailable) { m_vboAvailable = vboAvailable; + m_vertexBufferType = vboAvailable ? VBT_VBO_CORE : VBT_DISPLAY_LIST; +} + +void CGLDevice::SetVertexBufferType(VertexBufferType type) +{ + m_vertexBufferType = type; + m_vboAvailable = (type != VBT_DISPLAY_LIST); } void CGLDevice::BeginScene() @@ -1046,10 +1062,20 @@ unsigned int CGLDevice::CreateStaticBuffer(PrimitiveType primitiveType, const Ve info.vertexCount = vertexCount; info.bufferId = 0; - glGenBuffers(1, &info.bufferId); - glBindBuffer(GL_ARRAY_BUFFER, info.bufferId); - glBufferData(GL_ARRAY_BUFFER, vertexCount * sizeof(Vertex), vertices, GL_STATIC_DRAW); - glBindBuffer(GL_ARRAY_BUFFER, 0); + if(m_vertexBufferType == VBT_VBO_CORE) + { + glGenBuffers(1, &info.bufferId); + glBindBuffer(GL_ARRAY_BUFFER, info.bufferId); + glBufferData(GL_ARRAY_BUFFER, vertexCount * sizeof(Vertex), vertices, GL_STATIC_DRAW); + glBindBuffer(GL_ARRAY_BUFFER, 0); + } + else + { + glGenBuffersARB(1, &info.bufferId); + glBindBufferARB(GL_ARRAY_BUFFER_ARB, info.bufferId); + glBufferDataARB(GL_ARRAY_BUFFER_ARB, vertexCount * sizeof(Vertex), vertices, GL_STATIC_DRAW_ARB); + glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0); + } m_vboObjects[id] = info; } @@ -1080,10 +1106,20 @@ unsigned int CGLDevice::CreateStaticBuffer(PrimitiveType primitiveType, const Ve info.vertexCount = vertexCount; info.bufferId = 0; - glGenBuffers(1, &info.bufferId); - glBindBuffer(GL_ARRAY_BUFFER, info.bufferId); - glBufferData(GL_ARRAY_BUFFER, vertexCount * sizeof(VertexTex2), vertices, GL_STATIC_DRAW); - glBindBuffer(GL_ARRAY_BUFFER, 0); + if(m_vertexBufferType == VBT_VBO_CORE) + { + glGenBuffers(1, &info.bufferId); + glBindBuffer(GL_ARRAY_BUFFER, info.bufferId); + glBufferData(GL_ARRAY_BUFFER, vertexCount * sizeof(VertexTex2), vertices, GL_STATIC_DRAW); + glBindBuffer(GL_ARRAY_BUFFER, 0); + } + else + { + glGenBuffersARB(1, &info.bufferId); + glBindBufferARB(GL_ARRAY_BUFFER_ARB, info.bufferId); + glBufferDataARB(GL_ARRAY_BUFFER_ARB, vertexCount * sizeof(VertexTex2), vertices, GL_STATIC_DRAW_ARB); + glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0); + } m_vboObjects[id] = info; } @@ -1113,11 +1149,21 @@ unsigned int CGLDevice::CreateStaticBuffer(PrimitiveType primitiveType, const Ve info.vertexType = VERTEX_TYPE_COL; info.vertexCount = vertexCount; info.bufferId = 0; - - glGenBuffers(1, &info.bufferId); - glBindBuffer(GL_ARRAY_BUFFER, info.bufferId); - glBufferData(GL_ARRAY_BUFFER, vertexCount * sizeof(VertexCol), vertices, GL_STATIC_DRAW); - glBindBuffer(GL_ARRAY_BUFFER, 0); + + if(m_vertexBufferType == VBT_VBO_CORE) + { + glGenBuffers(1, &info.bufferId); + glBindBuffer(GL_ARRAY_BUFFER, info.bufferId); + glBufferData(GL_ARRAY_BUFFER, vertexCount * sizeof(VertexCol), vertices, GL_STATIC_DRAW); + glBindBuffer(GL_ARRAY_BUFFER, 0); + } + else + { + glGenBuffersARB(1, &info.bufferId); + glBindBufferARB(GL_ARRAY_BUFFER_ARB, info.bufferId); + glBufferDataARB(GL_ARRAY_BUFFER_ARB, vertexCount * sizeof(VertexCol), vertices, GL_STATIC_DRAW_ARB); + glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0); + } m_vboObjects[id] = info; } @@ -1148,9 +1194,18 @@ void CGLDevice::UpdateStaticBuffer(unsigned int bufferId, PrimitiveType primitiv info.vertexType = VERTEX_TYPE_NORMAL; info.vertexCount = vertexCount; - glBindBuffer(GL_ARRAY_BUFFER, info.bufferId); - glBufferData(GL_ARRAY_BUFFER, vertexCount * sizeof(Vertex), vertices, GL_STATIC_DRAW); - glBindBuffer(GL_ARRAY_BUFFER, 0); + if(m_vertexBufferType == VBT_VBO_CORE) + { + glBindBuffer(GL_ARRAY_BUFFER, info.bufferId); + glBufferData(GL_ARRAY_BUFFER, vertexCount * sizeof(Vertex), vertices, GL_STATIC_DRAW); + glBindBuffer(GL_ARRAY_BUFFER, 0); + } + else + { + glBindBufferARB(GL_ARRAY_BUFFER_ARB, info.bufferId); + glBufferDataARB(GL_ARRAY_BUFFER_ARB, vertexCount * sizeof(Vertex), vertices, GL_STATIC_DRAW_ARB); + glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0); + } } else { @@ -1175,9 +1230,18 @@ void CGLDevice::UpdateStaticBuffer(unsigned int bufferId, PrimitiveType primitiv info.vertexType = VERTEX_TYPE_TEX2; info.vertexCount = vertexCount; - glBindBuffer(GL_ARRAY_BUFFER, info.bufferId); - glBufferData(GL_ARRAY_BUFFER, vertexCount * sizeof(VertexTex2), vertices, GL_STATIC_DRAW); - glBindBuffer(GL_ARRAY_BUFFER, 0); + if(m_vertexBufferType == VBT_VBO_CORE) + { + glBindBuffer(GL_ARRAY_BUFFER, info.bufferId); + glBufferData(GL_ARRAY_BUFFER, vertexCount * sizeof(VertexTex2), vertices, GL_STATIC_DRAW); + glBindBuffer(GL_ARRAY_BUFFER, 0); + } + else + { + glBindBufferARB(GL_ARRAY_BUFFER_ARB, info.bufferId); + glBufferDataARB(GL_ARRAY_BUFFER_ARB, vertexCount * sizeof(VertexTex2), vertices, GL_STATIC_DRAW_ARB); + glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0); + } } else { @@ -1202,9 +1266,18 @@ void CGLDevice::UpdateStaticBuffer(unsigned int bufferId, PrimitiveType primitiv info.vertexType = VERTEX_TYPE_COL; info.vertexCount = vertexCount; - glBindBuffer(GL_ARRAY_BUFFER, info.bufferId); - glBufferData(GL_ARRAY_BUFFER, vertexCount * sizeof(VertexCol), vertices, GL_STATIC_DRAW); - glBindBuffer(GL_ARRAY_BUFFER, 0); + if(m_vertexBufferType == VBT_VBO_CORE) + { + glBindBuffer(GL_ARRAY_BUFFER, info.bufferId); + glBufferData(GL_ARRAY_BUFFER, vertexCount * sizeof(VertexCol), vertices, GL_STATIC_DRAW); + glBindBuffer(GL_ARRAY_BUFFER, 0); + } + else + { + glBindBufferARB(GL_ARRAY_BUFFER_ARB, info.bufferId); + glBufferDataARB(GL_ARRAY_BUFFER_ARB, vertexCount * sizeof(VertexCol), vertices, GL_STATIC_DRAW_ARB); + glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0); + } } else { @@ -1225,7 +1298,11 @@ void CGLDevice::DrawStaticBuffer(unsigned int bufferId) return; glEnable(GL_VERTEX_ARRAY); - glBindBuffer(GL_ARRAY_BUFFER, (*it).second.bufferId); + + if(m_vertexBufferType == VBT_VBO_CORE) + glBindBuffer(GL_ARRAY_BUFFER, (*it).second.bufferId); + else + glBindBufferARB(GL_ARRAY_BUFFER_ARB, (*it).second.bufferId); if ((*it).second.vertexType == VERTEX_TYPE_NORMAL) { @@ -1297,7 +1374,11 @@ void CGLDevice::DrawStaticBuffer(unsigned int bufferId) glDisableClientState(GL_COLOR_ARRAY); } - glBindBuffer(GL_ARRAY_BUFFER, 0); + if(m_vertexBufferType == VBT_VBO_CORE) + glBindBuffer(GL_ARRAY_BUFFER, 0); + else + glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0); + glDisable(GL_VERTEX_ARRAY); } else @@ -1314,7 +1395,10 @@ void CGLDevice::DestroyStaticBuffer(unsigned int bufferId) if (it == m_vboObjects.end()) return; - glDeleteBuffers(1, &(*it).second.bufferId); + if(m_vertexBufferType == VBT_VBO_CORE) + glDeleteBuffers(1, &(*it).second.bufferId); + else + glDeleteBuffersARB(1, &(*it).second.bufferId); m_vboObjects.erase(it); } diff --git a/src/graphics/opengl/gldevice.h b/src/graphics/opengl/gldevice.h index 723b0f2..1174367 100644 --- a/src/graphics/opengl/gldevice.h +++ b/src/graphics/opengl/gldevice.h @@ -47,6 +47,17 @@ enum VBOMode VBO_MODE_AUTO //! < autodetect }; +/** + \enum VertexBufferType + \brief Specifies type of vertex buffer to use + */ +enum VertexBufferType +{ + VBT_DISPLAY_LIST, //! use display lists + VBT_VBO_CORE, //! use core OpenGL 1.5 VBOs + VBT_VBO_ARB //! use ARB extension VBOs +}; + /** \struct GLDeviceConfig \brief Additional config with OpenGL-specific settings */ @@ -104,6 +115,7 @@ public: void ConfigChanged(const GLDeviceConfig &newConfig); void SetUseVbo(bool useVbo); + void SetVertexBufferType(VertexBufferType type); virtual void BeginScene() override; virtual void EndScene() override; @@ -235,6 +247,8 @@ private: bool m_multitextureAvailable; //! Whether to use VBOs or display lists bool m_vboAvailable; + //! Which vertex buffer type to use + VertexBufferType m_vertexBufferType; //! Map of saved VBO objects std::map m_vboObjects; //! Last ID of VBO object -- cgit v1.2.3-1-g7c22 From e811f7a0ea77112f56082e4546065821c88e0339 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sat, 25 Oct 2014 11:19:54 +0200 Subject: Updated data submodule --- data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data b/data index f071d24..3cf9c16 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit f071d2403aab82830a3df2b89e32122b57cba175 +Subproject commit 3cf9c16bf15ff4c5e655898fb82c9bcf9292b4f6 -- cgit v1.2.3-1-g7c22 From 4c865322f0142b2ebeb89c4354c7a2f529ea4a7f Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sat, 25 Oct 2014 11:30:38 +0200 Subject: Fixed #341 --- src/object/robotmain.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp index 1ad3c6d..f13ef8b 100644 --- a/src/object/robotmain.cpp +++ b/src/object/robotmain.cpp @@ -4416,7 +4416,7 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) std::string op = "autoValue"+boost::lexical_cast(i+1); // autoValue1..autoValue5 automat->SetValue(i, line->GetParam(op)->AsFloat(0.0f)); } - automat->SetString(const_cast(line->GetParam("autoString")->AsString("").c_str())); + automat->SetString(const_cast(line->GetParam("autoString")->AsPath("ai", "").c_str())); int i = line->GetParam("run")->AsInt(-1); if (i != -1) @@ -4681,7 +4681,7 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) continue; } - if(read[0] != 0) continue; // ignore errors when loading saevd game (TODO: don't report ones that are just not loaded when loading saved game) + if(read[0] != 0) continue; // ignore errors when loading saved game (TODO: don't report ones that are just not loaded when loading saved game) if(resetObject) continue; // ignore when reseting just objects (TODO: see above) throw CLevelParserException("Unknown command: '"+line->GetCommand()+"' in "+line->GetLevel()->GetFilename()+":"+boost::lexical_cast(line->GetLineNumber())); -- cgit v1.2.3-1-g7c22 From 7d28b9a6da319f4e102aedddbc2d6df64753146a Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sat, 25 Oct 2014 12:01:21 +0200 Subject: Fixed #340 --- src/object/level/parser.cpp | 6 +++ src/object/level/parser.h | 2 + src/ui/maindialog.cpp | 112 ++++++++++---------------------------------- 3 files changed, 34 insertions(+), 86 deletions(-) diff --git a/src/object/level/parser.cpp b/src/object/level/parser.cpp index ab3e6bc..3a0449a 100644 --- a/src/object/level/parser.cpp +++ b/src/object/level/parser.cpp @@ -22,6 +22,7 @@ #include "app/app.h" +#include "common/resources/resourcemanager.h" #include "common/resources/inputstream.h" #include "object/level/parserexceptions.h" @@ -115,6 +116,11 @@ std::string CLevelParser::BuildSceneName(std::string category, int chapter, int return outstream.str(); } +bool CLevelParser::Exists() +{ + return CResourceManager::Exists(m_filename); +} + void CLevelParser::Load() { CInputStream file; diff --git a/src/object/level/parser.h b/src/object/level/parser.h index 7e87e2d..ca2bf6f 100644 --- a/src/object/level/parser.h +++ b/src/object/level/parser.h @@ -46,6 +46,8 @@ public: //! Build level filename static std::string BuildSceneName(std::string category, int chapter, int rank, bool sceneFile = true); + //! Check if level file exists + bool Exists(); //! Load file void Load(); //! Save file diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index fe40609..f5b61c6 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -4378,17 +4378,11 @@ void CMainDialog::UpdateSceneChap(int &chap) CList* pl; std::string fileName; - char op[100]; - char op_i18n[100]; char line[500]; - char name[100]; - int i, j; + int j; bool bPassed; - memset(op, 0, 100); - memset(op_i18n, 0, 100); memset(line, 0, 500); - memset(name, 0, 100); pw = static_cast(m_interface->SearchControl(EVENT_WINDOW5)); if ( pw == 0 ) return; @@ -4425,41 +4419,19 @@ void CMainDialog::UpdateSceneChap(int &chap) { for ( j=0 ; j<9 ; j++ ) { - BuildSceneName(fileName, m_sceneName, (j+1)*100); - CInputStream stream; - stream.open(fileName); - if (!stream.is_open()) break; - - BuildResumeName(name, m_sceneName, j+1); // default name - sprintf(op, "Title.E"); - sprintf(op_i18n, "Title.%c", m_app->GetLanguageChar()); - - while (stream.getline(line, 500)) - { - for ( i=0 ; i<500 ; i++ ) - { - if ( line[i] == '\t' ) line[i] = ' '; // replaces tab by space - if ( line[i] == '/' && line[i+1] == '/' ) - { - line[i] = 0; - break; - } - } - - if ( Cmd(line, op) ) - { - OpString(line, "text", name); - } - if ( Cmd(line, op_i18n) ) - { - OpString(line, "text", name); - break; - } + CLevelParser* level = new CLevelParser(m_sceneName, j+1, 0); + if(!level->Exists()) + break; + try { + level->Load(); + sprintf(line, "%d: %s", j+1, level->Get("Title")->GetParam("text")->AsString().c_str()); } - stream.close(); + catch(CLevelParserException& e) { + sprintf(line, "%s", (std::string("[ERROR]: ")+e.what()).c_str()); + } + delete level; bPassed = GetGamerInfoPassed((j+1)*100); - sprintf(line, "%d: %s", j+1, name); pl->SetItemName(j, line); pl->SetCheck(j, bPassed); pl->SetEnable(j, true); @@ -4491,17 +4463,11 @@ void CMainDialog::UpdateSceneList(int chap, int &sel) CWindow* pw; CList* pl; std::string fileName; - char op[100]; - char op_i18n[100]; char line[500]; - char name[100]; - int i, j; + int j; bool bPassed; - memset(op, 0, 100); - memset(op_i18n, 0, 100); memset(line, 0, 500); - memset(name, 0, 100); pw = static_cast(m_interface->SearchControl(EVENT_WINDOW5)); if ( pw == 0 ) return; @@ -4512,44 +4478,22 @@ void CMainDialog::UpdateSceneList(int chap, int &sel) if(chap < 0) return; + bool readAll = true; for ( j=0 ; j<99 ; j++ ) { - BuildSceneName(fileName, m_sceneName, (chap+1)*100+(j+1)); - - CInputStream stream; - stream.open(fileName); - if (!stream.is_open()) break; - - BuildResumeName(name, m_sceneName, j+1); // default name - sprintf(op, "Title.E"); - sprintf(op_i18n, "Title.%c", m_app->GetLanguageChar()); - - while (stream.getline(line, 500)) - { - for ( i=0 ; i<500 ; i++ ) - { - if ( line[i] == '\t' ) line[i] = ' '; // replaces tab by space - if ( line[i] == '/' && line[i+1] == '/' ) - { - line[i] = 0; - break; - } - } - - if ( Cmd(line, op) ) - { - OpString(line, "text", name); - } - if ( Cmd(line, op_i18n) ) - { - OpString(line, "text", name); - break; - } + CLevelParser* level = new CLevelParser(m_sceneName, chap+1, j+1); + if(!level->Exists()) + break; + try { + level->Load(); + sprintf(line, "%d: %s", j+1, level->Get("Title")->GetParam("text")->AsString().c_str()); } - stream.close(); + catch(CLevelParserException& e) { + sprintf(line, "%s", (std::string("[ERROR]: ")+e.what()).c_str()); + } + delete level; bPassed = GetGamerInfoPassed((chap+1)*100+(j+1)); - sprintf(line, "%d: %s", j+1, name); pl->SetItemName(j, line); pl->SetCheck(j, bPassed); pl->SetEnable(j, true); @@ -4557,23 +4501,19 @@ void CMainDialog::UpdateSceneList(int chap, int &sel) if ( m_phase == PHASE_MISSION && !m_main->GetShowAll() && !bPassed ) { j ++; + readAll = false; break; } } - /* TODO: ????? - BuildSceneName(fileName, m_sceneName, (chap+1)*100+(j+1)); - file = fopen(fileName.c_str(), "r"); - if ( file == NULL ) + if(readAll) { m_maxList = j; } else { m_maxList = j+1; // this is not the last! - fclose(file); - }*/ - m_maxList = j; + } if ( sel > j-1 ) sel = j-1; -- cgit v1.2.3-1-g7c22 From db7ab65354b952d558d29ec902b2e1d22ca55a9a Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sat, 25 Oct 2014 12:10:29 +0200 Subject: Fixed #344 --- src/ui/maindialog.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index f5b61c6..f2fc60e 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -6209,7 +6209,7 @@ bool CMainDialog::WriteGamerInfo() for ( i=0 ; i Date: Sat, 25 Oct 2014 12:21:13 +0200 Subject: Change userlevels button text via text file --- src/ui/maindialog.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index f2fc60e..e46d613 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -322,6 +322,21 @@ void CMainDialog::ChangePhase(Phase phase) ddim.x = 0.09f; pb = pw->CreateButton(pos, ddim, -1, EVENT_INTERFACE_USER); pb->SetState(STATE_SHADOW); + + try { + CLevelParser* level = new CLevelParser("levels/custom/config.txt"); + if(level->Exists()) { + level->Load(); + CLevelParserLine* line = level->Get("Button"); + if(line->GetParam("name")->IsDefined()) + pb->SetName(line->GetParam("name")->AsString()); + if(line->GetParam("tooltip")->IsDefined()) + pb->SetTooltip(line->GetParam("tooltip")->AsString()); + } + } + catch(CLevelParserException& e) { + CLogger::GetInstancePointer()->Error("Failed loading userlevel button name: %s\n", e.what()); + } } /*pos.x = 139.0f/640.0f; -- cgit v1.2.3-1-g7c22 From 81062e5e87bc2f34e295e39a95afb1da57d260cf Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sat, 25 Oct 2014 12:44:52 +0200 Subject: Fixed linking convert_model (#332) --- src/CMakeLists.txt | 4 ++-- src/graphics/engine/modelfile.cpp | 38 +++++++++++++++++++++++++++++++++++--- 2 files changed, 37 insertions(+), 5 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 869f0cb..a8914e1 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -215,7 +215,7 @@ set(LIBS ${LIBSNDFILE_LIBRARY} ${OPTIONAL_LIBS} ${PLATFORM_LIBS} -${PHYSFS_LIBRARY} + ${PHYSFS_LIBRARY} ) set(COLOBOT_LIBS ${LIBS} PARENT_SCOPE) @@ -239,7 +239,7 @@ set(SYSTEM_INCLUDES ${LOCALENAME_INCLUDE_DIR} ${OPTIONAL_INCLUDE_DIRS} ${CLIPBOARD_INCLUDE_DIR} -${PHYSFS_INCLUDE_PATH} + ${PHYSFS_INCLUDE_PATH} ) set(COLOBOT_LOCAL_INCLUDES ${LOCAL_INCLUDES} PARENT_SCOPE) diff --git a/src/graphics/engine/modelfile.cpp b/src/graphics/engine/modelfile.cpp index 09c7bbd..c422f18 100644 --- a/src/graphics/engine/modelfile.cpp +++ b/src/graphics/engine/modelfile.cpp @@ -24,7 +24,9 @@ #include "common/logger.h" #include "common/stringutils.h" +#ifndef MODELFILE_NO_ENGINE #include "common/resources/inputstream.h" +#endif #include "graphics/engine/engine.h" @@ -436,13 +438,23 @@ bool CModelFile::ReadModel(const std::string& fileName) { m_triangles.clear(); + #ifndef MODELFILE_NO_ENGINE CInputStream stream; - stream.open(fileName.c_str()); + stream.open(fileName); if (!stream.is_open()) { GetLogger()->Error("Could not open file '%s'\n", fileName.c_str()); return false; } + #else + std::ifstream stream; + stream.open(fileName); + if (!stream.good()) + { + GetLogger()->Error("Could not open file '%s'\n", fileName.c_str()); + return false; + } + #endif return ReadModel(stream); } @@ -827,13 +839,23 @@ struct NewModelTriangle1 bool CModelFile::ReadTextModel(const std::string& fileName) { + #ifndef MODELFILE_NO_ENGINE CInputStream stream; - stream.open(fileName.c_str()); + stream.open(fileName); if (!stream.is_open()) { GetLogger()->Error("Could not open file '%s'\n", fileName.c_str()); return false; } + #else + std::ifstream stream; + stream.open(fileName); + if (!stream.good()) + { + GetLogger()->Error("Could not open file '%s'\n", fileName.c_str()); + return false; + } + #endif return ReadTextModel(stream); } @@ -1024,13 +1046,23 @@ bool CModelFile::WriteTextModel(std::ostream& stream) bool CModelFile::ReadBinaryModel(const std::string& fileName) { + #ifndef MODELFILE_NO_ENGINE CInputStream stream; - stream.open(fileName.c_str()); + stream.open(fileName); if (!stream.is_open()) { GetLogger()->Error("Could not open file '%s'\n", fileName.c_str()); return false; } + #else + std::ifstream stream; + stream.open(fileName); + if (!stream.good()) + { + GetLogger()->Error("Could not open file '%s'\n", fileName.c_str()); + return false; + } + #endif return ReadBinaryModel(stream); } -- cgit v1.2.3-1-g7c22 From ef1edba3073d219125ede64ec2a88ca5ed77b93b Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sat, 25 Oct 2014 17:09:14 +0200 Subject: Fixed #340 again --- src/ui/maindialog.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index e46d613..3dce5a0 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -4497,8 +4497,13 @@ void CMainDialog::UpdateSceneList(int chap, int &sel) for ( j=0 ; j<99 ; j++ ) { CLevelParser* level = new CLevelParser(m_sceneName, chap+1, j+1); - if(!level->Exists()) + if(!level->Exists()) { + readAll = true; break; + } else { + if(!readAll) + break; + } try { level->Load(); sprintf(line, "%d: %s", j+1, level->Get("Title")->GetParam("text")->AsString().c_str()); @@ -4515,9 +4520,7 @@ void CMainDialog::UpdateSceneList(int chap, int &sel) if ( m_phase == PHASE_MISSION && !m_main->GetShowAll() && !bPassed ) { - j ++; readAll = false; - break; } } @@ -4529,6 +4532,7 @@ void CMainDialog::UpdateSceneList(int chap, int &sel) { m_maxList = j+1; // this is not the last! } + CLogger::GetInstancePointer()->Debug("m_maxList = %d\n", m_maxList); if ( sel > j-1 ) sel = j-1; -- cgit v1.2.3-1-g7c22 From c12ebb1c7bd3a65c02f6383a8b450e0947d01980 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sat, 25 Oct 2014 17:16:39 +0200 Subject: Fixed NewScript (#341) --- src/object/robotmain.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp index f13ef8b..aa52791 100644 --- a/src/object/robotmain.cpp +++ b/src/object/robotmain.cpp @@ -4675,9 +4675,7 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) if (line->GetCommand() == "NewScript" && !resetObject) { - char name[200]; - strcpy(name, line->GetParam("name")->AsPath("").c_str()); //TODO: don't make this relative to ai/ - AddNewScriptName(line->GetParam("type")->AsObjectType(OBJECT_NULL), name); + AddNewScriptName(line->GetParam("type")->AsObjectType(OBJECT_NULL), const_cast(line->GetParam("name")->AsPath("ai").c_str())); continue; } -- cgit v1.2.3-1-g7c22 From 182d5206a8dcdbf112e5e2099a71c8dc82b9ffa1 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sat, 25 Oct 2014 17:23:09 +0200 Subject: Disable resolution settings in simulation --- src/ui/maindialog.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index 3dce5a0..e553d69 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -968,6 +968,7 @@ void CMainDialog::ChangePhase(Phase phase) pb->SetState(STATE_SHADOW); pb->SetState(STATE_CARD); pb->SetState(STATE_CHECK, (m_phase == PHASE_SETUPd || m_phase == PHASE_SETUPds)); + pb->SetState(STATE_ENABLE, !m_bSimulSetup); pos.x += ddim.x+0.01f; pb = pw->CreateButton(pos, ddim, -1, EVENT_INTERFACE_SETUPg); @@ -4532,7 +4533,6 @@ void CMainDialog::UpdateSceneList(int chap, int &sel) { m_maxList = j+1; // this is not the last! } - CLogger::GetInstancePointer()->Debug("m_maxList = %d\n", m_maxList); if ( sel > j-1 ) sel = j-1; -- cgit v1.2.3-1-g7c22 From fdbc4080c7c2ad838392f9b3228b4b44a9bb66af Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sat, 25 Oct 2014 17:28:30 +0200 Subject: But do 182d5206a8dcdbf112e5e2099a71c8dc82b9ffa1 only on Windows, since it works correctly on Linux --- src/ui/maindialog.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index e553d69..0ab9085 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -968,7 +968,9 @@ void CMainDialog::ChangePhase(Phase phase) pb->SetState(STATE_SHADOW); pb->SetState(STATE_CARD); pb->SetState(STATE_CHECK, (m_phase == PHASE_SETUPd || m_phase == PHASE_SETUPds)); + #if PLATFORM_WINDOWS pb->SetState(STATE_ENABLE, !m_bSimulSetup); + #endif pos.x += ddim.x+0.01f; pb = pw->CreateButton(pos, ddim, -1, EVENT_INTERFACE_SETUPg); -- cgit v1.2.3-1-g7c22 From 9d68868f8ed1c3116b68c99c249de20cb64f2385 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sat, 25 Oct 2014 18:00:39 +0200 Subject: Possible fix for #339 (?) --- src/graphics/engine/engine.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/graphics/engine/engine.cpp b/src/graphics/engine/engine.cpp index db702b7..ae6f238 100644 --- a/src/graphics/engine/engine.cpp +++ b/src/graphics/engine/engine.cpp @@ -295,6 +295,9 @@ bool CEngine::Create() void CEngine::Destroy() { m_text->Destroy(); + + delete m_pause; + m_pause = nullptr; delete m_lightMan; m_lightMan = nullptr; @@ -325,6 +328,8 @@ void CEngine::ResetAfterDeviceChanged() m_text->FlushCache(); FlushTextureCache(); + + LoadAllTextures(); } bool CEngine::ProcessEvent(const Event &event) -- cgit v1.2.3-1-g7c22 From c9eb3ce5c57e48af52f0798bff0aa7c42448d154 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sat, 25 Oct 2014 18:17:03 +0200 Subject: Another possible (and more likely correct) fix for #339 --- src/graphics/opengl/gldevice.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/graphics/opengl/gldevice.cpp b/src/graphics/opengl/gldevice.cpp index 032fa24..9cf3235 100644 --- a/src/graphics/opengl/gldevice.cpp +++ b/src/graphics/opengl/gldevice.cpp @@ -187,7 +187,7 @@ bool CGLDevice::Create() { GetLogger()->Info("Creating CDevice\n"); - static bool glewInited = false; + /*static*/ bool glewInited = false; if (!glewInited) { -- cgit v1.2.3-1-g7c22 From 26376c652d59de271147027bb5c365b22c2765c2 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sat, 25 Oct 2014 18:34:29 +0200 Subject: Nothing else works, so restart the game on resolution change Fixes #339 for now, but we'll need alternative solution later --- src/app/app.cpp | 12 ++++++++++ src/app/app.h | 7 ++++++ src/app/main.cpp | 62 +++++++++++++++++++++++++++------------------------ src/ui/maindialog.cpp | 7 ++++++ 4 files changed, 59 insertions(+), 29 deletions(-) diff --git a/src/app/app.cpp b/src/app/app.cpp index 1b53a28..ea54cf1 100644 --- a/src/app/app.cpp +++ b/src/app/app.cpp @@ -113,6 +113,7 @@ CApplication::CApplication() m_exitCode = 0; m_active = false; m_debugModes = 0; + m_restart = false; m_windowTitle = "COLOBOT: Gold Edition"; @@ -675,6 +676,17 @@ void CApplication::Destroy() SDL_Quit(); } +void CApplication::Restart() +{ + m_restart = true; + m_eventQueue->AddEvent(Event(EVENT_SYS_QUIT)); +} + +bool CApplication::IsRestarting() +{ + return m_restart; +} + bool CApplication::ChangeVideoConfig(const Gfx::GLDeviceConfig &newConfig) { static bool restore = false; diff --git a/src/app/app.h b/src/app/app.h index c73cb53..500cb2f 100644 --- a/src/app/app.h +++ b/src/app/app.h @@ -227,6 +227,11 @@ public: //! Cleans up before exit void Destroy(); + + //! Restart + void Restart(); + //! Should we restart after app quits? + bool IsRestarting(); //! Returns a list of possible video modes VideoQueryResult GetVideoResolutionList(std::vector &resolutions, @@ -413,6 +418,8 @@ protected: bool m_active; //! Bit array of active debug modes long m_debugModes; + //! If we are restarting the app + bool m_restart; //! Message to be displayed as error to the user std::string m_errorMessage; diff --git a/src/app/main.cpp b/src/app/main.cpp index e30a83d..88a7a73 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -86,42 +86,46 @@ int SDL_MAIN_FUNC(int argc, char *argv[]) InitializeRestext(); InitializeEventTypeTexts(); - CSystemUtils* systemUtils = CSystemUtils::Create(); // platform-specific utils - systemUtils->Init(); - logger.Info("Colobot starting\n"); - - CApplication* app = new CApplication(); // single instance of the application - - ParseArgsStatus status = app->ParseArguments(argc, argv); - if (status == PARSE_ARGS_FAIL) - { - systemUtils->SystemDialog(SDT_ERROR, "COLOBOT - Fatal Error", "Invalid commandline arguments!\n"); - return app->GetExitCode(); - } - else if (status == PARSE_ARGS_HELP) - { - return app->GetExitCode(); - } - + int code = 0; + while(true) { + CSystemUtils* systemUtils = CSystemUtils::Create(); // platform-specific utils + systemUtils->Init(); + + CApplication* app = new CApplication(); // single instance of the application + + ParseArgsStatus status = app->ParseArguments(argc, argv); + if (status == PARSE_ARGS_FAIL) + { + systemUtils->SystemDialog(SDT_ERROR, "COLOBOT - Fatal Error", "Invalid commandline arguments!\n"); + return app->GetExitCode(); + } + else if (status == PARSE_ARGS_HELP) + { + return app->GetExitCode(); + } - if (! app->Create()) - { - app->Destroy(); // ensure a clean exit - code = app->GetExitCode(); - if ( code != 0 && !app->GetErrorMessage().empty() ) + + if (! app->Create()) { - systemUtils->SystemDialog(SDT_ERROR, "COLOBOT - Fatal Error", app->GetErrorMessage()); + app->Destroy(); // ensure a clean exit + code = app->GetExitCode(); + if ( code != 0 && !app->GetErrorMessage().empty() ) + { + systemUtils->SystemDialog(SDT_ERROR, "COLOBOT - Fatal Error", app->GetErrorMessage()); + } + logger.Info("Didn't run main loop. Exiting with code %d\n", code); + return code; } - logger.Info("Didn't run main loop. Exiting with code %d\n", code); - return code; - } - code = app->Run(); + code = app->Run(); + bool restarting = app->IsRestarting(); - delete app; - delete systemUtils; + delete app; + delete systemUtils; + if(!restarting) break; + } logger.Info("Exiting with code %d\n", code); return code; diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index 0ab9085..ede7453 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -4677,7 +4677,13 @@ void CMainDialog::ChangeDisplay() bFull = pc->TestState(STATE_CHECK); m_setupFull = bFull; + SetupMemorize(); + #if !PLATFORM_LINUX + // Windows causes problems, so we'll restart the game + // Mac OS was not tested so let's restart just to be sure + m_app->Restart(); + #else std::vector modes; m_app->GetVideoResolutionList(modes, true, true); @@ -4685,6 +4691,7 @@ void CMainDialog::ChangeDisplay() config.size = modes[m_setupSelMode]; config.fullScreen = bFull; m_app->ChangeVideoConfig(config); + #endif } -- cgit v1.2.3-1-g7c22 From 0d873ad43a62f7e54f59ea6b70f91089b0831981 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sat, 25 Oct 2014 18:43:02 +0200 Subject: Added warning about restarting game in order to apply changes issue #339 --- src/ui/maindialog.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index ede7453..26bfbbc 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -1053,6 +1053,14 @@ void CMainDialog::ChangePhase(Phase phase) pc = pw->CreateCheck(pos, ddim, -1, EVENT_INTERFACE_FULL); pc->SetState(STATE_SHADOW); pc->SetState(STATE_CHECK, m_setupFull); + + #if !PLATFORM_LINUX + ddim.x = 0.9f; + ddim.y = 0.1f; + pos.x = 0.05f; + pos.y = 0.20f; + pl = pw->CreateLabel(pos, ddim, 0, EVENT_LABEL1, "The game will be restarted in order to apply changes. All unsaved progress will be lost."); + #endif ddim.x = dim.x*6; ddim.y = dim.y*1; -- cgit v1.2.3-1-g7c22 From 475f222276e3deab747433292f9a3c434764b244 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sat, 25 Oct 2014 19:11:24 +0200 Subject: Fixed "Device" tab opening if it was opened in main menu earlier --- src/ui/maindialog.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index 26bfbbc..c607d7a 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -1899,6 +1899,9 @@ bool CMainDialog::EventProcess(const Event &event) { StopDialog(); StartSuspend(); + #if PLATFORM_WINDOWS + if ( m_phaseSetup == PHASE_SETUPd ) m_phaseSetup = PHASE_SETUPg; + #endif if ( m_phaseSetup == PHASE_SETUPd ) ChangePhase(PHASE_SETUPds); if ( m_phaseSetup == PHASE_SETUPg ) ChangePhase(PHASE_SETUPgs); if ( m_phaseSetup == PHASE_SETUPp ) ChangePhase(PHASE_SETUPps); -- cgit v1.2.3-1-g7c22 From bacf7963876d11a69ab7b8abfe623a062cce825f Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sat, 25 Oct 2014 19:44:08 +0200 Subject: Updated installer parameters --- desktop/CMakeLists.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/desktop/CMakeLists.txt b/desktop/CMakeLists.txt index 87c8a4b..c63b80e 100644 --- a/desktop/CMakeLists.txt +++ b/desktop/CMakeLists.txt @@ -127,11 +127,11 @@ endif(PLATFORM_WINDOWS) ## # Packaging ## -set(CPACK_BUNDLE_NAME "Colobot") +set(CPACK_BUNDLE_NAME "Colobot: Gold Edition") set(CPACK_PACKAGE_FILE_NAME "colobot-${COLOBOT_VERSION_FULL}") set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/../README.md") -set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Colobot - Colonize with Bots") -set(CPACK_PACKAGE_VENDOR "Polish Portal of Colobot") +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Colobot: Gold Edition") +set(CPACK_PACKAGE_VENDOR "Terranova Team") set(CPACK_PACKAGE_VERSION_MAJOR ${COLOBOT_VERSION_MAJOR}) set(CPACK_PACKAGE_VERSION_MINOR ${COLOBOT_VERSION_MINOR}) @@ -142,10 +142,10 @@ if(PLATFORM_WINDOWS) # Don't version the install directory, and allow overwriting set(CPACK_PACKAGE_INSTALL_DIRECTORY "Colobot") - set(CPACK_NSIS_DEFINES "SetOverwrite on\nBrandingText \\\"Colobot ${COLOBOT_VERSION_CODENAME} (${COLOBOT_VERSION_FULL})\\\"") + set(CPACK_NSIS_DEFINES "SetOverwrite on\nBrandingText \\\"Colobot: Gold Edition (${COLOBOT_VERSION_FULL})\\\"") # Install the executable directly in Program Files/Colobot/ set(CPACK_NSIS_EXECUTABLES_DIRECTORY ".") - set(CPACK_PACKAGE_EXECUTABLES "colobot" "Colobot ${COLOBOT_VERSION_CODENAME}") + set(CPACK_PACKAGE_EXECUTABLES "colobot" "Colobot: Gold Edition") # Branding ## Installation and uninstallation icons -- cgit v1.2.3-1-g7c22 From 6b517d4b2145abcfd8a2e0b1edb1b002a25f5e12 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sat, 25 Oct 2014 19:51:56 +0200 Subject: Updated data submodule --- data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data b/data index 3cf9c16..574385b 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit 3cf9c16bf15ff4c5e655898fb82c9bcf9292b4f6 +Subproject commit 574385b729e894a9d5d02999cc84991e1d56740a -- cgit v1.2.3-1-g7c22 From c1734f2a3b54b62a006153eb7e930137053540b6 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sat, 25 Oct 2014 20:38:38 +0200 Subject: Updated data submodule I did a bit of cleaning up the history from old music files --- data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data b/data index 574385b..070912c 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit 574385b729e894a9d5d02999cc84991e1d56740a +Subproject commit 070912c9d18217c2f90d0f528d16b413adf4d875 -- cgit v1.2.3-1-g7c22 From 8837a96e814185444ec9aa5903ad8e9e33aaf257 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sat, 25 Oct 2014 21:35:52 +0200 Subject: Updated submodule --- data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data b/data index 070912c..42fc8ad 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit 070912c9d18217c2f90d0f528d16b413adf4d875 +Subproject commit 42fc8add845bb0001d2497090ca27e592e87f035 -- cgit v1.2.3-1-g7c22 From 15cc3eb505fd7b472930a6508617b821f677c6b2 Mon Sep 17 00:00:00 2001 From: Piotr Dziwinski Date: Sun, 26 Oct 2014 11:06:00 +0100 Subject: Update gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 3dae3d9..40d97d0 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ Makefile /CTestTestfile.cmake /CPackConfig.cmake /CPackSourceConfig.cmake +/src/libcolobotbase.a # Ignore the generated documentation /doc -- cgit v1.2.3-1-g7c22 From 4485905e0f21cb4f87a1d9509aa1633035028b04 Mon Sep 17 00:00:00 2001 From: Piotr Dziwinski Date: Sun, 26 Oct 2014 11:06:30 +0100 Subject: Updated data submodule --- data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data b/data index 42fc8ad..3b99d74 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit 42fc8add845bb0001d2497090ca27e592e87f035 +Subproject commit 3b99d746de967ac6088796f64783d42bdf72af3e -- cgit v1.2.3-1-g7c22 From ca4f1e85d2812ad715e21be96413efe155b58a84 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sun, 26 Oct 2014 18:30:56 +0100 Subject: Support for %lvl% in all commands Except for TerrainInitTextures (I'm not sure what it does but it does something weird) --- src/common/resources/inputstreambuffer.cpp | 4 ++- src/common/resources/outputstreambuffer.cpp | 4 ++- src/common/resources/resourcemanager.cpp | 25 ++++++++----- src/common/resources/resourcemanager.h | 2 ++ src/object/level/parserparam.cpp | 2 +- src/object/robotmain.cpp | 55 +++++++++++++++++++---------- 6 files changed, 62 insertions(+), 30 deletions(-) diff --git a/src/common/resources/inputstreambuffer.cpp b/src/common/resources/inputstreambuffer.cpp index 7059d60..9ac1fec 100644 --- a/src/common/resources/inputstreambuffer.cpp +++ b/src/common/resources/inputstreambuffer.cpp @@ -19,6 +19,8 @@ #include "common/resources/inputstreambuffer.h" +#include "common/resources/resourcemanager.h" + #include #include @@ -44,7 +46,7 @@ CInputStreamBuffer::~CInputStreamBuffer() void CInputStreamBuffer::open(const std::string &filename) { if (PHYSFS_isInit()) - m_file = PHYSFS_openRead(filename.c_str()); + m_file = PHYSFS_openRead(CResourceManager::CleanPath(filename).c_str()); } diff --git a/src/common/resources/outputstreambuffer.cpp b/src/common/resources/outputstreambuffer.cpp index f8b4100..157e17d 100644 --- a/src/common/resources/outputstreambuffer.cpp +++ b/src/common/resources/outputstreambuffer.cpp @@ -19,6 +19,8 @@ #include "common/resources/outputstreambuffer.h" +#include "common/resources/resourcemanager.h" + #include #include @@ -40,7 +42,7 @@ COutputStreamBuffer::~COutputStreamBuffer() void COutputStreamBuffer::open(const std::string &filename) { if (PHYSFS_isInit()) - m_file = PHYSFS_openWrite(filename.c_str()); + m_file = PHYSFS_openWrite(CResourceManager::CleanPath(filename).c_str()); } diff --git a/src/common/resources/resourcemanager.cpp b/src/common/resources/resourcemanager.cpp index 42f9634..b825374 100644 --- a/src/common/resources/resourcemanager.cpp +++ b/src/common/resources/resourcemanager.cpp @@ -26,6 +26,7 @@ #include #include +#include namespace fs = boost::filesystem; @@ -55,6 +56,11 @@ CResourceManager::~CResourceManager() } } +std::string CResourceManager::CleanPath(const std::string& path) +{ + return boost::regex_replace(path, boost::regex("\\.\\./(.*)/"), ""); +} + bool CResourceManager::AddLocation(const std::string &location, bool prepend) { @@ -121,7 +127,7 @@ SDL_RWops* CResourceManager::GetSDLFileHandler(const std::string &filename) return nullptr; } - PHYSFS_File *file = PHYSFS_openRead(filename.c_str()); + PHYSFS_File *file = PHYSFS_openRead(CleanPath(filename).c_str()); if (!file) { SDL_FreeRW(handler); @@ -141,32 +147,33 @@ SDL_RWops* CResourceManager::GetSDLFileHandler(const std::string &filename) CSNDFile* CResourceManager::GetSNDFileHandler(const std::string &filename) { - return new CSNDFile(filename); + return new CSNDFile(CleanPath(filename)); } bool CResourceManager::Exists(const std::string &filename) { - return PHYSFS_exists(filename.c_str()); + return PHYSFS_exists(CleanPath(filename).c_str()); } bool CResourceManager::DirectoryExists(const std::string& directory) { - return PHYSFS_exists(directory.c_str()) && PHYSFS_isDirectory(directory.c_str()); + return PHYSFS_exists(CleanPath(directory).c_str()) && PHYSFS_isDirectory(CleanPath(directory).c_str()); } bool CResourceManager::CreateDirectory(const std::string& directory) { - return PHYSFS_mkdir(directory.c_str()); + return PHYSFS_mkdir(CleanPath(directory).c_str()); } +//TODO: Don't use boost filesystem here bool CResourceManager::RemoveDirectory(const std::string& directory) { bool success = true; std::string writeDir = PHYSFS_getWriteDir(); try { - fs::remove_all(writeDir + "/" + directory); + fs::remove_all(writeDir + "/" + CleanPath(directory)); } catch (std::exception & e) { @@ -179,7 +186,7 @@ std::vector CResourceManager::ListFiles(const std::string &director { std::vector result; - char **files = PHYSFS_enumerateFiles(directory.c_str()); + char **files = PHYSFS_enumerateFiles(CleanPath(directory).c_str()); for (char **i = files; *i != nullptr; i++) { @@ -195,11 +202,11 @@ std::vector CResourceManager::ListDirectories(const std::string &di { std::vector result; - char **files = PHYSFS_enumerateFiles(directory.c_str()); + char **files = PHYSFS_enumerateFiles(CleanPath(directory).c_str()); for (char **i = files; *i != nullptr; i++) { - std::string path = directory + "/" + (*i); + std::string path = CleanPath(directory) + "/" + (*i); if (PHYSFS_isDirectory(path.c_str())) { result.push_back(*i); diff --git a/src/common/resources/resourcemanager.h b/src/common/resources/resourcemanager.h index 730cf3e..4d79e9b 100644 --- a/src/common/resources/resourcemanager.h +++ b/src/common/resources/resourcemanager.h @@ -30,6 +30,8 @@ class CResourceManager public: CResourceManager(const char *argv0); ~CResourceManager(); + + static std::string CleanPath(const std::string &path); static bool AddLocation(const std::string &location, bool prepend = true); static bool RemoveLocation(const std::string &location); diff --git a/src/object/level/parserparam.cpp b/src/object/level/parserparam.cpp index aa5a963..ee080b2 100644 --- a/src/object/level/parserparam.cpp +++ b/src/object/level/parserparam.cpp @@ -170,7 +170,7 @@ std::string CLevelParserParam::InjectLevelDir(std::string path, const std::strin boost::replace_all(newPath, "%lvl%", lvlDir); std::string chapDir = CLevelParser::BuildSceneName(CRobotMain::GetInstancePointer()->GetSceneName(), CRobotMain::GetInstancePointer()->GetSceneRank()/100, 0, false); boost::replace_all(newPath, "%chap%", chapDir); - if(newPath == path) + if(newPath == path && !path.empty()) { newPath = defaultDir + (!defaultDir.empty() ? "/" : "") + newPath; } diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp index aa52791..62176a1 100644 --- a/src/object/robotmain.cpp +++ b/src/object/robotmain.cpp @@ -3864,7 +3864,7 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) if (line->GetCommand() == "CacheAudio" && !resetObject && m_version >= 2) { - m_sound->CacheMusic(line->GetParam("filename")->AsPath("").c_str()); //TODO: don't make this relative to music/ + m_sound->CacheMusic(std::string("../")+line->GetParam("filename")->AsPath("music")); continue; } @@ -3882,7 +3882,7 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) m_audioChange[i].powermax = line->GetParam("powermax")->AsFloat(100); m_audioChange[i].tool = line->GetParam("tool")->AsToolType(TOOL_OTHER); m_audioChange[i].drive = line->GetParam("drive")->AsDriveType(DRIVE_OTHER); - strcpy(m_audioChange[i].music, line->GetParam("filename")->AsPath("").c_str()); //TODO: don't make this relative to music/ + strcpy(m_audioChange[i].music, (std::string("../")+line->GetParam("filename")->AsPath("music")).c_str()); m_audioChange[i].repeat = line->GetParam("repeat")->AsBool(true); m_audioChange[i].changed = false; m_sound->CacheMusic(m_audioChange[i].music); @@ -3906,14 +3906,26 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) } else { - m_audioTrack = line->GetParam("main")->AsPath("", ""); //TODO: don't make this relative to music/ - m_audioRepeat = line->GetParam("mainRepeat")->AsBool(true); + if(line->GetParam("main")->IsDefined()) { + m_audioTrack = std::string("../")+line->GetParam("main")->AsPath("music"); + m_audioRepeat = line->GetParam("mainRepeat")->AsBool(true); + } else { + m_audioTrack = ""; + } - m_satcomTrack = line->GetParam("satcom")->AsPath("", ""); //TODO: don't make this relative to music/ - m_satcomRepeat = line->GetParam("satcomRepeat")->AsBool(true); + if(line->GetParam("satcom")->IsDefined()) { + m_satcomTrack = std::string("../")+line->GetParam("satcom")->AsPath("music"); + m_satcomRepeat = line->GetParam("satcomRepeat")->AsBool(true); + } else { + m_satcomTrack = ""; + } - m_editorTrack = line->GetParam("editor")->AsPath("", ""); //TODO: don't make this relative to music/ - m_editorRepeat = line->GetParam("editorRepeat")->AsBool(true); + if(line->GetParam("editor")->IsDefined()) { + m_editorTrack = std::string("../")+line->GetParam("editor")->AsPath("music"); + m_editorRepeat = line->GetParam("editorRepeat")->AsBool(true); + } else { + m_editorTrack = ""; + } } if (m_audioTrack != "") m_sound->CacheMusic(m_audioTrack); if (m_satcomTrack != "") m_sound->CacheMusic(m_satcomTrack); @@ -3975,7 +3987,10 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) if (line->GetCommand() == "Background" && !resetObject) { - m_engine->SetBackground(line->GetParam("image")->AsPath("", "").c_str(), //TODO: don't make this relative to textures/ + std::string path = ""; + if(line->GetParam("image")->IsDefined()) + path = "../"+line->GetParam("image")->AsPath("textures"); + m_engine->SetBackground(path.c_str(), line->GetParam("up")->AsColor(Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f)), line->GetParam("down")->AsColor(Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f)), line->GetParam("cloudUp")->AsColor(Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f)), @@ -3996,17 +4011,17 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) line->GetParam("dim")->AsFloat(0.2f), line->GetParam("speed")->AsFloat(0.0f), line->GetParam("dir")->AsFloat(0.0f), - line->GetParam("image")->AsPath(""), //TODO: don't make this relative to textures/ + "../"+line->GetParam("image")->AsPath("textures"), Math::Point(uv1.x, uv1.z), Math::Point(uv2.x, uv2.z), - line->GetParam("image")->AsPath("").find("planet") != std::string::npos // TODO: add transparent op or modify textures + line->GetParam("image")->AsPath("textures").find("planet") != std::string::npos // TODO: add transparent op or modify textures ); continue; } if (line->GetCommand() == "ForegroundName" && !resetObject) { - m_engine->SetForegroundName(line->GetParam("image")->AsPath("")); //TODO: don't make this relative to textures/ + m_engine->SetForegroundName("../"+line->GetParam("image")->AsPath("textures")); continue; } @@ -4069,7 +4084,7 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) pos.z = pos.x; m_water->Create(line->GetParam("air")->AsWaterType(Gfx::WATER_TT), line->GetParam("water")->AsWaterType(Gfx::WATER_TT), - line->GetParam("image")->AsPath(""), //TODO: don't make this relative to textures/ + "../"+line->GetParam("image")->AsPath("textures"), line->GetParam("diffuse")->AsColor(Gfx::Color(1.0f, 1.0f, 1.0f, 1.0f)), line->GetParam("ambient")->AsColor(Gfx::Color(1.0f, 1.0f, 1.0f, 1.0f)), line->GetParam("level")->AsFloat(100.0f)*g_unit, @@ -4088,7 +4103,10 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) if (line->GetCommand() == "TerrainCloud" && !resetObject) { - m_cloud->Create(line->GetParam("image")->AsPath("", ""), //TODO: don't make this relative to textures/ + std::string path = ""; + if(line->GetParam("image")->IsDefined()) + path = "../"+line->GetParam("image")->AsPath("textures"); + m_cloud->Create(path, line->GetParam("diffuse")->AsColor(Gfx::Color(1.0f, 1.0f, 1.0f, 1.0f)), line->GetParam("ambient")->AsColor(Gfx::Color(1.0f, 1.0f, 1.0f, 1.0f)), line->GetParam("level")->AsFloat(500.0f)*g_unit); @@ -4153,9 +4171,10 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) if (line->GetCommand() == "TerrainMaterial" && !resetObject) { - std::string name = line->GetParam("image")->AsPath(""); //TODO: don't make this relative to textures/ + std::string name = line->GetParam("image")->AsPath("textures"); if(name.find(".") == std::string::npos) name += ".png"; + name = "../"+name; /*TODO: ??? if (strstr(name, "%user%") != 0) { @@ -4229,7 +4248,7 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) CBrain* brain = m_controller->GetBrain(); if (brain != nullptr) { - std::string name = line->GetParam("script")->AsPath(""); //TODO: Don't make this relative to ai/ + std::string name = "../"+line->GetParam("script")->AsPath("ai"); if (!name.empty()) brain->SetScriptName(0, const_cast(name.c_str())); brain->SetScriptRun(0); @@ -4394,7 +4413,7 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) { std::string op = "script"+boost::lexical_cast(i+1); // script1..script10 if(line->GetParam(op)->IsDefined()) { - brain->SetScriptName(i, const_cast(line->GetParam(op)->AsPath("").c_str())); //TODO: don't make this relative to ai/ + brain->SetScriptName(i, const_cast(("../"+line->GetParam(op)->AsPath("ai")).c_str())); } } @@ -4539,7 +4558,7 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) if (m_mapImage) { Math::Vector offset; - strcpy(m_mapFilename, line->GetParam("filename")->AsPath("").c_str()); //TODO: don't make this relative to textures/ + strcpy(m_mapFilename, ("../"+line->GetParam("filename")->AsPath("textures")).c_str()); offset = line->GetParam("offset")->AsPoint(Math::Vector(0.0f, 0.0f, 0.0f)); m_map->SetFixParam(line->GetParam("zoom")->AsFloat(1.0f), offset.x, offset.z, -- cgit v1.2.3-1-g7c22 From 569dd8ed25e7637fa3a1d3b0cbcde8612572c523 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sun, 26 Oct 2014 20:43:51 +0100 Subject: Fixed regex in CResourceManager::CleanPath --- src/common/resources/resourcemanager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/resources/resourcemanager.cpp b/src/common/resources/resourcemanager.cpp index b825374..475d71e 100644 --- a/src/common/resources/resourcemanager.cpp +++ b/src/common/resources/resourcemanager.cpp @@ -58,7 +58,7 @@ CResourceManager::~CResourceManager() std::string CResourceManager::CleanPath(const std::string& path) { - return boost::regex_replace(path, boost::regex("\\.\\./(.*)/"), ""); + return boost::regex_replace(path, boost::regex("(.*)/\\.\\./"), ""); } -- cgit v1.2.3-1-g7c22 From 990ecf729038baa995fd7d58d17aceecce343d4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Kapu=C5=9Bci=C5=84ski?= Date: Sun, 26 Oct 2014 22:24:12 +0100 Subject: Corrected clamping mode in textures --- src/graphics/opengl/gldevice.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/graphics/opengl/gldevice.cpp b/src/graphics/opengl/gldevice.cpp index 9cf3235..a197b18 100644 --- a/src/graphics/opengl/gldevice.cpp +++ b/src/graphics/opengl/gldevice.cpp @@ -803,13 +803,13 @@ void CGLDevice::UpdateTextureParams(int index) glActiveTexture(GL_TEXTURE0 + index); if (params.wrapS == TEX_WRAP_CLAMP) - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); else if (params.wrapS == TEX_WRAP_REPEAT) glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); else assert(false); if (params.wrapT == TEX_WRAP_CLAMP) - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); else if (params.wrapT == TEX_WRAP_REPEAT) glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); else assert(false); @@ -942,13 +942,13 @@ void CGLDevice::SetTextureStageWrap(int index, TexWrapMode wrapS, TexWrapMode wr glActiveTexture(GL_TEXTURE0 + index); if (wrapS == TEX_WRAP_CLAMP) - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); else if (wrapS == TEX_WRAP_REPEAT) glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); else assert(false); if (wrapT == TEX_WRAP_CLAMP) - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); else if (wrapT == TEX_WRAP_REPEAT) glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); else assert(false); -- cgit v1.2.3-1-g7c22 From d6e88a07b08585d6a6f151d34a07d8bca78711ea Mon Sep 17 00:00:00 2001 From: krzys-h Date: Mon, 27 Oct 2014 21:15:14 +0100 Subject: Support for %lvl% in TerrainInitTextures + cleanup cleanup: * Removed CProfile::SetUserPath (unused) * Removed CProfile::GetUserBasedPath (unused) * Removed CProfile::CopyFileToTemp (i have no idea why it even existed) * Removed CopyFileListToTemp (it did the same as CopyFileToTemp but for multiple files, wasn't even fully implemented) --- src/common/misc.cpp | 38 -------------------------------- src/common/misc.h | 1 - src/common/profile.cpp | 49 ----------------------------------------- src/common/profile.h | 20 ----------------- src/graphics/engine/terrain.cpp | 3 ++- src/object/robotmain.cpp | 13 +---------- 6 files changed, 3 insertions(+), 121 deletions(-) diff --git a/src/common/misc.cpp b/src/common/misc.cpp index 1cbd3b1..4954fc0 100644 --- a/src/common/misc.cpp +++ b/src/common/misc.cpp @@ -232,44 +232,6 @@ void TimeToAsciiClean(time_t time, char *buffer) when.tm_hour, when.tm_min); } -// Copy a list of numbered files into the temporary folder. - -bool CopyFileListToTemp(char* filename, int* list, int total) -{ - /*char name[100]; - char ext[10]; - char file[100]; - char save[100]; - char* p; - int i; - - strcpy(name, filename); - p = strchr(name, '.'); - if ( p == 0 ) - { - strcpy(ext, ".tga"); - } - else - { - strcpy(ext, p); - *p = 0; - } - - for ( i=0 ; i CProfile::GetSection(std::string section, std::string return ret_list; } - -void CProfile::SetUserDir(std::string dir) -{ - m_userDirectory = dir; -} - - -std::string CProfile::GetUserBasedPath(std::string dir, std::string defaultDir) -{ - std::string path = dir; - boost::replace_all(path, "\\", "/"); - if (dir.find("/") == std::string::npos) - { - path = defaultDir + "/" + dir; - } - - if (m_userDirectory.length() > 0) - { - boost::replace_all(path, "%user%", m_userDirectory); - } - else - { - boost::replace_all(path, "%user%", defaultDir); - } - - return fs::path(path).make_preferred().string(); -} - - -bool CProfile::CopyFileToTemp(std::string filename) -{ - std::string src, dst; - std::string tmp_user_dir = m_userDirectory; - - src = GetUserBasedPath(filename, "textures"); - SetUserDir("temp"); - dst = GetUserBasedPath(filename, "textures"); - SetUserDir(tmp_user_dir); - - fs::create_directory(fs::path(dst).parent_path().make_preferred().string()); - fs::copy_file(src, dst, fs::copy_option::overwrite_if_exists); - if (fs::exists(dst)) - { - return true; - } - - return false; -} - diff --git a/src/common/profile.h b/src/common/profile.h index 444975c..d89c5d1 100644 --- a/src/common/profile.h +++ b/src/common/profile.h @@ -116,29 +116,9 @@ public: */ std::vector< std::string > GetSection(std::string section, std::string key); - /** Sets current user directory - * \param dir - */ - void SetUserDir(std::string dir); - - /** Returns path based on current user. Replaces %user% in path with current user dir or - * uses default_dir param if no user dir is specified - * \param dir - * \param default_dir - * \return path - */ - std::string GetUserBasedPath(std::string dir, std::string defaultDir); - - /** Copy a file into the temporary folder. - * \param filename - * \return true on success - */ - bool CopyFileToTemp(std::string filename); - private: boost::property_tree::ptree m_propertyTree; bool m_profileNeedSave; - std::string m_userDirectory; bool m_useCurrentDirectory; }; diff --git a/src/graphics/engine/terrain.cpp b/src/graphics/engine/terrain.cpp index 21d7446..b58685b 100644 --- a/src/graphics/engine/terrain.cpp +++ b/src/graphics/engine/terrain.cpp @@ -123,7 +123,8 @@ bool CTerrain::InitTextures(const std::string& baseName, int* table, int dx, int m_useMaterials = false; m_texBaseName = baseName; - size_t pos = baseName.find('.'); + size_t pos = baseName.rfind('.'); + if(pos < baseName.find_last_of('/')) pos = std::string::npos; // If last . is not a part of filename (some directory, possibly . or ..) if (pos == std::string::npos) { diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp index 62176a1..012b08a 100644 --- a/src/object/robotmain.cpp +++ b/src/object/robotmain.cpp @@ -4123,7 +4123,7 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) if (line->GetCommand() == "TerrainInitTextures" && !resetObject) { - std::string name = line->GetParam("image")->AsPath(""); //TODO: don't make this relative to textures/ + std::string name = "../"+line->GetParam("image")->AsPath("textures"); if(name.find(".") == std::string::npos) name += ".png"; unsigned int dx = line->GetParam("dx")->AsInt(1); @@ -4154,11 +4154,6 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) } } - /*TODO: ??? - if (strstr(name, "%user%") != 0) - CopyFileListToTemp(name, tt, dx*dy); - */ - m_terrain->InitTextures(name.c_str(), tt, dx, dy); continue; } @@ -4175,12 +4170,6 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) if(name.find(".") == std::string::npos) name += ".png"; name = "../"+name; - /*TODO: ??? - if (strstr(name, "%user%") != 0) - { - GetProfile().CopyFileToTemp(std::string(name)); - } - */ m_terrain->AddMaterial(line->GetParam("id")->AsInt(0), name.c_str(), -- cgit v1.2.3-1-g7c22 From 11854dc89ed5925d39634de12048cee9e0f7547a Mon Sep 17 00:00:00 2001 From: krzys-h Date: Mon, 27 Oct 2014 21:49:03 +0100 Subject: Fixed script saving (issue #348) --- src/object/robotmain.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp index 012b08a..adbe81d 100644 --- a/src/object/robotmain.cpp +++ b/src/object/robotmain.cpp @@ -5465,9 +5465,12 @@ void CRobotMain::LoadFileScript(CObject *obj, const char* filename, int objRank, ObjectType type = obj->GetType(); if (type == OBJECT_HUMAN) return; - + + std::string fnstr = filename; + boost::replace_all(fnstr, m_dialog->GetSavegameDir(), m_dialog->GetPHYSFSSavegameDir()); //TODO: Refactor to get physfs path here + //TODO: Refactor to std::string char fn[MAX_FNAME]; - strcpy(fn, filename); + strcpy(fn, fnstr.c_str()); char* ldir = SearchLastDir(fn); if (ldir == 0) return; @@ -5534,8 +5537,11 @@ void CRobotMain::SaveFileScript(CObject *obj, const char* filename, int objRank) ObjectType type = obj->GetType(); if (type == OBJECT_HUMAN) return; + std::string fnstr = filename; + boost::replace_all(fnstr, m_dialog->GetSavegameDir(), m_dialog->GetPHYSFSSavegameDir()); //TODO: Refactor to get physfs path here + //TODO: Refactor to std::string char fn[MAX_FNAME]; - strcpy(fn, filename); + strcpy(fn, fnstr.c_str()); char* ldir = SearchLastDir(fn); if (ldir == 0) return; -- cgit v1.2.3-1-g7c22 From d75efcc5b272502e9a916610d1002145f4074638 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Mon, 27 Oct 2014 22:08:49 +0100 Subject: Fixed problems with loading save screenshots (issue #335) --- src/ui/maindialog.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index c607d7a..94d6f0c 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -4165,6 +4165,8 @@ void CMainDialog::IOUpdateList() return; std::string filename = (m_saveList.at(sel) / "screen.png").make_preferred().string(); + boost::replace_all(filename, GetSavegameDir(), GetPHYSFSSavegameDir()); //TODO: Refactor everything to PHYSFS, see issue #334 + filename = "../"+filename; if ( m_phase == PHASE_WRITE || m_phase == PHASE_WRITEs ) { if ( sel < max-1 ) @@ -6052,7 +6054,7 @@ bool CMainDialog::GetHimselfDamage() -// Saves the personalized player. +// the personalized player. void CMainDialog::WriteGamerPerso(char *gamer) { -- cgit v1.2.3-1-g7c22 From f679b5c84cd7f874d27b49f8d97a348a7d5eb1cb Mon Sep 17 00:00:00 2001 From: krzys-h Date: Mon, 27 Oct 2014 22:09:57 +0100 Subject: Sorry, I didn't mean to remove that --- src/ui/maindialog.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index 94d6f0c..af73b2e 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -6054,7 +6054,7 @@ bool CMainDialog::GetHimselfDamage() -// the personalized player. +// Saves the personalized player. void CMainDialog::WriteGamerPerso(char *gamer) { -- cgit v1.2.3-1-g7c22 From ca3a1cb02b4e7033b84833e6c3037891eecc7a2b Mon Sep 17 00:00:00 2001 From: CoLoRaptor Date: Tue, 28 Oct 2014 10:37:05 +0100 Subject: Changed splashscreens filenames in maindialog.cpp --- src/ui/maindialog.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index af73b2e..6c25902 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -1585,7 +1585,7 @@ void CMainDialog::ChangePhase(Phase phase) m_engine->SetOverColor(Gfx::Color(1.0f, 1.0f, 1.0f, 1.0f), Gfx::ENG_RSTATE_TCOLOR_BLACK); // TODO: color ok? m_engine->SetOverFront(true); - m_engine->SetBackground("interface/ppc.png", + m_engine->SetBackground("interface/intro1.png", Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), @@ -1604,7 +1604,7 @@ void CMainDialog::ChangePhase(Phase phase) m_engine->SetOverColor(Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::ENG_RSTATE_TCOLOR_WHITE); // TODO: color ok? m_engine->SetOverFront(true); - m_engine->SetBackground("interface/colobot.png", + m_engine->SetBackground("interface/intro2.png", Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), @@ -1623,7 +1623,7 @@ void CMainDialog::ChangePhase(Phase phase) m_engine->SetOverColor(Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::ENG_RSTATE_TCOLOR_WHITE); // TODO: color ok? m_engine->SetOverFront(true); - m_engine->SetBackground("interface/epsitec.png", + m_engine->SetBackground("interface/intro3.png", Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f), -- cgit v1.2.3-1-g7c22 From a8ed759b5205991c22ccbb75626ff2b68a092f23 Mon Sep 17 00:00:00 2001 From: Piotr Dziwinski Date: Tue, 28 Oct 2014 17:43:57 +0100 Subject: Use only POSIX sed expressions --- po/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt index 78a63b7..9a360e8 100644 --- a/po/CMakeLists.txt +++ b/po/CMakeLists.txt @@ -7,7 +7,7 @@ find_program(XGETTEXT_CMD xgettext) add_custom_command(OUTPUT ${_potFile} COMMAND ${XGETTEXT_CMD} ${colobot_SOURCE_DIR}/src/app/app.cpp --output=${_potFile} COMMAND ${XGETTEXT_CMD} ${colobot_SOURCE_DIR}/src/common/restext.cpp --output=${_potFile} --join-existing --keyword=TR --no-location - COMMAND sed -i -E "s|^(\"POT-Creation-Date:).*$|\\1 DATE\\\\n\"|" ${_potFile} + COMMAND sed -i "s|^\\(\"POT-Creation-Date:\\).*$|\\1 DATE\\\\n\"|" ${_potFile} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMENT "Extract translatable messages to ${_potFile}" -- cgit v1.2.3-1-g7c22 From 5e78ce68933eded8eaaf3aea8a302ed5743b3cf4 Mon Sep 17 00:00:00 2001 From: Piotr Dziwinski Date: Tue, 28 Oct 2014 17:46:01 +0100 Subject: Updated data submodule --- data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data b/data index 3b99d74..715574d 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit 3b99d746de967ac6088796f64783d42bdf72af3e +Subproject commit 715574da9a3350be60d8fbf40c0e176576923f50 -- cgit v1.2.3-1-g7c22 From 43eca511c48920dff48c0ae5d2c3a67fc5957cc4 Mon Sep 17 00:00:00 2001 From: Piotr Dziwinski Date: Tue, 28 Oct 2014 18:28:38 +0100 Subject: Fix sed commands (#349) --- data | 2 +- po/CMakeLists.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/data b/data index 715574d..2660c69 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit 715574da9a3350be60d8fbf40c0e176576923f50 +Subproject commit 2660c69a52411ca68a2cd6d61f6147f0efbfcc15 diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt index 9a360e8..def5473 100644 --- a/po/CMakeLists.txt +++ b/po/CMakeLists.txt @@ -7,7 +7,7 @@ find_program(XGETTEXT_CMD xgettext) add_custom_command(OUTPUT ${_potFile} COMMAND ${XGETTEXT_CMD} ${colobot_SOURCE_DIR}/src/app/app.cpp --output=${_potFile} COMMAND ${XGETTEXT_CMD} ${colobot_SOURCE_DIR}/src/common/restext.cpp --output=${_potFile} --join-existing --keyword=TR --no-location - COMMAND sed -i "s|^\\(\"POT-Creation-Date:\\).*$|\\1 DATE\\\\n\"|" ${_potFile} + COMMAND sed -i -e "s|^\\(\"POT-Creation-Date:\\).*$|\\1 DATE\\\\n\"|" ${_potFile} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMENT "Extract translatable messages to ${_potFile}" -- cgit v1.2.3-1-g7c22 From d91569e165083a7c12b1c672713a9725d80c261c Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sat, 11 Jan 2014 17:51:13 +0100 Subject: Showing coordinates in stats menu (F12/showstat); removed "showpos" cheat Issue #277 Conflicts: src/object/cheat.cpp src/object/robotmain.cpp src/object/robotmain.h --- src/graphics/engine/engine.cpp | 25 ++++++++++++++++++++++--- src/graphics/engine/engine.h | 4 ++++ src/object/robotmain.cpp | 20 ++++---------------- src/object/robotmain.h | 1 - 4 files changed, 30 insertions(+), 20 deletions(-) diff --git a/src/graphics/engine/engine.cpp b/src/graphics/engine/engine.cpp index ae6f238..03bff72 100644 --- a/src/graphics/engine/engine.cpp +++ b/src/graphics/engine/engine.cpp @@ -515,6 +515,11 @@ int CEngine::GetStatisticTriangle() return m_statisticTriangle; } +void CEngine::SetStatisticPos(Math::Vector pos) +{ + m_statisticPos = pos; +} + /******************************************************* @@ -4335,7 +4340,7 @@ void CEngine::DrawStats() float height = m_text->GetAscent(FONT_COLOBOT, 12.0f); float width = 0.2f; - Math::Point pos(0.04f, 0.04f + 17 * height); + Math::Point pos(0.04f, 0.04f + 20 * height); SetState(ENG_RSTATE_OPAQUE_COLOR); @@ -4343,9 +4348,9 @@ void CEngine::DrawStats() VertexCol vertex[4] = { - VertexCol(Math::Vector(pos.x , pos.y - 17 * height, 0.0f), black), + VertexCol(Math::Vector(pos.x , pos.y - 20 * height, 0.0f), black), VertexCol(Math::Vector(pos.x , pos.y + height, 0.0f), black), - VertexCol(Math::Vector(pos.x + width, pos.y - 17 * height, 0.0f), black), + VertexCol(Math::Vector(pos.x + width, pos.y - 20 * height, 0.0f), black), VertexCol(Math::Vector(pos.x + width, pos.y + height, 0.0f), black) }; @@ -4458,6 +4463,20 @@ void CEngine::DrawStats() pos.y -= height; m_text->DrawText(m_fpsText, FONT_COLOBOT, 12.0f, pos, 1.0f, TEXT_ALIGN_LEFT, 0, Color(1.0f, 1.0f, 1.0f, 1.0f)); + + + pos.y -= height; + pos.y -= height; + + str.str(""); + str << "Position x: " << std::fixed << std::setprecision(2) << m_statisticPos.x/g_unit; + m_text->DrawText(str.str(), FONT_COLOBOT, 12.0f, pos, 1.0f, TEXT_ALIGN_LEFT, 0, Color(1.0f, 1.0f, 1.0f, 1.0f)); + + pos.y -= height; + + str.str(""); + str << "Position y: " << std::fixed << std::setprecision(2) << m_statisticPos.z/g_unit; + m_text->DrawText(str.str(), FONT_COLOBOT, 12.0f, pos, 1.0f, TEXT_ALIGN_LEFT, 0, Color(1.0f, 1.0f, 1.0f, 1.0f)); } diff --git a/src/graphics/engine/engine.h b/src/graphics/engine/engine.h index a4d0152..c8e86d1 100644 --- a/src/graphics/engine/engine.h +++ b/src/graphics/engine/engine.h @@ -777,6 +777,9 @@ public: void AddStatisticTriangle(int nb); //! Returns the number of triangles in current frame int GetStatisticTriangle(); + + //! Sets the coordinates to display in stats window + void SetStatisticPos(Math::Vector pos); /* *************** Object management *************** */ @@ -1348,6 +1351,7 @@ protected: float m_fogStart[2]; Color m_waterAddColor; int m_statisticTriangle; + Math::Vector m_statisticPos; bool m_updateGeometry; bool m_updateStaticBuffers; int m_alphaMode; diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp index adbe81d..90faceb 100644 --- a/src/object/robotmain.cpp +++ b/src/object/robotmain.cpp @@ -673,7 +673,6 @@ CRobotMain::CRobotMain(CApplication* app, bool loadProfile) m_editFull = false; m_hilite = false; m_freePhoto = false; - m_showPos = false; m_selectInsect = false; m_showSoluce = false; @@ -2080,12 +2079,6 @@ void CRobotMain::ExecuteCmd(char *cmd) return; } - if (strcmp(cmd, "showpos") == 0) - { - m_showPos = !m_showPos; - return; - } - if (strcmp(cmd, "selectinsect") == 0) { m_selectInsect = !m_selectInsect; @@ -3369,16 +3362,11 @@ void CRobotMain::AbortMovie() //! Updates the text information void CRobotMain::UpdateInfoText() { - if (m_showPos) + CObject* obj = GetSelect(); + if (obj != nullptr) { - CObject* obj = GetSelect(); - if (obj != nullptr) - { - Math::Vector pos = obj->GetPosition(0); - char info[100]; - sprintf(info, "Pos = %.2f ; %.2f", pos.x/g_unit, pos.z/g_unit); - //TODO: m_engine->SetInfoText(4, info); - } + Math::Vector pos = obj->GetPosition(0); + m_engine->SetStatisticPos(pos); } } diff --git a/src/object/robotmain.h b/src/object/robotmain.h index 2c819cc..da31e5f 100644 --- a/src/object/robotmain.h +++ b/src/object/robotmain.h @@ -479,7 +479,6 @@ protected: Gfx::Color m_color; bool m_freePhoto; bool m_cmdEdit; - bool m_showPos; bool m_selectInsect; bool m_showSoluce; bool m_showAll; -- cgit v1.2.3-1-g7c22 From 61e06149c65fbc61c6d927f527195a9b4a8154dc Mon Sep 17 00:00:00 2001 From: krzys-h Date: Wed, 29 Oct 2014 16:08:45 +0100 Subject: Fixed position updating --- src/object/robotmain.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp index 90faceb..6ebd34c 100644 --- a/src/object/robotmain.cpp +++ b/src/object/robotmain.cpp @@ -1416,6 +1416,11 @@ bool CRobotMain::ProcessEvent(Event &event) m_interface->EventProcess(event); if (m_displayInfo != nullptr) // current edition? m_displayInfo->EventProcess(event); + + if (m_phase == PHASE_SIMUL) + { + UpdateInfoText(); + } return EventFrame(event); } @@ -1500,8 +1505,6 @@ bool CRobotMain::ProcessEvent(Event &event) // Simulation phase of the game if (m_phase == PHASE_SIMUL) { - UpdateInfoText(); - if (!m_editFull) m_camera->EventProcess(event); -- cgit v1.2.3-1-g7c22 From 6d2fd18b419ddc202fa14cb14c98e8f3d5ecf646 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Wed, 29 Oct 2014 17:53:46 +0100 Subject: Implemented mission timer --- src/common/misc.cpp | 13 ++++++++ src/common/misc.h | 2 ++ src/graphics/engine/engine.cpp | 14 +++++++++ src/graphics/engine/engine.h | 7 +++++ src/object/brain.cpp | 2 ++ src/object/robotmain.cpp | 67 +++++++++++++++++++++++++++++++++++++----- src/object/robotmain.h | 6 ++++ 7 files changed, 103 insertions(+), 8 deletions(-) diff --git a/src/common/misc.cpp b/src/common/misc.cpp index 4954fc0..35a5560 100644 --- a/src/common/misc.cpp +++ b/src/common/misc.cpp @@ -26,6 +26,8 @@ #include #include #include +#include +#include // Returns a non-accented letter. @@ -232,6 +234,17 @@ void TimeToAsciiClean(time_t time, char *buffer) when.tm_hour, when.tm_min); } +std::string TimeFormat(float time) +{ + int minutes = floor(time/60); + double time2 = fmod(time, 60); + double seconds; + double fraction = modf(time2, &seconds)*100; + std::ostringstream sstream; + sstream << std::setfill('0') << std::setw(2) << minutes << ":" << std::setfill('0') << std::setw(2) << floor(seconds) << "." << std::setfill('0') << std::setw(2) << floor(fraction); + return sstream.str(); +} + // Adds an extension to file, if doesn't already one. diff --git a/src/common/misc.h b/src/common/misc.h index 4b75ae3..b53bbdd 100644 --- a/src/common/misc.h +++ b/src/common/misc.h @@ -22,6 +22,7 @@ #include +#include // TODO: rewrite/refactor or remove @@ -32,6 +33,7 @@ extern char GetToLower(char letter); extern void TimeToAscii(time_t time, char *buffer); extern void TimeToAsciiClean(time_t time, char *buffer); +extern std::string TimeFormat(float time); extern void AddExt(char* filename, const char* ext); diff --git a/src/graphics/engine/engine.cpp b/src/graphics/engine/engine.cpp index 03bff72..3c642ae 100644 --- a/src/graphics/engine/engine.cpp +++ b/src/graphics/engine/engine.cpp @@ -520,6 +520,11 @@ void CEngine::SetStatisticPos(Math::Vector pos) m_statisticPos = pos; } +void CEngine::SetTimerDisplay(const std::string& text) +{ + m_timerText = text; +} + /******************************************************* @@ -3510,6 +3515,7 @@ void CEngine::DrawInterface() DrawMouse(); DrawHighlight(); DrawStats(); + DrawTimer(); } void CEngine::UpdateGroundSpotTextures() @@ -4479,6 +4485,14 @@ void CEngine::DrawStats() m_text->DrawText(str.str(), FONT_COLOBOT, 12.0f, pos, 1.0f, TEXT_ALIGN_LEFT, 0, Color(1.0f, 1.0f, 1.0f, 1.0f)); } +void CEngine::DrawTimer() +{ + SetState(ENG_RSTATE_TEXT); + + Math::Point pos(0.98f, 0.98f-m_text->GetAscent(FONT_COLOBOT, 15.0f)); + m_text->DrawText(m_timerText, FONT_COLOBOT, 15.0f, pos, 1.0f, TEXT_ALIGN_RIGHT, 0, Color(1.0f, 1.0f, 1.0f, 1.0f)); +} + } // namespace Gfx diff --git a/src/graphics/engine/engine.h b/src/graphics/engine/engine.h index c8e86d1..6ca7d1b 100644 --- a/src/graphics/engine/engine.h +++ b/src/graphics/engine/engine.h @@ -780,6 +780,9 @@ public: //! Sets the coordinates to display in stats window void SetStatisticPos(Math::Vector pos); + + //! Sets text to display as mission timer + void SetTimerDisplay(const std::string& text); /* *************** Object management *************** */ @@ -1236,6 +1239,8 @@ protected: void DrawMouseSprite(Math::Point pos, Math::Point dim, int icon); //! Draw statistic texts void DrawStats(); + //! Draw mission timer + void DrawTimer(); //! Creates a new tier 2 object (texture) EngineBaseObjTexTier& AddLevel2(EngineBaseObject& p1, const std::string& tex1Name, const std::string& tex2Name); @@ -1442,6 +1447,8 @@ protected: bool m_debugLights; bool m_debugDumpLights; + + std::string m_timerText; }; diff --git a/src/object/brain.cpp b/src/object/brain.cpp index dec8cca..f10faac 100644 --- a/src/object/brain.cpp +++ b/src/object/brain.cpp @@ -2546,6 +2546,8 @@ void CBrain::RunProgram(int rank) BlinkScript(true); // blink m_object->CreateSelectParticle(); m_main->UpdateShortcuts(); + if(m_object->GetTrainer()) + m_main->StartMissionTimer(); } } diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp index 6ebd34c..10e7648 100644 --- a/src/object/robotmain.cpp +++ b/src/object/robotmain.cpp @@ -645,6 +645,10 @@ CRobotMain::CRobotMain(CApplication* app, bool loadProfile) m_time = 0.0f; m_gameTime = 0.0f; m_checkEndTime = 0.0f; + + m_missionTimerEnabled = false; + m_missionTimerStarted = false; + m_missionTimer = 0.0f; m_phase = PHASE_NAME; m_cameraRank = -1; @@ -1087,6 +1091,9 @@ void CRobotMain::ResetKeyStates() //! Changes phase void CRobotMain::ChangePhase(Phase phase) { + m_missionTimerEnabled = m_missionTimerStarted = false; + m_missionTimer = 0.0f; + if (m_phase == PHASE_SIMUL) // ends a simulation? { SaveAllScript(); @@ -1417,10 +1424,7 @@ bool CRobotMain::ProcessEvent(Event &event) if (m_displayInfo != nullptr) // current edition? m_displayInfo->EventProcess(event); - if (m_phase == PHASE_SIMUL) - { - UpdateInfoText(); - } + UpdateInfoText(); return EventFrame(event); } @@ -1754,12 +1758,14 @@ bool CRobotMain::ProcessEvent(Event &event) break; case EVENT_WIN: + m_missionTimerEnabled = m_missionTimerStarted = false; ChangePhase(PHASE_WIN); if(m_exitAfterMission) m_eventQueue->AddEvent(Event(EVENT_QUIT)); break; case EVENT_LOST: + m_missionTimerEnabled = m_missionTimerStarted = false; ChangePhase(PHASE_LOST); if(m_exitAfterMission) m_eventQueue->AddEvent(Event(EVENT_QUIT)); @@ -3365,12 +3371,16 @@ void CRobotMain::AbortMovie() //! Updates the text information void CRobotMain::UpdateInfoText() { - CObject* obj = GetSelect(); - if (obj != nullptr) + if (m_phase == PHASE_SIMUL) { - Math::Vector pos = obj->GetPosition(0); - m_engine->SetStatisticPos(pos); + CObject* obj = GetSelect(); + if (obj != nullptr) + { + Math::Vector pos = obj->GetPosition(0); + m_engine->SetStatisticPos(pos); + } } + m_engine->SetTimerDisplay(m_missionTimerEnabled && m_missionTimerStarted ? TimeFormat(m_missionTimer) : ""); } @@ -3394,6 +3404,9 @@ bool CRobotMain::EventFrame(const Event &event) m_displayText->DisplayError(INFO_BEGINSATCOM, Math::Vector(0.0f,0.0f,0.0f)); m_beginSatCom = true; // message appears } + + if(!m_movieLock && m_pause->GetPause() == PAUSE_NONE && m_missionTimerStarted) + m_missionTimer += event.rTime; m_water->EventProcess(event); m_cloud->EventProcess(event); @@ -3760,6 +3773,11 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) m_missionResult = ERR_MISSION_NOTERM; } + //NOTE: Reset timer always, even when only resetting object positions + m_missionTimerEnabled = false; + m_missionTimerStarted = false; + m_missionTimer = 0.0f; + CLevelParser* level = new CLevelParser(base, rank/100, rank%100); level->Load(); @@ -3853,6 +3871,15 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) continue; } + if (line->GetCommand() == "MissionTimer") + { + m_missionTimerEnabled = line->GetParam("enabled")->AsBool(); + if(!line->GetParam("program")->AsBool(false)) { + m_missionTimerStarted = true; + } + continue; + } + if (line->GetCommand() == "CacheAudio" && !resetObject && m_version >= 2) { m_sound->CacheMusic(std::string("../")+line->GetParam("filename")->AsPath("music")); @@ -6342,12 +6369,14 @@ Error CRobotMain::CheckEndMission(bool frame) if (m_missionResult == INFO_LOST) //mission lost? { m_displayText->DisplayError(INFO_LOST, Math::Vector(0.0f,0.0f,0.0f)); + m_missionTimerEnabled = m_missionTimerStarted = false; m_winDelay = 0.0f; if (m_lostDelay == 0) m_lostDelay = m_endTakeLostDelay; m_displayText->SetEnable(false); } if (m_missionResult == INFO_LOSTq) //mission lost? { + m_missionTimerEnabled = m_missionTimerStarted = false; m_winDelay = 0.0f; if (m_lostDelay == 0) m_lostDelay = 0.1f; m_displayText->SetEnable(false); @@ -6355,6 +6384,11 @@ Error CRobotMain::CheckEndMission(bool frame) if (frame && m_base) return ERR_MISSION_NOTERM; if (m_missionResult == ERR_OK) { //mission win? m_displayText->DisplayError(INFO_WIN, Math::Vector(0.0f,0.0f,0.0f)); + if(m_missionTimerEnabled && m_missionTimerStarted) { + CLogger::GetInstancePointer()->Info("Mission time: %s\n", TimeFormat(m_missionTimer).c_str()); + m_displayText->DisplayText(("Time: "+TimeFormat(m_missionTimer)).c_str(), Math::Vector(0.0f,0.0f,0.0f)); + } + m_missionTimerEnabled = m_missionTimerStarted = false; if (m_winDelay == 0) m_winDelay = m_endTakeWinDelay; m_lostDelay = 0.0f; m_displayText->SetEnable(false); @@ -6431,6 +6465,7 @@ Error CRobotMain::CheckEndMission(bool frame) m_lostDelay = 0.1f; // lost immediately m_winDelay = 0.0f; } + m_missionTimerEnabled = m_missionTimerStarted = false; m_displayText->SetEnable(false); return INFO_LOSTq; } @@ -6442,6 +6477,7 @@ Error CRobotMain::CheckEndMission(bool frame) m_lostDelay = m_endTakeLostDelay; // lost in 6 seconds m_winDelay = 0.0f; } + m_missionTimerEnabled = m_missionTimerStarted = false; m_displayText->SetEnable(false); return INFO_LOST; } @@ -6460,6 +6496,7 @@ Error CRobotMain::CheckEndMission(bool frame) m_winDelay = m_endTakeWinDelay; // wins in x seconds m_lostDelay = 0.0f; } + m_missionTimerEnabled = m_missionTimerStarted = false; m_displayText->SetEnable(false); return ERR_OK; // mission ended } @@ -6478,6 +6515,7 @@ Error CRobotMain::CheckEndMission(bool frame) { m_winDelay = 1.0f; // wins in one second m_lostDelay = 0.0f; + m_missionTimerEnabled = m_missionTimerStarted = false; m_displayText->SetEnable(false); return ERR_OK; // mission ended } @@ -6487,6 +6525,11 @@ Error CRobotMain::CheckEndMission(bool frame) if (m_winDelay == 0.0f) { m_displayText->DisplayError(INFO_WIN, Math::Vector(0.0f,0.0f,0.0f)); + if(m_missionTimerEnabled && m_missionTimerStarted) { + CLogger::GetInstancePointer()->Info("Mission time: %s\n", TimeFormat(m_missionTimer).c_str()); + m_displayText->DisplayText(("Time: "+TimeFormat(m_missionTimer)).c_str(), Math::Vector(0.0f,0.0f,0.0f)); + } + m_missionTimerEnabled = m_missionTimerStarted = false; m_winDelay = m_endTakeWinDelay; // wins in two seconds m_lostDelay = 0.0f; } @@ -6960,3 +7003,11 @@ std::string& CRobotMain::GetUserLevelName(int id) { return m_dialog->GetUserLevelName(id); } + +void CRobotMain::StartMissionTimer() +{ + if(m_missionTimerEnabled && !m_missionTimerStarted) { + CLogger::GetInstancePointer()->Info("Starting mission timer...\n"); + m_missionTimerStarted = true; + } +} diff --git a/src/object/robotmain.h b/src/object/robotmain.h index da31e5f..0b89975 100644 --- a/src/object/robotmain.h +++ b/src/object/robotmain.h @@ -397,6 +397,8 @@ public: void DisplayError(Error err, Math::Vector goal, float height=15.0f, float dist=60.0f, float time=10.0f); std::string& GetUserLevelName(int id); + + void StartMissionTimer(); protected: bool EventFrame(const Event &event); @@ -589,5 +591,9 @@ protected: float m_colorShiftWater; std::string m_oldLocale; + + bool m_missionTimerEnabled; + bool m_missionTimerStarted; + float m_missionTimer; }; -- cgit v1.2.3-1-g7c22 From f68e7df8d6d774c747a557719460b6d588588305 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Wed, 29 Oct 2014 21:06:59 +0100 Subject: Fixed program saving (#352) --- src/ui/studio.cpp | 26 +++++++++++++++++--------- src/ui/studio.h | 2 +- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/ui/studio.cpp b/src/ui/studio.cpp index 01ffd6a..acfe720 100644 --- a/src/ui/studio.cpp +++ b/src/ui/studio.cpp @@ -24,6 +24,8 @@ #include "app/app.h" +#include "common/resources/resourcemanager.h" + #include "common/event.h" #include "common/misc.h" @@ -1523,8 +1525,8 @@ void CStudio::UpdateDialogList() // Constructs the name of the folder or open/save. // If the folder does not exist, it will be created. - -std::string CStudio::SearchDirectory(bool bCreate) +//TODO: Refactor to PHYSFS +std::string CStudio::SearchDirectory(bool bCreate, bool physfsReady) { char dir[MAX_FNAME]; if ( m_main->GetIOPublic() ) @@ -1533,17 +1535,21 @@ std::string CStudio::SearchDirectory(bool bCreate) } else { - sprintf(dir, "%s/%s/Program/", m_main->GetPHYSFSSavegameDir(), m_main->GetGamerName()); + sprintf(dir, "%s/%s/Program/", m_main->GetSavegameDir(), m_main->GetGamerName()); } - fs::path path = fs::path(dir); - if ( bCreate ) { - fs::create_directory(path); + fs::path path = fs::path(dir); + fs::create_directories(path); } - return path.make_preferred().string(); + std::string dir2 = dir; + if(physfsReady) { + boost::replace_all(dir2, CResourceManager::GetSaveLocation()+"/", ""); + } + CLogger::GetInstancePointer()->Debug("%s -> %s\n", dir, dir2.c_str()); + return dir2; } // Reads a new program. @@ -1569,7 +1575,7 @@ bool CStudio::ReadProgram() { strcat(filename, ".txt"); } - strcpy(dir, SearchDirectory(true).c_str()); + strcpy(dir, SearchDirectory(true, true).c_str()); strcat(dir, filename); pw = static_cast< CWindow* >(m_interface->SearchControl(EVENT_WINDOW3)); @@ -1607,7 +1613,7 @@ bool CStudio::WriteProgram() { strcat(filename, ".txt"); } - strcpy(dir, SearchDirectory(true).c_str()); + strcpy(dir, SearchDirectory(true, true).c_str()); strcat(dir, filename); pw = static_cast< CWindow* >(m_interface->SearchControl(EVENT_WINDOW3)); @@ -1615,6 +1621,8 @@ bool CStudio::WriteProgram() pe = static_cast< CEdit* >(pw->SearchControl(EVENT_STUDIO_EDIT)); if ( pe == nullptr ) return false; + CLogger::GetInstancePointer()->Debug("%s\n", dir); + if ( !pe->WriteText(std::string(dir)) ) return false; m_script->SetFilename(filename); diff --git a/src/ui/studio.h b/src/ui/studio.h index a11d706..dda1368 100644 --- a/src/ui/studio.h +++ b/src/ui/studio.h @@ -88,7 +88,7 @@ protected: void UpdateDialogAction(); void UpdateDialogPublic(); void UpdateDialogList(); - std::string SearchDirectory(bool bCreate); + std::string SearchDirectory(bool bCreate, bool physfsReady=false); bool ReadProgram(); bool WriteProgram(); -- cgit v1.2.3-1-g7c22 From d6d08797ca4559fef3e74d747b8dde55153d823e Mon Sep 17 00:00:00 2001 From: krzys-h Date: Wed, 29 Oct 2014 21:13:12 +0100 Subject: I forgot to remove some debug stuff --- src/ui/studio.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/ui/studio.cpp b/src/ui/studio.cpp index acfe720..93fd050 100644 --- a/src/ui/studio.cpp +++ b/src/ui/studio.cpp @@ -1548,7 +1548,6 @@ std::string CStudio::SearchDirectory(bool bCreate, bool physfsReady) if(physfsReady) { boost::replace_all(dir2, CResourceManager::GetSaveLocation()+"/", ""); } - CLogger::GetInstancePointer()->Debug("%s -> %s\n", dir, dir2.c_str()); return dir2; } @@ -1620,8 +1619,6 @@ bool CStudio::WriteProgram() if ( pw == nullptr ) return false; pe = static_cast< CEdit* >(pw->SearchControl(EVENT_STUDIO_EDIT)); if ( pe == nullptr ) return false; - - CLogger::GetInstancePointer()->Debug("%s\n", dir); if ( !pe->WriteText(std::string(dir)) ) return false; -- cgit v1.2.3-1-g7c22 From 066344dde3e2706df39ee72f56fe39d144f2953b Mon Sep 17 00:00:00 2001 From: krzys-h Date: Wed, 29 Oct 2014 21:15:45 +0100 Subject: Fixed screenshoot loading again issue #335 --- src/ui/maindialog.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index 6c25902..051cd94 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -4165,7 +4165,7 @@ void CMainDialog::IOUpdateList() return; std::string filename = (m_saveList.at(sel) / "screen.png").make_preferred().string(); - boost::replace_all(filename, GetSavegameDir(), GetPHYSFSSavegameDir()); //TODO: Refactor everything to PHYSFS, see issue #334 + boost::replace_all(filename, CResourceManager::GetSaveLocation()+"/", ""); //TODO: Refactor everything to PHYSFS, see issue #334 filename = "../"+filename; if ( m_phase == PHASE_WRITE || m_phase == PHASE_WRITEs ) { -- cgit v1.2.3-1-g7c22 From c1f931c8ee301ffb49871ead236b048f168916da Mon Sep 17 00:00:00 2001 From: krzys-h Date: Thu, 30 Oct 2014 22:17:47 +0100 Subject: Added some debug stuff, possible fix for #348 and #335 --- src/app/app.cpp | 2 ++ src/ui/maindialog.cpp | 7 +++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/app/app.cpp b/src/app/app.cpp index ea54cf1..ae1f82a 100644 --- a/src/app/app.cpp +++ b/src/app/app.cpp @@ -420,6 +420,8 @@ bool CApplication::Create() LoadModsFromDir(m_dataPath+"/mods"); LoadModsFromDir(m_savePath+"/mods"); + GetLogger()->Info("Data path: %s\n", m_dataPath.c_str()); + GetLogger()->Info("Save path: %s\n", m_savePath.c_str()); CResourceManager::AddLocation(m_dataPath, false); CResourceManager::SetSaveLocation(m_savePath); CResourceManager::AddLocation(m_savePath, true); diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index 051cd94..21e2b74 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -185,6 +185,7 @@ CMainDialog::CMainDialog() m_savegameDir = "savegame"; m_publicDir = CResourceManager::GetSaveLocation()+"/program"; //TODO: Refactor to use PHYSFS m_filesDir = CResourceManager::GetSaveLocation()+"/files"; //TODO: Refactor to use PHYSFS + CLogger::GetInstancePointer()->Trace("Savegame path: normal=%s, physfs=%s\n", GetSavegameDir().c_str(), GetPHYSFSSavegameDir().c_str()); m_setupFull = m_app->GetVideoConfig().fullScreen; @@ -4165,7 +4166,7 @@ void CMainDialog::IOUpdateList() return; std::string filename = (m_saveList.at(sel) / "screen.png").make_preferred().string(); - boost::replace_all(filename, CResourceManager::GetSaveLocation()+"/", ""); //TODO: Refactor everything to PHYSFS, see issue #334 + boost::replace_all(filename, GetSavegameDir(), GetPHYSFSSavegameDir()); //TODO: Refactor everything to PHYSFS, see issue #334 filename = "../"+filename; if ( m_phase == PHASE_WRITE || m_phase == PHASE_WRITEs ) { @@ -6000,7 +6001,9 @@ bool CMainDialog::GetSceneSoluce() std::string CMainDialog::GetSavegameDir() { - return CResourceManager::GetSaveLocation()+"/"+m_savegameDir; + std::string out = CResourceManager::GetSaveLocation()+"/"+m_savegameDir; + boost::replace_all(out, "\\", "/"); + return out; } //TODO: Use PHYSFS everywhere -- cgit v1.2.3-1-g7c22 From 601ea0ec87f1350ce61f7bba0b2821e359972421 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Thu, 30 Oct 2014 22:26:14 +0100 Subject: Increased mission end accuracy It whould now detect mission end immediately. We need somebody with an older computer than mine to make sure it doesn't cause FPS drop. --- src/object/robotmain.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp index 10e7648..ce6b9c1 100644 --- a/src/object/robotmain.cpp +++ b/src/object/robotmain.cpp @@ -3555,7 +3555,7 @@ bool CRobotMain::EventFrame(const Event &event) if (m_phase == PHASE_SIMUL) { - if (!m_editLock && m_checkEndTime+1.0f < m_time) + if (!m_editLock /*&& m_checkEndTime+1.0f < m_time*/) { m_checkEndTime = m_time; CheckEndMission(true); -- cgit v1.2.3-1-g7c22 From d0383ae09babc015b84997241d403b01ad40f677 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Fri, 31 Oct 2014 15:32:24 +0100 Subject: -runscene for userlevels You need to know which ID is assigned to te userlevel category (by order in "User" menu) -runscene custom101 = first userlevel from first chapter --- src/object/robotmain.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp index ce6b9c1..afdca9e 100644 --- a/src/object/robotmain.cpp +++ b/src/object/robotmain.cpp @@ -957,6 +957,7 @@ void CRobotMain::LoadSceneOnStart(const std::string& name, int rank) { m_exitAfterMission = true; // TODO: fix this ugly dependency :( + ChangePhase(PHASE_USER); // To load userlevel list m_dialog->SetSceneName(name.c_str()); m_dialog->SetSceneRank(rank); ChangePhase(PHASE_LOADING); -- cgit v1.2.3-1-g7c22 From 487e43ff4e940f0fe1b93d261598212f7da2fba6 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Thu, 28 Aug 2014 13:08:10 +0200 Subject: Changing resolution from commandline Conflicts: src/app/app.cpp --- src/app/app.cpp | 24 +++++++++++++++++++----- src/app/app.h | 3 +++ 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/src/app/app.cpp b/src/app/app.cpp index ae1f82a..513fc27 100644 --- a/src/app/app.cpp +++ b/src/app/app.cpp @@ -168,12 +168,11 @@ CApplication::CApplication() m_runSceneRank = 0; m_sceneTest = false; + m_resolutionOverride = false; m_language = LANGUAGE_ENV; m_lowCPU = true; - - m_protoMode = false; } CApplication::~CApplication() @@ -228,7 +227,8 @@ ParseArgsStatus CApplication::ParseArguments(int argc, char *argv[]) OPT_DATADIR, OPT_SAVEDIR, OPT_MOD, - OPT_VBO + OPT_VBO, + OPT_RESOLUTION }; option options[] = @@ -244,6 +244,7 @@ ParseArgsStatus CApplication::ParseArguments(int argc, char *argv[]) { "savedir", required_argument, nullptr, OPT_SAVEDIR }, { "mod", required_argument, nullptr, OPT_MOD }, { "vbo", required_argument, nullptr, OPT_VBO }, + { "resolution", required_argument, nullptr, OPT_RESOLUTION }, { nullptr, 0, nullptr, 0} }; @@ -285,6 +286,7 @@ ParseArgsStatus CApplication::ParseArguments(int argc, char *argv[]) GetLogger()->Message(" -savedir path set custom save directory path (must be writable)\n"); GetLogger()->Message(" -mod path load datadir mod from given path\n"); GetLogger()->Message(" -vbo mode set OpenGL VBO mode (one of: auto, enable, disable)\n"); + GetLogger()->Message(" -resolution WxH set resolution\n"); return PARSE_ARGS_HELP; } case OPT_DEBUG: @@ -388,6 +390,18 @@ ParseArgsStatus CApplication::ParseArguments(int argc, char *argv[]) CResourceManager::AddLocation(optarg, true); break; } + case OPT_RESOLUTION: + { + std::istringstream resolution(optarg); + std::string w, h; + std::getline(resolution, w, 'x'); + std::getline(resolution, h, 'x'); + + m_deviceConfig.size.x = atoi(w.c_str()); + m_deviceConfig.size.y = atoi(h.c_str()); + m_resolutionOverride = true; + break; + } default: assert(false); // should never get here } @@ -493,7 +507,7 @@ bool CApplication::Create() // load settings from profile int iValue; - if ( GetProfile().GetIntProperty("Setup", "Resolution", iValue) ) + if ( GetProfile().GetIntProperty("Setup", "Resolution", iValue) && !m_resolutionOverride ) { std::vector modes; GetVideoResolutionList(modes, true, true); @@ -501,7 +515,7 @@ bool CApplication::Create() m_deviceConfig.size = modes.at(iValue); } - if ( GetProfile().GetIntProperty("Setup", "Fullscreen", iValue) ) + if ( GetProfile().GetIntProperty("Setup", "Fullscreen", iValue) && !m_resolutionOverride ) { m_deviceConfig.fullScreen = (iValue == 1); } diff --git a/src/app/app.h b/src/app/app.h index 500cb2f..d933374 100644 --- a/src/app/app.h +++ b/src/app/app.h @@ -503,5 +503,8 @@ protected: //! Show prototype levels bool m_protoMode; + + //! Screen resoultion overriden by commandline + bool m_resolutionOverride; }; -- cgit v1.2.3-1-g7c22 From f8841f96f279fe4c479779364f3f06914cf8bc02 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Fri, 31 Oct 2014 20:05:06 +0100 Subject: Added -headless For automated stuff on devices without GPU --- src/CMakeLists.txt | 1 + src/app/app.cpp | 76 ++++++--- src/app/app.h | 6 +- src/graphics/core/nulldevice.cpp | 359 +++++++++++++++++++++++++++++++++++++++ src/graphics/core/nulldevice.h | 145 ++++++++++++++++ 5 files changed, 556 insertions(+), 31 deletions(-) create mode 100644 src/graphics/core/nulldevice.cpp create mode 100644 src/graphics/core/nulldevice.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index a8914e1..25bbafa 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -80,6 +80,7 @@ set(BASE_SOURCES common/resources/outputstream.cpp common/resources/sndfile.cpp graphics/core/color.cpp + graphics/core/nulldevice.cpp graphics/engine/camera.cpp graphics/engine/cloud.cpp graphics/engine/engine.cpp diff --git a/src/app/app.cpp b/src/app/app.cpp index 513fc27..93fb554 100644 --- a/src/app/app.cpp +++ b/src/app/app.cpp @@ -31,6 +31,7 @@ #include "common/resources/resourcemanager.h" #include "graphics/engine/modelmanager.h" +#include "graphics/core/nulldevice.h" #include "graphics/opengl/gldevice.h" #include "object/robotmain.h" @@ -168,6 +169,7 @@ CApplication::CApplication() m_runSceneRank = 0; m_sceneTest = false; + m_headless = false; m_resolutionOverride = false; m_language = LANGUAGE_ENV; @@ -228,7 +230,8 @@ ParseArgsStatus CApplication::ParseArguments(int argc, char *argv[]) OPT_SAVEDIR, OPT_MOD, OPT_VBO, - OPT_RESOLUTION + OPT_RESOLUTION, + OPT_HEADLESS }; option options[] = @@ -245,6 +248,7 @@ ParseArgsStatus CApplication::ParseArguments(int argc, char *argv[]) { "mod", required_argument, nullptr, OPT_MOD }, { "vbo", required_argument, nullptr, OPT_VBO }, { "resolution", required_argument, nullptr, OPT_RESOLUTION }, + { "headless", no_argument, nullptr, OPT_HEADLESS }, { nullptr, 0, nullptr, 0} }; @@ -287,6 +291,7 @@ ParseArgsStatus CApplication::ParseArguments(int argc, char *argv[]) GetLogger()->Message(" -mod path load datadir mod from given path\n"); GetLogger()->Message(" -vbo mode set OpenGL VBO mode (one of: auto, enable, disable)\n"); GetLogger()->Message(" -resolution WxH set resolution\n"); + GetLogger()->Message(" -headless headless mode - disables graphics, sound and user interaction\n"); return PARSE_ARGS_HELP; } case OPT_DEBUG: @@ -402,6 +407,11 @@ ParseArgsStatus CApplication::ParseArguments(int argc, char *argv[]) m_resolutionOverride = true; break; } + case OPT_HEADLESS: + { + m_headless = true; + break; + } default: assert(false); // should never get here } @@ -460,7 +470,11 @@ bool CApplication::Create() //Create the sound instance. #ifdef OPENAL_SOUND - m_sound = static_cast(new ALSound()); + if(!m_headless) { + m_sound = static_cast(new ALSound()); + } else { + m_sound = new CSoundInterface(); + } #else GetLogger()->Info("No sound support.\n"); m_sound = new CSoundInterface(); @@ -505,35 +519,37 @@ bool CApplication::Create() return false; } - // load settings from profile - int iValue; - if ( GetProfile().GetIntProperty("Setup", "Resolution", iValue) && !m_resolutionOverride ) - { - std::vector modes; - GetVideoResolutionList(modes, true, true); - if (static_cast(iValue) < modes.size()) - m_deviceConfig.size = modes.at(iValue); - } + if(!m_headless) { + // load settings from profile + int iValue; + if ( GetProfile().GetIntProperty("Setup", "Resolution", iValue) && !m_resolutionOverride ) + { + std::vector modes; + GetVideoResolutionList(modes, true, true); + if (static_cast(iValue) < modes.size()) + m_deviceConfig.size = modes.at(iValue); + } - if ( GetProfile().GetIntProperty("Setup", "Fullscreen", iValue) && !m_resolutionOverride ) - { - m_deviceConfig.fullScreen = (iValue == 1); - } + if ( GetProfile().GetIntProperty("Setup", "Fullscreen", iValue) && !m_resolutionOverride ) + { + m_deviceConfig.fullScreen = (iValue == 1); + } - if (! CreateVideoSurface()) - return false; // dialog is in function + if (! CreateVideoSurface()) + return false; // dialog is in function - if (m_private->surface == nullptr) - { - m_errorMessage = std::string("SDL error while setting video mode:\n") + - std::string(SDL_GetError()); - GetLogger()->Error(m_errorMessage.c_str()); - m_exitCode = 4; - return false; + if (m_private->surface == nullptr) + { + m_errorMessage = std::string("SDL error while setting video mode:\n") + + std::string(SDL_GetError()); + GetLogger()->Error(m_errorMessage.c_str()); + m_exitCode = 4; + return false; + } + + SDL_WM_SetCaption(m_windowTitle.c_str(), m_windowTitle.c_str()); } - SDL_WM_SetCaption(m_windowTitle.c_str(), m_windowTitle.c_str()); - // Enable translating key codes of key press events to unicode chars SDL_EnableUNICODE(1); SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL); @@ -541,8 +557,12 @@ bool CApplication::Create() // Don't generate joystick events SDL_JoystickEventState(SDL_IGNORE); - // The video is ready, we can create and initalize the graphics device - m_device = new Gfx::CGLDevice(m_deviceConfig); + if(!m_headless) { + // The video is ready, we can create and initalize the graphics device + m_device = new Gfx::CGLDevice(m_deviceConfig); + } else { + m_device = new Gfx::CNullDevice(); + } if (! m_device->Create() ) { m_errorMessage = std::string("Error in CDevice::Create()\n") + standardInfoMessage; diff --git a/src/app/app.h b/src/app/app.h index d933374..52ed77a 100644 --- a/src/app/app.h +++ b/src/app/app.h @@ -500,11 +500,11 @@ protected: //! Low cpu mode bool m_lowCPU; - - //! Show prototype levels - bool m_protoMode; //! Screen resoultion overriden by commandline bool m_resolutionOverride; + + //! Headles mode + bool m_headless; }; diff --git a/src/graphics/core/nulldevice.cpp b/src/graphics/core/nulldevice.cpp new file mode 100644 index 0000000..006149c --- /dev/null +++ b/src/graphics/core/nulldevice.cpp @@ -0,0 +1,359 @@ +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ + +// * This file is part of the COLOBOT source code +// * Copyright (C) 2012, Polish Portal of Colobot (PPC) +// * +// * 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 http://www.gnu.org/licenses/. + + +#include "graphics/core/nulldevice.h" + +#include "common/config.h" +#include "common/logger.h" + +#include "math/geometry.h" + + +// Graphics module namespace +namespace Gfx { + +CNullDevice::CNullDevice() +{ + m_matrix = Math::Matrix(); + m_material = Material(); + m_light = Light(); +} + +CNullDevice::~CNullDevice() +{ +} + +void CNullDevice::DebugHook() +{ +} + +void CNullDevice::DebugLights() +{ +} + +bool CNullDevice::Create() +{ + return true; +} + +void CNullDevice::Destroy() +{ +} + +void CNullDevice::BeginScene() +{ +} + +void CNullDevice::EndScene() +{ +} + +void CNullDevice::Clear() +{ +} + +void CNullDevice::SetTransform(TransformType type, const Math::Matrix &matrix) +{ +} + +const Math::Matrix& CNullDevice::GetTransform(TransformType type) +{ + return m_matrix; +} + +void CNullDevice::MultiplyTransform(TransformType type, const Math::Matrix &matrix) +{ +} + +void CNullDevice::SetMaterial(const Material &material) +{ +} + +const Material& CNullDevice::GetMaterial() +{ + return m_material; +} + +int CNullDevice::GetMaxLightCount() +{ + return 99; +} + +void CNullDevice::SetLight(int index, const Light &light) +{ +} + +const Light& CNullDevice::GetLight(int index) +{ + return m_light; +} + +void CNullDevice::SetLightEnabled(int index, bool enabled) +{ +} + +bool CNullDevice::GetLightEnabled(int index) +{ + return false; +} + +Texture CNullDevice::CreateTexture(CImage *image, const TextureCreateParams ¶ms) +{ + Texture tex; + tex.id = 1; // tex.id = 0 => invalid texture + return tex; +} + +Texture CNullDevice::CreateTexture(ImageData *data, const TextureCreateParams ¶ms) +{ + Texture tex; + tex.id = 1; // tex.id = 0 => invalid texture + return tex; +} + +void CNullDevice::DestroyTexture(const Texture &texture) +{ +} + +void CNullDevice::DestroyAllTextures() +{ +} + +int CNullDevice::GetMaxTextureStageCount() +{ + return 0; +} + +void CNullDevice::SetTexture(int index, const Texture &texture) +{ +} + +void CNullDevice::SetTexture(int index, unsigned int textureId) +{ +} + +Texture CNullDevice::GetTexture(int index) +{ + return Texture(); +} + +void CNullDevice::SetTextureEnabled(int index, bool enabled) +{ +} + +bool CNullDevice::GetTextureEnabled(int index) +{ + return false; +} + +void CNullDevice::SetTextureStageParams(int index, const TextureStageParams ¶ms) +{ +} + +void CNullDevice::SetTextureStageWrap(int index, TexWrapMode wrapS, TexWrapMode wrapT) +{ +} + +TextureStageParams CNullDevice::GetTextureStageParams(int index) +{ + return TextureStageParams(); +} + +void CNullDevice::DrawPrimitive(PrimitiveType type, const Vertex *vertices, int vertexCount, + Color color) +{ +} + +void CNullDevice::DrawPrimitive(PrimitiveType type, const VertexTex2 *vertices, int vertexCount, + Color color) +{ +} + +void CNullDevice::DrawPrimitive(PrimitiveType type, const VertexCol *vertices, int vertexCount) +{ +} + +unsigned int CNullDevice::CreateStaticBuffer(PrimitiveType primitiveType, const Vertex* vertices, int vertexCount) +{ + return 0; +} + +unsigned int CNullDevice::CreateStaticBuffer(PrimitiveType primitiveType, const VertexTex2* vertices, int vertexCount) +{ + return 0; +} + +unsigned int CNullDevice::CreateStaticBuffer(PrimitiveType primitiveType, const VertexCol* vertices, int vertexCount) +{ + return 0; +} + +void CNullDevice::UpdateStaticBuffer(unsigned int bufferId, PrimitiveType primitiveType, const Vertex* vertices, int vertexCount) +{ +} + +void CNullDevice::UpdateStaticBuffer(unsigned int bufferId, PrimitiveType primitiveType, const VertexTex2* vertices, int vertexCount) +{ +} + +void CNullDevice::UpdateStaticBuffer(unsigned int bufferId, PrimitiveType primitiveType, const VertexCol* vertices, int vertexCount) +{ +} + +void CNullDevice::DrawStaticBuffer(unsigned int bufferId) +{ +} + +void CNullDevice::DestroyStaticBuffer(unsigned int bufferId) +{ +} + +int CNullDevice::ComputeSphereVisibility(const Math::Vector ¢er, float radius) +{ + return 0; +} + +void CNullDevice::SetRenderState(RenderState state, bool enabled) +{ +} + +bool CNullDevice::GetRenderState(RenderState state) +{ + return false; +} + +void CNullDevice::SetDepthTestFunc(CompFunc func) +{ +} + +CompFunc CNullDevice::GetDepthTestFunc() +{ + return COMP_FUNC_NEVER; +} + +void CNullDevice::SetDepthBias(float factor) +{ +} + +float CNullDevice::GetDepthBias() +{ + return 0.0f; +} + +void CNullDevice::SetAlphaTestFunc(CompFunc func, float refValue) +{ +} + +void CNullDevice::GetAlphaTestFunc(CompFunc &func, float &refValue) +{ + + func = COMP_FUNC_NEVER; + refValue = 0.0f; +} + +void CNullDevice::SetBlendFunc(BlendFunc srcBlend, BlendFunc dstBlend) +{ +} + +void CNullDevice::GetBlendFunc(BlendFunc &srcBlend, BlendFunc &dstBlend) +{ + srcBlend = BLEND_ZERO; + dstBlend = BLEND_ZERO; +} + +void CNullDevice::SetClearColor(const Color &color) +{ +} + +Color CNullDevice::GetClearColor() +{ + return Color(0.0f, 0.0f, 0.0f, 0.0f); +} + +void CNullDevice::SetGlobalAmbient(const Color &color) +{ +} + +Color CNullDevice::GetGlobalAmbient() +{ + return Color(0.0f, 0.0f, 0.0f, 0.0f); +} + +void CNullDevice::SetFogParams(FogMode mode, const Color &color, float start, float end, float density) +{ +} + +void CNullDevice::GetFogParams(FogMode &mode, Color &color, float &start, float &end, float &density) +{ + // +} + +void CNullDevice::SetCullMode(CullMode mode) +{ +} + +CullMode CNullDevice::GetCullMode() +{ + return CULL_CW; +} + +void CNullDevice::SetShadeModel(ShadeModel model) +{ +} + +ShadeModel CNullDevice::GetShadeModel() +{ + return SHADE_FLAT; +} + +void CNullDevice::SetFillMode(FillMode mode) +{ +} + +FillMode CNullDevice::GetFillMode() +{ + return FILL_POINT; +} + +void* CNullDevice::GetFrameBufferPixels() const +{ + return nullptr; +} + + +} // namespace Gfx + + diff --git a/src/graphics/core/nulldevice.h b/src/graphics/core/nulldevice.h new file mode 100644 index 0000000..c6065a6 --- /dev/null +++ b/src/graphics/core/nulldevice.h @@ -0,0 +1,145 @@ +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * 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 http://gnu.org/licenses + */ + +/** + * \file graphics/core/device.h + * \brief Abstract graphics device - CDevice class and related structs/enums + */ + +#pragma once + + +#include "graphics/core/device.h" + +// Graphics module namespace +namespace Gfx { + +/** + * \class CNullDevice + * \brief Device implementation that doesn't render anything + * + */ +class CNullDevice : public CDevice +{ +public: + CNullDevice(); + virtual ~CNullDevice(); + + virtual void DebugHook(); + virtual void DebugLights(); + + virtual bool Create(); + virtual void Destroy(); + + virtual void BeginScene(); + virtual void EndScene(); + + virtual void Clear(); + + virtual void SetTransform(TransformType type, const Math::Matrix &matrix); + virtual const Math::Matrix& GetTransform(TransformType type); + virtual void MultiplyTransform(TransformType type, const Math::Matrix &matrix); + + virtual void SetMaterial(const Material &material); + virtual const Material& GetMaterial(); + + virtual int GetMaxLightCount(); + virtual void SetLight(int index, const Light &light); + virtual const Light& GetLight(int index); + virtual void SetLightEnabled(int index, bool enabled); + virtual bool GetLightEnabled(int index); + + virtual Texture CreateTexture(CImage *image, const TextureCreateParams ¶ms); + virtual Texture CreateTexture(ImageData *data, const TextureCreateParams ¶ms); + virtual void DestroyTexture(const Texture &texture); + virtual void DestroyAllTextures(); + + virtual int GetMaxTextureStageCount(); + virtual void SetTexture(int index, const Texture &texture); + virtual void SetTexture(int index, unsigned int textureId); + virtual Texture GetTexture(int index); + virtual void SetTextureEnabled(int index, bool enabled); + virtual bool GetTextureEnabled(int index); + + virtual void SetTextureStageParams(int index, const TextureStageParams ¶ms); + virtual TextureStageParams GetTextureStageParams(int index); + + virtual void SetTextureStageWrap(int index, Gfx::TexWrapMode wrapS, Gfx::TexWrapMode wrapT); + + virtual void DrawPrimitive(PrimitiveType type, const Vertex *vertices , int vertexCount, + Color color = Color(1.0f, 1.0f, 1.0f, 1.0f)); + virtual void DrawPrimitive(PrimitiveType type, const VertexTex2 *vertices, int vertexCount, + Color color = Color(1.0f, 1.0f, 1.0f, 1.0f)); + virtual void DrawPrimitive(PrimitiveType type, const VertexCol *vertices , int vertexCount); + + virtual unsigned int CreateStaticBuffer(PrimitiveType primitiveType, const Vertex* vertices, int vertexCount); + virtual unsigned int CreateStaticBuffer(PrimitiveType primitiveType, const VertexTex2* vertices, int vertexCount); + virtual unsigned int CreateStaticBuffer(PrimitiveType primitiveType, const VertexCol* vertices, int vertexCount); + virtual void UpdateStaticBuffer(unsigned int bufferId, PrimitiveType primitiveType, const Vertex* vertices, int vertexCount); + virtual void UpdateStaticBuffer(unsigned int bufferId, PrimitiveType primitiveType, const VertexTex2* vertices, int vertexCount); + virtual void UpdateStaticBuffer(unsigned int bufferId, PrimitiveType primitiveType, const VertexCol* vertices, int vertexCount); + virtual void DrawStaticBuffer(unsigned int bufferId); + virtual void DestroyStaticBuffer(unsigned int bufferId); + + virtual int ComputeSphereVisibility(const Math::Vector ¢er, float radius); + + virtual void SetRenderState(RenderState state, bool enabled); + virtual bool GetRenderState(RenderState state); + + virtual void SetDepthTestFunc(CompFunc func); + virtual CompFunc GetDepthTestFunc(); + + virtual void SetDepthBias(float factor); + virtual float GetDepthBias(); + + virtual void SetAlphaTestFunc(CompFunc func, float refValue); + virtual void GetAlphaTestFunc(CompFunc &func, float &refValue); + + virtual void SetBlendFunc(BlendFunc srcBlend, BlendFunc dstBlend); + virtual void GetBlendFunc(BlendFunc &srcBlend, BlendFunc &dstBlend); + + virtual void SetClearColor(const Color &color); + virtual Color GetClearColor(); + + virtual void SetGlobalAmbient(const Color &color); + virtual Color GetGlobalAmbient(); + + virtual void SetFogParams(FogMode mode, const Color &color, float start, float end, float density); + virtual void GetFogParams(FogMode &mode, Color &color, float &start, float &end, float &density); + + virtual void SetCullMode(CullMode mode); + virtual CullMode GetCullMode(); + + virtual void SetShadeModel(ShadeModel model); + virtual ShadeModel GetShadeModel(); + + virtual void SetFillMode(FillMode mode) ; + virtual FillMode GetFillMode(); + + virtual void* GetFrameBufferPixels() const; + +private: + Math::Matrix m_matrix; + Material m_material; + Light m_light; +}; + + +} // namespace Gfx + -- cgit v1.2.3-1-g7c22 From 71577b7b0a4f57a34bf31a15fb52d32e926026e2 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Fri, 31 Oct 2014 20:19:33 +0100 Subject: Fixed #335 and #348 --- src/object/robotmain.cpp | 4 +++- src/ui/maindialog.cpp | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp index afdca9e..ad78e39 100644 --- a/src/object/robotmain.cpp +++ b/src/object/robotmain.cpp @@ -5390,9 +5390,9 @@ void CRobotMain::CompileScript(bool soluce) if (brain->GetCompile(j)) continue; std::string name = brain->GetScriptName(j); - name = "ai/"+name; if (name[0] != 0) { + name = "ai/"+name; if(! brain->ReadProgram(j, const_cast(name.c_str()))) { CLogger::GetInstancePointer()->Error("Unable to read script from file \"%s\"\n", name.c_str()); } @@ -5486,6 +5486,7 @@ void CRobotMain::LoadFileScript(CObject *obj, const char* filename, int objRank, std::string fnstr = filename; + boost::replace_all(fnstr, "\\", "/"); boost::replace_all(fnstr, m_dialog->GetSavegameDir(), m_dialog->GetPHYSFSSavegameDir()); //TODO: Refactor to get physfs path here //TODO: Refactor to std::string char fn[MAX_FNAME]; @@ -5557,6 +5558,7 @@ void CRobotMain::SaveFileScript(CObject *obj, const char* filename, int objRank) if (type == OBJECT_HUMAN) return; std::string fnstr = filename; + boost::replace_all(fnstr, "\\", "/"); boost::replace_all(fnstr, m_dialog->GetSavegameDir(), m_dialog->GetPHYSFSSavegameDir()); //TODO: Refactor to get physfs path here //TODO: Refactor to std::string char fn[MAX_FNAME]; diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index 21e2b74..32fa6e8 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -4166,6 +4166,7 @@ void CMainDialog::IOUpdateList() return; std::string filename = (m_saveList.at(sel) / "screen.png").make_preferred().string(); + boost::replace_all(filename, "\\", "/"); boost::replace_all(filename, GetSavegameDir(), GetPHYSFSSavegameDir()); //TODO: Refactor everything to PHYSFS, see issue #334 filename = "../"+filename; if ( m_phase == PHASE_WRITE || m_phase == PHASE_WRITEs ) -- cgit v1.2.3-1-g7c22 From 501cd7026be0422621e2657bb4aea842f2f7950d Mon Sep 17 00:00:00 2001 From: krzys-h Date: Fri, 31 Oct 2014 20:49:40 +0100 Subject: Fixed m_exitAfterMission --- src/object/robotmain.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp index ad78e39..cc330f6 100644 --- a/src/object/robotmain.cpp +++ b/src/object/robotmain.cpp @@ -1761,15 +1761,11 @@ bool CRobotMain::ProcessEvent(Event &event) case EVENT_WIN: m_missionTimerEnabled = m_missionTimerStarted = false; ChangePhase(PHASE_WIN); - if(m_exitAfterMission) - m_eventQueue->AddEvent(Event(EVENT_QUIT)); break; case EVENT_LOST: m_missionTimerEnabled = m_missionTimerStarted = false; ChangePhase(PHASE_LOST); - if(m_exitAfterMission) - m_eventQueue->AddEvent(Event(EVENT_QUIT)); break; default: @@ -6376,6 +6372,8 @@ Error CRobotMain::CheckEndMission(bool frame) m_winDelay = 0.0f; if (m_lostDelay == 0) m_lostDelay = m_endTakeLostDelay; m_displayText->SetEnable(false); + if(m_exitAfterMission) + m_eventQueue->AddEvent(Event(EVENT_QUIT)); } if (m_missionResult == INFO_LOSTq) //mission lost? { @@ -6383,6 +6381,8 @@ Error CRobotMain::CheckEndMission(bool frame) m_winDelay = 0.0f; if (m_lostDelay == 0) m_lostDelay = 0.1f; m_displayText->SetEnable(false); + if(m_exitAfterMission) + m_eventQueue->AddEvent(Event(EVENT_QUIT)); } if (frame && m_base) return ERR_MISSION_NOTERM; if (m_missionResult == ERR_OK) { //mission win? @@ -6395,6 +6395,8 @@ Error CRobotMain::CheckEndMission(bool frame) if (m_winDelay == 0) m_winDelay = m_endTakeWinDelay; m_lostDelay = 0.0f; m_displayText->SetEnable(false); + if(m_exitAfterMission) + m_eventQueue->AddEvent(Event(EVENT_QUIT)); } if (m_missionResult == ERR_MISSION_NOTERM) m_displayText->SetEnable(true); return m_missionResult; @@ -6520,6 +6522,8 @@ Error CRobotMain::CheckEndMission(bool frame) m_lostDelay = 0.0f; m_missionTimerEnabled = m_missionTimerStarted = false; m_displayText->SetEnable(false); + if(m_exitAfterMission) + m_eventQueue->AddEvent(Event(EVENT_QUIT)); return ERR_OK; // mission ended } @@ -6535,6 +6539,8 @@ Error CRobotMain::CheckEndMission(bool frame) m_missionTimerEnabled = m_missionTimerStarted = false; m_winDelay = m_endTakeWinDelay; // wins in two seconds m_lostDelay = 0.0f; + if(m_exitAfterMission) + m_eventQueue->AddEvent(Event(EVENT_QUIT)); } m_displayText->SetEnable(false); return ERR_OK; // mission ended -- cgit v1.2.3-1-g7c22 From aa59a229958386e6e62489f746ba946f088c2551 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Fri, 31 Oct 2014 21:05:26 +0100 Subject: Tools for measuring mission time without opening game window --- tools/mission-time-loop.sh | 5 +++++ tools/mission-time.sh | 9 +++++++++ 2 files changed, 14 insertions(+) create mode 100755 tools/mission-time-loop.sh create mode 100755 tools/mission-time.sh diff --git a/tools/mission-time-loop.sh b/tools/mission-time-loop.sh new file mode 100755 index 0000000..22d6107 --- /dev/null +++ b/tools/mission-time-loop.sh @@ -0,0 +1,5 @@ +#!/bin/bash +# Works like mission-time.sh but execures in a loop +while [ true ]; do + ./mission-time.sh $@ +done diff --git a/tools/mission-time.sh b/tools/mission-time.sh new file mode 100755 index 0000000..36c65e7 --- /dev/null +++ b/tools/mission-time.sh @@ -0,0 +1,9 @@ +#!/bin/bash +# Returns mission time on stdout for a mission given on the commandline +# Make sure the level actually uses MissionTimer, or the script will hang! + +colobot -headless -runscene $@ 2>&1 | while read -r line; do + if [[ $line =~ Mission[[:space:]]time:[[:space:]]([0-9:.]*) ]]; then + echo ${BASH_REMATCH[1]} + fi +done -- cgit v1.2.3-1-g7c22 From d0a2d662700ac8cf8441aaee64ec070a959d5794 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Fri, 31 Oct 2014 21:09:23 +0100 Subject: Removed duplicate license header --- src/graphics/core/nulldevice.cpp | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/src/graphics/core/nulldevice.cpp b/src/graphics/core/nulldevice.cpp index 006149c..f5e426d 100644 --- a/src/graphics/core/nulldevice.cpp +++ b/src/graphics/core/nulldevice.cpp @@ -17,22 +17,6 @@ * along with this program. If not, see http://gnu.org/licenses */ -// * This file is part of the COLOBOT source code -// * Copyright (C) 2012, Polish Portal of Colobot (PPC) -// * -// * 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 http://www.gnu.org/licenses/. - #include "graphics/core/nulldevice.h" -- cgit v1.2.3-1-g7c22 From 25d5d105fdf0aa68509a9627eca3b0588f95c957 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Fri, 31 Oct 2014 21:23:10 +0100 Subject: Fallback to English files if translated ones are not available --- src/object/level/parserparam.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/object/level/parserparam.cpp b/src/object/level/parserparam.cpp index ee080b2..1f81f0e 100644 --- a/src/object/level/parserparam.cpp +++ b/src/object/level/parserparam.cpp @@ -22,6 +22,7 @@ #include "app/app.h" #include "common/logger.h" +#include "common/resources/resourcemanager.h" #include "object/level/parser.h" #include "object/robotmain.h" @@ -174,10 +175,19 @@ std::string CLevelParserParam::InjectLevelDir(std::string path, const std::strin { newPath = defaultDir + (!defaultDir.empty() ? "/" : "") + newPath; } - //TODO: Fallback to English + + std::string langPath = newPath; std::string langStr(1, CApplication::GetInstancePointer()->GetLanguageChar()); - boost::replace_all(newPath, "%lng%", langStr); - return newPath; + boost::replace_all(langPath, "%lng%", langStr); + if(CResourceManager::Exists(langPath)) + return langPath; + + // Fallback to English if file doesn't exist + boost::replace_all(newPath, "%lng%", "E"); + if(CResourceManager::Exists(newPath)) + return newPath; + + return langPath; // Return current language file if none of the files exist } std::string CLevelParserParam::ToPath(std::string path, const std::string defaultDir) -- cgit v1.2.3-1-g7c22 From f5711c50612805b10590172b995eb7b0b4908d3c Mon Sep 17 00:00:00 2001 From: krzys_h Date: Sat, 1 Nov 2014 13:48:30 +0100 Subject: Added oggenc to Travis config --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index e1ed6ab..665d662 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,6 +7,6 @@ before_install: - git submodule update --init --recursive - sudo add-apt-repository ppa:mapnik/boost -y - sudo apt-get update -qq - - sudo apt-get install -qq --no-install-recommends libgl1-mesa-dev libsdl1.2-dev libsdl-image1.2-dev libsdl-ttf2.0-dev libpng12-dev libglew-dev libboost-dev libboost-system-dev libboost-filesystem-dev libboost-regex-dev google-mock libgtest-dev doxygen graphviz po4a librsvg2-bin libsndfile-dev libopenal-dev libphysfs-dev + - sudo apt-get install -qq --no-install-recommends libgl1-mesa-dev libsdl1.2-dev libsdl-image1.2-dev libsdl-ttf2.0-dev libpng12-dev libglew-dev libboost-dev libboost-system-dev libboost-filesystem-dev libboost-regex-dev google-mock libgtest-dev doxygen graphviz po4a librsvg2-bin libsndfile-dev libopenal-dev libphysfs-dev vorbis-tools notifications: email: false -- cgit v1.2.3-1-g7c22 From f7f9ac08b3cec00ab4793333ab6824b7829d6890 Mon Sep 17 00:00:00 2001 From: krzys_h Date: Sat, 1 Nov 2014 13:53:58 +0100 Subject: Updated INSTALL.md to reflect latest changes to music repository --- INSTALL.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/INSTALL.md b/INSTALL.md index fbf4ece..4537e8f 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -117,10 +117,11 @@ You will need: * OpenAL (OpenAL-Soft) >= 1.13 * PhysFS * po4a >= 0.45 (to generate translated data files) + * oggenc (to generate music files) On Ubuntu (and probably any other Debian-based system), you can use the following command to install all required packages: ``` - $ apt-get install build-essential cmake libsdl1.2debian libsdl1.2-dev libsdl-image1.2 libsdl-image1.2-dev libsdl-ttf2.0-0 libsdl-ttf2.0-dev libsdl-mixer1.2 libsdl-mixer1.2-dev libsndfile1-dev libvorbis-dev libogg-dev libpng12-dev libglew-dev libopenal-dev libboost-dev libboost-system-dev libboost-filesystem-dev libboost-regex-dev libphysfs-dev gettext git po4a + $ apt-get install build-essential cmake libsdl1.2debian libsdl1.2-dev libsdl-image1.2 libsdl-image1.2-dev libsdl-ttf2.0-0 libsdl-ttf2.0-dev libsdl-mixer1.2 libsdl-mixer1.2-dev libsndfile1-dev libvorbis-dev libogg-dev libpng12-dev libglew-dev libopenal-dev libboost-dev libboost-system-dev libboost-filesystem-dev libboost-regex-dev libphysfs-dev gettext git po4a vorbis-tools ``` Make sure you install the packages along with header files (often distributed in separate *-dev packages). If you miss any requirements, @@ -136,6 +137,10 @@ If you want to compile development branch, change the first command to: ``` $ git clone -b dev https://github.com/colobot/colobot.git /path/to/colobot/sources ``` +If you also want to download optional music files, add --recursive to third command like so: +``` + $ git submodule update --init --recursive +``` It is recommended that you create a build directory: ``` $ mkdir build -- cgit v1.2.3-1-g7c22 From 11a874207935f86248c0b9034a11b415ee14b1cf Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sat, 1 Nov 2014 14:02:39 +0100 Subject: #335, #348, #352 I don't know what I'm doing anymore :/ I should set up dev envrioment on Windows so I don't have to commit every time I want somebody on Windows to test if my changes work --- src/object/robotmain.cpp | 9 +++++++-- src/ui/maindialog.cpp | 8 ++++---- src/ui/studio.cpp | 5 ++++- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp index cc330f6..2c9384c 100644 --- a/src/object/robotmain.cpp +++ b/src/object/robotmain.cpp @@ -32,6 +32,7 @@ #include "common/profile.h" #include "common/restext.h" +#include "common/resources/resourcemanager.h" #include "common/resources/inputstream.h" #include "graphics/engine/camera.h" @@ -5482,8 +5483,10 @@ void CRobotMain::LoadFileScript(CObject *obj, const char* filename, int objRank, std::string fnstr = filename; + std::string savedir = CResourceManager::GetSaveLocation()+"/"; boost::replace_all(fnstr, "\\", "/"); - boost::replace_all(fnstr, m_dialog->GetSavegameDir(), m_dialog->GetPHYSFSSavegameDir()); //TODO: Refactor to get physfs path here + boost::replace_all(savedir, "\\", "/"); + boost::replace_all(fnstr, savedir, ""); //TODO: Refactor to get physfs path here //TODO: Refactor to std::string char fn[MAX_FNAME]; strcpy(fn, fnstr.c_str()); @@ -5554,8 +5557,10 @@ void CRobotMain::SaveFileScript(CObject *obj, const char* filename, int objRank) if (type == OBJECT_HUMAN) return; std::string fnstr = filename; + std::string savedir = CResourceManager::GetSaveLocation()+"/"; boost::replace_all(fnstr, "\\", "/"); - boost::replace_all(fnstr, m_dialog->GetSavegameDir(), m_dialog->GetPHYSFSSavegameDir()); //TODO: Refactor to get physfs path here + boost::replace_all(savedir, "\\", "/"); + boost::replace_all(fnstr, savedir, ""); //TODO: Refactor to get physfs path here //TODO: Refactor to std::string char fn[MAX_FNAME]; strcpy(fn, fnstr.c_str()); diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index 32fa6e8..4b1c8f2 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -4166,8 +4166,10 @@ void CMainDialog::IOUpdateList() return; std::string filename = (m_saveList.at(sel) / "screen.png").make_preferred().string(); + std::string savedir = CResourceManager::GetSaveLocation()+"/"; boost::replace_all(filename, "\\", "/"); - boost::replace_all(filename, GetSavegameDir(), GetPHYSFSSavegameDir()); //TODO: Refactor everything to PHYSFS, see issue #334 + boost::replace_all(savedir, "\\", "/"); + boost::replace_all(filename, savedir, ""); //TODO: Refactor everything to PHYSFS, see issue #334 filename = "../"+filename; if ( m_phase == PHASE_WRITE || m_phase == PHASE_WRITEs ) { @@ -6002,9 +6004,7 @@ bool CMainDialog::GetSceneSoluce() std::string CMainDialog::GetSavegameDir() { - std::string out = CResourceManager::GetSaveLocation()+"/"+m_savegameDir; - boost::replace_all(out, "\\", "/"); - return out; + return CResourceManager::GetSaveLocation()+"/"+m_savegameDir; } //TODO: Use PHYSFS everywhere diff --git a/src/ui/studio.cpp b/src/ui/studio.cpp index 93fd050..efdbbbc 100644 --- a/src/ui/studio.cpp +++ b/src/ui/studio.cpp @@ -1546,7 +1546,10 @@ std::string CStudio::SearchDirectory(bool bCreate, bool physfsReady) std::string dir2 = dir; if(physfsReady) { - boost::replace_all(dir2, CResourceManager::GetSaveLocation()+"/", ""); + std::string savedir = CResourceManager::GetSaveLocation()+"/"; + boost::replace_all(dir2, "\\", "/"); + boost::replace_all(savedir, "\\", "/"); + boost::replace_all(dir2, savedir, ""); } return dir2; } -- cgit v1.2.3-1-g7c22 From d4a08024db652b4c87de91838a1d0085ff029209 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sat, 1 Nov 2014 15:10:32 +0100 Subject: Updated data submodule --- data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data b/data index 2660c69..617140a 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit 2660c69a52411ca68a2cd6d61f6147f0efbfcc15 +Subproject commit 617140ad6b7061b803a47d274235a9b452f6f19f -- cgit v1.2.3-1-g7c22 From 750f0f08105fef627b0f1fb6bc8e79c7a692068e Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sat, 1 Nov 2014 19:46:06 +0100 Subject: COLOBOT: Gold Edition -> Colobot: Gold Edition --- data | 2 +- po/colobot.pot | 11 ++++------- po/de.po | 30 +++++++++++++++++++----------- po/fr.po | 30 +++++++++++++++++++----------- po/pl.po | 21 +++++++++------------ po/ru.po | 29 ++++++++++++++++++----------- src/app/app.cpp | 2 +- src/common/restext.cpp | 14 +++++++------- 8 files changed, 78 insertions(+), 61 deletions(-) diff --git a/data b/data index 617140a..212fd6b 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit 617140ad6b7061b803a47d274235a9b452f6f19f +Subproject commit 212fd6b769782ea4372879d939bafa3722141a87 diff --git a/po/colobot.pot b/po/colobot.pot index eac81e7..3a1ddea 100644 --- a/po/colobot.pot +++ b/po/colobot.pot @@ -50,10 +50,7 @@ msgstr "" msgid " or " msgstr "" -msgid "COLOBOT" -msgstr "" - -msgid "COLOBOT: Gold Edition" +msgid "Colobot: Gold Edition" msgstr "" msgid "Programming exercises" @@ -140,10 +137,10 @@ msgstr "" msgid "Strip color:" msgstr "" -msgid "Do you want to quit COLOBOT ?" +msgid "Do you want to quit Colobot: Gold Edition?" msgstr "" -msgid "Quit\\Quit COLOBOT" +msgid "Quit\\Quit Colobot: Gold Edition" msgstr "" msgid "Quit the mission?" @@ -282,7 +279,7 @@ msgstr "" msgid "Load\\Load a saved mission" msgstr "" -msgid "\\Return to COLOBOT" +msgid "\\Return to Colobot: Gold Edition" msgstr "" msgid "<< Back \\Back to the previous screen" diff --git a/po/de.po b/po/de.po index fe44ba0..5a63f51 100644 --- a/po/de.po +++ b/po/de.po @@ -313,12 +313,6 @@ msgstr "Gebäude zu nahe" msgid "Button %1" msgstr "Knopf %1" -msgid "COLOBOT" -msgstr "COLOBOT" - -msgid "COLOBOT: Gold Edition" -msgstr "COLOBOT: Gold Edition" - msgid "Calling an unknown function" msgstr "Die aufgerufene Funktion existiert nicht" @@ -394,6 +388,10 @@ msgstr "Es fehlt eine geschlossene Klammer \")\"" msgid "Colobot rules!" msgstr "Colobot ist wunderbar!" +#, fuzzy +msgid "Colobot: Gold Edition" +msgstr "COLOBOT: Gold Edition" + msgid "Command line" msgstr "Befehleingabe" @@ -488,7 +486,8 @@ msgstr "Wollen Sie das angewählte Gebäude wirklich zerstören ?" msgid "Do you want to delete %s's saved games? " msgstr "Wollen Sie die gespeicherten Missionen von %s löschen ?" -msgid "Do you want to quit COLOBOT ?" +#, fuzzy +msgid "Do you want to quit Colobot: Gold Edition?" msgstr "Wollen Sie COLOBOT schließen ?" msgid "Doors blocked by a robot or another object " @@ -1141,8 +1140,8 @@ msgstr "Beben bei Explosionen\\Die Kamera bebt bei Explosionen" msgid "Quit the mission?" msgstr "Mission abbrechen ?" -msgid "Quit\\Quit COLOBOT" -msgstr "Schließen\\COLOBOT schließen" +msgid "Quit\\Quit Colobot: Gold Edition" +msgstr "" msgid "Quit\\Quit the current mission or exercise" msgstr "Mission verlassen\\Eine Mission oder Übung verlassen" @@ -1689,8 +1688,8 @@ msgstr "\\Bleistift abheben" msgid "\\Red flags" msgstr "\\Rote Fahne" -msgid "\\Return to COLOBOT" -msgstr "\\Zurück zu COLOBOT" +msgid "\\Return to Colobot: Gold Edition" +msgstr "" msgid "\\SatCom on standby" msgstr "\\SatCom in Standby" @@ -1760,3 +1759,12 @@ msgstr "\\c; (keine)\\n;\n" msgid "www.epsitec.com" msgstr "www.epsitec.com" + +#~ msgid "COLOBOT" +#~ msgstr "COLOBOT" + +#~ msgid "Quit\\Quit COLOBOT" +#~ msgstr "Schließen\\COLOBOT schließen" + +#~ msgid "\\Return to COLOBOT" +#~ msgstr "\\Zurück zu COLOBOT" diff --git a/po/fr.po b/po/fr.po index 136d445..a72fc23 100644 --- a/po/fr.po +++ b/po/fr.po @@ -308,12 +308,6 @@ msgstr "Bâtiment trop proche" msgid "Button %1" msgstr "Bouton %1" -msgid "COLOBOT" -msgstr "COLOBOT" - -msgid "COLOBOT: Gold Edition" -msgstr "COLOBOT: Gold Edition" - msgid "Calling an unknown function" msgstr "Appel d'une fonction inexistante" @@ -389,6 +383,10 @@ msgstr "Il manque une parenthèse fermante" msgid "Colobot rules!" msgstr "Colobot est super!" +#, fuzzy +msgid "Colobot: Gold Edition" +msgstr "COLOBOT: Gold Edition" + msgid "Command line" msgstr "Console de commande" @@ -483,7 +481,8 @@ msgstr "Voulez-vous vraiment détruire le bâtiment sélectionné ?" msgid "Do you want to delete %s's saved games? " msgstr "Voulez-vous détruire les sauvegardes de %s ?" -msgid "Do you want to quit COLOBOT ?" +#, fuzzy +msgid "Do you want to quit Colobot: Gold Edition?" msgstr "Voulez-vous quitter COLOBOT ?" msgid "Doors blocked by a robot or another object " @@ -1137,8 +1136,8 @@ msgstr "Secousses lors d'explosions\\L'écran vibre lors d'une explosion" msgid "Quit the mission?" msgstr "Quitter la mission ?" -msgid "Quit\\Quit COLOBOT" -msgstr "Quitter\\Quitter COLOBOT" +msgid "Quit\\Quit Colobot: Gold Edition" +msgstr "" msgid "Quit\\Quit the current mission or exercise" msgstr "Quitter la mission en cours\\Terminer un exercice ou une mssion" @@ -1685,8 +1684,8 @@ msgstr "\\Relève le crayon" msgid "\\Red flags" msgstr "\\Drapeaux rouges" -msgid "\\Return to COLOBOT" -msgstr "\\Retourner dans COLOBOT" +msgid "\\Return to Colobot: Gold Edition" +msgstr "" msgid "\\SatCom on standby" msgstr "\\Mettre le SatCom en veille" @@ -1756,3 +1755,12 @@ msgstr "\\c; (aucun)\\n;\n" msgid "www.epsitec.com" msgstr "www.epsitec.com" + +#~ msgid "COLOBOT" +#~ msgstr "COLOBOT" + +#~ msgid "Quit\\Quit COLOBOT" +#~ msgstr "Quitter\\Quitter COLOBOT" + +#~ msgid "\\Return to COLOBOT" +#~ msgstr "\\Retourner dans COLOBOT" diff --git a/po/pl.po b/po/pl.po index 2c7ae2c..322bd92 100644 --- a/po/pl.po +++ b/po/pl.po @@ -315,12 +315,6 @@ msgstr "Budynek za blisko" msgid "Button %1" msgstr "Przycisk %1" -msgid "COLOBOT" -msgstr "COLOBOT" - -msgid "COLOBOT: Gold Edition" -msgstr "COLOBOT: Gold Edition" - msgid "Calling an unknown function" msgstr "Odwołanie do nieznanej funkcji" @@ -396,6 +390,9 @@ msgstr "Brak nawiasu zamykającego" msgid "Colobot rules!" msgstr "Colobot rządzi!" +msgid "Colobot: Gold Edition" +msgstr "Colobot: Gold Edition" + msgid "Command line" msgstr "Linia polecenia" @@ -490,8 +487,8 @@ msgstr "Czy na pewno chcesz zniszczyć zaznaczony budynek?" msgid "Do you want to delete %s's saved games? " msgstr "Czy na pewno chcesz skasować zapisane gry gracza %s? " -msgid "Do you want to quit COLOBOT ?" -msgstr "Czy na pewno chcesz opuścić grę COLOBOT?" +msgid "Do you want to quit Colobot: Gold Edition?" +msgstr "Czy na pewno chcesz opuścić grę Colobot: Gold Edition?" msgid "Doors blocked by a robot or another object " msgstr "Drzwi zablokowane przez robota lub inny obiekt " @@ -1147,8 +1144,8 @@ msgstr "Wstrząsy przy wybuchach\\Ekran trzęsie się podczas wybuchów" msgid "Quit the mission?" msgstr "Opuścić misję?" -msgid "Quit\\Quit COLOBOT" -msgstr "Zakończ\\Kończy grę COLOBOT" +msgid "Quit\\Quit Colobot: Gold Edition" +msgstr "Wyjdź\\Kończy grę Colobot: Gold Edition" msgid "Quit\\Quit the current mission or exercise" msgstr "Zakończ\\Kończy bieżącą misję lub ćwiczenie" @@ -1697,8 +1694,8 @@ msgstr "\\Relčve le crayon" msgid "\\Red flags" msgstr "\\Czerwone flagi" -msgid "\\Return to COLOBOT" -msgstr "\\Powróć do gry COLOBOT" +msgid "\\Return to Colobot: Gold Edition" +msgstr "\\Powróć do gry Colobot: Gold Edition" msgid "\\SatCom on standby" msgstr "\\Przełącz przekaźnik SatCom w stan gotowości" diff --git a/po/ru.po b/po/ru.po index 76bc87b..f0276bf 100644 --- a/po/ru.po +++ b/po/ru.po @@ -308,12 +308,6 @@ msgstr "Здание слишком близко" msgid "Button %1" msgstr "Кнопка %1" -msgid "COLOBOT" -msgstr "КОЛОБОТ" - -msgid "COLOBOT: Gold Edition" -msgstr "" - msgid "Calling an unknown function" msgstr "Вызов неизвестной функции" @@ -389,6 +383,9 @@ msgstr "Закрывающая скобка отсутствует" msgid "Colobot rules!" msgstr "Правила игры!" +msgid "Colobot: Gold Edition" +msgstr "" + msgid "Command line" msgstr "Командная строка" @@ -483,7 +480,8 @@ msgstr "Вы действительно хотите уничтожить выб msgid "Do you want to delete %s's saved games? " msgstr "Вы действительно хотите удалить сохраненные игры игрока %s?" -msgid "Do you want to quit COLOBOT ?" +#, fuzzy +msgid "Do you want to quit Colobot: Gold Edition?" msgstr "Вы хотите закрыть COLOBOT?" msgid "Doors blocked by a robot or another object " @@ -1138,8 +1136,8 @@ msgstr "Землетряс. при взрывах\\Тряска экрана п msgid "Quit the mission?" msgstr "Завершить миссию?" -msgid "Quit\\Quit COLOBOT" -msgstr "Выход\\Выход из COLOBOT" +msgid "Quit\\Quit Colobot: Gold Edition" +msgstr "" msgid "Quit\\Quit the current mission or exercise" msgstr "Выход\\Выход из текущей миссии" @@ -1686,8 +1684,8 @@ msgstr "\\Поднять перо" msgid "\\Red flags" msgstr "\\Красный флаг" -msgid "\\Return to COLOBOT" -msgstr "\\Вернуться в COLOBOT" +msgid "\\Return to Colobot: Gold Edition" +msgstr "" msgid "\\SatCom on standby" msgstr "\\SatCom ждет" @@ -1757,3 +1755,12 @@ msgstr "\\c; (нет)\\n;\n" msgid "www.epsitec.com" msgstr "www.epsitec.com" + +#~ msgid "COLOBOT" +#~ msgstr "КОЛОБОТ" + +#~ msgid "Quit\\Quit COLOBOT" +#~ msgstr "Выход\\Выход из COLOBOT" + +#~ msgid "\\Return to COLOBOT" +#~ msgstr "\\Вернуться в COLOBOT" diff --git a/src/app/app.cpp b/src/app/app.cpp index 93fb554..6f33389 100644 --- a/src/app/app.cpp +++ b/src/app/app.cpp @@ -116,7 +116,7 @@ CApplication::CApplication() m_debugModes = 0; m_restart = false; - m_windowTitle = "COLOBOT: Gold Edition"; + m_windowTitle = "Colobot: Gold Edition"; m_simulationSuspended = false; diff --git a/src/common/restext.cpp b/src/common/restext.cpp index 95e015c..66e3606 100644 --- a/src/common/restext.cpp +++ b/src/common/restext.cpp @@ -65,8 +65,8 @@ void InitializeRestext() stringsText[RT_IO_NEW] = TR("New ..."); stringsText[RT_KEY_OR] = TR(" or "); - stringsText[RT_TITLE_BASE] = TR("COLOBOT"); - stringsText[RT_TITLE_INIT] = TR("COLOBOT: Gold Edition"); + stringsText[RT_TITLE_BASE] = TR("Colobot: Gold Edition"); + stringsText[RT_TITLE_INIT] = TR("Colobot: Gold Edition"); stringsText[RT_TITLE_TRAINER] = TR("Programming exercises"); stringsText[RT_TITLE_DEFI] = TR("Challenges"); stringsText[RT_TITLE_MISSION] = TR("Missions"); @@ -102,9 +102,9 @@ void InitializeRestext() stringsText[RT_PERSO_COMBI] = TR("Suit color:"); stringsText[RT_PERSO_BAND] = TR("Strip color:"); - stringsText[RT_DIALOG_QUIT] = TR("Do you want to quit COLOBOT ?"); - stringsText[RT_DIALOG_TITLE] = TR("COLOBOT"); - stringsText[RT_DIALOG_YESQUIT] = TR("Quit\\Quit COLOBOT"); + stringsText[RT_DIALOG_QUIT] = TR("Do you want to quit Colobot: Gold Edition?"); + stringsText[RT_DIALOG_TITLE] = TR("Colobot: Gold Edition"); + stringsText[RT_DIALOG_YESQUIT] = TR("Quit\\Quit Colobot: Gold Edition"); stringsText[RT_DIALOG_ABORT] = TR("Quit the mission?"); stringsText[RT_DIALOG_YES] = TR("Abort\\Abort the current mission"); stringsText[RT_DIALOG_NO] = TR("Continue\\Continue the current mission"); @@ -163,8 +163,8 @@ void InitializeRestext() stringsEvent[EVENT_INTERFACE_AGAIN] = TR("Restart\\Restart the mission from the beginning"); stringsEvent[EVENT_INTERFACE_WRITE] = TR("Save\\Save the current mission "); stringsEvent[EVENT_INTERFACE_READ] = TR("Load\\Load a saved mission"); - stringsEvent[EVENT_INTERFACE_ABORT] = TR("\\Return to COLOBOT"); - stringsEvent[EVENT_INTERFACE_QUIT] = TR("Quit\\Quit COLOBOT"); + stringsEvent[EVENT_INTERFACE_ABORT] = TR("\\Return to Colobot: Gold Edition"); + stringsEvent[EVENT_INTERFACE_QUIT] = TR("Quit\\Quit Colobot: Gold Edition"); stringsEvent[EVENT_INTERFACE_BACK] = TR("<< Back \\Back to the previous screen"); stringsEvent[EVENT_INTERFACE_PLAY] = TR("Play\\Start mission!"); stringsEvent[EVENT_INTERFACE_SETUPd] = TR("Device\\Driver and resolution settings"); -- cgit v1.2.3-1-g7c22 From ccdbce8cd7d9eac893637608b01da4c1fff3cfb9 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sat, 1 Nov 2014 19:57:23 +0100 Subject: Fixed icon on Windows; updated properties in .rc file --- desktop/CMakeLists.txt | 2 +- desktop/colobot.rc.cmake | 8 ++++---- src/CMakeLists.txt | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/desktop/CMakeLists.txt b/desktop/CMakeLists.txt index c63b80e..37a4b99 100644 --- a/desktop/CMakeLists.txt +++ b/desktop/CMakeLists.txt @@ -131,7 +131,7 @@ set(CPACK_BUNDLE_NAME "Colobot: Gold Edition") set(CPACK_PACKAGE_FILE_NAME "colobot-${COLOBOT_VERSION_FULL}") set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/../README.md") set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Colobot: Gold Edition") -set(CPACK_PACKAGE_VENDOR "Terranova Team") +set(CPACK_PACKAGE_VENDOR "TerranovaTeam") set(CPACK_PACKAGE_VERSION_MAJOR ${COLOBOT_VERSION_MAJOR}) set(CPACK_PACKAGE_VERSION_MINOR ${COLOBOT_VERSION_MINOR}) diff --git a/desktop/colobot.rc.cmake b/desktop/colobot.rc.cmake index 40860e5..b40fcab 100644 --- a/desktop/colobot.rc.cmake +++ b/desktop/colobot.rc.cmake @@ -10,10 +10,10 @@ BEGIN BEGIN VALUE "OriginalFilename", "colobot.exe\0" VALUE "InternalName", "colobot\0" - VALUE "FileDescription", "Colobot - Colonize with Bots\0" - VALUE "ProductName", "Colobot\0" - VALUE "CompanyName", "Polish Portal of Colobot\0" - VALUE "LegalCopyright", "Copyright (c) 2012-2013 Polish Portal of Colobot\0" + VALUE "FileDescription", "Colobot: Gold Edition - Colonize with Bots\0" + VALUE "ProductName", "Colobot: Gold Edition\0" + VALUE "CompanyName", "TerranovaTeam\0" + VALUE "LegalCopyright", "Copyright (c) 2012-2014 TerranovaTeam\0" VALUE "FileVersion", "@COLOBOT_VERSION_FULL@\0" VALUE "ProductVersion", "@COLOBOT_VERSION_FULL@\0" END diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 25bbafa..613d92a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -193,11 +193,11 @@ set(BASE_SOURCES ui/target.cpp ui/window.cpp ${OPENAL_SRC} - ${RES_FILES} ) set(MAIN_SOURCES app/main.cpp + ${RES_FILES} ) -- cgit v1.2.3-1-g7c22 From 3ffc08a7f947d4ac36c054527f1d73e6226b2538 Mon Sep 17 00:00:00 2001 From: MrSimbax Date: Sun, 2 Nov 2014 12:42:57 +0100 Subject: Fixed amount of fireball damage done to allies, close issue #356 In the original game the whole series did damage 0.02 (0.10 * 0.2) to human. In Gold, one particle do such damage, so 51 particles do 51 * 0.02 = 1.02 damage to human! I changed the multiplier for allies from 0.2 to 0.004 (approx. 0.2 / 51), but this problem probably occured somewhere else during rewriting the engine from DirectX to OpenGL and SDL. --- src/graphics/engine/particle.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/graphics/engine/particle.cpp b/src/graphics/engine/particle.cpp index d038322..f5a16e9 100644 --- a/src/graphics/engine/particle.cpp +++ b/src/graphics/engine/particle.cpp @@ -116,7 +116,7 @@ bool IsAlien(ObjectType type) //! Returns the damping factor for friendly fire float GetDecay(ObjectType type) { - if (IsSoft(type)) return 0.2f; + if (IsSoft(type)) return 0.004f; return 1.0f; } -- cgit v1.2.3-1-g7c22 From ec4b71eca2466004636a55f5bd4ab9e524e803c3 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sun, 2 Nov 2014 13:18:58 +0100 Subject: Updated data submodule --- data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data b/data index 212fd6b..c5926ea 160000 --- a/data +++ b/data @@ -1 +1 @@ -Subproject commit 212fd6b769782ea4372879d939bafa3722141a87 +Subproject commit c5926eaa422b683bf5a5b380527987258b8a7444 -- cgit v1.2.3-1-g7c22 From 6d152d5aeedf8207897f751bfbd179d9994f39cf Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sun, 2 Nov 2014 13:33:37 +0100 Subject: Fixed console spam when music files are not installed Closes #359 --- src/sound/oalsound/alsound.cpp | 10 ++++++++++ src/sound/oalsound/alsound.h | 2 ++ src/sound/oalsound/buffer.cpp | 2 +- src/sound/sound.cpp | 10 ++++++++++ src/sound/sound.h | 12 ++++++++++++ src/ui/maindialog.cpp | 6 +++--- 6 files changed, 38 insertions(+), 4 deletions(-) diff --git a/src/sound/oalsound/alsound.cpp b/src/sound/oalsound/alsound.cpp index 0d8fe74..6dd991b 100644 --- a/src/sound/oalsound/alsound.cpp +++ b/src/sound/oalsound/alsound.cpp @@ -181,6 +181,16 @@ bool ALSound::CacheMusic(const std::string &filename) return false; } +bool ALSound::IsCached(Sound sound) +{ + return m_sounds.find(sound) != m_sounds.end(); +} + +bool ALSound::IsCachedMusic(const std::string &filename) +{ + return m_music.find("music/"+filename) != m_music.end(); +} + int ALSound::GetPriority(Sound sound) { if ( sound == SOUND_FLYh || diff --git a/src/sound/oalsound/alsound.h b/src/sound/oalsound/alsound.h index 08caac3..895b5ac 100644 --- a/src/sound/oalsound/alsound.h +++ b/src/sound/oalsound/alsound.h @@ -53,6 +53,8 @@ public: bool Create() override; bool Cache(Sound, const std::string &) override; bool CacheMusic(const std::string &) override; + bool IsCached(Sound) override; + bool IsCachedMusic(const std::string &) override; bool GetEnable() override; diff --git a/src/sound/oalsound/buffer.cpp b/src/sound/oalsound/buffer.cpp index 7584767..df31b82 100644 --- a/src/sound/oalsound/buffer.cpp +++ b/src/sound/oalsound/buffer.cpp @@ -58,7 +58,7 @@ bool Buffer::LoadFromFile(std::string filename, Sound sound) if (!file->IsOpen()) { - GetLogger()->Warn("Could not load file. Reason: %s\n", file->GetLastError().c_str()); + GetLogger()->Warn("Could not load file %s. Reason: %s\n", filename.c_str(), file->GetLastError().c_str()); m_loaded = false; return false; } diff --git a/src/sound/sound.cpp b/src/sound/sound.cpp index abc18f6..ab92ec1 100644 --- a/src/sound/sound.cpp +++ b/src/sound/sound.cpp @@ -72,6 +72,16 @@ bool CSoundInterface::CacheMusic(const std::string &bFile) return true; } +bool CSoundInterface::IsCached(Sound bSound) +{ + return false; +} + +bool CSoundInterface::IsCachedMusic(const std::string& bFile) +{ + return false; +} + bool CSoundInterface::GetEnable() { return true; diff --git a/src/sound/sound.h b/src/sound/sound.h index 2ed4199..20f459c 100644 --- a/src/sound/sound.h +++ b/src/sound/sound.h @@ -180,6 +180,18 @@ public: * \return return true on success */ virtual bool CacheMusic(const std::string &bFile); + + /** Function to check if sound effect file was cached. + * \param bSound - id of a sound effect file + * \return return true if the file was cached + */ + virtual bool IsCached(Sound bSound); + + /** Function called to check if music file was cached. + * \param bFile - file to check + * \return return true if the file was cached + */ + virtual bool IsCachedMusic(const std::string &bFile); /** Return if plugin is enabled * \return return true if plugin is enabled diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index 4b1c8f2..0bb1e36 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -707,7 +707,7 @@ void CMainDialog::ChangePhase(Phase phase) m_phase != PHASE_SETUPcs && m_phase != PHASE_SETUPss ) { - if (!m_sound->IsPlayingMusic()) + if (!m_sound->IsPlayingMusic() && m_sound->IsCachedMusic("Intro1.ogg")) { m_sound->PlayMusic("Intro1.ogg", false); } @@ -733,7 +733,7 @@ void CMainDialog::ChangePhase(Phase phase) } if ( m_phase == PHASE_TRAINER ) strcpy(m_sceneName, "exercises"); - if ( m_phase == PHASE_DEFI ) strcpy(m_sceneName, "challenges" ); + if ( m_phase == PHASE_DEFI ) strcpy(m_sceneName, "challenges"); if ( m_phase == PHASE_MISSION ) strcpy(m_sceneName, "missions"); if ( m_phase == PHASE_FREE ) strcpy(m_sceneName, "freemissions"); if ( m_phase == PHASE_USER ) strcpy(m_sceneName, "custom"); @@ -1760,7 +1760,7 @@ bool CMainDialog::EventProcess(const Event &event) m_phase != PHASE_SETUPcs && m_phase != PHASE_SETUPss ) { - if (!m_sound->IsPlayingMusic()) + if (!m_sound->IsPlayingMusic() && m_sound->IsCachedMusic("Intro2.ogg")) { m_sound->PlayMusic("Intro2.ogg", true); } -- cgit v1.2.3-1-g7c22 From e2be034ec369dbe23b17281a21338282a0258ff2 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sun, 2 Nov 2014 13:36:48 +0100 Subject: Release alpha-0.1.4 --- CMakeLists.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b69586e..16aa2e2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,12 +13,12 @@ project(colobot C CXX) set(COLOBOT_VERSION_CODENAME "Gold") set(COLOBOT_VERSION_MAJOR 0) set(COLOBOT_VERSION_MINOR 1) -set(COLOBOT_VERSION_REVISION 3) +set(COLOBOT_VERSION_REVISION 4) # Used on official releases -#set(COLOBOT_VERSION_RELEASE_CODENAME "-alpha") +set(COLOBOT_VERSION_RELEASE_CODENAME "-alpha") # Used on unreleased, development builds -set(COLOBOT_VERSION_UNRELEASED "+alpha") +#set(COLOBOT_VERSION_UNRELEASED "+alpha") # Append git characteristics to version if(DEFINED COLOBOT_VERSION_UNRELEASED) -- cgit v1.2.3-1-g7c22