Merge branch 'master' into floating-point

(Just merged. Nothing was tested.)

Conflicts:
	config.h.cmake
	docs/de.po
	planet/Objects.ocd/Libraries.ocd/PowerConsumer.ocd/Script.c
	planet/Objects.ocd/Structures.ocd/Elevator.ocd/Case.ocd/Script.c
	planet/Objects.ocd/Vegetation.ocd/Grass.ocd/Script.c
	planet/Tests.ocf/AirRace.ocs/Extra.ocd/Rocket.ocd/Script.c
	planet/Tests.ocf/AirRace.ocs/Extra.ocd/WeaponSpawn.ocd/Script.c
	planet/Tests.ocf/AirRace.ocs/Script.c
	planet/Tests.ocf/Experimental.ocd/LiftTower.ocd/Hook.ocd/Script.c
	planet/Tests.ocf/Experimental.ocd/LiftTower.ocd/Rope.ocd/Script.c
	planet/Tests.ocf/Moss_Test.ocs/Script.c
	src/script/C4AulParse.cpp
floating-point
Julius Michaelis 2012-12-28 17:52:14 +01:00 committed by Caesar
commit 35c3d4a421
1312 changed files with 11583 additions and 13393 deletions

1
.git_archival 100644
View File

@ -0,0 +1 @@
node: $Format:%H$

3
.gitattributes vendored 100644
View File

@ -0,0 +1,3 @@
.git_archival export-subst
.gitattributes export-ignore
.gitignore export-ignore

View File

@ -1,5 +1,3 @@
syntax: glob
autom4te.cache
*~
*.bak

3
.hgeol
View File

@ -1,3 +0,0 @@
[patterns]
planet/** = LF
** = native

View File

@ -67,6 +67,8 @@ endif()
if(NOT USE_GL AND NOT USE_DIRECTX)
message(STATUS "No graphics display enabled; building dedicated server")
SET(USE_CONSOLE ON CACHE INTERNAL "Build dedicated server")
else()
SET(USE_CONSOLE OFF)
endif()
if(UNIX AND NOT USE_SDL_MAINLOOP AND NOT APPLE AND NOT USE_CONSOLE)
option(USE_X11 "Use X11 to create windows etc." ON)
@ -262,8 +264,8 @@ set(OC_CLONK_SOURCES
src/graphics/C4FacetEx.cpp
src/graphics/C4FacetEx.h
src/graphics/C4Facet.h
src/graphics/C4Fonts.cpp
src/graphics/C4Fonts.h
src/graphics/C4FontLoader.cpp
src/graphics/C4FontLoader.h
src/graphics/C4GraphicsResource.cpp
src/graphics/C4GraphicsResource.h
src/graphics/C4Surface.cpp
@ -360,8 +362,6 @@ set(OC_CLONK_SOURCES
src/landscape/C4PathFinder.h
src/landscape/C4PXS.cpp
src/landscape/C4PXS.h
src/landscape/C4Region.cpp
src/landscape/C4Region.h
src/landscape/C4Scenario.cpp
src/landscape/C4Scenario.h
src/landscape/C4Sky.cpp
@ -497,7 +497,6 @@ set(OC_CLONK_SOURCES
src/object/C4Shape.h
src/platform/C4App.cpp
src/platform/C4App.h
src/platform/C4AppT.cpp
src/platform/C4AppWin32Impl.h
src/platform/C4FileMonitor.cpp
src/platform/C4FileMonitor.h
@ -511,10 +510,10 @@ set(OC_CLONK_SOURCES
src/platform/C4SoundLoaders.h
src/platform/C4SoundSystem.cpp
src/platform/C4SoundSystem.h
src/platform/C4StdInProc.cpp
src/platform/C4StdInProc.h
src/platform/C4Video.cpp
src/platform/C4Video.h
src/platform/C4VideoPlayback.cpp
src/platform/C4VideoPlayback.h
src/platform/C4Window.h
src/platform/C4windowswrapper.h
src/platform/GetTime.cpp
@ -522,8 +521,6 @@ set(OC_CLONK_SOURCES
src/platform/PlatformAbstraction.h
src/platform/StdFile.cpp
src/platform/StdFile.h
src/platform/StdFont.cpp
src/platform/StdFont.h
src/platform/StdRegistry.cpp
src/platform/StdRegistry.h
src/platform/StdScheduler.cpp
@ -647,6 +644,10 @@ elseif(USE_SDL_MAINLOOP)
src/platform/C4AppSDL.cpp
src/platform/C4WindowSDL.cpp
)
elseif(USE_CONSOLE)
list(APPEND OC_SYSTEM_SOURCES
src/platform/C4AppT.cpp
)
elseif(WIN32)
list(APPEND OC_SYSTEM_SOURCES
src/editor/C4ConsoleWin32.cpp
@ -748,10 +749,8 @@ CHECK_INCLUDE_FILE_CXX(natupnp.h HAVE_NATUPNP_H)
# 'Bool' and 'Window' to be defined. Unfortunately, this doesn't exist
# as a CXX version (yet?).
include(CheckIncludeFiles)
CHECK_INCLUDE_FILES(X11/Xlib.h X11/extensions/xf86vmode.h HAVE_X11_EXTENSIONS_XF86VMODE_H)
CHECK_INCLUDE_FILES(X11/Xlib.h X11/extensions/Xrandr.h HAVE_X11_EXTENSIONS_XRANDR_H)
CHECK_INCLUDE_FILES(X11/Xlib.h X11/keysym.h HAVE_X11_KEYSYM_H)
CHECK_INCLUDE_FILES(X11/Xlib.h X11/xpm.h HAVE_X11_XPM_H)
CHECK_INCLUDE_FILE_CXX(iconv.h HAVE_ICONV)
if(HAVE_ICONV)
@ -862,9 +861,23 @@ if(USE_GTK)
endif()
if(USE_OPEN_AL)
FINDLIB(VORBIS_LIBRARY NAMES vorbis)
FINDLIB(VORBISFILE_LIBRARY NAMES vorbisfile)
FINDLIB(OGG_LIBRARY NAMES ogg)
if(MSVC)
if(${FIND_LIBRARY_USE_LIB64_PATHS})
FINDLIB(OPENAL_LIBRARY NAMES OpenAL64)
else()
FINDLIB(OPENAL_LIBRARY NAMES OpenAL32)
endif()
FINDLIB(OGG_LIBRARY NAMES libogg_static)
FINDLIB(VORBIS_LIBRARY NAMES libvorbis_static)
FINDLIB(VORBISFILE_LIBRARY NAMES libvorbisfile_static)
else()
FINDLIB(VORBIS_LIBRARY NAMES vorbis)
FINDLIB(VORBISFILE_LIBRARY NAMES vorbisfile)
FINDLIB(OGG_LIBRARY NAMES ogg)
endif()
if(NOT APPLE)
FINDLIB(ALUT_LIBRARY NAMES alut)
endif()
endif()
############################################################################
@ -1009,10 +1022,17 @@ target_link_libraries(clonk
${PNG_LIBRARIES}
${JPEG_LIBRARIES}
${ICONV_LIBRARY}
${VORBIS_LIBRARY}
${VORBISFILE_LIBRARY}
${OGG_LIBRARY}
)
if(USE_OPEN_AL)
target_link_libraries(clonk
${OPENAL_LIBRARY}
${ALUT_LIBRARY}
${VORBIS_LIBRARY}
${VORBISFILE_LIBRARY}
${OGG_LIBRARY}
)
endif()
target_link_libraries(c4group
${ZLIB_LIBRARIES}
)
@ -1090,7 +1110,7 @@ if(UNIX)
# Don't put this into CMAKE_CXX_FLAGS because otherwise it is cached,
# and when the path is changed both the old and new definition appears
# in the list of flags.
add_definitions("-DOC_SYSTEM_DATA_DIR=\"${CMAKE_INSTALL_PREFIX}/share/openclonk\"")
add_definitions("-DOC_SYSTEM_DATA_DIR=\"${CMAKE_INSTALL_PREFIX}/share/games/openclonk\"")
endif()
if(OC_CXX_FLAGS)
list(REMOVE_DUPLICATES OC_CXX_FLAGS)
@ -1239,13 +1259,9 @@ if(USE_GTK)
endif()
if(USE_X11)
FINDLIB(X11_LIBRARIES X11)
FINDLIB(XPM_LIBRARIES Xpm)
FINDLIB(XXF86VM_LIBRARIES Xxf86vm)
FINDLIB(XRANDR_LIBRARIES Xrandr)
target_link_libraries(clonk
${X11_LIBRARIES}
${XPM_LIBRARIES}
${XXF86VM_LIBRARIES}
${XRANDR_LIBRARIES}
)
endif()
@ -1373,8 +1389,9 @@ set(OC_C4GROUPS
Sound.ocg
System.ocg
Objects.ocd
BackToTheRocks.ocf
BeyondTheRocks.ocf
Arena.ocf
Parkour.ocf
Settlement.ocf
Tutorial.ocf
)
@ -1396,7 +1413,7 @@ foreach(group ${OC_C4GROUPS})
DEPENDS c4group
VERBATIM
)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${group} DESTINATION share/openclonk)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${group} DESTINATION share/games/openclonk)
endif()
endforeach()
if (NOT APPLE)

View File

@ -22,4 +22,4 @@ David Dormagen (Zapper)
Tobias Zwick (Newton)
<Thanks to Contributors>
Benjamin Herr (Loriel), Matthias Rottländer (Matthi), Felix Riese (Fungiform), Manuel Riecke (MrBeast), Benedict Etzel (B_E), Carl-Philip Hänsch (Carli), Alexander Semeniuk (AlteredARMOR), Florian Graier (Nachtfalter), ST-DDT, Asmageddon, Merten Ehmig (Pluto), Mark Haßelbusch (Marky), Luchs, Peewee, Lauri Niskanen (Ape), Dominik Bayerl (Kanibal), Faby, Checkmaty, Gurkenglas, Clonkine, mizipzor, mixi, RedWolf Design GmbH and all those who contributed to previous Clonk titles for the passion they put into the game and for agreeing to make Clonk open source.
Benjamin Herr (Loriel), Matthias Rottländer (Matthi), Felix Riese (Fungiform), Manuel Riecke (MrBeast), Benedict Etzel (B_E), Carl-Philip Hänsch (Carli), Alexander Semeniuk (AlteredARMOR), Florian Graier (Nachtfalter), Daniel Theuke (ST-DDT), Asmageddon, Merten Ehmig (Pluto), Mark Haßelbusch (Marky), Luchs, Peewee, Lauri Niskanen (Ape), Dominik Bayerl (Kanibal), Faby, Checkmaty, Gurkenglas, Clonkine, mizipzor, mixi, Pyrit, grgecko, Koronis, RedWolf Design GmbH and all those who contributed to previous Clonk titles for the passion they put into the game and for agreeing to make Clonk open source.

View File

@ -203,7 +203,6 @@ src/game/C4GraphicsSystem.h \
src/game/C4Physics.h \
src/game/C4Viewport.cpp \
src/game/C4Viewport.h \
src/game/ClonkMain.cpp \
src/gamescript/C4Effect.cpp \
src/gamescript/C4Effects.h \
src/gamescript/C4FindObject.cpp \
@ -229,8 +228,8 @@ src/graphics/C4Facet.cpp \
src/graphics/C4FacetEx.cpp \
src/graphics/C4FacetEx.h \
src/graphics/C4Facet.h \
src/graphics/C4Fonts.cpp \
src/graphics/C4Fonts.h \
src/graphics/C4FontLoader.cpp \
src/graphics/C4FontLoader.h \
src/graphics/C4GraphicsResource.cpp \
src/graphics/C4GraphicsResource.h \
src/graphics/C4Surface.cpp \
@ -304,8 +303,6 @@ src/gui/C4StartupPlrSelDlg.cpp \
src/gui/C4StartupPlrSelDlg.h \
src/gui/C4StartupScenSelDlg.cpp \
src/gui/C4StartupScenSelDlg.h \
src/gui/C4UpdateDlg.cpp \
src/gui/C4UpdateDlg.h \
src/gui/C4UpperBoard.cpp \
src/gui/C4UpperBoard.h \
src/landscape/C4Landscape.cpp \
@ -329,8 +326,6 @@ src/landscape/C4PathFinder.cpp \
src/landscape/C4PathFinder.h \
src/landscape/C4PXS.cpp \
src/landscape/C4PXS.h \
src/landscape/C4Region.cpp \
src/landscape/C4Region.h \
src/landscape/C4Scenario.cpp \
src/landscape/C4Scenario.h \
src/landscape/C4Sky.cpp \
@ -452,7 +447,6 @@ src/object/C4Shape.cpp \
src/object/C4Shape.h \
src/platform/C4App.cpp \
src/platform/C4App.h \
src/platform/C4AppT.cpp \
src/platform/C4AppWin32Impl.h \
src/platform/C4FileMonitor.cpp \
src/platform/C4FileMonitor.h \
@ -466,16 +460,14 @@ src/platform/C4SoundLoaders.cpp \
src/platform/C4SoundLoaders.h \
src/platform/C4SoundSystem.cpp \
src/platform/C4SoundSystem.h \
src/platform/C4StdInProc.cpp \
src/platform/C4StdInProc.h \
src/platform/C4Video.cpp \
src/platform/C4Video.h \
src/platform/C4VideoPlayback.cpp \
src/platform/C4VideoPlayback.h \
src/platform/C4Window.h \
src/platform/C4windowswrapper.h \
src/platform/PlatformAbstraction.cpp \
src/platform/PlatformAbstraction.h \
src/platform/StdFont.cpp \
src/platform/StdFont.h \
src/platform/StdSync.h \
src/platform/StdVideo.cpp \
src/platform/StdVideo.h \
@ -542,6 +534,16 @@ src/res/engine.rc \
src/res/resource.h
endif
if MACOSX
clonk_SOURCES += \
src/platform/C4AppDelegate.h \
src/platform/C4AppDelegate.mm \
src/platform/C4FileMonitorMac.mm
else
clonk_SOURCES += \
src/game/ClonkMain.cpp
endif
if SDL_MAIN_LOOP
clonk_SOURCES += \
src/platform/C4AppSDL.cpp \
@ -556,6 +558,10 @@ src/platform/C4AppGTK.cpp \
src/platform/C4AppGTKImpl.h \
src/platform/C4WindowGTK.cpp
else
if CONSOLE
clonk_SOURCES += \
src/platform/C4AppT.cpp
else
if WIN32
clonk_SOURCES += \
src/editor/C4ConsoleWin32.cpp \
@ -566,23 +572,28 @@ endif
if MACOSX
clonk_SOURCES += \
src/editor/C4ConsoleCocoa.mm \
src/editor/C4EditorWindowController.h \
src/editor/C4EditorWindowController.mm \
src/graphics/C4DrawGLMac.h \
src/graphics/C4DrawGLMac.mm \
src/platform/C4AppDelegate+MainMenuActions.h \
src/platform/C4AppDelegate+MainMenuActions.mm \
src/platform/C4AppMac.mm \
src/platform/C4FileMonitorMac.mm \
src/platform/C4WindowController.h \
src/platform/C4WindowController.mm \
src/platform/C4WindowMac.mm \
src/platform/ClonkAppDelegate.h \
src/platform/ClonkAppDelegate.mm \
src/platform/ConsoleWindowController.h \
src/platform/ConsoleWindowController.mm \
src/platform/ClonkWindowController.h \
src/platform/ClonkWindowController.mm \
src/platform/ClonkOpenGLView.h \
src/platform/ClonkOpenGLView.mm \
src/platform/CocoaKeycodeMap.h \
src/platform/ClonkMainMenuActions.h \
src/platform/ClonkMainMenuActions.mm
src/platform/ObjectiveCAssociated.h
endif
endif
endif
endif
if AUTOUPDATE
clonk_SOURCES += \
src/gui/C4UpdateDlg.cpp \
src/gui/C4UpdateDlg.h
endif
if LIBUPNP
clonk_SOURCES += src/network/C4Network2UPnPLinux.cpp
@ -724,7 +735,9 @@ c4groups = \
Sound.ocg \
System.ocg \
Objects.ocd \
BackToTheRocks.ocf \
Arena.ocf \
Parkour.ocf \
Settlement.ocf \
Tutorial.ocf
CLEANFILES += $(c4groups)

View File

@ -12,33 +12,20 @@ SET(C4ENGINENICK "openclonk")
SET(C4ENGINEID "${C4PROJECT_TLD}.${C4PROJECT_DOMAIN}.${C4ENGINENICK}")
SET(C4XVER1 5)
SET(C4XVER2 2)
SET(C4XVER2 3)
SET(C4XVER3 90)
SET(C4XVER4 21)
# C4VERSIONBUILDNAME should be witty and somewhat frequently changing
# for alpha and beta releases, and meaningful and stable for stable releases.
# Both variables need to start with a space if they aren't empty.
SET(C4VERSIONBUILDNAME " Beyond the Rocks")
SET(C4VERSIONEXTRA " Alpha")
SET(C4VERSIONEXTRA " Delta")
############################################################################
# Get revision from Mercurial
# Get revision from Git
############################################################################
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.hg_archival.txt")
# Archives generated by hg archive
file(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/.hg_archival.txt" C4REVISION
LIMIT_COUNT 1
REGEX "node: [0-9a-f]+"
)
string(SUBSTRING "${C4REVISION}" 6 12 C4REVISION)
else()
# Working copies
execute_process(WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
COMMAND "hg" "id" "--id"
OUTPUT_VARIABLE C4REVISION
OUTPUT_STRIP_TRAILING_WHITESPACE)
endif()
include(GitGetChangesetID)
git_get_changeset_id(C4REVISION)
############################################################################
# Get year

View File

@ -24,15 +24,17 @@
find_path(UPNP_INCLUDE_DIR NAMES upnp.h PATH_SUFFIXES upnp)
set(UPNP_NAMES ${UPNP_NAMES} upnp)
set(THREADUTIL_NAMES ${THREADUTIL_NAMES} threadutil)
set(IXML_NAMES ${IXML_NAMES} ixml)
find_library(UPNP_LIBRARY NAMES ${UPNP_NAMES})
find_library(THREADUTIL_LIBRARY NAMES ${THREADUTIL_NAMES})
find_library(IXML_LIBRARY NAMES ${IXML_NAMES})
include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(UPNP DEFAULT_MSG UPNP_LIBRARY IXML_LIBRARY UPNP_INCLUDE_DIR)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(UPNP DEFAULT_MSG UPNP_LIBRARY THREADUTIL_LIBRARY IXML_LIBRARY UPNP_INCLUDE_DIR)
if(UPNP_FOUND)
set(UPNP_LIBRARIES ${UPNP_LIBRARY} ${IXML_LIBRARY})
set(UPNP_LIBRARIES ${UPNP_LIBRARY} ${THREADUTIL_LIBRARY} ${IXML_LIBRARY})
set(UPNP_INCLUDE_DIR ${UPNP_INCLUDE_DIR})
endif()

View File

@ -0,0 +1,39 @@
function(git_get_changeset_id VAR)
find_package(Git QUIET)
if (GIT_FOUND)
execute_process(WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMAND "${GIT_EXECUTABLE}" "rev-parse" "HEAD"
RESULT_VARIABLE GIT_RESULT
OUTPUT_VARIABLE C4REVISION
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET)
if(GIT_RESULT EQUAL 0)
string(SUBSTRING "${C4REVISION}" 0 12 C4REVISION)
execute_process(WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMAND "${GIT_EXECUTABLE}" "status" "--porcelain"
OUTPUT_VARIABLE GIT_STATUS
)
string(REGEX MATCH "^[MADRC ][MD ]" WORKDIR_DIRTY "${GIT_STATUS}")
endif()
endif()
if (NOT C4REVISION)
# Git not found or not a git workdir
file(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/.git_archival" C4REVISION
LIMIT_COUNT 1
REGEX "node: [0-9a-f]+"
)
string(LENGTH "${C4REVISION}" revlength)
if(revlength LESS 18)
set(C4REVISION "unknown")
message(WARNING "Could not retrieve git revision. Please set GIT_EXECUTABLE!")
else()
string(SUBSTRING "${C4REVISION}" 6 12 C4REVISION)
endif()
unset(revlength)
endif()
if(WORKDIR_DIRTY)
set(C4REVISION "${C4REVISION}+")
endif()
set(${VAR} "${C4REVISION}" PARENT_SCOPE)
endfunction()

View File

@ -1,12 +1,18 @@
/* Activate DebugRecs */
#cmakedefine DEBUGREC 1
/* Generate minidumps on crash */
#cmakedefine HAVE_DBGHELP 1
/* Define to 1 if you have the <direct.h> header file. */
#cmakedefine HAVE_DIRECT_H 1
/* Define to 1 if you have the <execinfo.h> header file. */
/* The backtrace function is declared in execinfo.h and works */
#cmakedefine HAVE_EXECINFO_H 1
/* Whether FMOD shall be used */
#cmakedefine HAVE_FMOD 1
/* Define to 1 if you have FreeType2. */
#cmakedefine HAVE_FREETYPE 1
@ -31,18 +37,15 @@
/* Define to 1 if you have SDL_mixer. */
#cmakedefine HAVE_LIBSDL_MIXER 1
/* Define to 1 if FMOD is available */
#cmakedefine HAVE_FMOD 1
/* Use OpenAL for playing sounds */
#cmakedefine USE_OPEN_AL 1
/* Define to 1 if you have the <locale.h> header file. */
#cmakedefine HAVE_LOCALE_H 1
/* Define to 1 if you have the <memory.h> header file. */
#cmakedefine HAVE_MEMORY_H 1
/* Define to 1 if you have support for nullptr. */
#cmakedefine HAVE_NULLPTR 1
/* Define to 1 if you have the <poll.h> header file. */
#cmakedefine HAVE_POLL_H 1
@ -61,6 +64,9 @@
/* Define to 1 if you have the <readline/readline.h> header file. */
#cmakedefine HAVE_READLINE_READLINE_H 1
/* C++ Compiler has rvalue references, a C++0x feature. */
#cmakedefine HAVE_RVALUE_REF 1
/* Define to 1 if you have SDL. */
#cmakedefine HAVE_SDL 1
@ -70,6 +76,9 @@
/* Define to 1 if you have the <signal.h> header file. */
#cmakedefine HAVE_SIGNAL_H 1
/* Define to 1 if your compiler supports static_assert */
#cmakedefine HAVE_STATIC_ASSERT 1
/* Define to 1 if you have the <stdint.h> header file. */
#cmakedefine HAVE_STDINT_H 1
@ -82,15 +91,15 @@
/* Define to 1 if you have the <string.h> header file. */
#cmakedefine HAVE_STRING_H 1
/* Define to 1 if you have the <sys/inotify.h> header file. */
#cmakedefine HAVE_SYS_INOTIFY_H 1
/* Define to 1 if you have the <sys/eventfd.h> header file. */
#cmakedefine HAVE_SYS_EVENTFD_H
#cmakedefine HAVE_SYS_EVENTFD_H 1
/* Define to 1 if you have the <sys/file.h> header file. */
#cmakedefine HAVE_SYS_FILE_H 1
/* Define to 1 if you have the <sys/inotify.h> header file. */
#cmakedefine HAVE_SYS_INOTIFY_H 1
/* Define to 1 if you have the <sys/socket.h> header file. */
#cmakedefine HAVE_SYS_SOCKET_H 1
@ -111,18 +120,12 @@
#cmakedefine HAVE_VFW32
/* Define to 1 if you have the <X11/extensions/xf86vmode.h> header file. */
#cmakedefine HAVE_X11_EXTENSIONS_XF86VMODE_H 1
/* Define to 1 if you have the <X11/extensions/Xrandr.h> header file. */
#cmakedefine HAVE_X11_EXTENSIONS_XRANDR_H 1
/* Define to 1 if you have the <X11/keysym.h> header file. */
#cmakedefine HAVE_X11_KEYSYM_H 1
/* Define to 1 if you have the <X11/xpm.h> header file. */
#cmakedefine HAVE_X11_XPM_H 1
/* Define as const if the declaration of iconv() needs const. */
#cmakedefine ICONV_CONST
@ -166,39 +169,33 @@
/* MP3 music */
#cmakedefine USE_MP3 1
/* OpenAL sound */
#cmakedefine USE_OPEN_AL 1
/* Define to 1 if SDL is used for the main loop */
#cmakedefine USE_SDL_MAINLOOP 1
/* Define to 1 if the X Window System is used */
#cmakedefine USE_X11 1
/* Enable automatic update system */
#cmakedefine WITH_AUTOMATIC_UPDATE 1
/* Developer mode */
#cmakedefine WITH_DEVELOPER_MODE 1
/* Glib */
#cmakedefine WITH_GLIB 1
/* Use GTK+3 for the developer mode */
#cmakedefine WITH_GTK3 1
/* Enable the automatic update system */
#cmakedefine WITH_AUTOMATIC_UPDATE 1
/* Define to 1 if the X Window System is missing or not being used. */
#cmakedefine X_DISPLAY_MISSING 1
/* compile with debug options */
#cmakedefine _DEBUG
/* Define to 1 if rvalue references are supported */
#cmakedefine HAVE_RVALUE_REF 1
#cmakedefine _DEBUG 1
/* Define to 1 if you have support for precompiled headers */
#cmakedefine HAVE_PRECOMPILED_HEADERS 1
/* Define to 1 if you have support for nullptr. */
#cmakedefine HAVE_NULLPTR 1
/* Use Apple Cocoa for the UI */
#cmakedefine USE_COCOA 1

View File

@ -6,6 +6,12 @@
/* define if the Boost library is available */
#undef HAVE_BOOST
/* Generate minidumps on crash */
#undef HAVE_DBGHELP
/* Define to 1 if you have the <dbghelp.h> header file. */
#undef HAVE_DBGHELP_H
/* Define to 1 if you have the <direct.h> header file. */
#undef HAVE_DIRECT_H
@ -45,6 +51,9 @@
/* Define to 1 if you have the <natupnp.h> header file. */
#undef HAVE_NATUPNP_H
/* Define to 1 if you have support for nullptr. */
#undef HAVE_NULLPTR
/* Define to 1 if you have the <poll.h> header file. */
#undef HAVE_POLL_H
@ -78,6 +87,9 @@
/* Define to 1 if you have the <signal.h> header file. */
#undef HAVE_SIGNAL_H
/* Define to 1 if your compiler supports static_assert */
#undef HAVE_STATIC_ASSERT
/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H
@ -120,18 +132,12 @@
/* */
#undef HAVE_VFW32
/* Define to 1 if you have the <X11/extensions/xf86vmode.h> header file. */
#undef HAVE_X11_EXTENSIONS_XF86VMODE_H
/* Define to 1 if you have the <X11/extensions/Xrandr.h> header file. */
#undef HAVE_X11_EXTENSIONS_XRANDR_H
/* Define to 1 if you have the <X11/keysym.h> header file. */
#undef HAVE_X11_KEYSYM_H
/* Define to 1 if you have the <X11/xpm.h> header file. */
#undef HAVE_X11_XPM_H
/* Define as const if the declaration of iconv() needs const. */
#undef ICONV_CONST
@ -172,9 +178,6 @@
/* DirectX graphics */
#undef USE_DIRECTX
/* Whether FMOD shall be used */
#undef USE_FMOD
/* OpenGL graphics */
#undef USE_GL

View File

@ -38,9 +38,28 @@ m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
AC_PROG_CXX
AC_LANG([C++])
AX_CHECK_COMPILE_FLAG([-std=gnu++0x], [CXX="${CXX} -std=gnu++0x"], [])
AC_COMPILE_IFELSE([
void f(struct D&&); int main() { return 0; }
], [AC_DEFINE([HAVE_RVALUE_REF], [], [C++ Compiler has rvalue references, a C++0x feature.])], [AX_PROG_CXX_REFTOTEMP])
AC_MSG_CHECKING([for rvalue references])
AC_COMPILE_IFELSE([void f(struct D&&); int main() { return 0; }], [
AC_DEFINE([HAVE_RVALUE_REF], [], [C++ Compiler has rvalue references, a C++0x feature.])
AC_MSG_RESULT([yes])
], [
AC_MSG_RESULT([no])
AX_PROG_CXX_REFTOTEMP
])
AC_MSG_CHECKING([for nullptr])
AC_COMPILE_IFELSE([int main() { void *d = nullptr; }], [
AC_DEFINE([HAVE_NULLPTR], [], [Define to 1 if you have support for nullptr.])
AC_MSG_RESULT([yes])
], [AC_MSG_RESULT([no])])
AC_MSG_CHECKING([for static_assert])
AC_COMPILE_IFELSE([int main() { static_assert(true, \"\"); }], [
AC_DEFINE([HAVE_STATIC_ASSERT], [], [Define to 1 if your compiler supports static_assert])
AC_MSG_RESULT([yes])
], [AC_MSG_RESULT([no])])
AC_PROG_CC
AM_PROG_CC_C_O
AC_PROG_RANLIB
@ -65,7 +84,7 @@ AM_CONDITIONAL(MACOSX, [test $osx = true])
# various used headers
dnl the whitespace is there to prevent AC_INCLUDES_DEFAULT
AC_CHECK_HEADERS([stdint.h unistd.h poll.h sys/file.h sys/stat.h sys/types.h locale.h sys/socket.h signal.h langinfo.h sys/eventfd.h sys/timerfd.h sys/inotify.h], , , [[ ]])
AC_CHECK_HEADERS([io.h direct.h share.h natupnp.h], [], [], [[#include <windows.h>]])
AC_CHECK_HEADERS([io.h direct.h share.h natupnp.h dbghelp.h], [], [], [[#include <windows.h>]])
# iconv
AX_ICONV
# vasprintf is a GNU extension
@ -107,7 +126,7 @@ AC_ARG_ENABLE([console],
AC_ARG_ENABLE([sound],
[AS_HELP_STRING([--enable-sound],[compile with sound support [default=yes]])],
, [if test $enable_console = yes; then enable_sound=no; else if test $win32 = true; then enable_sound=no; else enable_sound=yes; fi; fi])
, [if test $enable_console = yes; then enable_sound=no; else enable_sound=yes; fi])
# GTK+
GTK2_REQUIRED="glib-2.0 >= 2.8 gtk+-2.0 >= 2.8"
@ -147,7 +166,7 @@ AC_ARG_WITH([openal],
[AS_HELP_STRING([--with-openal],[compile with openal support [default=no]])],
, [with_openal=no])
if test $with_openal = yes; then
PKG_CHECK_MODULES(OPENAL, [vorbis vorbisfile openal])
PKG_CHECK_MODULES(OPENAL, [vorbis vorbisfile openal freealut])
AC_DEFINE([USE_OPEN_AL], 1, [OpenAL sound])
if test $enable_sound = no; then
AC_MSG_ERROR([--with-openal cannot be used with --disable-sound.])
@ -208,6 +227,7 @@ else
enable_sdlmainloop=no
VL_LIB_READLINE
fi
AM_CONDITIONAL([CONSOLE], [test $enable_console = yes])
# Check for boost
AX_BOOST_BASE([1.40.0], [], [
@ -256,19 +276,15 @@ if test $enable_console = no; then
AC_DEFINE(HAVE_FREETYPE, 1, [Define to 1 if you have FreeType2.])
fi
# X11, Xpm, Xrandr
# X11, Xrandr
AC_PATH_XTRA
if test $have_x = yes; then
AC_DEFINE(USE_X11, 1, [Define to 1 if the X Window System is used])
CLONK_LIBS="$X_LIBS $CLONK_LIBS"
AC_CHECK_HEADERS([X11/keysym.h X11/extensions/xf86vmode.h X11/xpm.h X11/extensions/Xrandr.h], ,
AC_CHECK_HEADERS([X11/keysym.h X11/extensions/Xrandr.h], ,
[AC_MSG_ERROR([A required X11 header was not found.])], [[#include <X11/Xlib.h>]])
AC_CHECK_LIB(X11, XOpenDisplay, [CLONK_LIBS="-lX11 $CLONK_LIBS"],
[AC_MSG_ERROR([libX11 not found.])], [$X_LIBS])
AC_CHECK_LIB(Xpm, XpmCreatePixmapFromData, [CLONK_LIBS="-lXpm $CLONK_LIBS"],
[AC_MSG_ERROR([libXpm not found.])], [$X_LIBS])
AC_CHECK_LIB(Xxf86vm, XF86VidModeQueryVersion, [CLONK_LIBS="-lXxf86vm $CLONK_LIBS"],
[AC_MSG_ERROR([XF86VidMode not found.])], [$X_LIBS])
AC_CHECK_LIB(Xrandr, XRRQueryExtension, [CLONK_LIBS="-lXrandr $CLONK_LIBS"],
[AC_MSG_ERROR([libXrandr not found.])], [$X_LIBS])
fi
@ -280,8 +296,7 @@ AC_ARG_WITH([gl],
if test $with_gl = yes; then
if test $osx = true; then
CLONK_LIBS="-framework OpenGL $CLONK_LIBS"
AC_CHECK_LIB(GLEW, glewInit, [CLONK_LIBS="-lGLEW $CLONK_LIBS"],
[AC_MSG_ERROR([glew not found.])])
PKG_CHECK_MODULES(GLEW, [glew], [CLONK_LIBS="$GLEW_LIBS $CLONK_LIBS"], [AC_MSG_ERROR([glew not found.])])
elif test $win32 = true; then
AC_CHECK_LIB(opengl32, main, [CLONK_LIBS="-lopengl32 $CLONK_LIBS"],
[AC_MSG_ERROR([opengl32 not found.])])
@ -338,9 +353,6 @@ if test $win32 = false; then
AX_PTHREAD( , [AC_MSG_ERROR([No pthread support.])])
AC_SUBST(PTHREAD_LIBS)
AC_SUBST(PTHREAD_CFLAGS)
# FMod is used for windows only
AM_CONDITIONAL(USE_FMOD, false)
else
# Windows
for WIN32LIB in gdi32 comdlg32 ws2_32
@ -355,11 +367,10 @@ else
AC_DEFINE([HAVE_VFW32], 1, [ ])
], [])
# FMod (Library comes with standard)
if test "$enable_sound" = yes; then
AC_DEFINE([USE_FMOD], 1, [Whether FMOD shall be used])
fi
AM_CONDITIONAL(USE_FMOD, test "$enable_sound" = yes)
AC_CHECK_LIB([dbghelp], main, [AS_IF([test "x$ac_cv_header_dbghelp_h" = xyes], [
CLONK_LIBS="-ldbghelp $CLONK_LIBS"
AC_DEFINE([HAVE_DBGHELP], 1, [Generate minidumps on crash])
])], [])
# windres
AC_CHECK_TOOL(WINDRES, windres, no)

View File

@ -53,7 +53,7 @@ chm: $(sdk-de-dirs) $(chm-dirs) chm/en/Developer.chm chm/de/Entwickler.chm
install: all
$(MKDIR_P) $(prefix)
$(CP_R) $(PWD)/online/* $(prefix)
$(CP_R) online/* $(prefix)
check:
xmllint --noblanks --noout --valid $(xmlfiles)

View File

@ -514,7 +514,7 @@
<xsl:template name="color2">
<xsl:param name="s" select="." />
<!-- the list of keywords -->
<xsl:param name="t" select="'#include|#appendto|public|private|protected|global|static|var|local|const|int|proplist|object|array|string|bool|any|return|if|else|break|continue|while|for|func|true|false|nil|'" />
<xsl:param name="t" select="'#include|#appendto|public|private|protected|global|static|var|local|const|any|int|bool|def|effect|object|proplist|string|array|func|return|if|else|break|continue|while|for|true|false|nil|'" />
<xsl:param name="w" select="substring-before($t, '|')" />
<!-- text before the keyword -->
<xsl:variable name="l" select="substring-before($s, $w)" />

View File

@ -10,8 +10,6 @@ msgid ""
msgstr ""
"Project-Id-Version: OpenClonk documentation\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-10-03 23:26+0200\n"
"PO-Revision-Date: 2012-05-06 15:35+0200\n"
"Last-Translator: Günther Brammer <gbrammer@gmx.de>\n"
"Language-Team: German <>\n"
"Language: German\n"
@ -19,6 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 1.5.4\n"
#: sdk/content.xml.in:5(title)
#: sdk/content.xml.in:54(h)
@ -371,11 +370,11 @@ msgstr "Operator"
#: sdk/scenario/Teams.xml:15(col)
#: sdk/scenario/Teams.xml:74(col)
#: sdk/scenario/MapCreatorS2.xml:34(col)
#: sdk/playercontrols.xml:23(col)
#: sdk/playercontrols.xml:84(col)
#: sdk/playercontrols.xml:128(col)
#: sdk/playercontrols.xml:142(col)
#: sdk/playercontrols.xml:173(col)
#: sdk/playercontrols.xml:22(col)
#: sdk/playercontrols.xml:83(col)
#: sdk/playercontrols.xml:147(col)
#: sdk/playercontrols.xml:181(col)
#: sdk/playercontrols.xml:232(col)
#: sdk/particle/index.xml:32(col)
#: sdk/material/ocm.xml:16(col)
#: sdk/material/ocm.xml:230(col)
@ -2368,7 +2367,7 @@ msgstr "Aufzurufende Funktion"
#: sdk/script/fn/Sort_Func.xml:22(desc)
#: sdk/script/fn/Find_Func.xml:22(desc)
#: sdk/script/fn/Call.xml:22(desc)
#: sdk/script/fn/Call.xml:23(desc)
msgid "Parameters of the function."
msgstr "Parameter für die Funktion"
@ -2840,11 +2839,11 @@ msgstr "Index des Vertex."
#: sdk/scenario/scenario.xml:409(col)
#: sdk/scenario/Teams.xml:13(col)
#: sdk/scenario/Teams.xml:72(col)
#: sdk/playercontrols.xml:21(col)
#: sdk/playercontrols.xml:83(col)
#: sdk/playercontrols.xml:126(col)
#: sdk/playercontrols.xml:140(col)
#: sdk/playercontrols.xml:172(col)
#: sdk/playercontrols.xml:20(col)
#: sdk/playercontrols.xml:82(col)
#: sdk/playercontrols.xml:145(col)
#: sdk/playercontrols.xml:179(col)
#: sdk/playercontrols.xml:231(col)
#: sdk/particle/index.xml:30(col)
#: sdk/material/ocm.xml:14(col)
#: sdk/material/ocm.xml:228(col)
@ -7700,12 +7699,15 @@ msgstr "s"
#: sdk/scenario/scenario.xml:285(col)
#: sdk/scenario/Teams.xml:62(col)
#: sdk/scenario/Teams.xml:103(col)
#: sdk/playercontrols.xml:32(col)
#: sdk/playercontrols.xml:37(col)
#: sdk/playercontrols.xml:77(col)
#: sdk/playercontrols.xml:132(col)
#: sdk/playercontrols.xml:146(col)
#: sdk/playercontrols.xml:31(col)
#: sdk/playercontrols.xml:36(col)
#: sdk/playercontrols.xml:76(col)
#: sdk/playercontrols.xml:151(col)
#: sdk/playercontrols.xml:156(col)
#: sdk/playercontrols.xml:185(col)
#: sdk/playercontrols.xml:195(col)
#: sdk/playercontrols.xml:200(col)
#: sdk/playercontrols.xml:205(col)
#: sdk/material/ocm.xml:234(col)
#: sdk/material/ocm.xml:239(col)
#: sdk/material/ocm.xml:244(col)
@ -9412,13 +9414,13 @@ msgstr "Das Object mit dem verglichen werden soll."
msgid "Checks whether the pictures of two objects are the same and therefore can be stacked in contents menus."
msgstr "Tested ob die Bilder zweier Objekte gleich sind und sie somit in Inhaltsanzeigen gestapelt werden können."
#: sdk/script/fn/Call.xml:17(desc)
#: sdk/script/fn/Call.xml:18(desc)
msgid "Function to be called."
msgstr "Funktion, die aufgerufen werden soll."
#: sdk/script/fn/Call.xml:26(desc)
msgid "Calls the local function function. If \"~\" is prepended to the function name then the call does not fail if the function does not exist."
msgstr "Ruft die lokale Funktion function auf. Wird \"~\" vor den Funktionsnamen gesetzt, wird der Aufruf failsafe durchgeführt."
#: sdk/script/fn/Call.xml:27(desc)
msgid "Calls the specified function. If given a string, the function is looked up in the context object (<code>this</code>). For example, <code>obj-&gt;Call(\"Foo\")</code> is the same as <code>obj-&gt;Foo()</code>. Using Call like this is primarily useful when the name of the function can vary. If \"~\" is prepended to the function name then the call does not fail if the function does not exist."
msgstr ""
#: sdk/script/fn/COMD_UpRight.xml:12(desc)
msgid "Movement direction: diagonally up and to the right. For more information see <placeholder-1/>."
@ -10301,9 +10303,10 @@ msgstr "Beispiel"
#: sdk/scenario/MapCreatorS2.xml:78(col)
#: sdk/scenario/MapCreatorS2.xml:88(col)
#: sdk/scenario/MapCreatorS2.xml:113(col)
#: sdk/playercontrols.xml:52(col)
#: sdk/playercontrols.xml:57(col)
#: sdk/playercontrols.xml:161(col)
#: sdk/playercontrols.xml:51(col)
#: sdk/playercontrols.xml:56(col)
#: sdk/playercontrols.xml:210(col)
#: sdk/playercontrols.xml:220(col)
#: sdk/particle/index.xml:41(col)
#: sdk/particle/index.xml:46(col)
#: sdk/particle/index.xml:51(col)
@ -10467,11 +10470,15 @@ msgstr "Eine ganze Zahl im Bereich von -2.147.483.648 bis +2.147.483.647."
#: sdk/scenario/MapCreatorS2.xml:93(col)
#: sdk/scenario/MapCreatorS2.xml:98(col)
#: sdk/scenario/MapCreatorS2.xml:108(col)
#: sdk/playercontrols.xml:42(col)
#: sdk/playercontrols.xml:47(col)
#: sdk/playercontrols.xml:62(col)
#: sdk/playercontrols.xml:72(col)
#: sdk/playercontrols.xml:151(col)
#: sdk/playercontrols.xml:41(col)
#: sdk/playercontrols.xml:46(col)
#: sdk/playercontrols.xml:61(col)
#: sdk/playercontrols.xml:71(col)
#: sdk/playercontrols.xml:161(col)
#: sdk/playercontrols.xml:166(col)
#: sdk/playercontrols.xml:171(col)
#: sdk/playercontrols.xml:190(col)
#: sdk/playercontrols.xml:215(col)
#: sdk/material/ocm.xml:254(col)
#: sdk/material/ocm.xml:259(col)
#: sdk/material/ocm.xml:264(col)
@ -11124,7 +11131,7 @@ msgid "To store the previous status of the target object, properties of the effe
msgstr "Zum Speichern der vorherigen Statuswerte des Effektziels werden die Eigenschaften des Effekts verwendet. Dies ist nötig, da die Effekt-Callbacks in diesem Fall keinen Befehlskontext haben. Es können also keine objektlokalen Variablen verwendet werden - das Zauberobjekt wurde schließlich gelöscht. Falls ein Objektkontext benötigt wird, kann man diesen auch an <placeholder-1/>() übergeben. Die Aufrufe sind dann objektlokal, und der Effekt wird automatisch gelöscht, wenn das Befehlszielobjekt gelöscht wurde."
#: sdk/script/Effects.xml:101(h)
#: sdk/playercontrols.xml:357(h)
#: sdk/playercontrols.xml:412(h)
msgid "Priorities"
msgstr "Prioritäten"
@ -11311,9 +11318,9 @@ msgstr "Effekt Properties"
#: sdk/scenario/scenario.xml:410(col)
#: sdk/scenario/Teams.xml:14(col)
#: sdk/scenario/Teams.xml:73(col)
#: sdk/playercontrols.xml:22(col)
#: sdk/playercontrols.xml:127(col)
#: sdk/playercontrols.xml:141(col)
#: sdk/playercontrols.xml:21(col)
#: sdk/playercontrols.xml:146(col)
#: sdk/playercontrols.xml:180(col)
#: sdk/particle/index.xml:31(col)
#: sdk/material/ocm.xml:15(col)
#: sdk/material/ocm.xml:229(col)
@ -12740,7 +12747,7 @@ msgstr "Sektion [Teams]"
#: sdk/scenario/Teams.xml:16(col)
#: sdk/scenario/Teams.xml:75(col)
#: sdk/playercontrols.xml:176(col)
#: sdk/playercontrols.xml:235(col)
msgid "Default value"
msgstr "Standardwert"
@ -13235,286 +13242,335 @@ msgid "PlayerControls.txt"
msgstr "PlayerControls.txt"
#: sdk/playercontrols.xml:11(text)
msgid "All control commands which a player can send to the game are defined in the file PlayerControls.txt. The standard keys as well as their standard mapping for various input devices are contained in the global definition file in the Systems.ocg folder. Object definitions and scenarios can add more keys or overload the parameters of existing commands in their local Systems.ocg folder**."
#, fuzzy
msgid "All control commands which a player can send to the game are defined in the file PlayerControls.txt. The standard keys as well as their standard mapping for various input devices are contained in the global definition file in the Systems.ocg folder. Object definitions and scenarios can add more keys or overload the parameters of existing commands in their local Systems.ocg folder."
msgstr "Alle Steuerungsbefehle, die ein Spieler an das Spiel geben kann, werden in der Datei PlayerControls.txt definiert. Die Standardtasten sowie deren Standardbelegung fuer verschiedene Eingabegeraete befinden sich in der globalen Definitionsdatei in der System.ocg. Objektdefinitionen und Szenarien koennen weitere Tasten in ihrer lokalen System.ocg hinzufuegen oder die Parameter vorhandener Steuerkommandos ueberladen**."
#: sdk/playercontrols.xml:12(text)
msgid "Additional PlayerControls.txt files can be put in language packages to adapt the standard key mappings of different loaded languages to the keyboard of their respective country**."
msgstr "Zusaetzliche Dateien PlayerControls.txt koennen in Sprachpaketen abgelegt werden, um die Standardbelegungen der Tasten bei verschiedenen, geladenen Sprachen an die Tastaturen des jeweiligen Landes anzupassen**."
#: sdk/playercontrols.xml:14(h)
#: sdk/playercontrols.xml:13(h)
msgid "Section [ControlDefs]"
msgstr "Sektion [ControlDefs]"
#: sdk/playercontrols.xml:19(caption)
#: sdk/playercontrols.xml:18(caption)
msgid "Any number of sections [ControlDef]"
msgstr "Beliebig viele Sektionen [ControlDef]"
#: sdk/playercontrols.xml:27(col)
#: sdk/playercontrols.xml:26(col)
msgid "String (max. 96 chars)"
msgstr "Zeichenfolge (Max. 96 Zeichen)"
#: sdk/playercontrols.xml:28(col)
#: sdk/playercontrols.xml:27(col)
msgid "Internally used name for identification of the command. The command is referenced by that name in standard mappings and it is predefined in script as CON_Name. The name should therefore be a valid identifier in script, i.e. only consist of letters, numbers and _. Especially there should be no space characters or German umlauts. To avoid conflicts the same rules as for object IDs apply for definitions local to a certain scenario or object."
msgstr "Intern benutzter Name zur Identifikation des Kommandos. Das Kommando wird unter diesem Namen in Standardbelegungen referenziert und im Script als CON_Name-Konstante vordefiniert. Der Name sollte folglich im Script gueltig sein, d.h. nur aus Buchstaben, Zahlen sowie _ bestehen. Insbesondere sollten keine Leerzeichen oder deutsche Umlaute verwendet werden. Zur Vermeidung von Konflikten gelten in szenarienlokalen sowie Objektpaketlokalen Definitionen dieselben Benennungsregeln wie zur Vergabe von Objekt-IDs."
#: sdk/playercontrols.xml:33(col)
#: sdk/playercontrols.xml:32(col)
msgid "Name which is shown to the player in the control configuration dialog and in control tooltips. Localized strings from the corresponding string table can be used ($Name$)."
msgstr "Name, der dem Spieler im Steuerungskonfigurationsdialog sowie in den Steuerungstooltips angezeigt wird. Lokalisierte Zeichenketten koennen aus dem zugehoerigen StringTable refeenziert werden ($Name$)."
#: sdk/playercontrols.xml:38(col)
msgid "Informative description which is displayed to the player in the control configuration dialog. Lokalisierte Zeichenketten koennen aus dem zugehoerigen StringTable refeenziert werden ($Name$)."
msgstr "Erlaeuternde Beschreibung, die dem Spieler im Steuerungskonfigurationsdialog angezeigt wird. Lokalisierte Zeichenketten koennen aus dem zugehoerigen StringTable refeenziert werden ($Name$)."
#: sdk/playercontrols.xml:37(col)
#, fuzzy
msgid "Informative description which is displayed to the player in the control configuration dialog. Localized strings from the corresponding string table can be used ($Desc$)."
msgstr "Name, der dem Spieler im Steuerungskonfigurationsdialog sowie in den Steuerungstooltips angezeigt wird. Lokalisierte Zeichenketten koennen aus dem zugehoerigen StringTable refeenziert werden ($Name$)."
#: sdk/playercontrols.xml:43(col)
#: sdk/playercontrols.xml:42(col)
msgid "If true this is a global definition, i.e. not assigned to a particular player. See <emlink href=\"playercontrols.xml#Globals\">Global definitions</emlink>."
msgstr "Wenn wahr, ist dies eine globale, d.h. keinem Spieler zugeordnete Definition. Siehe <emlink href=\"playercontrols.xml#Globals\">Globale Definitionen</emlink>."
#: sdk/playercontrols.xml:48(col)
#: sdk/playercontrols.xml:47(col)
msgid "If true this command is interpreted as a held command. Such a command remembers whether the control key is pressed and generates another scripting event when it is released. See <emlink href=\"playercontrols.xml#Hold\">Held keys</emlink>."
msgstr "Wenn wahr, wird das Kommando als ein gehaltenes Kommando interpretiert. Ein solches Kommando speichert, ob die Steuerungstaste gedrueckt ist und generiert beim Loslassen ein zusaetzliches Scriptereignis. Siehe <emlink href=\"playercontrols.xml#Hold\">Gehaltene Tasten</emlink>."
#: sdk/playercontrols.xml:53(col)
#: sdk/playercontrols.xml:52(col)
msgid "Only valid if <em>Hold</em> is true. If greater than 0 then this key generates additional scripting events while pressed every that many number of frames. See <emlink href=\"playercontrols.xml#Repeat\">Key repeats</emlink>."
msgstr "Nur gueltig wenn <em>Hold</em> wahr. Wenn groesser 0, generiert die Taste im gehaltenen Zustand im angegebenen Abstand (in Frames) weitere Scriptereignisse. Siehe <emlink href=\"playercontrols.xml#Repeat\">Tastenwiederholungen</emlink>."
#: sdk/playercontrols.xml:58(col)
#: sdk/playercontrols.xml:57(col)
msgid "If specified then the delay of the first key repeat event can be changed. See <emlink href=\"playercontrols.xml#Repeat\">Key repeats</emlink>."
msgstr "Wenn angegeben, kann die Wartezeit fuer das erste Tastenwiederholungsereignis geaendert werden. Siehe <emlink href=\"playercontrols.xml#Repeat\">Tastenwiederholungen</emlink>."
#: sdk/playercontrols.xml:63(col)
#: sdk/playercontrols.xml:62(col)
msgid "If true then the command is deactivated in the normal case and needs to be activated by script first. This is useful for commands that are only required in special situations. See <emlink href=\"playercontrols.xml#Deactivate\">Deactivated commands</emlink>."
msgstr "Wenn wahr, ist das Kommando im Normalfall deaktiviert und muss erst per Script aktiviert werden. Nuetzlich fuer Kommandos, die nur in sehr speziellen Situationen benoetigt werden. Siehe <emlink href=\"playercontrols.xml#Deactivate\">Deaktivierte Kommandos</emlink>."
#: sdk/playercontrols.xml:67(col)
#: sdk/playercontrols.xml:66(col)
#: sdk/definition/properties.xml:145(col)
#: sdk/definition/defcore.xml:170(col)
msgid "C4ID"
msgstr "C4ID"
#: sdk/playercontrols.xml:68(col)
#: sdk/playercontrols.xml:67(col)
msgid "Optional ID that is passed to the script function. See <emlink href=\"playercontrols.xml#ExtraData\">ExtraData</emlink>."
msgstr "Optionale ID, die an die Scriptfunktion uebergeben wird. Siehe <emlink href=\"playercontrols.xml#ExtraData\">ExtraData</emlink>."
#: sdk/playercontrols.xml:73(col)
#: sdk/playercontrols.xml:72(col)
msgid "If true then the GUI mouse position at the time of triggering the command will be sent as a separate CON_CursorPos command. If the mouse is not activated then the cursor position in GUI coordinates is transmitted."
msgstr "Wenn wahr, wird mit dem Kommando die GUI-Mausposition zum Zeitpunkt des Ausloesens des Kommandos als separates CON_CursorPos-Kommando gesendet. Ist keine Maus aktiviert, wird die Cursorposition in GUI-Koordinaten uebertragen."
#: sdk/playercontrols.xml:88(col)
#: sdk/playercontrols.xml:87(col)
msgid "No action."
msgstr "Keine Aktion."
#: sdk/playercontrols.xml:92(col)
#: sdk/playercontrols.xml:91(col)
msgid "Execution of the script function <em>PlayerControl</em>. See <emlink href=\"playercontrols.xml#Script\">Script callbacks</emlink>. (Default value)"
msgstr "Ausführung des Scriptbefehls <em>PlayerControl</em>. Siehe <emlink href=\"playercontrols.xml#Script\">Script-Callbacks</emlink>."
#: sdk/playercontrols.xml:96(col)
#: sdk/playercontrols.xml:95(col)
msgid "Zoom in one unit"
msgstr "Zoomt eine Einheit rein"
#: sdk/playercontrols.xml:99(col)
msgid "Zoom out one unit"
msgstr "Zoomt eine Einheit raus"
#: sdk/playercontrols.xml:103(col)
msgid "Open the player menu (asynchronous command)."
msgstr "Oeffnen des Spielermenues (asynchrones Kommando)."
#: sdk/playercontrols.xml:100(col)
#: sdk/playercontrols.xml:107(col)
msgid "Confirmation of the selected item in the player menu (asynchronous command)."
msgstr "Bestaetigen des ausgewaehlten Elementes im Spielermenue (asynchrones Kommando)."
#: sdk/playercontrols.xml:104(col)
#: sdk/playercontrols.xml:111(col)
msgid "Close the player menu (asynchronous command)."
msgstr "Schliessen des Spielermenues (asynchrones Kommando)."
#: sdk/playercontrols.xml:108(col)
#: sdk/playercontrols.xml:115(col)
msgid "Navigation in the player menu (asynchronous command)."
msgstr "Navigation im Spielermenu (asynchrones Kommando)."
#: sdk/playercontrols.xml:78(col)
#: sdk/playercontrols.xml:119(col)
#, fuzzy
msgid "Confirmation of the selected item in a menu (synchronous command)."
msgstr "Bestaetigen des ausgewaehlten Elementes im Spielermenue (asynchrones Kommando)."
#: sdk/playercontrols.xml:123(col)
#, fuzzy
msgid "Close a menu (synchronous command)."
msgstr "Schliessen des Spielermenues (asynchrones Kommando)."
#: sdk/playercontrols.xml:127(col)
#, fuzzy
msgid "Navigation in a menu (synchronous command)."
msgstr "Navigation im Spielermenu (asynchrones Kommando)."
#: sdk/playercontrols.xml:77(col)
msgid "Action to be executed for this command. Possible values: <placeholder-1/>"
msgstr "Auszufuehrende Aktion bei diesem Kommando. Moegliche Werte: <placeholder-1/>"
#: sdk/playercontrols.xml:15(text)
msgid "Definition of possible player commands. Not valid in language packages. Subordinated to this section: <placeholder-1/>"
#: sdk/playercontrols.xml:14(text)
#, fuzzy
msgid "Definition of possible player commands. Subordinated to this section: <placeholder-1/>"
msgstr "Definition der moeglichen Spielerkommandos. Nicht gueltig in Sprachpaketen. Dieser Sektion untergeordnet: <placeholder-1/>"
#: sdk/playercontrols.xml:119(h)
#: sdk/playercontrols.xml:138(h)
msgid "Section [ControlSets]"
msgstr "Sektion [ControlSets]"
#: sdk/playercontrols.xml:124(caption)
#: sdk/playercontrols.xml:143(caption)
msgid "Any number of sections [ControlSet]"
msgstr "Beliebig viele Sektionen [ControlSet]"
#: sdk/playercontrols.xml:133(col)
msgid "Internal name for identification of otherwise equal control mappings. The names of the standard mappings are <em>Keyboard1</em>, <em>Keyboard1Classic</em>, <em>Keyboard2</em>, <em>Keyboard2Classic</em>, <em>Gamepad</em>. By using placeholders (*) keys can directly be defined in multiple mappings**."
#: sdk/playercontrols.xml:152(col)
#, fuzzy
msgid "Internal name for identification of otherwise equal control mappings. By using placeholders (*) keys can directly be defined in multiple mappings."
msgstr "Interner Name zur Identifikation gleicher Steuerungsbelegungen. Die Namen der Standardbelegungen sind <em>Keyboard1</em>, <em>Keyboard1Classic</em>, <em>Keyboard2</em>, <em>Keyboard2Classic</em>, <em>Gamepad</em>. Ueber Platzhalter (*) koennen Tasten direkt in mehreren Belegungen definiert werden**."
#: sdk/playercontrols.xml:138(caption)
#: sdk/playercontrols.xml:157(col)
msgid "Name for the control assignment set which is shown to the player in the control configuration dialog."
msgstr "Name der Steuerung welche wie sie in den Optionen angezeigt wird."
#: sdk/playercontrols.xml:162(col)
msgid "Whether this control assignment set uses the keyboard. Default 1."
msgstr "Ob diese Steuerung die Tastatur benutzt. Default 1."
#: sdk/playercontrols.xml:167(col)
msgid "Whether this control assignment set uses the mouse. Default 1."
msgstr "Ob diese Steuerung die Maus benutzt. Default 1."
#: sdk/playercontrols.xml:172(col)
msgid "Whether this control assignment set uses the gamepad. Default 0."
msgstr "Ob diese Steuerung ein Gamepad benutzt. Default 0."
#: sdk/playercontrols.xml:177(caption)
msgid "Any number of sections [Assignment]"
msgstr "Beliebig viele Sektionen [Assignment]"
#: sdk/playercontrols.xml:147(col)
#: sdk/playercontrols.xml:186(col)
msgid "Specifies the key(s) of this mapping or a reference to another mapping. See <emlink href=\"playercontrols.xml#Keys\">Key mappings</emlink>."
msgstr "Taste(n) dieser Belegung oder Referenz auf eine andere Belegung. Siehe <emlink href=\"playercontrols.xml#Keys\">Tastenbelegungen</emlink>."
#: sdk/playercontrols.xml:152(col)
#: sdk/playercontrols.xml:191(col)
msgid "If true then multiple keys are taken as a sequence, i.e. they need to be pressed one after the other instead of all at the same time. See <emlink href=\"playercontrols.xml#Keys\">Key mappings</emlink>."
msgstr "Wenn wahr, werden mehrfache Tasten als Sequenz interpretiert. Das heisst, sie muessen nacheinander statt gleichzeitig gedrueckt werden. Siehe <emlink href=\"playercontrols.xml#Keys\">Tastenbelegungen</emlink>."
#: sdk/playercontrols.xml:157(col)
#: sdk/playercontrols.xml:196(col)
msgid "Command that is combined with this mapping. The name should be equivalent to the <em>Identifier</em> of a command defined in a <emlink href=\"playercontrols.xml#ControlDef\">[ControlDef]</emlink>."
msgstr "Kommando, das mit dieser Belegung verknuepft wird. Der Name sollte dem <em>Identifier</em> eines in einer <emlink href=\"playercontrols.xml#ControlDef\">[ControlDef]</emlink> definierten Kommandos entsprechen."
#: sdk/playercontrols.xml:162(col)
#: sdk/playercontrols.xml:201(col)
#, fuzzy
msgid "Name which is shown to the player in the control configuration dialog and in control tooltips. Localized strings from the corresponding string table can be used ($Name$). If unset, GUIName of the control def is used. If set to \"None\", the control is not displayed in the user customization dialog even if the control def has a name set."
msgstr "Name, der dem Spieler im Steuerungskonfigurationsdialog sowie in den Steuerungstooltips angezeigt wird. Lokalisierte Zeichenketten koennen aus dem zugehoerigen StringTable refeenziert werden ($Name$)."
#: sdk/playercontrols.xml:206(col)
#, fuzzy
msgid "Informative description which is displayed to the player in the control configuration dialog. Lokalisierte Zeichenketten koennen aus dem zugehoerigen StringTable refeenziert werden ($Name$). If unset, GUIDesc of the control def is used."
msgstr "Erlaeuternde Beschreibung, die dem Spieler im Steuerungskonfigurationsdialog angezeigt wird. Lokalisierte Zeichenketten koennen aus dem zugehoerigen StringTable refeenziert werden ($Name$)."
#: sdk/playercontrols.xml:211(col)
msgid "Control assignments in the same group are displayed grouped together in the control assignment dialog. The group with the lowest number is displayed at the top. Default 0."
msgstr "Tastenbelegungen in der gleichen Gruppe werden in den Optionen zusammen angezeigt. Die Gruppe mit der kleinsten Nummer erscheint ganz oben in der Liste."
#: sdk/playercontrols.xml:216(col)
msgid "Whether this control assignment can not be changed in the control assignment dialog. Default 0."
msgstr "Ob diese Tastenbelegung nicht in den Optionen angepasst werden kann. Default 0."
#: sdk/playercontrols.xml:221(col)
msgid "Priority of the mapping. If more than once mapping is using the same keys then the key with the highest priority is executed first until a command is treated as handled."
msgstr "Prioritaet der Belegung. Nutzen mehrere Belegungen die gleichen Tasten, so wird zunaechst die Taste mit der hoeheren Prioritaet ausgefuehrt, bis ein Kommando als behandelt gilt."
#: sdk/playercontrols.xml:166(col)
#: sdk/playercontrols.xml:225(col)
msgid "bitmask"
msgstr "Bitmaske"
#: sdk/playercontrols.xml:177(col)
#: sdk/playercontrols.xml:236(col)
msgid "No particular action."
msgstr "Keine besondere Aktion."
#: sdk/playercontrols.xml:181(col)
#: sdk/playercontrols.xml:240(col)
msgid "The key changes the state of the command linked to to be held even if the key itself is pressed only shortly. Only valid if the <em>Hold</em> attribute is set for the command. This state remains until a corresponding mapping with trigger mode <em>Release</em> is being pressed. See <emlink href=\"playercontrols.xml#Hold\">Held keys</emlink>."
msgstr "Die Taste versetzt das verlinkte Kommando in den gedrueckten Zustand, selbst wenn die Taste selbst nur angeschlagen wird. Nur gueltig, wenn das Kommando das <em>Hold</em>-Attribut gesetzt hat. Dieser Zustand bleibt erhalten, bis eine entsprechende Belegung mit Ausloesemodus <em>Release</em> gedrueckt wird. Siehe <emlink href=\"playercontrols.xml#Hold\">Gehaltene Tasten</emlink>."
#: sdk/playercontrols.xml:185(col)
#: sdk/playercontrols.xml:244(col)
msgid "The key removes the held state. A key can have both Hold and Release set to toggle between the two states. See <emlink href=\"playercontrols.xml#Hold\">Held keys</emlink>."
msgstr "Die Taste entfernt den gedrueckten Zustand. Eine Taste kann auch sowohl Hold als auch Release setzen, um zwischen den Zustaenden hin und her zu schalten. Siehe <emlink href=\"playercontrols.xml#Hold\">Gehaltene Tasten</emlink>."
#: sdk/playercontrols.xml:189(col)
#: sdk/playercontrols.xml:248(col)
msgid "The key press is always passed to the mapping with the next lowest priority, independent of whether the previous command was executed successfully or not."
msgstr "Der Tastendruck wird immer an die Belegung mit der naechstniedrigen Prioritaet weitergereicht, unabhaengig davon, ob das vorherige Kommando erfolgreich ausgefuehrt wurde."
#: sdk/playercontrols.xml:193(col)
msgid "The keypress is passed to the mapping with the next lower priority only if the previous command was executed successfully. This can be used to define macros. **"
msgstr "Der Tastendruck wird genau dann an die Belegung mit der naechstniedrigen Prioritaet weitergereicht, wenn das vorherige Kommando erfolgreich ausgefuehrt wurde. Hiermit lassen sich Makros definieren. **"
#: sdk/playercontrols.xml:197(col)
#: sdk/playercontrols.xml:252(col)
msgid "The assignment overwrites all other assignments for the same control with the same press/release trigger mode."
msgstr "Die Zuweisung ueberschreibt alle weiteren Zuweisungen zum gleichen Control mit gleichem Press/Release-Triggermodus."
#: sdk/playercontrols.xml:167(col)
#: sdk/playercontrols.xml:226(col)
msgid "Trigger mode of this mapping. Bitmask based on the following values: <placeholder-1/>"
msgstr "Ausloesmodus dieser Belegung. Bitmaske aus folgenden Werten: <placeholder-1/>"
#: sdk/playercontrols.xml:120(text)
#: sdk/playercontrols.xml:139(text)
msgid "Definition of standard control mappings. <placeholder-1/>"
msgstr "Definition von Standard-Steuerungsbelegungen. <placeholder-1/>"
#: sdk/playercontrols.xml:210(h)
#: sdk/playercontrols.xml:265(h)
msgid "Script callbacks"
msgstr "Script-Callbacks"
#: sdk/playercontrols.xml:211(text)
#: sdk/playercontrols.xml:266(text)
msgid "To initialize the player control the script function InitializePlayerControl is called for each player. This call might be delayed by a few frames with respect to InitializePlayer since the initialization of the control needs to be transmitted in the network. When continuing savegames InitalizePlayerControl will be called again. The chosen control might be different from the original one. The same can happen if a player chooses to change its controls during the game."
msgstr "Zum Initialisieren der Spielersteuerung wird für jeden gesteuerten Spieler die Funktion InitializePlayerControl aufgerufen. Dieser Aufruf erfolgt gegebenenfalls einige Frames verspätet nach InitializePlayer, da die Initialisierung der Steuerung im Netzwerk übertragen werden muss. Beim Fortsetzen von Spielständen wird InitializePlayerControl wiederholt aufgerufen. Die gewählte Steuerung kann sich hier von der ursprünglichen Steuerung unterscheiden. Gleiches gilt, falls der Spieler mitten im Spiel die Steuerung wechselt."
#: sdk/playercontrols.xml:218(text)
#: sdk/playercontrols.xml:273(text)
msgid "most commands (except for asynchronous commands in the player menu) call a global script function:"
msgstr "Die meisten Kommandos (abgesehen von asyrnchronen Kommandos im Spielermenue), rufen eine globale Scriptfunktion auf:"
#: sdk/playercontrols.xml:220(text)
#: sdk/playercontrols.xml:275(text)
msgid "For an explanation of the parameters see <placeholder-1/>. Amongst others, the function receives the calling player in player as well as the command to be executed in control."
msgstr "Fuer eine Erlaeuterung der Parameter siehe <placeholder-1/>. Die Funktion erhaelt unter anderem den aufrufenden Spieler in player, sowie das ausgefuehrte Kommando in iControl."
#: sdk/playercontrols.xml:221(text)
#: sdk/playercontrols.xml:276(text)
msgid "As a simple example let's assume that in the global <em>PlayerControls.txt</em> the following command has been defined:"
msgstr "Fuer ein einfaches Beispiel sei in der globalen <em>PlayerControls.txt</em> folgendes Kommando definiert:"
#: sdk/playercontrols.xml:238(text)
#: sdk/playercontrols.xml:293(text)
msgid "This defines a Jump key and the corresponding standard mapping on the keyboard for the first player. The following script is used to handle the control:"
msgstr "Dies definiert eine Sprungtaste und die zugehoerige Standardbelegung auf der Tastatur fuer den ersten Spieler. Dazu folgendes Script zur Behandlung:"
#: sdk/playercontrols.xml:256(h)
#: sdk/playercontrols.xml:311(h)
msgid "ExtraData"
msgstr "ExtraData"
#: sdk/playercontrols.xml:257(text)
#: sdk/playercontrols.xml:312(text)
msgid "Since not every object definition is able to overload the global PlayerControl function the ExtraData field can be used to distribute commands. As an example consider the following definition:"
msgstr "Da nicht jede Objektdefinition die globale PlayerControl-Funktion ueberladen kann, gibt es das ExtraData-Feld zum Verteilen von Kommandos. Zum Beispiel fuer folgende Definition:"
#: sdk/playercontrols.xml:264(text)
#: sdk/playercontrols.xml:319(text)
msgid "Let shovel be the ID of a shovel object. In the global script there could be the following, generic handling for unknown commands, for example:"
msgstr "Dabei sei Shovel die ID eines Schaufelobjektes. Im globalen Script kann zum Beispiel folgende, allgemeine Behandlung fuer unbekannte Kommandos stehen:"
#: sdk/playercontrols.xml:274(text)
#: sdk/playercontrols.xml:329(text)
msgid "And in the script of the shovel:"
msgstr "Und im Script der Schaufel:"
#: sdk/playercontrols.xml:291(h)
#: sdk/playercontrols.xml:346(h)
msgid "Held keys"
msgstr "Gehaltene Tasten"
#: sdk/playercontrols.xml:292(text)
#: sdk/playercontrols.xml:347(text)
msgid "If the <em>Hold</em> flag is set for a command then the engines saves the current key state for that key. These kind of keys have a few specialties:"
msgstr "Wird fuer ein Kommando das <em>Hold</em>-Flag gesetzt, so speichert die Engine den gegenwaertigen Tastenzustand fuer diese Taste. Solche Tasten haben einige Besonderheiten:"
#: sdk/playercontrols.xml:295(li)
#: sdk/playercontrols.xml:350(li)
msgid "When released they also generate <placeholder-1/> calls in the script with the <em>Release</em> flag set."
msgstr "Sie generieren auch beim Loslassen <placeholder-1/>-Aufrufe mit gesetztem <em>Release</em>-Flag im Script."
#: sdk/playercontrols.xml:296(li)
#: sdk/playercontrols.xml:351(li)
msgid "Mappings can emulate permanent key presses using the <em>Hold</em>/<em>Release</em> flags."
msgstr "Belegungen koennen mit den <em>Hold</em>/<em>Release</em>-Flags dauerhafte Tastendruecke emulieren."
#: sdk/playercontrols.xml:297(li)
#: sdk/playercontrols.xml:352(li)
msgid "<emlink href=\"playercontrols.xml#Repeat\">Key repeats</emlink> are generated."
msgstr "<emlink href=\"playercontrols.xml#Repeat\">Tastenwiederholungen</emlink> werden erzeugt."
#: sdk/playercontrols.xml:298(li)
#: sdk/playercontrols.xml:353(li)
msgid "The held state of the key can be queried in the script via <placeholder-1/>."
msgstr "Der Haltezustand der Taste kann mit <placeholder-1/> im Script abgefragt werden."
#: sdk/playercontrols.xml:301(text)
#: sdk/playercontrols.xml:356(text)
msgid "A good example for this functionality is a directional command:"
msgstr "Bestes Beispiel hierfuer ist ein Richtungskommando:"
#: sdk/playercontrols.xml:307(text)
#: sdk/playercontrols.xml:362(text)
msgid "In the script the direction is transferred to the Clonk:"
msgstr "Im Script wird die Richtung dann auf den Clonk uebertragen:"
#: sdk/playercontrols.xml:330(text)
#: sdk/playercontrols.xml:385(text)
msgid "To achieve the behaviour of classic controls a mapping can emulate the <em>Hold</em> state:"
msgstr "Um klassisches Steuerungsverhalten zu erreichen, kann eine Tastenbelegung den <em>Hold</em>-Zustand emulieren:"
#: sdk/playercontrols.xml:340(h)
#: sdk/playercontrols.xml:395(h)
msgid "Global definitions"
msgstr "Globale Definitionen"
#: sdk/playercontrols.xml:341(text)
#: sdk/playercontrols.xml:354(text)
#: sdk/playercontrols.xml:356(text)
#: sdk/playercontrols.xml:358(text)
#: sdk/playercontrols.xml:396(text)
#: sdk/playercontrols.xml:409(text)
#: sdk/playercontrols.xml:411(text)
#: sdk/playercontrols.xml:413(text)
msgid "..."
msgstr "..."
#: sdk/playercontrols.xml:342(h)
#: sdk/playercontrols.xml:397(h)
msgid "Key repeats"
msgstr "Tastenwiederholungen"
#: sdk/playercontrols.xml:343(text)
#: sdk/playercontrols.xml:398(text)
msgid "If a command has <em>RepeatDelay</em> defined then repeated commands are generated while the key is pressed. For example for a throwing command:"
msgstr "Hat ein Kommando ein <em>RepeatDelay</em> definiert, so werden wiederholte Kommandos beim Halten der Taste erzeugt. Zum Beispiel fuer ein Wurkommando:"
#: sdk/playercontrols.xml:351(text)
#: sdk/playercontrols.xml:406(text)
msgid "In the example one could keep the key pressed after having it pressed for the first time. The Throw command then would be sent every 5 seconds automatically after an initial delay of 35 frames (about one second)."
msgstr "Im Beispiel koennte man die Wurftaste nach einmal Druecken auch halten. Das Wurfkommando wuerde dann nach 35 Frames (ca. eine Sekunde) halten alle 5 Frames automatisch wiederholt."
#: sdk/playercontrols.xml:352(text)
#: sdk/playercontrols.xml:407(text)
msgid "Repeats are only generated when the command also has the <em>Hold</em> flag set."
msgstr "Wiederholungen werden nur erzeugt, wenn das Kommando ebenfalls das <em>Hold</em>-Flag gesetzt hat."
#: sdk/playercontrols.xml:353(h)
#: sdk/playercontrols.xml:408(h)
msgid "Deactivated commands**"
msgstr "Deaktivierte Kommandos**"
#: sdk/playercontrols.xml:355(h)
#: sdk/playercontrols.xml:410(h)
msgid "Keyboard shortcuts"
msgstr "Tastenbelegungen"
#: sdk/playercontrols.xml:360(em)
msgid "** - not yet implemented"
msgstr "** - noch nicht implementiert"
#: sdk/particle/index.xml:9(text)
msgid "Particles are lightweight objects which are not synchronized in a network game. This means that on the one hand you can create huge amounts of particles without slowing down the game too much but on the other hand there are only limited options for control of particle behaviour. If the particles are not sufficient for a given effect you have in mind, you can always use true objects instead."
msgstr "Partikel sind abgespeckte Objekte, die im Netzwerk nicht synchronisationsrelevant sind. Das heißt einerseits, dass man Partikel relativ problemlos in größeren Mengen erstellen kann, um interessante Effekte zu erzielen. Andererseits existieren nur sehr wenige Möglichkeiten, un das Verhalten von Partikeln zu steuern. Wenn die Möglichkeiten von Partikeln also für einen Effekt nicht ausreichen, sollten stattdessen reguläre Objekte verwenden, mit denen sich alle durch Partikel darstellbaren Effekte auch erzielen lassen."
@ -17052,6 +17108,9 @@ msgstr "c4group.exe (Windows) c4group (Linux) c4group (Mac)"
msgid "This command line program is used for processing group files. A list of command line options is available by starting the program without parameters via command line (<i>not</i> by double clicking)."
msgstr "Dieses Kommandozeilen-Programm dient zum Bearbeiten von Gruppendateien. Es kann nicht per Doppelklick, sondern nur per Kommandozeile (Eingabeaufforderung) gestartet werden. Auskunft über alle verfügbaren Kommandozeilenparameter erhält man, indem man das Programm ohne weitere Parameter über die Kommandozeile startet."
#~ msgid "Calls the local function function. If \"~\" is prepended to the function name then the call does not fail if the function does not exist."
#~ msgstr "Ruft die lokale Funktion function auf. Wird \"~\" vor den Funktionsnamen gesetzt, wird der Aufruf failsafe durchgeführt."
#~ msgid "X position of the pixel to be set; relative coordinates in local calls"
#~ msgstr "X-Position des Pixels, das umgefärbt werden soll; relative Koordinaten bei objektlokalem Aufruf"
@ -17073,6 +17132,15 @@ msgstr "Dieses Kommandozeilen-Programm dient zum Bearbeiten von Gruppendateien.
#~ msgid "Sets the gravity. Normal gravity is 100% and results in an acceleration of 0.2 pixels per Tick. (increasing YDir by 2 per Tick with precision=10)."
#~ msgstr "Setzt die Schwerkraft. Dabei entspricht die Standardgravitation (100%) einer Beschleunigung von 0.2 Pixeln pro Tick. (Zunahme der YDir um 2 pro Tick bei precision=10)"
#~ msgid "Additional PlayerControls.txt files can be put in language packages to adapt the standard key mappings of different loaded languages to the keyboard of their respective country**."
#~ msgstr "Zusaetzliche Dateien PlayerControls.txt koennen in Sprachpaketen abgelegt werden, um die Standardbelegungen der Tasten bei verschiedenen, geladenen Sprachen an die Tastaturen des jeweiligen Landes anzupassen**."
#~ msgid "The keypress is passed to the mapping with the next lower priority only if the previous command was executed successfully. This can be used to define macros. **"
#~ msgstr "Der Tastendruck wird genau dann an die Belegung mit der naechstniedrigen Prioritaet weitergereicht, wenn das vorherige Kommando erfolgreich ausgefuehrt wurde. Hiermit lassen sich Makros definieren. **"
#~ msgid "** - not yet implemented"
#~ msgstr "** - noch nicht implementiert"
#~ msgid "id of the definition in the script of which to call the function."
#~ msgstr "ID der Definition, in dessen Script die Funktion aufgerufen wird"

View File

@ -15,10 +15,10 @@ clonk.xsl also uses it to match the processing for it. -->
search <input id="searchInput" name="s" type="text" value="" /> in the
<select name="p">
<option value="blog">blog</option>
<option value="functions">c4script function list</option>
<option selected="selected" value="functions">c4script function list</option>
<option value="docs">c4script reference</option>
<option value="functionsDE">c4script function list (DE)</option>
<option value="docsDE">c4script reference (DE)</option>
<option value="docsDE">c4script reference (DE)</option>
<option value="bugtrack">bugtracker</option>
<option value="forum">forum</option>
<option value="hg">hg changelog</option>
@ -59,7 +59,7 @@ clonk.xsl also uses it to match the processing for it. -->
<li><a href="http://hg.openclonk.org/openclonk-resources/" target="_top">Resource Repository</a></li>
</ul>
</li>
<li><!--[if lt IE 9]><span><![endif]--><a href="http://wiki.openclonk.org/w/C4Script_Documentation" target="_top">Documentation</a><!--[if lt IE 9]></span><![endif]--> <ul>
<li><!--[if lt IE 9]><span><![endif]--><a class="current" href="http://wiki.openclonk.org/w/C4Script_Documentation" target="_top">Documentation</a><!--[if lt IE 9]></span><![endif]--> <ul>
<li><a href="http://docs.openclonk.org/en/sdk/" target="_top">C4Script Reference</a></li>
</ul>
</li>

View File

@ -8,12 +8,11 @@
<part>
<text>The engine allows to define control commands completely arbitrarily. Own keyboard commands can be added and modified. All supported input devices such as mouse, keyboard and gamepads can be mapped freely and commands can consist of any key combinations or sequences.</text>
<h id="ControlFiles">PlayerControls.txt</h>
<text>All control commands which a player can send to the game are defined in the file PlayerControls.txt. The standard keys as well as their standard mapping for various input devices are contained in the global definition file in the Systems.ocg folder. Object definitions and scenarios can add more keys or overload the parameters of existing commands in their local Systems.ocg folder**.</text>
<text>Additional PlayerControls.txt files can be put in language packages to adapt the standard key mappings of different loaded languages to the keyboard of their respective country**.</text>
<text>All control commands which a player can send to the game are defined in the file PlayerControls.txt. The standard keys as well as their standard mapping for various input devices are contained in the global definition file in the Systems.ocg folder. Object definitions and scenarios can add more keys or overload the parameters of existing commands in their local Systems.ocg folder.</text>
<part>
<h id="ControlDefs">Section [ControlDefs]</h>
<text>
Definition of possible player commands. Not valid in language packages. Subordinated to this section:
Definition of possible player commands. Subordinated to this section:
<text>
<table>
<caption id="ControlDef">Any number of sections [ControlDef]</caption>
@ -35,7 +34,7 @@
<row>
<literal_col>GUIDesc</literal_col>
<col>String</col>
<col>Informative description which is displayed to the player in the control configuration dialog. Lokalisierte Zeichenketten koennen aus dem zugehoerigen StringTable refeenziert werden ($Name$).</col>
<col>Informative description which is displayed to the player in the control configuration dialog. Localized strings from the corresponding string table can be used ($Desc$).</col>
</row>
<row>
<literal_col>Global</literal_col>
@ -91,6 +90,14 @@
<literal_col>Script</literal_col>
<col>Execution of the script function <em>PlayerControl</em>. See <emlink href="playercontrols.xml#Script">Script callbacks</emlink>. (Default value)</col>
</row>
<row>
<literal_col>ZoomIn</literal_col>
<col>Zoom in one unit</col>
</row>
<row>
<literal_col>ZoomOut</literal_col>
<col>Zoom out one unit</col>
</row>
<row>
<literal_col>Menu</literal_col>
<col>Open the player menu (asynchronous command).</col>
@ -107,6 +114,18 @@
<literal_col>MenuLeft / MenuUp / MenuRight / MenuDown</literal_col>
<col>Navigation in the player menu (asynchronous command).</col>
</row>
<row>
<literal_col>ObjectMenuOK / ObjectMenuSelect / ObjectMenuOKAll</literal_col>
<col>Confirmation of the selected item in a menu (synchronous command).</col>
</row>
<row>
<literal_col>ObjectMenuCancel</literal_col>
<col>Close a menu (synchronous command).</col>
</row>
<row>
<literal_col>ObjectMenuLeft / ObjectMenuUp / ObjectMenuRight / ObjectMenuDown</literal_col>
<col>Navigation in a menu (synchronous command).</col>
</row>
</table>
</text>
@ -130,7 +149,27 @@
<row>
<literal_col>Name</literal_col>
<col>String</col>
<col>Internal name for identification of otherwise equal control mappings. The names of the standard mappings are <em>Keyboard1</em>, <em>Keyboard1Classic</em>, <em>Keyboard2</em>, <em>Keyboard2Classic</em>, <em>Gamepad</em>. By using placeholders (*) keys can directly be defined in multiple mappings**.</col>
<col>Internal name for identification of otherwise equal control mappings. By using placeholders (*) keys can directly be defined in multiple mappings.</col>
</row>
<row>
<literal_col>GUIName</literal_col>
<col>String</col>
<col>Name for the control assignment set which is shown to the player in the control configuration dialog.</col>
</row>
<row>
<literal_col>Keyboard</literal_col>
<col>Boolean</col>
<col>Whether this control assignment set uses the keyboard. Default 1.</col>
</row>
<row>
<literal_col>Mouse</literal_col>
<col>Boolean</col>
<col>Whether this control assignment set uses the mouse. Default 1.</col>
</row>
<row>
<literal_col>Gamepad</literal_col>
<col>Boolean</col>
<col>Whether this control assignment set uses the gamepad. Default 0.</col>
</row>
</table>
<text>
@ -156,6 +195,26 @@
<col>String</col>
<col>Command that is combined with this mapping. The name should be equivalent to the <em>Identifier</em> of a command defined in a <emlink href="playercontrols.xml#ControlDef">[ControlDef]</emlink>.</col>
</row>
<row>
<literal_col>GUIName</literal_col>
<col>String</col>
<col>Name which is shown to the player in the control configuration dialog and in control tooltips. Localized strings from the corresponding string table can be used ($Name$). If unset, GUIName of the control def is used. If set to "None", the control is not displayed in the user customization dialog even if the control def has a name set.</col>
</row>
<row>
<literal_col>GUIDesc</literal_col>
<col>String</col>
<col>Informative description which is displayed to the player in the control configuration dialog. Lokalisierte Zeichenketten koennen aus dem zugehoerigen StringTable refeenziert werden ($Name$). If unset, GUIDesc of the control def is used.</col>
</row>
<row>
<literal_col>GUIGroup</literal_col>
<col>Integer</col>
<col>Control assignments in the same group are displayed grouped together in the control assignment dialog. The group with the lowest number is displayed at the top. Default 0.</col>
</row>
<row>
<literal_col>GUIDisabled</literal_col>
<col>Boolean</col>
<col>Whether this control assignment can not be changed in the control assignment dialog. Default 0.</col>
</row>
<row>
<literal_col>Priority</literal_col>
<col>Integer</col>
@ -188,10 +247,6 @@
<literal_col>AlwaysUnhandled</literal_col>
<col>The key press is always passed to the mapping with the next lowest priority, independent of whether the previous command was executed successfully or not.</col>
</row>
<row>
<literal_col>ToggleUnhandled</literal_col>
<col>The keypress is passed to the mapping with the next lower priority only if the previous command was executed successfully. This can be used to define macros. **</col>
</row>
<row>
<literal_col>OverrideAssignments</literal_col>
<col>The assignment overwrites all other assignments for the same control with the same press/release trigger mode.</col>
@ -357,6 +412,5 @@ global func UpdateControlDir(int player)
<h id="Priority">Priorities</h>
<text>...</text>
</part>
<text><em>** - not yet implemented</em></text>
<author>Sven2</author><date>2009-06</date>
</doc>

View File

@ -8,11 +8,12 @@
<category>Script</category>
<subcat>Function call</subcat>
<version>5.1 OC</version>
<extversion>5.4 OC</extversion>
<syntax>
<rtype>any</rtype>
<params>
<param>
<type>string</type>
<type>string or function</type>
<name>function</name>
<desc>Function to be called.</desc>
</param>
@ -23,11 +24,12 @@
</param>
</params>
</syntax>
<desc>Calls the local function function. If "~" is prepended to the function name then the call does not fail if the function does not exist.</desc>
<desc>Calls the specified function. If given a string, the function is looked up in the context object (<code>this</code>). For example, <code>obj->Call("Foo")</code> is the same as <code>obj->Foo()</code>. Using Call like this is primarily useful when the name of the function can vary. If "~" is prepended to the function name then the call does not fail if the function does not exist.</desc>
<related>
<funclink>GameCall</funclink>
<funclink>eval</funclink>
</related>
</func>
<author>jwk</author><date>2002-04</date>
<author>Günther</author><date>2012</date>
</funcs>

View File

@ -45,7 +45,6 @@
<desc>Inserts a material pixel at the given position and given speed.</desc>
<related>
<funclink>Material</funclink>
<funclink>InsertMaterialAmount</funclink>
</related>
</func>
<author>Sven2</author><date>2001-11</date>

View File

@ -140,6 +140,17 @@ if ($link && $db) {
$version = $row['new_version'];
if ($version) {
$message .= 'Version=' . $version . PHP_EOL;
// strip build version from client request
$n = 0;
for($i=0;$i<strlen($client_version);$i++){
if($client_version[$i]=='.'){
$n++;
if($n>=3){
break;
}
}
}
$client_version = substr($client_version,0,$i);
if (version_compare($client_version, $version) < 0) { //We need to update
$result = mysql_query('SELECT `file` FROM `' . $prefix . 'update` WHERE `old_version` = \'' . $client_version . '\' AND `platform` = \'' . $platform . '\'');
$row = mysql_fetch_assoc($result);

2
planet/.gitattributes vendored 100644
View File

@ -0,0 +1,2 @@
* -crlf

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,2 @@
[Head]
Index=4

Binary file not shown.

View File

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

Before

Width:  |  Height:  |  Size: 130 KiB

After

Width:  |  Height:  |  Size: 130 KiB

View File

Before

Width:  |  Height:  |  Size: 97 KiB

After

Width:  |  Height:  |  Size: 97 KiB

View File

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

View File

@ -3,7 +3,7 @@ Icon=13
Title=FrozenFortress
Version=5,2,0,1
MinPlayer=2
MaxPlayer=8
Difficulty=80
[Definitions]
Definition1=Objects.ocd

View File

@ -14,14 +14,14 @@ protected func Initialize()
var time=CreateObject(Environment_Time);
time->SetTime();
time->SetCycleSpeed();
FindObject(Find_ID(Moon))->SetPhase(3);
FindObject(Find_ID(Moon))->SetMoonPhase(3);
FindObject(Find_ID(Moon))->SetCon(150);
FindObject(Find_ID(Moon))->SetPosition(LandscapeWidth()/2,150);
// Goal: Capture the flag, with bases in both hideouts.
var goal = CreateObject(Goal_CaptureTheFlag, 0, 0, NO_OWNER);
goal->SetFlagBase(1, 135, 264);
goal->SetFlagBase(2, LandscapeWidth() - 135, 264);
goal->SetFlagBase(1, 135, 266);
goal->SetFlagBase(2, LandscapeWidth() - 135, 266);
CreateObject(Rule_KillLogs);
var gate = CreateObject(StoneDoor, 345, 272, NO_OWNER);
@ -34,16 +34,21 @@ protected func Initialize()
// Chests with weapons.
var chest;
chest = CreateObject(Chest, 60, 220, NO_OWNER);
chest->MakeInvincible();
AddEffect("FillBaseChest", chest, 100, 7 * 36,nil,nil,false);
chest = CreateObject(Chest, 150, 370, NO_OWNER);
chest->MakeInvincible();
AddEffect("FillBaseChest", chest, 100, 7 * 36,nil,nil,true);
chest = CreateObject(Chest, LandscapeWidth() - 60, 220, NO_OWNER);
chest->MakeInvincible();
AddEffect("FillBaseChest", chest, 100, 7 * 36,nil,nil,false);
chest = CreateObject(Chest, LandscapeWidth() - 150, 370, NO_OWNER);
chest->MakeInvincible();
AddEffect("FillBaseChest", chest, 100, 7 * 36,nil,nil,true);
chest = CreateObject(Chest, LandscapeWidth()/2, 320, NO_OWNER);
chest->MakeInvincible();
AddEffect("FillOtherChest", chest, 100, 5 * 36);
AddEffect("SnowyWinter", nil, 100, 1);

View File

@ -45,7 +45,9 @@ public func FxFrostboltTimer(pTarget, effect, iEffectTime)
)
{
CreateObject(Dynamite,x,y,effect.owner)->BlueExplode();
CreateObject(Star,x,y,-1)->Sound("GlassShatter");
var dummy = CreateObject(Dummy,x,y,-1);
dummy->Sound("GlassShatter");
ScheduleCall(dummy, "RemoveObject", 36);
for(var i=0; i<=60;i++)
{
var r=Random(10)+Random(18);

View File

@ -2,8 +2,6 @@
#appendto StoneDoor
private func GetStrength() { return 300; }
protected func Damage()
{
// Destroy if damage above strength.

Binary file not shown.

Binary file not shown.

View File

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

View File

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

View File

Before

Width:  |  Height:  |  Size: 117 KiB

After

Width:  |  Height:  |  Size: 117 KiB

View File

Before

Width:  |  Height:  |  Size: 114 KiB

After

Width:  |  Height:  |  Size: 114 KiB

View File

Before

Width:  |  Height:  |  Size: 166 KiB

After

Width:  |  Height:  |  Size: 166 KiB

View File

Before

Width:  |  Height:  |  Size: 166 KiB

After

Width:  |  Height:  |  Size: 166 KiB

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