Merge default to floating-point

floating-point
Julius Michaelis 2012-03-22 18:02:48 +01:00
commit 962b4f0070
4188 changed files with 97002 additions and 205916 deletions

3
.hgeol 100755
View File

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

9
.hgignore 100644 → 100755
View File

@ -33,12 +33,14 @@ autotools/missing
configure
intermediate
build*
CMakeScripts
CMakeFiles
CMakeCache.txt
planet/CMakeFiles
planet/CMakeCache.txt
CPackConfig.cmake
CPackSourceConfig.cmake
*.rule
# Documentation
*.pyc
@ -51,6 +53,7 @@ docs/doku.pot
docs/Functions.txt
# Visual studio files
openclonk.opensdf
deps/
planet/Release
planet/RelWithDebInfo
@ -59,7 +62,6 @@ planet/MinSizeRel
planet/clonk.dir
planet/c4group.dir
planet/ZERO_CHECK.dir
planet/libeay32.dll
planet/fmod.dll
planet/cmake_install.cmake
planet/clonk.sln
@ -74,11 +76,12 @@ Debug
clonk.dir
c4group.dir
ZERO_CHECK.dir
libeay32.dll
fmod.dll
cmake_install.cmake
clonk.sln
clonk.ilk
openclonk.sln
openclonk.ilk
*.vcproj
*.vcxproj
*.vcxproj.filters
@ -125,3 +128,5 @@ clonk.cbp
# MacOSX saved searches
*.savedSearch
planet/OpenClonk.bat
planet/openclonk.sln

554
CMakeLists.txt 100644 → 100755

File diff suppressed because it is too large Load Diff

25
Credits.txt 100644 → 100755
View File

@ -1,27 +1,20 @@
<Engine Development>
Armin Burgmeier (Clonk-Karl)
Günther Brammer (Günther)
Nicolas Hake (Isilkor)
Sven Eberhardt (Sven2)
Nicolas Hake (Isilkor)
Peter Wortmann (PeterW)
Martin Plicht (Mortimer)
<Coordination, Administration>
Tobias Zwick (Newton)
<Content, Art and Scripting>
Maikel de Vries (Maikel)
Tobias Zwick (Newton)
Richard Gerum (Randrian)
Charles Spurrill (Ringwaul)
David Dormagen (Zapper)
Maikel de Vries (Maikel)
Timo Stabbert (Mimmo)
Alexander Semeniuk (AlteredARMOR)
<Web>
-Admin
Tobias Zwick (Newton)
-C4DT Eclipse plugin
Martin Plicht (Mortimer)
-C4Masterserver
Benedict Etzel (B_E)
Richard Gerum (Randrian)
David Dormagen (Zapper)
<Thanks to Contributors>
Benjamin Herr (Loriel), Martin Plicht (Mortimer), Caesar, Manuel Riecke (Spell), Carl-Philip Hänsch (Carli), Asmageddon, Florian Graier (Nachtfalter), Merten Ehmig (pluto), Marky (Mark Haßelbusch), Luchs, Peewee, Lauri Niskanen (Ape), Dominik Bayerl (Kanibal), Matthias Rottländer (Matthi), Faby, Checkmaty, Felix Wagner (Clonkonaut), TomyLobo, Stan, Gurkenglas, Clonkine
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), Julius Michaelis (Caesar), Felix Wagner (Clonkonaut), Manuel Riecke (MrBeast), Benedict Etzel (B_E), Carl-Philip Hänsch (Carli), Alexander Semeniuk (AlteredARMOR), Asmageddon, Florian Graier (Nachtfalter), Merten Ehmig (pluto), Mark Haßelbusch (Marky), Luchs, Peewee, Lauri Niskanen (Ape), Dominik Bayerl (Kanibal), Matthias Rottländer (Matthi), Faby, Checkmaty, TomyLobo, Stan, Gurkenglas, Clonkine, mizipzor, 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.

347
Makefile.am 100644 → 100755
View File

@ -1,3 +1,6 @@
# Copyright (c) 2005-2011 Günther Brammer
# Copyright (c) 2009 Armin Burgmeier
# Copyright (c) 2010-2011 Nicolas Hake
# Copyright (c) 2005-2009, RedWolf Design GmbH, http://www.clonk.de
# Permission to use, copy, modify, and/or distribute this software for any
@ -22,45 +25,46 @@ noinst_LIBRARIES = lib.a
# Some defines and warning options
if RECENT_GCC
GCC_FLAGS = -pipe
WARNING_FLAGS = -Wall -Wextra -Wno-invalid-offsetof \
-Wredundant-decls -Wendif-labels -Wpointer-arith \
-Wcast-qual -Wcast-align -Wwrite-strings -Winit-self \
-Wsign-promo \
-Wno-parentheses -Wno-unused-parameter -Wno-inline \
-Wno-reorder -Wno-float-equal -Wno-switch
WARNING_FLAGS = -Wall -Wextra -Wredundant-decls -Wendif-labels -Wpointer-arith \
-Wcast-qual -Wcast-align -Wwrite-strings -Winit-self -Wsign-promo \
-Wno-reorder -Wno-unused-parameter -Wnon-virtual-dtor -Woverloaded-virtual -Wsign-promo
##-Wmissing-format-attribute -Wdisabled-optimization -Wlogical-op
##-Weffc++ -Wold-style-cast -Woverloaded-virtual -Wunsafe-loop-optimizations
else
GCC_FLAGS =
WARNING_FLAGS = -Wall
endif
AM_CXXFLAGS = $(PTHREAD_CFLAGS) $(WINDOWS_CFLAGS) $(WARNING_FLAGS) $(GCC_FLAGS) -DOC_SYSTEM_DATA_DIR=\"${datadir}/openclonk\"
AM_CXXFLAGS = $(PTHREAD_CFLAGS) $(WINDOWS_CFLAGS) $(WARNING_FLAGS)
AM_CFLAGS = -Wall $(GCC_FLAGS)
AM_CFLAGS = -Wall
AM_CPPFLAGS = \
-I$(builddir) \
-I$(srcdir)/src \
-I$(srcdir)/src/c4group \
-I$(srcdir)/src/network \
-I$(srcdir)/src/lib \
-I$(srcdir)/src/platform \
-I$(srcdir)/src/config \
-I$(srcdir)/src/res \
-I$(srcdir)/src/control \
-I$(srcdir)/src/gui \
-I$(srcdir)/src/editor \
-I$(srcdir)/src/game/landscape \
-I$(srcdir)/src/game/player \
-I$(srcdir)/src/game/script \
-I$(srcdir)/src/game \
-I$(srcdir)/src/game/object \
-I$(srcdir)/src/lib/texture \
-I$(srcdir)/src/script \
-I$(srcdir)/thirdparty \
$(GLEW_CFLAGS) $(GTK_CFLAGS) $(OPENAL_CFLAGS) $(FREETYPE_CFLAGS) $(SDL_CFLAGS) $(BOOST_CPPFLAGS)
-I$(builddir) \
-I$(srcdir)/src \
-I$(srcdir)/src/c4group \
-I$(srcdir)/src/network \
-I$(srcdir)/src/lib \
-I$(srcdir)/src/platform \
-I$(srcdir)/src/config \
-I$(srcdir)/src/res \
-I$(srcdir)/src/control \
-I$(srcdir)/src/gui \
-I$(srcdir)/src/editor \
-I$(srcdir)/src/game/landscape \
-I$(srcdir)/src/game/player \
-I$(srcdir)/src/game/script \
-I$(srcdir)/src/game \
-I$(srcdir)/src/game/object \
-I$(srcdir)/src/lib/texture \
-I$(srcdir)/src/script \
-I$(srcdir)/thirdparty \
$(GLEW_CFLAGS) \
$(GTK_CFLAGS) \
$(OPENAL_CFLAGS) \
$(FREETYPE_CFLAGS) \
$(SDL_CFLAGS) \
$(BOOST_CPPFLAGS) \
$(LIBUPNP_CFLAGS)
##BUILT_SOURCES = hgrevision.h
##hgrevision.h: $(srcdir)/.hg/dirstate
@ -70,25 +74,26 @@ AM_CPPFLAGS = \
BUILT_SOURCES = C4Version.h
CLEANFILES =
DISTCLEANFILES = C4Version.h
do_subst = sed -e 's,[@]C4PROJECT[@],OpenClonk Project,g' \
-e 's,[@]C4PROJECT_DOMAIN[@],openclonk,g' \
-e 's,[@]C4PROJECT_TLD[@],org,g' \
-e 's,[@]C4PROJECT_URL[@],http://wiki.openclonk.org,g' \
-e 's,[@]C4COPYRIGHT_YEAR[@],'$$(sed -n 's/SET(C4COPYRIGHT_YEAR\s\+\(.\+\)).\+/\1/ p' $(srcdir)/Version.txt)',g' \
do_subst = sed -e 's,[@]C4PROJECT[@],'"$$(sed -n 's/SET(C4PROJECT\s\+"\(.\+\)")/\1/ p' $(srcdir)/Version.txt)"',g' \
-e 's,[@]C4PROJECT_DOMAIN[@],'"$$(sed -n 's/SET(C4PROJECT_DOMAIN\s\+"\(.\+\)")/\1/ p' $(srcdir)/Version.txt)"',g' \
-e 's,[@]C4PROJECT_TLD[@],'"$$(sed -n 's/SET(C4PROJECT_TLD\s\+"\(.\+\)")/\1/ p' $(srcdir)/Version.txt)"',g' \
-e 's,[@]C4PROJECT_URL[@],http://www.openclonk.org,g' \
-e 's,[@]C4COPYRIGHT_YEAR[@],'"$$(date '+%Y')"',g' \
-e 's,[@]C4ENGINENAME[@],'"$$(sed -n 's/SET(C4ENGINENAME\s\+"\(.\+\)")/\1/ p' $(srcdir)/Version.txt)"',g' \
-e 's,[@]C4ENGINENICK[@],'$$(sed -n 's/SET(C4ENGINENICK\s\+"\(.\+\)")/\1/ p' $(srcdir)/Version.txt)',g' \
-e 's,[@]C4ENGINENICK[@],'"$$(sed -n 's/SET(C4ENGINENICK\s\+"\(.\+\)")/\1/ p' $(srcdir)/Version.txt)"',g' \
-e 's,[@]C4ENGINEID[@],org.openclonk." C4ENGINENICK ",g' \
-e 's,[@]C4XVER1[@],'$$(sed -n 's/SET(C4XVER1\s\+\(.\+\))/\1/ p' $(srcdir)/Version.txt)',g' \
-e 's,[@]C4XVER2[@],'$$(sed -n 's/SET(C4XVER2\s\+\(.\+\))/\1/ p' $(srcdir)/Version.txt)',g' \
-e 's,[@]C4XVER3[@],'$$(sed -n 's/SET(C4XVER3\s\+\(.\+\))/\1/ p' $(srcdir)/Version.txt)',g' \
-e 's,[@]C4XVER4[@],'$$(sed -n 's/SET(C4XVER4\s\+\(.\+\))/\1/ p' $(srcdir)/Version.txt)',g' \
-e 's,[@]C4XVER1[@],'"$$(sed -n 's/SET(C4XVER1\s\+\(.\+\))/\1/ p' $(srcdir)/Version.txt)"',g' \
-e 's,[@]C4XVER2[@],'"$$(sed -n 's/SET(C4XVER2\s\+\(.\+\))/\1/ p' $(srcdir)/Version.txt)"',g' \
-e 's,[@]C4XVER3[@],'"$$(sed -n 's/SET(C4XVER3\s\+\(.\+\))/\1/ p' $(srcdir)/Version.txt)"',g' \
-e 's,[@]C4XVER4[@],'"$$(sed -n 's/SET(C4XVER4\s\+\(.\+\))/\1/ p' $(srcdir)/Version.txt)"',g' \
-e 's,[@]C4VERSIONBUILDNAME[@],'"$$(sed -n 's/SET(C4VERSIONBUILDNAME\s\+"\(.\+\)")/\1/ p' $(srcdir)/Version.txt)"',g' \
-e 's,[@]C4VERSIONEXTRA[@],'$$(sed -n 's/SET(C4VERSIONEXTRA\s\+"\(.\+\)")/\1/ p' $(srcdir)/Version.txt)',g'
-e 's,[@]C4VERSIONEXTRA[@],'"$$(sed -n 's/SET(C4VERSIONEXTRA\s\+"\(.\+\)")/\1/ p' $(srcdir)/Version.txt)"',g'
C4Version.h: $(srcdir)/src/C4Version.h.in $(srcdir)/Version.txt
$(do_subst) < $< > $@
WindowsGamesExplorer.xml: $(srcdir)/src/res/WindowsGamesExplorer.xml.in $(srcdir)/Version.txt
$(do_subst) < $< > $@
src/res/engine.o: WindowsGamesExplorer.xml
#various hacks to get dependency tracking working with a precompiled C4Include
if RECENT_GCC
@ -129,19 +134,19 @@ src/lib/C4RealImpl_Fixed.h \
src/lib/C4RealImpl_FPU.h \
src/lib/C4RealImpl_SSE.cpp \
src/lib/C4RealImpl_SSE.h \
src/lib/SHA1.h \
src/lib/Standard.cpp \
src/lib/Standard.h \
src/lib/StdBuf.cpp \
src/lib/StdBuf.h \
src/lib/StdCompiler.cpp \
src/lib/StdCompiler.h \
src/lib/StdMarkup.cpp \
src/lib/StdMarkup.h \
src/lib/C4Markup.cpp \
src/lib/C4Markup.h \
src/lib/StdResStr2.cpp \
src/lib/StdResStr2.h \
src/network/C4NetIO.cpp \
src/platform/StdConfig.cpp \
src/platform/StdConfig.h \
src/platform/GetTime.cpp \
src/platform/StdFile.cpp \
src/platform/StdFile.h \
src/platform/StdRegistry.cpp \
@ -149,6 +154,7 @@ src/platform/StdRegistry.h \
src/platform/StdScheduler.cpp \
src/platform/StdScheduler.h \
src/zlib/gzio.c \
src/zlib/gzio.h \
src/zlib/zutil.h
clonk_SOURCES = \
@ -178,8 +184,6 @@ src/C4Version.h.in \
src/C4WinMain.cpp \
src/config/C4Config.cpp \
src/config/C4Config.h \
src/config/C4ConfigShareware.cpp \
src/config/C4ConfigShareware.h \
src/config/C4Constants.h \
src/config/C4Reloc.cpp \
src/config/C4Reloc.h \
@ -218,6 +222,9 @@ src/game/C4GameVersion.h \
src/game/C4Physics.h \
src/game/landscape/C4Landscape.cpp \
src/game/landscape/C4Landscape.h \
src/game/landscape/C4LandscapeRender.cpp \
src/game/landscape/C4LandscapeRenderClassic.cpp \
src/game/landscape/C4LandscapeRender.h \
src/game/landscape/C4Map.cpp \
src/game/landscape/C4MapCreatorS2.cpp \
src/game/landscape/C4MapCreatorS2.h \
@ -317,6 +324,8 @@ src/gui/C4GameOptions.cpp \
src/gui/C4GameOptions.h \
src/gui/C4GameOverDlg.cpp \
src/gui/C4GameOverDlg.h \
src/gui/C4GfxErrorDlg.cpp \
src/gui/C4GfxErrorDlg.h \
src/gui/C4GuiButton.cpp \
src/gui/C4GuiCheckBox.cpp \
src/gui/C4GuiComboBox.cpp \
@ -400,6 +409,10 @@ src/lib/StdMeshLoader.h \
src/lib/StdMeshLoaderXml.cpp \
src/lib/StdMeshMaterial.cpp \
src/lib/StdMeshMaterial.h \
src/lib/StdMeshMath.cpp \
src/lib/StdMeshMath.h \
src/lib/StdMeshUpdate.cpp \
src/lib/StdMeshUpdate.h \
src/lib/StdResStr.h \
src/lib/texture/C4Facet.cpp \
src/lib/texture/C4FacetEx.cpp \
@ -407,8 +420,7 @@ src/lib/texture/C4FacetEx.h \
src/lib/texture/C4Facet.h \
src/lib/texture/C4GraphicsResource.cpp \
src/lib/texture/C4GraphicsResource.h \
src/lib/texture/C4Surface.cpp \
src/lib/texture/C4Surface.h \
src/lib/texture/C4SurfaceLoaders.cpp \
src/lib/texture/StdPNG.cpp \
src/lib/texture/StdPNG.h \
src/network/C4Client.cpp \
@ -441,11 +453,11 @@ src/network/C4Network2ResDlg.cpp \
src/network/C4Network2Res.h \
src/network/C4Network2Stats.cpp \
src/network/C4Network2Stats.h \
src/network/C4Network2UPnP.h \
src/network/C4Packet2.cpp \
src/network/C4PacketBase.h \
src/platform/Bitmap256.cpp \
src/platform/Bitmap256.h \
src/platform/C4FileClasses.h \
src/platform/C4FileMonitor.cpp \
src/platform/C4FileMonitor.h \
src/platform/C4Fonts.cpp \
@ -466,16 +478,17 @@ src/platform/C4VideoPlayback.cpp \
src/platform/C4VideoPlayback.h \
src/platform/C4ViewportWindow.cpp \
src/platform/C4ViewportWindow.h \
src/platform/C4windowswrapper.h \
src/platform/PlatformAbstraction.cpp \
src/platform/PlatformAbstraction.h \
src/platform/StdAppCommon.cpp \
src/platform/StdAppCommon.h \
src/platform/C4App.h \
src/platform/C4App.cpp \
src/platform/StdD3D.cpp \
src/platform/StdD3D.h \
src/platform/StdD3DShader.cpp \
src/platform/StdD3DShader.h \
src/platform/StdDDraw2.cpp \
src/platform/StdDDraw2.h \
src/platform/StdFacet.h \
src/platform/StdFont.cpp \
src/platform/StdFont.h \
src/platform/StdGL.cpp \
@ -483,15 +496,15 @@ src/platform/StdGLCtx.cpp \
src/platform/StdGL.h \
src/platform/StdNoGfx.cpp \
src/platform/StdNoGfx.h \
src/platform/StdSurface2.cpp \
src/platform/StdSurface2.h \
src/platform/C4Surface.cpp \
src/platform/C4Surface.h \
src/platform/StdSurface8.cpp \
src/platform/StdSurface8.h \
src/platform/StdSync.h \
src/platform/StdTApp.cpp \
src/platform/C4AppT.cpp \
src/platform/StdVideo.cpp \
src/platform/StdVideo.h \
src/platform/StdWindow.h \
src/platform/C4Window.h \
src/res/Brush.h \
src/res/Cursor.h \
src/res/Dynamic.h \
@ -513,6 +526,7 @@ src/script/C4AulDebug.h \
src/script/C4AulDefFunc.h \
src/script/C4AulExec.cpp \
src/script/C4AulExec.h \
src/script/C4AulFunc.h \
src/script/C4Aul.h \
src/script/C4AulLink.cpp \
src/script/C4AulParse.cpp \
@ -529,6 +543,7 @@ src/script/C4Value.cpp \
src/script/C4Value.h \
src/script/C4ValueMap.cpp \
src/script/C4ValueMap.h \
thirdparty/timsort/sort.h \
thirdparty/tinyxml/tinystr.cpp \
thirdparty/tinyxml/tinystr.h \
thirdparty/tinyxml/tinyxml.cpp \
@ -538,7 +553,6 @@ thirdparty/tinyxml/tinyxmlparser.cpp
if WIN32
clonk_SOURCES += \
src/platform/C4FileClasses.cpp \
src/editor/C4ConsoleWin32.cpp \
src/platform/C4CrashHandlerWin32.cpp \
src/res/engine.rc \
@ -548,9 +562,9 @@ src/platform/StdJoystick.h
endif
if MACOSX
clonk_SOURCES += \
src/platform/StdMacApp.mm \
src/platform/C4AppMac.mm \
src/platform/C4FileMonitorMac.mm \
src/platform/StdMacWindow.mm \
src/platform/C4WindowMac.mm \
src/platform/ClonkAppDelegate.h \
src/platform/ClonkAppDelegate.mm \
src/platform/ConsoleWindowController.h \
@ -561,23 +575,34 @@ src/platform/ClonkOpenGLView.h \
src/platform/ClonkOpenGLView.mm \
src/platform/CocoaKeycodeMap.h \
src/editor/C4ConsoleCocoa.mm \
src/platform/ClonkMainMenuActions.h \
src/platform/ClonkMainMenuActions.mm
endif
if SDL_MAIN_LOOP
clonk_SOURCES += src/platform/StdSDLApp.cpp src/platform/StdSDLWindow.cpp
clonk_SOURCES += src/platform/C4AppSDL.cpp src/platform/C4WindowSDL.cpp
else
if WIN32
clonk_SOURCES += src/platform/StdWindow.cpp
clonk_SOURCES += src/platform/C4WindowWin32.cpp
else
clonk_SOURCES += src/platform/StdXApp.cpp src/platform/StdXWindow.cpp src/platform/StdXPrivate.h
clonk_SOURCES += src/platform/C4AppX.cpp src/platform/C4WindowX.cpp src/platform/C4AppXImpl.h
endif
endif
if DEVELOPER_MODE
clonk_SOURCES += src/platform/StdGtkWindow.cpp src/platform/StdGtkWindow.h src/editor/C4ConsoleGTK.cpp
clonk_SOURCES += src/platform/C4WindowGTK.cpp src/platform/C4WindowGTK.h src/editor/C4ConsoleGTK.cpp
endif
if LIBUPNP
clonk_SOURCES += src/network/C4Network2UPnPLinux.cpp
else
if NATUPNP
clonk_SOURCES += src/network/C4Network2UPnPWin32.cpp
else
clonk_SOURCES += src/network/C4Network2UPnPDummy.cpp
endif
endif
clonk_LDADD = \
lib.a \
$(LDADD) \
$(LIBICONV) \
$(GTK_LIBS) \
$(OPENAL_LIBS) \
@ -586,7 +611,7 @@ clonk_LDADD = \
$(PTHREAD_LIBS) \
$(Z_LIBS) \
$(CLONK_LIBS) \
$(OPENSSL_LIBS)
$(LIBUPNP_LIBS)
# build the resources
.rc.o:
@ -613,6 +638,7 @@ c4group_CPPFLAGS = \
-I$(srcdir)/src/script
c4group_SOURCES = \
src/lib/C4SimpleLog.cpp \
src/c4group/c4group_ng.cpp
if WIN32
@ -621,49 +647,58 @@ endif
c4group_LDADD = \
lib.a \
$(LDADD) \
$(LIBICONV) \
$(Z_LIBS) \
$(OPENSSL_LIBS) \
$(PTHREAD_LIBS)
## gunzip4c4group
gunzip4c4group_SOURCES = \
src/lib/C4SimpleLog.cpp \
src/c4group/gunzip4c4group.cpp
gunzip4c4group_LDADD = \
lib.a \
$(LDADD) \
$(Z_LIBS) \
$(PTHREAD_LIBS)
## puncher
puncher_SOURCES = \
src/lib/C4SimpleLog.cpp \
src/netpuncher/main.cpp
puncher_LDADD = \
lib.a \
$(LDADD) \
$(PTHREAD_LIBS)
if WIN32
puncher_LDADD += -lwinmm -lws2_32
puncher_LDADD += -lws2_32
endif
## tstc4netio
tstc4netio_SOURCES = \
src/lib/C4SimpleLog.cpp \
src/netio/TstC4NetIO.cpp
tstc4netio_LDADD = \
lib.a \
$(LDADD) \
$(Z_LIBS) \
$(PTHREAD_LIBS)
if WIN32
tstc4netio_LDADD += -lwinmm -lws2_32
tstc4netio_LDADD += -lws2_32
endif
## c4script shell
c4script_SOURCES = \
include/c4script/c4script.h \
src/lib/C4SimpleLog.cpp \
src/lib/C4Real.cpp \
src/lib/C4Random.cpp \
src/script/shell.cpp \
@ -674,6 +709,7 @@ src/script/C4AulParse.cpp \
src/script/C4StringTable.cpp \
src/script/C4PropList.cpp \
src/script/C4ScriptHost.cpp \
src/script/C4ScriptStandalone.cpp \
src/script/C4ValueArray.cpp \
src/script/C4Value.cpp \
src/script/C4ValueMap.cpp \
@ -685,73 +721,146 @@ src/c4group/C4LangStringTable.cpp
c4script_LDADD = \
lib.a \
$(OPENSSL_LIBS) \
$(LDADD) \
$(Z_LIBS)
if WIN32
c4script_LDADD += -lwinmm
endif
## documentation
dist_doc_DATA = planet/AUTHORS planet/COPYING licenses/LGPL.txt Credits.txt
## game data
c4groups = \
Graphics.ocg \
Material.ocg \
Music.ocg \
Sound.ocg \
System.ocg \
Objects.ocd \
BackToTheRocks.ocf \
Tutorial.ocf
CLEANFILES += $(c4groups)
pkgdata_DATA = $(c4groups)
AM_CXXFLAGS += -DOC_SYSTEM_DATA_DIR=\"${pkgdatadir}\"
%.ocg: $(srcdir)/planet/%.ocg c4group$(EXEEXT)
./c4group$(EXEEXT) $< -t $@ || c4group $< -t $@
%.ocd: $(srcdir)/planet/%.ocd c4group$(EXEEXT)
./c4group$(EXEEXT) $< -t $@ || c4group $< -t $@
%.ocf: $(srcdir)/planet/%.ocf c4group$(EXEEXT)
./c4group$(EXEEXT) $< -t $@ || c4group $< -t $@
## windows setup.exe
if WIN32
tools/install/firewall.dll: $(srcdir)/tools/install/firewall.cpp
mkdir -p tools/install
$(CXX) -shared -o tools/install/firewall.dll $(srcdir)/tools/install/firewall.cpp -lole32 -loleaut32
setup_openclonk.exe: $(srcdir)/tools/install/oc.nsi c4group$(EXEEXT) clonk$(EXEEXT) $(c4groups)
makensis -NOCD -DSRCDIR=$(srcdir) '-DPROGRAMFILES=$$PROGRAMFILES' \
-DPRODUCT_NAME="$$(sed -n 's/SET(C4ENGINENAME\s\+"\(.\+\)")/\1/ p' $(srcdir)/Version.txt)$$(sed -n 's/SET(C4VERSIONBUILDNAME\s\+"\(.\+\)")/\1/ p' $(srcdir)/Version.txt)" \
-DPRODUCT_COMPANY="$$(sed -n 's/SET(C4PROJECT\s\+"\(.\+\)")/\1/ p' $(srcdir)/Version.txt)" \
$< "-XOutFile $@"
endif
## other stuff
EXTRA_DIST = \
planet \
Version.txt \
CMakeLists.txt \
Makefile.am \
config.h.cmake \
planet/System.c4g/LanguageUS.txt \
planet/System.c4g/LanguageDE.txt \
planet/System.ocg/LanguageUS.txt \
planet/System.ocg/LanguageDE.txt \
clonk.anjuta \
licenses \
src/netio/NetIO.dsp \
src/netpuncher/Puncher.dsp \
src/res/Brush_Trans.png \
src/res/Cursor_Trans.png \
src/res/Dynamic_Trans.png \
src/res/Exact_Trans.png \
src/res/Fill_Trans.png \
src/res/Halt_Trans.png \
src/res/Ift_Trans.png \
src/res/Line_Trans.png \
src/res/Mouse_Trans.png \
src/res/NoIft_Trans.png \
src/res/Picker_Trans.png \
src/res/Play_Trans.png \
src/res/Rect_Trans.png \
src/res/Static_Trans.png \
src/c4group/Resource.rc \
src/res/brush1.bmp \
src/res/c4g.ico \
src/res/c4s.ico \
src/res/Cursor2.bmp \
src/res/Game.pal \
src/res/line1.bmp \
src/res/Play2.bmp \
src/res/Brush2.bmp \
src/res/c4i.ico \
src/res/c4u.ico \
src/res/Cursor.bmp \
src/res/Grab.bmp \
src/res/Line.bmp \
src/res/Play.bmp \
src/res/Brush.bmp \
src/res/c4k.ico \
src/res/c4v.ico \
src/res/dynamic1.bmp \
src/res/Halt2.bmp \
src/res/mouse1.bmp \
src/res/rect1.bmp \
src/res/c4b.ico \
src/res/c4l.ico \
src/res/c4x.ico \
src/res/Halt.bmp \
src/res/mouse.bmp \
src/res/Rectangle.bmp \
src/res/c4d.ico \
src/res/c4m.ico \
src/res/Brush.h \
src/res/Brush_Trans.png \
src/res/C4K.icns \
src/res/C4P.icns \
src/res/c4x.xpm \
src/res/Clonk.icns \
src/res/ClonkWindow.xib \
src/res/ConsoleGUIWindow.xib \
src/res/ConsoleWindow.xib \
src/res/Cursor2.bmp \
src/res/Cursor.bmp \
src/res/Cursor.h \
src/res/Cursor_Trans.png \
src/res/dynamic1.bmp \
src/res/Dynamic.h \
src/res/Dynamic_Trans.png \
src/res/Exact.h \
src/res/Exact_Trans.png \
src/res/fill1.bmp \
src/res/ift1.bmp \
src/res/NoIFT.bmp \
src/res/c4f.ico \
src/res/c4p.ico \
src/res/Fill.bmp \
src/res/Fill.h \
src/res/Fill_Trans.png \
src/res/FullscreenWindow.xib \
src/res/Game.pal \
src/res/Grab.bmp \
src/res/Halt2.bmp \
src/res/Halt.bmp \
src/res/Halt.h \
src/res/Halt_Trans.png \
src/res/ift1.bmp \
src/res/IFT.bmp \
src/res/Ift.h \
src/res/Ift_Trans.png \
src/res/Info.plist \
src/res/line1.bmp \
src/res/Line.bmp \
src/res/Line.h \
src/res/Line_Trans.png \
src/res/MainMenu.xib \
src/res/mouse1.bmp \
src/res/mouse.bmp \
src/res/Mouse.h \
src/res/Mouse_Trans.png \
src/res/NoIFT.bmp \
src/res/NoIft.h \
src/res/NoIft_Trans.png \
src/res/ocb.ico \
src/res/ocd.icns \
src/res/ocd.ico \
src/res/ocf.icns \
src/res/ocf.ico \
src/res/ocg.icns \
src/res/ocg.ico \
src/res/oc.ico \
src/res/oci.ico \
src/res/ocl.ico \
src/res/ocm.ico \
src/res/ocp.ico \
src/res/ocs.icns \
src/res/ocs.ico \
src/res/ocu.icns \
src/res/ocu.ico \
src/res/ocv.ico \
src/res/picker1.bmp \
src/res/static1.bmp
src/res/Picker.h \
src/res/Picker_Trans.png \
src/res/Play2.bmp \
src/res/Play.bmp \
src/res/Play.h \
src/res/Play_Trans.png \
src/res/rect1.bmp \
src/res/Rectangle.bmp \
src/res/Rect.h \
src/res/Rect_Trans.png \
src/res/static1.bmp \
src/res/Static.h \
src/res/Static_Trans.png \
src/res/English.lproj/InfoPlist.strings \
src/res/English.lproj/Localizable.strings \
src/res/German.lproj/Localizable.strings \
src/res/SDLMain.nib/objects.nib

View File

@ -7,21 +7,24 @@ following packages:
make gcc g++
cmake OR automake autoconf
libc6-dev libx11-dev libxxf86vm-dev libxrandr-dev libxpm-dev libglew1.5-dev
libgl1-mesa-dev libpng12-dev libssl-dev libsdl1.2-dev libsdl-mixer1.2-dev
libgtk2.0-dev libjpeg62-dev zlib1g-dev libboost-dev
libgl1-mesa-dev libpng12-dev libsdl1.2-dev libsdl-mixer1.2-dev libgtk2.0-dev
libjpeg62-dev zlib1g-dev libboost-dev
To build on RPM-based Linux distributions (Red Hat, Fedora, Mandariva,
(Most of those packages can be substituted with a newer version if required,
for example libglew1.6-dev instead of libglew1.5-dev.)
To build on RPM-based Linux distributions (Red Hat, Fedora, Mandriva,
SuSE etc.) you need the following packages:
make gcc gcc-c++
cmake OR automake autoconf
libX11-devel libXxf86vm-devel libXrandr-devel libXpm-devel glew-devel
mesa-libGL-devel libpng-devel openssl-devel SDL-devel SDL_mixer1.2-dev
gtk2-devel libjpeg-devel zlib-devel boost-devel
mesa-libGL-devel libpng-devel SDL-devel SDL_mixer1.2-dev gtk2-devel
libjpeg-devel zlib-devel boost-devel
Build using cmake
=====================
=================
To build OpenClonk, execute the following command inside of the source tree:
@ -50,8 +53,8 @@ To build from tarball, run this:
./configure && make
If you want a debug build, pass --enable-debug to configure, for the developer
mode --with-gtk. Other options are listed by ./configure --help.
If you want a debug build, pass --enable-debug to configure. Other options are
listed by ./configure --help.
On subsequent build runs, you only have to execute make.
@ -59,9 +62,13 @@ On subsequent build runs, you only have to execute make.
Running
=======
You need to move the compiled binary to the data folder before running. I
recommend using a symbolic link like this:
You can run the game from the build directory:
cd planet/
ln -s ../clonk
./clonk
See docs/sdk/cmdline.xml for the supported command line options.
Or install it with this:
make install

57
README.windows.txt 100644 → 100755
View File

@ -3,53 +3,38 @@ Requirements
You can build on Windows using either:
* vc9 (Microsoft Visual C++ 2008)
you need CMake (http://www.cmake.org/cmake/resources/software.html) to create the "solution"
you might have to set the correct DXSDK include and library directories
* vc10 (Microsoft Visual C++ 2010)
- you need CMake (http://www.cmake.org/cmake/resources/software.html) to
create the "solution"
- you might have to set the correct DXSDK include and library directories
* MinGW and MSYS
plus DXSDK 9 (if you want DirectX support)
- plus DXSDK 9 (if you want DirectX support)
* Some other compilers and IDEs which are supported by CMake might also work
Building OpenClonk requires the Boost C++ Libraries (from http://www.boost.org/). It uses the
header-only parts of the library, so you don't have to build any of the binary libraries.
OpenClonk requires some additional libraries. Prebuilt versions of them can be
found on http://openclonk.org.
Building the installer
======================
The installer is created with NSIS. makensis needs to be in the PATH, and
the dlls used by openclonk in the build directory. To create the installer,
build the "setup" target if using CMake, or if using autotools, run:
make setup_openclonk.exe
Get NSIS from http://nsis.sourceforge.net/.
Notes for MinGW
===============
You need gcc, g++, mingw-runtime, w32api, msys, msyscore, autoconf, automake,
and any packages needed by these. The versions listed below are known to work,
though newer versions are probably also good.
and any packages needed by these.
http://sourceforge.net/project/downloading.php?group_id=200665&filename=tdm-mingw-1.905.0-webdl.exe&a=64029035
(from http://sourceforge.net/project/showfiles.php?group_id=200665&package_id=238465)
(see also http://www.tdragon.net/recentgcc/)
- The default options work. Use an installation path without spaces to be on
the save side.
http://sourceforge.net/project/downloading.php?group_id=2435&filename=MSYS-1.0.11-20090120-dll.tar.gz&a=78351117
http://sourceforge.net/project/downloading.php?group_id=2435&filename=msysCORE-1.0.11-20080826.tar.gz&a=60784616
(from http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=24963)
- extract these into the same directory as installed above, merging the
directory contents
- create a shortcut to msys.bat
http://sourceforge.net/project/downloading.php?group_id=2435&filename=perl-5.6.1-MSYS-1.0.11-1.tar.bz2&a=91743036
http://sourceforge.net/project/downloading.php?group_id=2435&filename=crypt-1.1-1-MSYS-1.0.11-1.tar.bz2&a=95002722
http://sourceforge.net/project/downloading.php?group_id=2435&filename=autoconf2.5-2.61-1-bin.tar.bz2&a=93276645
http://sourceforge.net/project/downloading.php?group_id=2435&filename=automake1.10-1.10-1-bin.tar.bz2&a=66135072
http://sourceforge.net/project/downloading.php?group_id=2435&filename=autoconf-4-1-bin.tar.bz2&a=70428585
http://sourceforge.net/project/downloading.php?group_id=2435&filename=automake-3-1-bin.tar.bz2&a=12881354
(from http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=67879)
- you need to extract these from the msys shell with tar (other methods won't
work). This assumes that the archives are in C:\Path\To\Downloads\, adjust
the command as necessary:
cd /
for f in /c/Path/To/Downloads/*.bz2; do tar -xjf $f; done && echo done
Get the library package from openclonk.org and unpack it into the same
directory as the other archives.
Get the library package from openclonk.org and unpack it into the mingw
directory.
If you want DirectX support, get a DirectX 9 SDK from Microsoft. Copy the
contents of its include dir to the include dir of your MinGW installation,

78
Version.txt 100644 → 100755
View File

@ -6,65 +6,85 @@
SET(C4PROJECT "OpenClonk Project")
SET(C4PROJECT_DOMAIN "openclonk")
SET(C4PROJECT_TLD "org")
SET(C4PROJECT_URL "http://www.{C4PROJECT_DOMAIN}.{C4PROJECT_TLD}")
SET(C4COPYRIGHT_YEAR 2010) # Gimme CMAKE_CURRENT_YEAR already...
SET(C4PROJECT_URL "http://${C4PROJECT_DOMAIN}.${C4PROJECT_TLD}")
SET(C4ENGINENAME "OpenClonk")
SET(C4ENGINENICK "openclonk")
SET(C4ENGINECAPTION ${C4ENGINENAME})
SET(C4ENGINEID "${C4PROJECT_TLD}.${C4PROJECT_DOMAIN}.${C4ENGINENICK}")
SET(C4XVER1 5)
SET(C4XVER2 1)
SET(C4XVER2 2)
SET(C4XVER3 90)
SET(C4XVER4 0)
SET(C4XVER4 21)
# C4VERSIONBUILDNAME should be witty and somewhat frequently changing
# for alpha and beta releases, and meaningful and stable for stable releases.
SET(C4VERSIONBUILDNAME "Schokokeks")
SET(C4VERSIONEXTRA "Alpha")
# Both variables need to start with a space if they aren't empty.
SET(C4VERSIONBUILDNAME " Beyond the Rocks")
SET(C4VERSIONEXTRA " Alpha")
############################################################################
# Get revision from Mercurial
############################################################################
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()
# Note: This will not work for source distributions!
execute_process(WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
COMMAND "hg" "id" "--id"
OUTPUT_VARIABLE C4REVISION
OUTPUT_STRIP_TRAILING_WHITESPACE)
############################################################################
# Get year
############################################################################
IF(CMAKE_HOST_UNIX)
EXECUTE_PROCESS(COMMAND "date" "+%Y" OUTPUT_VARIABLE DATE)
ELSEIF(CMAKE_HOST_WIN32)
EXECUTE_PROCESS(COMMAND "cscript.exe" "//nologo" "${CMAKE_CURRENT_SOURCE_DIR}/tools/get_current_year.vbs" OUTPUT_VARIABLE DATE)
ENDIF()
STRING(REGEX REPLACE "(.+)\n" "\\1" YEARFIXED "${DATE}")
SET(C4COPYRIGHT_YEAR ${YEARFIXED})
############################################################################
# Build version strings
############################################################################
set(C4ENGINEINFO "${C4ENGINENAME}")
set(C4SHORTVERSION "${C4XVER1}.${C4XVER2}.${C4XVER3}.${C4XVER4}")
set(C4VERSION "${C4SHORTVERSION}")
SET(C4ENGINECAPTION "${C4ENGINENAME}{$C4VERSIONBUILDNAME}")
set(C4ENGINEINFO "${C4ENGINENAME}")
if(C4XVERBUILD LESS 10)
set(C4VERSION "${C4VERSION} [00${C4XVERBUILD}]")
set(C4VERSION "${C4XVER1}.${C4XVER2}.${C4XVER3}")
if(C4XVER4 LESS 10)
set(C4VERSION "${C4VERSION} [00${C4XVER4}]")
elseif(C4XVERBUILD LESS 100)
set(C4VERSION "${C4VERSION} [0${C4XVERBUILD}]")
set(C4VERSION "${C4VERSION} [0${C4XVER4}]")
else()
set(C4VERSION "${C4VERSION} [${C4XVERBUILD}]")
set(C4VERSION "${C4VERSION} [${C4XVER4}]")
endif()
if(NOT ${C4VERSIONEXTRA} STREQUAL "")
set(C4ENGINEINFO "${C4ENGINENAME} ${C4VERSIONEXTRA}")
set(C4VERSION "${C4VERSION} ${C4VERSIONEXTRA}")
set(C4ENGINEINFO "${C4ENGINENAME} ${C4VERSIONEXTRA}")
set(C4VERSION "${C4VERSION} ${C4VERSIONEXTRA}")
endif()
if(WIN32)
set(C4VERSION "${C4VERSION} win")
set(C4VERSION "${C4VERSION} win")
elseif(APPLE)
set(C4VERSION "${C4VERSION} mac")
set(C4VERSION "${C4VERSION} mac")
elseif(UNIX)
set(C4VERSION "${C4VERSION} unix")
set(C4VERSION "${C4VERSION} unix")
else()
set(C4VERSION "${C4VERSION} strange")
set(C4VERSION "${C4VERSION} strange")
endif()
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/src/C4Version.h.in ${CMAKE_CURRENT_BINARY_DIR}/C4Version.h ESCAPE_QUOTES)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/C4Version.h.in ${CMAKE_CURRENT_BINARY_DIR}/C4Version.h ESCAPE_QUOTES)
if(WIN32)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/res/WindowsGamesExplorer.xml.in ${CMAKE_CURRENT_BINARY_DIR}/WindowsGamesExplorer.xml ESCAPE_QUOTES)
endif()

16
autotools/ax_boost_base.m4 100644 → 100755
View File

@ -33,7 +33,7 @@
# and this notice are preserved. This file is offered as-is, without any
# warranty.
#serial 17
#serial 20
AC_DEFUN([AX_BOOST_BASE],
[
@ -59,7 +59,7 @@ AC_ARG_WITH([boost],
AC_ARG_WITH([boost-libdir],
AS_HELP_STRING([--with-boost-libdir=LIB_DIR],
[Force given directory for boost libraries. Note that this will overwrite library path detection, so use this parameter only if default library detection fails and you know exactly where your boost libraries are located.]),
[Force given directory for boost libraries. Note that this will override library path detection, so use this parameter only if default library detection fails and you know exactly where your boost libraries are located.]),
[
if test -d "$withval"
then
@ -84,13 +84,14 @@ if test "x$want_boost" = "xyes"; then
AC_MSG_CHECKING(for boostlib >= $boost_lib_version_req)
succeeded=no
dnl On x86_64 systems check for system libraries in both lib64 and lib.
dnl On 64-bit systems check for system libraries in both lib64 and lib.
dnl The former is specified by FHS, but e.g. Debian does not adhere to
dnl this (as it rises problems for generic multi-arch support).
dnl The last entry in the list is chosen by default when no libraries
dnl are found, e.g. when only header-only libraries are installed!
libsubdirs="lib"
if test `uname -m` = x86_64; then
ax_arch=`uname -m`
if test $ax_arch = x86_64 -o $ax_arch = ppc64 -o $ax_arch = s390x -o $ax_arch = sparc64; then
libsubdirs="lib64 lib lib64"
fi
@ -98,8 +99,13 @@ if test "x$want_boost" = "xyes"; then
dnl this location ist chosen if boost libraries are installed with the --layout=system option
dnl or if you install boost with RPM
if test "$ac_boost_path" != ""; then
BOOST_LDFLAGS="-L$ac_boost_path/$libsubdir"
BOOST_CPPFLAGS="-I$ac_boost_path/include"
for ac_boost_path_tmp in $libsubdirs; do
if test -d "$ac_boost_path"/"$ac_boost_path_tmp" ; then
BOOST_LDFLAGS="-L$ac_boost_path/$ac_boost_path_tmp"
break
fi
done
elif test "$cross_compiling" != yes; then
for ac_boost_path_tmp in /usr /usr/local /opt /opt/local ; do
if test -d "$ac_boost_path_tmp/include/boost" && test -r "$ac_boost_path_tmp/include/boost"; then

View File

@ -0,0 +1,72 @@
# ===========================================================================
# http://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html
# ===========================================================================
#
# SYNOPSIS
#
# AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS])
#
# DESCRIPTION
#
# Check whether the given FLAG works with the current language's compiler
# or gives an error. (Warnings, however, are ignored)
#
# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on
# success/failure.
#
# If EXTRA-FLAGS is defined, it is added to the current language's default
# flags (e.g. CFLAGS) when the check is done. The check is thus made with
# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to
# force the compiler to issue an error when a bad flag is given.
#
# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this
# macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG.
#
# LICENSE
#
# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
# Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
#
# This program is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation, either version 3 of the License, or (at your
# option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
# Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
#
# As a special exception, the respective Autoconf Macro's copyright owner
# gives unlimited permission to copy, distribute and modify the configure
# scripts that are the output of Autoconf when processing the Macro. You
# need not follow the terms of the GNU General Public License when using
# or distributing such scripts, even though portions of the text of the
# Macro appear in them. The GNU General Public License (GPL) does govern
# all other use of the material that constitutes the Autoconf Macro.
#
# This special exception to the GPL applies to versions of the Autoconf
# Macro released by the Autoconf Archive. When you make and distribute a
# modified version of the Autoconf Macro, you may extend this special
# exception to the GPL to apply to your modified version as well.
#serial 2
AC_DEFUN([AX_CHECK_COMPILE_FLAG],
[AC_PREREQ(2.59)dnl for _AC_LANG_PREFIX
AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl
AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [
ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS
_AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
[AS_VAR_SET(CACHEVAR,[yes])],
[AS_VAR_SET(CACHEVAR,[no])])
_AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags])
AS_IF([test x"AS_VAR_GET(CACHEVAR)" = xyes],
[m4_default([$2], :)],
[m4_default([$3], :)])
AS_VAR_POPDEF([CACHEVAR])dnl
])dnl AX_CHECK_COMPILE_FLAGS

View File

@ -1,74 +0,0 @@
# ===========================================================================
# http://autoconf-archive.cryp.to/ax_check_compiler_flags.html
# ===========================================================================
#
# SYNOPSIS
#
# AX_CHECK_COMPILER_FLAGS(FLAGS, [ACTION-SUCCESS], [ACTION-FAILURE])
#
# DESCRIPTION
#
# Check whether the given compiler FLAGS work with the current language's
# compiler, or whether they give an error. (Warnings, however, are
# ignored.)
#
# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on
# success/failure.
#
# LICENSE
#
# Copyright (c) 2009 Steven G. Johnson <stevenj@alum.mit.edu>
# Copyright (c) 2009 Matteo Frigo
#
# This program is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation, either version 3 of the License, or (at your
# option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
# Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
#
# As a special exception, the respective Autoconf Macro's copyright owner
# gives unlimited permission to copy, distribute and modify the configure
# scripts that are the output of Autoconf when processing the Macro. You
# need not follow the terms of the GNU General Public License when using
# or distributing such scripts, even though portions of the text of the
# Macro appear in them. The GNU General Public License (GPL) does govern
# all other use of the material that constitutes the Autoconf Macro.
#
# This special exception to the GPL applies to versions of the Autoconf
# Macro released by the Autoconf Archive. When you make and distribute a
# modified version of the Autoconf Macro, you may extend this special
# exception to the GPL to apply to your modified version as well.
AC_DEFUN([AX_CHECK_COMPILER_FLAGS],
[AC_PREREQ(2.59) dnl for _AC_LANG_PREFIX
AC_MSG_CHECKING([whether _AC_LANG compiler accepts $1])
dnl Some hackery here since AC_CACHE_VAL can't handle a non-literal varname:
AS_LITERAL_IF([$1],
[AC_CACHE_VAL(AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_[$1]), [
ax_save_FLAGS=$[]_AC_LANG_PREFIX[]FLAGS
_AC_LANG_PREFIX[]FLAGS="$1"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_[$1])=yes,
AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_[$1])=no)
_AC_LANG_PREFIX[]FLAGS=$ax_save_FLAGS])],
[ax_save_FLAGS=$[]_AC_LANG_PREFIX[]FLAGS
_AC_LANG_PREFIX[]FLAGS="$1"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
eval AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_[$1])=yes,
eval AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_[$1])=no)
_AC_LANG_PREFIX[]FLAGS=$ax_save_FLAGS])
eval ax_check_compiler_flags=$AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_[$1])
AC_MSG_RESULT($ax_check_compiler_flags)
if test "x$ax_check_compiler_flags" = xyes; then
m4_default([$2], :)
else
m4_default([$3], :)
fi
])dnl AX_CHECK_COMPILER_FLAGS

85
autotools/ax_pthread.m4 100644 → 100755
View File

@ -1,5 +1,5 @@
# ===========================================================================
# http://www.nongnu.org/autoconf-archive/ax_pthread.html
# http://www.gnu.org/software/autoconf-archive/ax_pthread.html
# ===========================================================================
#
# SYNOPSIS
@ -33,6 +33,10 @@
# has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name
# (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
#
# Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the
# PTHREAD_PRIO_INHERIT symbol is defined when compiling with
# PTHREAD_CFLAGS.
#
# ACTION-IF-FOUND is a list of shell commands to run if a threads library
# is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it
# is not found. If ACTION-IF-FOUND is not specified, the default action
@ -45,9 +49,12 @@
# Alejandro Forero Cuervo to the autoconf macro repository. We are also
# grateful for the helpful feedback of numerous users.
#
# Updated for Autoconf 2.68 by Daniel Richard G.
#
# LICENSE
#
# Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu>
# Copyright (c) 2011 Daniel Richard G. <skunk@iSKUNK.ORG>
#
# This program is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
@ -75,11 +82,12 @@
# modified version of the Autoconf Macro, you may extend this special
# exception to the GPL to apply to your modified version as well.
#serial 17
AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD])
AC_DEFUN([AX_PTHREAD], [
AC_REQUIRE([AC_CANONICAL_HOST])
AC_LANG_SAVE
AC_LANG_C
AC_LANG_PUSH([C])
ax_pthread_ok=no
# We used to check for pthread.h first, but this fails if pthread.h
@ -150,6 +158,10 @@ case "${host_cpu}-${host_os}" in
ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags"
;;
*-darwin*)
ax_pthread_flags="-pthread $ax_pthread_flags"
;;
esac
if test x"$ax_pthread_ok" = xno; then
@ -165,12 +177,12 @@ for flag in $ax_pthread_flags; do
PTHREAD_CFLAGS="$flag"
;;
pthread-config)
AC_CHECK_PROG(ax_pthread_config, pthread-config, yes, no)
if test x"$ax_pthread_config" = xno; then continue; fi
PTHREAD_CFLAGS="`pthread-config --cflags`"
PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
;;
pthread-config)
AC_CHECK_PROG(ax_pthread_config, pthread-config, yes, no)
if test x"$ax_pthread_config" = xno; then continue; fi
PTHREAD_CFLAGS="`pthread-config --cflags`"
PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
;;
*)
AC_MSG_CHECKING([for the pthreads library -l$flag])
@ -192,11 +204,17 @@ for flag in $ax_pthread_flags; do
# pthread_cleanup_push because it is one of the few pthread
# functions on Solaris that doesn't have a non-functional libc stub.
# We try pthread_create on general principles.
AC_TRY_LINK([#include <pthread.h>],
[pthread_t th; pthread_join(th, 0);
pthread_attr_init(0); pthread_cleanup_push(0, 0);
pthread_create(0,0,0,0); pthread_cleanup_pop(0); ],
[ax_pthread_ok=yes])
AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>
static void routine(void *a) { a = 0; }
static void *start_routine(void *a) { return a; }],
[pthread_t th; pthread_attr_t attr;
pthread_create(&th, 0, start_routine, 0);
pthread_join(th, 0);
pthread_attr_init(&attr);
pthread_cleanup_push(routine, 0);
pthread_cleanup_pop(0) /* ; */])],
[ax_pthread_ok=yes],
[])
LIBS="$save_LIBS"
CFLAGS="$save_CFLAGS"
@ -219,12 +237,14 @@ if test "x$ax_pthread_ok" = xyes; then
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
# Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
AC_MSG_CHECKING([for joinable pthread attribute])
attr_name=unknown
for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
AC_TRY_LINK([#include <pthread.h>], [int attr=$attr; return attr;],
[attr_name=$attr; break])
done
AC_MSG_CHECKING([for joinable pthread attribute])
attr_name=unknown
for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>],
[int attr = $attr; return attr /* ; */])],
[attr_name=$attr; break],
[])
done
AC_MSG_RESULT($attr_name)
if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then
AC_DEFINE_UNQUOTED(PTHREAD_CREATE_JOINABLE, $attr_name,
@ -236,22 +256,39 @@ if test "x$ax_pthread_ok" = xyes; then
flag=no
case "${host_cpu}-${host_os}" in
*-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";;
*solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";;
*-osf* | *-hpux*) flag="-D_REENTRANT";;
*solaris*)
if test "$GCC" = "yes"; then
flag="-D_REENTRANT"
else
flag="-mt -D_REENTRANT"
fi
;;
esac
AC_MSG_RESULT(${flag})
if test "x$flag" != xno; then
PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
fi
AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
ax_cv_PTHREAD_PRIO_INHERIT, [
AC_LINK_IFELSE([
AC_LANG_PROGRAM([[#include <pthread.h>]], [[int i = PTHREAD_PRIO_INHERIT;]])],
[ax_cv_PTHREAD_PRIO_INHERIT=yes],
[ax_cv_PTHREAD_PRIO_INHERIT=no])
])
AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"],
AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], 1, [Have PTHREAD_PRIO_INHERIT.]))
LIBS="$save_LIBS"
CFLAGS="$save_CFLAGS"
# More AIX lossage: must compile with xlc_r or cc_r
if test x"$GCC" != xyes; then
if test x"$GCC" != xyes; then
AC_CHECK_PROGS(PTHREAD_CC, xlc_r cc_r, ${CC})
else
PTHREAD_CC=$CC
fi
fi
else
PTHREAD_CC="$CC"
fi
@ -268,5 +305,5 @@ else
ax_pthread_ok=no
$2
fi
AC_LANG_RESTORE
AC_LANG_POP
])dnl AX_PTHREAD

24
autotools/sdl.m4 100644 → 100755
View File

@ -5,11 +5,13 @@
# stolen from Manish Singh
# Shamelessly stolen from Owen Taylor
# serial 1
dnl AM_PATH_SDL([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
dnl Test for SDL, and define SDL_CFLAGS and SDL_LIBS
dnl
AC_DEFUN([AM_PATH_SDL],
[dnl
[dnl
dnl Get the cflags and libraries from the sdl-config script
dnl
AC_ARG_WITH(sdl-prefix,[ --with-sdl-prefix=PFX Prefix where SDL is installed (optional)],
@ -20,34 +22,36 @@ AC_ARG_ENABLE(sdltest, [ --disable-sdltest Do not try to compile and run
, enable_sdltest=yes)
if test x$sdl_exec_prefix != x ; then
sdl_args="$sdl_args --exec-prefix=$sdl_exec_prefix"
sdl_config_args="$sdl_config_args --exec-prefix=$sdl_exec_prefix"
if test x${SDL_CONFIG+set} != xset ; then
SDL_CONFIG=$sdl_exec_prefix/bin/sdl-config
fi
fi
if test x$sdl_prefix != x ; then
sdl_args="$sdl_args --prefix=$sdl_prefix"
sdl_config_args="$sdl_config_args --prefix=$sdl_prefix"
if test x${SDL_CONFIG+set} != xset ; then
SDL_CONFIG=$sdl_prefix/bin/sdl-config
fi
fi
as_save_PATH="$PATH"
if test "x$prefix" != xNONE; then
PATH="$prefix/bin:$prefix/usr/bin:$PATH"
fi
AC_PATH_PROG(SDL_CONFIG, sdl-config, no, [$PATH])
PATH="$as_save_PATH"
min_sdl_version=ifelse([$1], ,0.11.0,$1)
AC_MSG_CHECKING(for SDL - version >= $min_sdl_version)
no_sdl=""
if test "$SDL_CONFIG" = "no" ; then
no_sdl=yes
else
SDL_CFLAGS=`$SDL_CONFIG $sdlconf_args --cflags`
SDL_LIBS=`$SDL_CONFIG $sdlconf_args --libs`
SDL_CFLAGS=`$SDL_CONFIG $sdl_config_args --cflags`
SDL_LIBS=`$SDL_CONFIG $sdl_config_args --libs`
sdl_major_version=`$SDL_CONFIG $sdl_args --version | \
sdl_major_version=`$SDL_CONFIG $sdl_config_args --version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
sdl_minor_version=`$SDL_CONFIG $sdl_args --version | \
sdl_minor_version=`$SDL_CONFIG $sdl_config_args --version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
sdl_micro_version=`$SDL_CONFIG $sdl_config_args --version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
@ -73,7 +77,7 @@ char*
my_strdup (char *str)
{
char *new_str;
if (str)
{
new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char));
@ -81,7 +85,7 @@ my_strdup (char *str)
}
else
new_str = NULL;
return new_str;
}
@ -128,7 +132,7 @@ int main (int argc, char *argv[])
fi
if test "x$no_sdl" = x ; then
AC_MSG_RESULT(yes)
ifelse([$2], , :, [$2])
ifelse([$2], , :, [$2])
else
AC_MSG_RESULT(no)
if test "$SDL_CONFIG" = "no" ; then

View File

@ -0,0 +1,33 @@
# - Find DbgHelp
# Find the DbgHelp library
# This module defines
# DBGHELP_INCLUDE_DIR, where to find dbghelp.h, etc.
# DBGHELP_LIBRARIES, the libraries needed to use DbgHelp.
# DBGHELP_FOUND, If false, do not try to use DbgHelp.
#=============================================================================
# OpenClonk, http://www.openclonk.org
#
# Copyright (c) 2011 Nicolas Hake
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
# See isc_license.txt for full license and disclaimer.
#
# "Clonk" is a registered trademark of Matthes Bender.
# See clonk_trademark_license.txt for full license.
#=============================================================================
find_path(DBGHELP_INCLUDE_DIR NAMES dbghelp.h)
set(DBGHELP_NAMES ${DBGHELP_NAMES} dbghelp)
find_library(DBGHELP_LIBRARY NAMES ${DBGHELP_NAMES})
include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(DBGHELP DEFAULT_MSG DBGHELP_LIBRARY DBGHELP_INCLUDE_DIR)
if(DBGHELP_FOUND)
set(DBGHELP_LIBRARIES ${DBGHELP_LIBRARY})
endif()
mark_as_advanced(DBGHELP_LIBRARY DBGHELP_INCLUDE_DIR)

View File

@ -0,0 +1,46 @@
# - Find FMod
# Find the FMod library
# This module defines
# FMOD_INCLUDE_DIR, where to find fmod.h, etc.
# FMOD_LIBRARIES, the libraries needed to use FMod.
# FMOD_FOUND, If false, do not try to use FMod.
#=============================================================================
# OpenClonk, http://www.openclonk.org
#
# Copyright (c) 2011 Nicolas Hake
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
# See isc_license.txt for full license and disclaimer.
#
# "Clonk" is a registered trademark of Matthes Bender.
# See clonk_trademark_license.txt for full license.
#=============================================================================
find_path(FMOD_INCLUDE_DIR fmod.h)
if(CMAKE_CL_64)
if(MSVC)
set(FMOD_NAMES ${FMOD_NAMES} fmod64vc)
else()
set(FMOD_NAMES ${FMOD_NAMES} fmod64)
endif()
else()
if(MSVC)
set(FMOD_NAMES ${FMOD_NAMES} fmodvc)
else()
set(FMOD_NAMES ${FMOD_NAMES} fmod)
endif()
endif()
find_library(FMOD_LIBRARY NAMES ${FMOD_NAMES})
include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(FMOD DEFAULT_MSG FMOD_LIBRARY FMOD_INCLUDE_DIR)
if(FMOD_FOUND)
set(FMOD_LIBRARIES ${FMOD_LIBRARY})
endif()
mark_as_advanced(FMOD_LIBRARY FMOD_INCLUDE_DIR)

View File

View File

@ -0,0 +1,39 @@
# - Find libupnp
# Find the libupnp library
# This module defines
# UPNP_INCLUDE_DIR, where to find upnp.h, etc.
# UPNP_LIBRARIES, the libraries needed to use libupnp.
# UPNP_FOUND, If false, do not try to use libupnp.
#=============================================================================
# OpenClonk, http://www.openclonk.org
#
# Copyright (c) 2012 Armin Burgmeier
# Copyright (c) 2012 Nicolas Hake
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
# See isc_license.txt for full license and disclaimer.
#
# "Clonk" is a registered trademark of Matthes Bender.
# See clonk_trademark_license.txt for full license.
#=============================================================================
# TODO: Use pkg-config if available
find_path(UPNP_INCLUDE_DIR NAMES upnp.h PATH_SUFFIXES upnp)
set(UPNP_NAMES ${UPNP_NAMES} upnp)
set(IXML_NAMES ${IXML_NAMES} ixml)
find_library(UPNP_LIBRARY NAMES ${UPNP_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)
if(UPNP_FOUND)
set(UPNP_LIBRARIES ${UPNP_LIBRARY} ${IXML_LIBRARY})
set(UPNP_INCLUDE_DIR ${UPNP_INCLUDE_DIR})
endif()
mark_as_advanced(UPNP_LIBRARY IXML_LIBRARY UPNP_INCLUDE_DIR)

View File

@ -0,0 +1,83 @@
#Copied from http://www.mail-archive.com/cmake@cmake.org/msg04394.html which copied it from the rosengarden project
#see also: http://gcc.gnu.org/onlinedocs/gcc-4.0.4/gcc/Precompiled-Headers.html
MACRO(ADD_PRECOMPILED_HEADER _targetName _input )
# Prepare environment
if(CMAKE_BUILD_TYPE)
SET(_proper_build_type ${CMAKE_BUILD_TYPE})
else()
SET(_proper_build_type Standard)
endif()
GET_FILENAME_COMPONENT(_name ${_input} NAME)
SET(_pchdir "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/pch.custom.dir")
SET(_source "${CMAKE_CURRENT_SOURCE_DIR}/${_input}")
SET(_outdir "${_pchdir}/${_name}.gch")
MAKE_DIRECTORY(${_outdir})
string(REPLACE "/" "_" _inputescaped ${_input})
SET(_output "${_outdir}/${_inputescaped}_${_targetName}_${_proper_build_type}.o")
#FILE(WRITE "${_pchdir}/${_name}" "\#error Precompiled header not used")
# Assemble the compiler command with which future stuff will be built
STRING(TOUPPER "CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}" _flags_var_name) # Don't worry: CMake won't use any of the R/D/RWDI/MSR vars if the build type is not defined
if(CMAKE_CXX_COMPILER_ARG1) # please, know what you're doing if you rely on this...
STRING(STRIP ${CMAKE_CXX_COMPILER_ARG1} _ccache_tweak)
SET(_ccache_tweak "\"${_ccache_tweak}\"")
endif()
SET(_compiler_FLAGS ${_ccache_tweak} ${CMAKE_CXX_FLAGS} ${${_flags_var_name}})
if(CMAKE_BUILD_TYPE)
if(${CMAKE_BUILD_TYPE} STREQUAL "Debug")
LIST(APPEND _compiler_FLAGS "-D_DEBUG")
endif()
endif()
GET_TARGET_PROPERTY(_compile_defines ${_targetName} COMPILE_DEFINITIONS)
if(_compile_defines)
FOREACH(item ${_compile_defines})
STRING(REPLACE "\"" "\\\"" item ${item})
LIST(APPEND _compiler_FLAGS "-D${item}")
ENDFOREACH(item)
endif()
GET_TARGET_PROPERTY(_compile_defines ${_targetName} COMPILE_DEFINITIONS_${CMAKE_BUILD_TYPE})
if(_compile_defines)
FOREACH(item ${_compile_defines})
STRING(REPLACE "\"" "\\\"" item ${item})
LIST(APPEND _compiler_FLAGS "-D${item}")
ENDFOREACH(item)
endif()
GET_DIRECTORY_PROPERTY(_compile_defines COMPILE_DEFINITIONS)
if(_compile_defines)
FOREACH(item ${_compile_defines})
STRING(REPLACE "\"" "\\\"" item ${item})
LIST(APPEND _compiler_FLAGS "-D${item}")
ENDFOREACH(item)
endif()
GET_DIRECTORY_PROPERTY(_compile_defines COMPILE_DEFINITIONS_${CMAKE_BUILD_TYPE})
if(_compile_defines)
FOREACH(item ${_compile_defines})
STRING(REPLACE "\"" "\\\"" item ${item})
LIST(APPEND _compiler_FLAGS "-D${item}")
ENDFOREACH(item)
endif()
GET_DIRECTORY_PROPERTY(_directory_flags INCLUDE_DIRECTORIES)
FOREACH(item ${_directory_flags})
LIST(APPEND _compiler_FLAGS "-I\"${item}\"")
ENDFOREACH(item)
GET_DIRECTORY_PROPERTY(_directory_flags DEFINITIONS)
STRING(REPLACE "\"" "\\\"" _directory_flags ${_directory_flags}) # Welcome to escape hell. Replace " with \"
LIST(APPEND _compiler_FLAGS ${_directory_flags})
SEPARATE_ARGUMENTS(_compiler_FLAGS)
list(REMOVE_DUPLICATES _compiler_FLAGS)
# Add a target with the pch
ADD_CUSTOM_COMMAND(
OUTPUT ${_output}
COMMAND "${CMAKE_CXX_COMPILER}"
${_compiler_FLAGS} -x c++-header -o ${_output} ${_source}
IMPLICIT_DEPENDS CXX ${_source}
)
ADD_CUSTOM_TARGET(${_targetName}_pch DEPENDS ${_output})
ADD_DEPENDENCIES(${_targetName} ${_targetName}_pch)
INCLUDE_DIRECTORIES(BEFORE ${_pchdir})
#SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Winvalid-pch" CACHE STRING "C++ compiler flags" FORCE)
ENDMACRO(ADD_PRECOMPILED_HEADER)

18
config.h.cmake 100644 → 100755
View File

@ -85,12 +85,12 @@
/* Define to 1 if you have the <string.h> header file. */
#cmakedefine HAVE_STRING_H 1
/* inotify reachable using syscall */
#cmakedefine HAVE_SYSCALL_INOTIFY 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
/* Define to 1 if you have the <sys/file.h> header file. */
#cmakedefine HAVE_SYS_FILE_H 1
@ -100,8 +100,8 @@
/* Define to 1 if you have the <sys/stat.h> header file. */
#cmakedefine HAVE_SYS_STAT_H 1
/* Define to 1 if you have the <sys/syscall.h> header file. */
#cmakedefine HAVE_SYS_SYSCALL_H 1
/* Define to 1 if you have the <sys/timerfd.h> header file. */
#cmakedefine HAVE_SYS_TIMERFD_H 1
/* Define to 1 if you have the <sys/types.h> header file. */
#cmakedefine HAVE_SYS_TYPES_H 1
@ -112,6 +112,8 @@
/* Define to 1 if you have the `vasprintf' function. */
#cmakedefine HAVE_VASPRINTF 1
#cmakedefine HAVE_VFW32
/* Define to 1 if you have the <X11/extensions/xf86vmode.h> header file. */
#cmakedefine HAVE_X11_EXTENSIONS_XF86VMODE_H 1
@ -203,11 +205,15 @@
/* Use Apple Cocoa for the UI */
#cmakedefine USE_COCOA 1
/* Define to 1 if your compiler supports static_assert */
#cmakedefine HAVE_STATIC_ASSERT 1
/* Generate minidumps on crash */
#cmakedefine GENERATE_MINI_DUMP 1
#cmakedefine HAVE_DBGHELP 1
/* Define to 1 if your compiler supports static_assert */
#cmakedefine HAVE_STATIC_ASSERT 1
/* Define to 1 if your compiler correctly supports boost::is_pod */
#cmakedefine HAVE_WORKING_IS_POD 1

19
config.h.in 100644 → 100755
View File

@ -45,12 +45,18 @@
/* Define to 1 if you have the <multimon.h> header file. */
#undef HAVE_MULTIMON_H
/* Define to 1 if you have the <natupnp.h> header file. */
#undef HAVE_NATUPNP_H
/* Define to 1 if you have the <poll.h> header file. */
#undef HAVE_POLL_H
/* Define if you have POSIX threads libraries and header files. */
#undef HAVE_PTHREAD
/* Have PTHREAD_PRIO_INHERIT. */
#undef HAVE_PTHREAD_PRIO_INHERIT
/* Define to 1 if you have the <readline.h> header file. */
#undef HAVE_READLINE_H
@ -87,8 +93,8 @@
/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H
/* inotify reachable using syscall */
#undef HAVE_SYSCALL_INOTIFY
/* Define to 1 if you have the <sys/eventfd.h> header file. */
#undef HAVE_SYS_EVENTFD_H
/* Define to 1 if you have the <sys/file.h> header file. */
#undef HAVE_SYS_FILE_H
@ -102,8 +108,8 @@
/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H
/* Define to 1 if you have the <sys/syscall.h> header file. */
#undef HAVE_SYS_SYSCALL_H
/* Define to 1 if you have the <sys/timerfd.h> header file. */
#undef HAVE_SYS_TIMERFD_H
/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H
@ -114,6 +120,9 @@
/* Define to 1 if you have the `vasprintf' function. */
#undef HAVE_VASPRINTF
/* */
#undef HAVE_VFW32
/* Define to 1 if you have the <X11/extensions/xf86vmode.h> header file. */
#undef HAVE_X11_EXTENSIONS_XF86VMODE_H
@ -166,7 +175,7 @@
/* DirectX graphics */
#undef USE_DIRECTX
/* Wether FMOD shall be used */
/* Whether FMOD shall be used */
#undef USE_FMOD
/* OpenGL graphics */

112
configure.ac 100644 → 100755
View File

@ -1,21 +1,27 @@
dnl Copyright (c) 2005-2009, RedWolf Design GmbH, http://www.clonk.de
dnl Permission to use, copy, modify, and/or distribute this software for any
dnl purpose with or without fee is hereby granted, provided that the above
dnl copyright notice and this permission notice appear in all copies.
dnl THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
dnl WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
dnl MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
dnl ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
dnl WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
dnl ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
dnl OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.59)
AC_INIT(clonk, 5)
AC_COPYRIGHT([©2005-2010 Günther Brammer])
# Copyright (c) 2005-2011 Günther Brammer
# Copyright (c) 2005, 2008 Peter Wortmann
# Copyright (c) 2006 Julian Raschke
# Copyright (c) 2010 Armin Burgmeier
# Copyright (c) 2010 Martin Plicht
# Copyright (c) 2005-2009, RedWolf Design GmbH, http://www.clonk.de
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
AC_PREREQ([2.67])
AC_INIT([clonk], [5])
AC_COPYRIGHT([©2005-2011 Günther Brammer])
AC_CONFIG_SRCDIR([/src/C4Game.cpp])
AC_CONFIG_AUX_DIR([autotools])
AC_CONFIG_HEADER([config.h])
@ -24,12 +30,12 @@ AC_CANONICAL_HOST
dnl foreign to tell automake to shut up,
dnl and subdir-objects because it makes the Makefile smaller.
dnl no-define because PACKAGE and VERSION are not used
AM_INIT_AUTOMAKE([foreign nostdinc no-define 1.10])
AM_INIT_AUTOMAKE([foreign tar-ustar nostdinc no-define 1.10])
m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
AC_PROG_CXX
AC_LANG([C++])
AX_CHECK_COMPILER_FLAGS([-std=gnu++0x], [CXX="${CXX} -std=gnu++0x"])
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])
@ -56,9 +62,9 @@ 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/inotify.h sys/syscall.h], , , [[ ]])
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], , , [[ ]])
# Mingw does not ship with multimon.h
AC_CHECK_HEADERS([multimon.h io.h direct.h share.h], [], [], [[#include <windows.h>]])
AC_CHECK_HEADERS([multimon.h io.h direct.h share.h natupnp.h], [], [], [[#include <windows.h>]])
# iconv
AX_ICONV
# vasprintf is a GNU extension
@ -79,7 +85,7 @@ if test "x$ac_cv_header_execinfo_h" = xyes; then
fi
AC_ARG_ENABLE([debug],
[AC_HELP_STRING([--enable-debug], [debugging options [default=no]])],
[AS_HELP_STRING([--enable-debug],[debugging options [default=no]])],
, [enable_debug=no])
if test $enable_debug = yes; then
AC_DEFINE([_DEBUG], 1, [compile with debug options])
@ -88,18 +94,18 @@ else
fi
AC_ARG_ENABLE([debugrec],
[AC_HELP_STRING([--enable-debugrec], [write additional debug control to records [default=no]])],
[AS_HELP_STRING([--enable-debugrec],[write additional debug control to records [default=no]])],
, [enable_debugrec=no])
if test $enable_debugrec = yes; then
AC_DEFINE([DEBUGREC], 1, [Activate DebugRecs])
fi
AC_ARG_ENABLE([console],
[AC_HELP_STRING([--enable-console],[compile as pure console application [default=no]])],
[AS_HELP_STRING([--enable-console],[compile as pure console application [default=no]])],
, [enable_console=no])
AC_ARG_ENABLE([sound],
[AC_HELP_STRING([--enable-sound],[compile with sound support [default=yes]])],
[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])
# GTK+
@ -137,7 +143,7 @@ AM_CONDITIONAL(DEVELOPER_MODE, [test $with_gtk != no])
# OpenAL
AC_ARG_WITH([openal],
[AC_HELP_STRING([--with-openal],[compile with openal support [default=no]])],
[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])
@ -170,7 +176,7 @@ if test $with_sdl = yes; then
[$SDL_LIBS])
fi
AC_ARG_ENABLE(sdlmainloop,
[AC_HELP_STRING([--enable-sdlmainloop],[use SDL instead of X11 or Win32 [default=no]])],
[AS_HELP_STRING([--enable-sdlmainloop],[use SDL instead of X11 or Win32 [default=no]])],
, [if test $osx = true; then enable_sdlmainloop=yes; else enable_sdlmainloop=no; fi ])
else
enable_sdlmainloop=no
@ -183,7 +189,7 @@ AM_CONDITIONAL(SDL_MAIN_LOOP, [test $enable_sdlmainloop = yes])
if test $enable_sound = yes; then
AC_ARG_ENABLE([mp3],
[AC_HELP_STRING([--enable-mp3],[enable mp3 support [default=no]])],
[AS_HELP_STRING([--enable-mp3],[enable mp3 support [default=no]])],
, [enable_mp3=no])
if test $enable_mp3 = yes; then
AC_DEFINE([USE_MP3], 1, [MP3 music])
@ -207,10 +213,6 @@ AX_BOOST_BASE([1.40.0], [], [
AC_MSG_ERROR([Boost not found.])
])
# OpenSSL
AC_CHECK_LIB(crypto, BIO_new, [OPENSSL_LIBS="-lcrypto"],
[AC_MSG_ERROR([libcrypto (OpenSSL) not found.])])
# Check for libjpeg
AC_CHECK_LIB(jpeg, jpeg_read_header, [
CLONK_LIBS="-ljpeg $CLONK_LIBS"
@ -232,6 +234,11 @@ AC_CHECK_LIB(z, deflate, [
AC_MSG_ERROR([libz not found.])
])
# Check for librt
AC_CHECK_LIB(rt, clock_gettime, [
LDADD="-lrt $LDADD"
], [])
# Check for libfreetype
if test $enable_console = no; then
if test "$cross_compiling" = no; then
@ -265,7 +272,7 @@ fi
# OpenGL
AC_ARG_WITH([gl],
[AC_HELP_STRING([--with-gl],[compile with opengl support [default=yes]])],
[AS_HELP_STRING([--with-gl],[compile with opengl support [default=yes]])],
, [if test $enable_console = yes; then with_gl=no; else with_gl=yes; fi])
if test $with_gl = yes; then
if test $osx = true; then
@ -293,7 +300,7 @@ fi
# DirectX
AC_ARG_WITH([directx],
[AC_HELP_STRING([--with-directx],[compile with directx support [default=no]])],
[AS_HELP_STRING([--with-directx],[compile with directx support [default=no]])],
, [with_directx="no"])
if test "$with_directx" = yes; then
AC_CHECK_LIB(d3d9, main, [CLONK_LIBS="-ld3d9 $CLONK_LIBS"],
@ -301,8 +308,22 @@ if test "$with_directx" = yes; then
AC_DEFINE([USE_DIRECTX], 1, [DirectX graphics])
fi
# UPnP
AC_ARG_WITH([upnp],
[AS_HELP_STRING([--with-upnp],[compile with upnp support [default=no]])],
, [with_upnp=no])
AS_IF([test $with_upnp = yes], [
AM_CONDITIONAL(NATUPNP, [test "$ac_cv_header_natupnp_h" = yes])
PKG_CHECK_MODULES(LIBUPNP, [libupnp], [have_libupnp=yes], [have_libupnp=no])
], [
AM_CONDITIONAL(NATUPNP, [false])
have_libupnp=no
])
AM_CONDITIONAL(LIBUPNP, [test "$have_libupnp" = yes])
# Automatic Update
AC_ARG_WITH([automatic-update],
[AC_HELP_STRING([--with-automatic-update],[enable support for automatic engine updates [default=yes]])],
[AS_HELP_STRING([--with-automatic-update],[enable support for automatic engine updates [default=yes]])],
, [with_automatic_update="yes"])
if test "$with_automatic_update" = "yes"; then
AC_DEFINE([WITH_AUTOMATIC_UPDATE], 1, [Enable automatic update system])
@ -314,23 +335,25 @@ if test $win32 = false; then
AC_SUBST(PTHREAD_LIBS)
AC_SUBST(PTHREAD_CFLAGS)
# inotify syscall workaround
AC_CHECK_DECL(SYS_inotify_init,
AC_DEFINE([HAVE_SYSCALL_INOTIFY], 1, [inotify reachable using syscall]),,
[#include <sys/syscall.h>])
# FMod is used for windows only
AM_CONDITIONAL(USE_FMOD, false)
else
# Windows
for WIN32LIB in gdi32 comdlg32 winmm ws2_32 vfw32
for WIN32LIB in gdi32 comdlg32 ws2_32
do
AC_CHECK_LIB([$WIN32LIB], main, [CLONK_LIBS="-l$WIN32LIB $CLONK_LIBS"], [AC_MSG_ERROR([$WIN32LIB not found.])])
done
AC_CHECK_LIB([winmm], main, [LDADD="-lwinmm $LDADD"], [AC_MSG_ERROR([winmm not found.])])
AC_CHECK_LIB([vfw32], main, [
CLONK_LIBS="-lvfw32 $CLONK_LIBS"
AC_DEFINE([HAVE_VFW32], 1, [ ])
], [])
# FMod (Library comes with standard)
if test "$enable_sound" = yes; then
AC_DEFINE([USE_FMOD], 1, [Wether FMOD shall be used])
AC_DEFINE([USE_FMOD], 1, [Whether FMOD shall be used])
fi
AM_CONDITIONAL(USE_FMOD, test "$enable_sound" = yes)
@ -341,9 +364,9 @@ else
fi
fi
AC_SUBST(LDADD)
AC_SUBST(CLONK_LIBS)
AC_SUBST(Z_LIBS)
AC_SUBST(OPENSSL_LIBS)
# precompiled headers and -Wextra
AC_MSG_CHECKING([whether we are using a GNU C++ compiler version 4.1 or newer])
@ -368,7 +391,10 @@ echo "Configuration:
SDL_Mixer: $with_sdl_mixer
OpenAL: $with_openal
GTK+: $with_gtk
X11: $have_x"
X11: $have_x
Nat/LibUPnP: $ac_cv_header_natupnp_h/$have_libupnp
CFLAGS: $CFLAGS
CXXFLAGS: $CXXFLAGS"
if test "$enable_sdlmainloop" = yes; then echo " SDL: mainloop";
else echo " SDL: $with_sdl"; fi

25
debian/changelog vendored
View File

@ -1,25 +0,0 @@
openclonk (5.1.1.0-0ubuntu1-ppa4) maverick; urgency=low
* Mercurial as Build Dependency
* Switch to cmake as build system
* Fixed spacing issues in $(CURDIR)
-- Sebastian Rühl <sebastian.ruehl@mni.fh-giessen.de> Sun, 31 Dec 2010 15:38:26 +0100
openclonk (5.1.1.0-0ubuntu1-ppa3) maverick; urgency=low
* Fixed Icons
-- Sebastian Rühl <sebastian.ruehl@mni.fh-giessen.de> Sun, 27 Dec 2010 15:23:05 +0200
openclonk (5.1.1.0-0ubuntu1-ppa2) maverick; urgency=low
* Added Icons
-- Sebastian Rühl <sebastian.ruehl@mni.fh-giessen.de> Sun, 27 Dec 2010 12:23:05 +0200
openclonk (5.1.1.0-0ubuntu1-ppa1) maverick; urgency=low
* Initial release
-- Sebastian Rühl <sebastian.ruehl@mni.fh-giessen.de> Sat, 25 Dec 2010 23:23:05 +0200

1
debian/compat vendored
View File

@ -1 +0,0 @@
7

13
debian/control vendored
View File

@ -1,13 +0,0 @@
Source: openclonk
Section: games
Priority: extra
Maintainer: Sebastian Rühl <sebastian.ruehl@mni.fh-giessen.de>
Build-Depends: debhelper (>= 7), cmake, make (>= 3.8), gcc (>= 4.3), g++ (>=4.3), automake, autoconf, libtool, libc6-dev (>= 2.9), libx11-dev, libxxf86vm-dev, libxrandr-dev, libxpm-dev, libglew1.5-dev, libgl1-mesa-dev, libpng12-dev, libssl-dev, libsdl1.2-dev, libsdl-mixer1.2-dev, libgtk2.0-dev, libjpeg62-dev, zlib1g-dev, libboost-dev, mercurial
Standards-Version: 3.8.0
Homepage: http://wiki.openclonk.org/w/Project
Package: openclonk
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: OpenClonk will be the Open source successor of the Clonk gaming series.
In early march 2009, Matthes Bender told the other developers of Clonk Rage that he wouldn't have any time to work on Clonk anymore. As the Game Designer of Clonk Rage and Directing Manager of RedWolf Design, the company selling the Clonk titles, he left a significant vacancy. The development of Clonk Rage was mostly done as a hobby by the other developers, and although they wanted to continue doing that, they felt that more contributors were needed. Thus it was decided to radically lower the barriers for new contributors by publishing the source code to the engine, allowing everyone to freely modify the source code and game content, and discuss the future directions in an open forum. It was also decided to drop a lot of the "old" game content and drop the backwards compatibility requirement. The goal is to encourage new people to participate, while allowing the Clonk Rage developers to continue working on at least some of the code they produced and are familiar with. There are also plans to continue the clonk.de league for registered players for those who want to play in a supervised league.

38
debian/copyright vendored
View File

@ -1,38 +0,0 @@
This package was debianized by Sebastian Rühl <sebastian.ruehl@mni.fh-giessen.de> on
Sun, 31 May 2009 21:15:05 +0200.
It was downloaded from http://wiki.openclonk.org/
Upstream Author(s):
redwolf Design
Copyright:
redwolf Design
License:
This package is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this package; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
On Debian systems, the complete text of the GNU Lesser General
Public License can be found in `/usr/share/common-licenses/LGPL'.
The Debian packaging is copyright 2009, Sebastian Rühl <sebastian.ruehl@mni.fh-giessen.de> and
is licensed under the GPL, see `/usr/share/common-licenses/GPL'.
# Please also look if there are files or directories which have a
# different copyright/license attached and list them here.

2
debian/dirs vendored
View File

@ -1,2 +0,0 @@
usr/bin
usr/sbin

2
debian/docs vendored
View File

@ -1,2 +0,0 @@
CMakeLists.txt
README.linux.txt

View File

@ -1,11 +0,0 @@
[Desktop Entry]
Version=1.0
Name=Open Clonk
GenericName=Game
Comment=OpenClonk is mainly about mining, settling and fast-paced melees.
Exec=clonk
Icon=c4x
StartupNotify=true
Terminal=false
Type=Application
Categories=GNOME;GTK;Game;JumpNRun;

View File

@ -1,2 +0,0 @@
src/res/c4x.xpm usr/share/pixmaps
debian/openclonk.desktop usr/share/applications

100
debian/rules vendored
View File

@ -1,100 +0,0 @@
#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
builddir/Makefile:
dh_testdir
# Add here commands to configure the package.
#autoreconf -i && ./configure --with-gtk --without-automatic-update
cmake . -DWITH_AUTOMATIC_UPDATE=0
build: build-stamp
build-stamp: builddir/Makefile
dh_testdir
# Add here commands to compile the package.
$(MAKE)
#docbook-to-man debian/openclonk.sgml > openclonk.1
touch $@
clean:
dh_testdir
dh_testroot
rm -f build-stamp configure-stamp
# Add here commands to clean up after the build process.
[ ! -f Makefile ] || $(MAKE) clean
dh_clean
install: build
dh_testdir
dh_testroot
dh_prep
dh_installdirs
# Add here commands to install the package into debian/openclonk.
#Make the dir where game data is stored
mkdir -p "$(CURDIR)"/debian/openclonk/usr/share/games/clonk
cp -r "$(CURDIR)"/planet/* "$(CURDIR)"/debian/openclonk/usr/share/games/clonk/
# Make the link
mkdir -p "$(CURDIR)"/debian/openclonk/usr/games
cp -a "$(CURDIR)"/clonk "$(CURDIR)"/debian/openclonk/usr/games/clonk.bin
ln -s /usr/games/clonk.bin "$(CURDIR)"/debian/openclonk/usr/share/games/clonk/clonk
echo '#!/bin/sh\n/usr/share/games/clonk/clonk $$@' > "$(CURDIR)"/debian/openclonk/usr/games/clonk
chmod a+x "$(CURDIR)"/debian/openclonk/usr/games/clonk
$(MAKE) c4group
./c4group "$(CURDIR)"/debian/openclonk/usr/share/games/clonk/* -p
# Build architecture-independent files here.
binary-indep: install
# We have nothing to do by default.
# Build architecture-dependent files here.
binary-arch: install
dh_testdir
dh_testroot
dh_installchangelogs
# dh_installdocs
dh_installexamples
dh_install
# dh_installmenu
# dh_installdebconf
# dh_installlogrotate
# dh_installemacsen
# dh_installpam
# dh_installmime
# dh_python
# dh_installinit
# dh_installcron
# dh_installinfo
dh_installman
dh_link
dh_strip
dh_compress
dh_fixperms
# dh_perl
# dh_makeshlibs
dh_installdeb
dh_shlibdeps
dh_gencontrol
dh_md5sums
dh_builddeb
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install

33
docs/Makefile 100644 → 100755
View File

@ -49,7 +49,7 @@ all: $(online-dirs) $(sdk-de-dirs) $(online-extra-files) $(online-sdk-files)
online-en: $(addprefix online/en/, $(sdk-dirs) images $(htmlfiles) sdk/content.html $(extra-files))
chm: $(chm-dirs) chm/en/Developer.chm chm/de/Entwickler.chm
chm: $(chm-dirs) $(sdk-de-dirs) chm/en/Developer.chm chm/de/Entwickler.chm
install: all
$(MKDIR_P) $(prefix)
@ -62,13 +62,16 @@ clean:
rm -f *.mo Entwickler.chm Developer.chm doku.pot
rm -rf online sdk-de chm
chm/en/Output.hhp chm/en/Output.hhk chm/de/Output.hhp chm/de/Output.hhk: sdk/content.xml
#update timestamp
touch $@
sdk/content.xml: $(xmlfiles) chm/en/. chm/de/. build_chm_files.py experimental.py \
sdk/content.xml.in Template.hhk Template.de.hhk Template.hhp Template.de.hhp de.mo
@echo generate chm files
@python build_chm_files.py $(xmlfiles)
sdk/content.xml: sdk/content.xml.in $(xmlfiles) build_contents.py experimental.py
@echo generate $@
@python build_contents.py $(xmlfiles)
chm/en/Output.hhp: $(xmlfiles) chm/en/. build_hhp.py Template.hhp
@echo generate $@
@python build_hhp.py $@ Template.hhp $(xmlfiles)
chm/de/Output.hhp: $(xmlfiles) chm/de/. build_hhp.py Template.de.hhp
@echo generate $@
@python build_hhp.py $@ Template.de.hhp $(xmlfiles)
$(sdk-de-dirs) $(online-dirs) $(chm-dirs):
mkdir -p $@
@ -79,7 +82,8 @@ doku.pot: $(xmlfiles) extra-strings.xml sdk/content.xml.in xml2po.py clonk.py
%.po: doku.pot
@echo update $@
@msgmerge --no-wrap -w 1 -U $@ $<
# @msgmerge --no-wrap -w 1 -U $@ $<
@msgmerge --no-wrap -w 1 -o $@ $@ $<
%.mo: %.po
@echo compile $@
@ -91,10 +95,10 @@ sdk-de/%.xml: sdk/%.xml de.mo xml2po.py clonk.py
define run-xslt
@echo generate $@
@xsltproc -o $@ --param webnotes $(webnotes) --param fileext "'.html'" $(XSLTFLAGS) $(stylesheet) $<
@xsltproc -o $@ --param chm $(chm) --param fileext "'.html'" $(XSLTFLAGS) $(stylesheet) $<
endef
online/%: webnotes=1
chm/%: webnotes=0
online/%: chm=0
chm/%: chm=1
online/en/sdk/%.html: sdk/%.xml $(stylesheet) ; $(run-xslt)
online/de/sdk/%.html: sdk-de/%.xml $(stylesheet) ; $(run-xslt)
chm/en/sdk/%.html: sdk/%.xml $(stylesheet) ; $(run-xslt)
@ -103,6 +107,10 @@ chm/en/Output.hhc: stylesheet=hhc.xsl
chm/de/Output.hhc: stylesheet=hhc.xsl
chm/en/Output.hhc: sdk/content.xml hhc.xsl ; $(run-xslt)
chm/de/Output.hhc: sdk-de/content.xml hhc.xsl ; $(run-xslt)
chm/en/Output.hhk: stylesheet=hhk.xsl
chm/de/Output.hhk: stylesheet=hhk.xsl
chm/en/Output.hhk: sdk/content.xml hhk.xsl ; $(run-xslt)
chm/de/Output.hhk: sdk-de/content.xml hhk.xsl ; $(run-xslt)
$(filter online/en/%, $(online-extra-files)): online/en/%: %
$(CP) $< $@
@ -117,3 +125,4 @@ chm/en/Developer.chm: chm/en/Output.hhp chm/en/Output.hhk chm/en/Output.hhc $(ad
"$(HHC)" $<
chm/de/Entwickler.chm: chm/de/Output.hhp chm/de/Output.hhk chm/de/Output.hhc $(addprefix chm/de/, $(sdk-dirs) images $(htmlfiles) $(extra-files-chm))
"$(HHC)" $<

View File

@ -1,220 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">
<!-- Sitemap 1.0 -->
</HEAD><BODY>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="#appendto">
<param name="Name" value="#appendto">
<param name="Local" value="sdk\script\AppendTo.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="#strict">
<param name="Name" value="#strict">
<param name="Local" value="sdk\script\Strict.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="ActMap.txt">
<param name="Name" value="ActMap.txt">
<param name="Local" value="sdk\definition\actmap.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Benannte Variablen">
<param name="Name" value="Benannte Variablen">
<param name="Local" value="sdk\script\NamedVar.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="break">
<param name="Name" value="Break / Continue">
<param name="Local" value="sdk\script\BreakContinue.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Category">
<param name="Name" value="Objektkategorien">
<param name="Local" value="sdk\definition\category.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="CNAT">
<param name="Name" value="CNAT - Contact Attachment">
<param name="Local" value="sdk\definition\cnat.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="continue">
<param name="Name" value="Break / Continue">
<param name="Local" value="sdk\script\BreakContinue.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="DefCore.txt">
<param name="Name" value="DefCore.txt">
<param name="Local" value="sdk\definition\defcore.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Direktiven">
<param name="Name" value="#appendto">
<param name="Local" value="sdk\script\AppendTo.html">
<param name="Name" value="#strict">
<param name="Local" value="sdk\script\Strict.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Entwicklermodus">
<param name="Name" value="Clonk Entwicklermodus">
<param name="Local" value="sdk\index.html">
<param name="Name" value="Die Engine im Entwicklermodus">
<param name="Local" value="sdk\console.html">
<param name="Name" value="Kommandozeilenparameter">
<param name="Local" value="sdk\cmdline.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="for">
<param name="Name" value="Die For-Schleife">
<param name="Local" value="sdk\script\for.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="landscape.txt">
<param name="Name" value="Der dynamische Kartengenerator">
<param name="Local" value="sdk\scenario\MapCreatorS2.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Material">
<param name="Name" value="Materialdefinitionen">
<param name="Local" value="sdk\material\index.html">
<param name="Name" value="Materialdefinitionen (C4M)">
<param name="Local" value="sdk\material\c4m.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Landschaftsgenerator">
<param name="Name" value="Der dynamische Kartengenerator">
<param name="Local" value="sdk\scenario\MapCreatorS2.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Kartengenerator">
<param name="Name" value="Der dynamische Kartengenerator">
<param name="Local" value="sdk\scenario\MapCreatorS2.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Objektdefinitionen">
<param name="Name" value="Objektdefinitionen">
<param name="Local" value="sdk\definition\index.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Objektkategorien">
<param name="Name" value="Objektkategorien">
<param name="Local" value="sdk\definition\category.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Objektscripte">
<param name="Name" value="Objektscripte">
<param name="Local" value="sdk\definition\script.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="OCF">
<param name="Name" value="Object character flags">
<param name="Local" value="sdk\definition\ocf.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Operatoren">
<param name="Name" value="Operatoren">
<param name="Local" value="sdk\script\operatoren.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Partikel">
<param name="Name" value="Partikel">
<param name="Local" value="sdk\particle\index.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Procedure (ActMap)">
<param name="Name" value="Prozeduren">
<param name="Local" value="sdk\definition\procedures.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="scenario.txt">
<param name="Name" value="Scenario.txt">
<param name="Local" value="sdk\scenario\scenario.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Script">
<param name="Name" value="Szenarioscripte">
<param name="Local" value="sdk\scenario\script.html">
<param name="Name" value="Objektscripte">
<param name="Local" value="sdk\definition\script.html">
<param name="Name" value="C4Script Dokumentation">
<param name="Local" value="sdk\script\index.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Spieldaten">
<param name="Name" value="Spieldatenreferenz">
<param name="Local" value="sdk\files.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Szenarien">
<param name="Name" value="Szenarien">
<param name="Local" value="sdk\scenario\index.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Szenarioscripte">
<param name="Name" value="Szenarioscripte">
<param name="Local" value="sdk\scenario\script.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Typpr&uuml;fung">
<param name="Name" value="Datentypen">
<param name="Local" value="sdk\script\Typechecks.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Variablen">
<param name="Name" value="Benannte Variablen">
<param name="Local" value="sdk\script\NamedVar.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Vertices">
<param name="Name" value="Vertices">
<param name="Local" value="sdk\definition\vertices.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Effekte">
<param name="Name" value="Effekte">
<param name="Local" value="sdk\script\Effects.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Scriptspieler">
<param name="Name" value="Scriptspieler">
<param name="Local" value="sdk\script\ScriptPlayers.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="++"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="--"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="~"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="!"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="+"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="-"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="*"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="/"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="%"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="-"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="<<"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value=">>"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="<"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="<="> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value=">"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value=">="> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="=="> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="!="> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="S="> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="ne"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="eq"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="&amp;"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="^"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="|"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="&amp;&amp;"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="||"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="*="> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="/="> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="%="> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="+="> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="-="> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="="> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
</UL>
</BODY></HTML>

21
docs/Template.de.hhp 100644 → 100755
View File

@ -11,7 +11,6 @@ Title=Clonk Entwicklermodus
[FILES]
images\cpem.gif
images\icon_em_brush.gif
images\icon_em_dynamic.gif
images\icon_em_edit.gif
@ -24,16 +23,16 @@ images\icon_em_rect.gif
images\icon_em_sky.gif
images\icon_em_static.gif
images\icon_em_tunnel.gif
images\icon_image.gif
images\icon_material.gif
images\icon_music.gif
images\icon_object_definition.gif
images\icon_player.gif
images\icon_scenario.gif
images\icon_scenario_folder.gif
images\icon_sound.gif
images\icon_system.gif
images\icon_text.gif
images\icon_image.png
images\icon_material.png
images\icon_music.png
images\icon_object_definition.png
images\icon_player.png
images\icon_scenario.png
images\icon_scenario_folder.png
images\icon_sound.png
images\icon_system.png
images\icon_text.png
images\icons_em_play.gif
[INFOTYPES]

View File

@ -1,220 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">
<!-- Sitemap 1.0 -->
</HEAD><BODY>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="#appendto">
<param name="Name" value="#appendto">
<param name="Local" value="sdk\script\AppendTo.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="#strict">
<param name="Name" value="#strict">
<param name="Local" value="sdk\script\Strict.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="ActMap.txt">
<param name="Name" value="ActMap.txt">
<param name="Local" value="sdk\definition\actmap.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Named Variables">
<param name="Name" value="Named Variables">
<param name="Local" value="sdk\script\NamedVar.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="break">
<param name="Name" value="Break / Continue">
<param name="Local" value="sdk\script\BreakContinue.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Category">
<param name="Name" value="Objektkategorien">
<param name="Local" value="sdk\definition\category.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="CNAT">
<param name="Name" value="CNAT - Contact Attachment">
<param name="Local" value="sdk\definition\cnat.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="continue">
<param name="Name" value="Break / Continue">
<param name="Local" value="sdk\script\BreakContinue.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="DefCore.txt">
<param name="Name" value="DefCore.txt">
<param name="Local" value="sdk\definition\defcore.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Directives">
<param name="Name" value="#appendto">
<param name="Local" value="sdk\script\AppendTo.html">
<param name="Name" value="#strict">
<param name="Local" value="sdk\script\Strict.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Developer Mode">
<param name="Name" value="Clonk Developer Mode">
<param name="Local" value="sdk\index.html">
<param name="Name" value="The Engine in Developer Mode">
<param name="Local" value="sdk\console.html">
<param name="Name" value="Command line options">
<param name="Local" value="sdk\cmdline.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="for">
<param name="Name" value="The for loop">
<param name="Local" value="sdk\script\for.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="landscape.txt">
<param name="Name" value="Dynamic Map Generator">
<param name="Local" value="sdk\scenario\MapCreatorS2.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Materials">
<param name="Name" value="Material Definitions">
<param name="Local" value="sdk\material\index.html">
<param name="Name" value="Material Definitions (C4M)">
<param name="Local" value="sdk\material\c4m.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Map Generator">
<param name="Name" value="Dynamic Map Generator">
<param name="Local" value="sdk\scenario\MapCreatorS2.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Map Generator">
<param name="Name" value="Dynamic Map Generator">
<param name="Local" value="sdk\scenario\MapCreatorS2.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Object Definitions">
<param name="Name" value="Definitions">
<param name="Local" value="sdk\definition\index.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Object Categories">
<param name="Name" value="Object Categories">
<param name="Local" value="sdk\definition\category.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Objekt Scripts">
<param name="Name" value="Objekt Scripts">
<param name="Local" value="sdk\definition\script.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="OCF">
<param name="Name" value="Object Character Flags">
<param name="Local" value="sdk\definition\ocf.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Operators">
<param name="Name" value="Operators">
<param name="Local" value="sdk\script\operatoren.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Particles">
<param name="Name" value="Particles">
<param name="Local" value="sdk\particle\index.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Procedures (ActMap)">
<param name="Name" value="Procedures">
<param name="Local" value="sdk\definition\procedures.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="scenario.txt">
<param name="Name" value="Scenario.txt">
<param name="Local" value="sdk\scenario\scenario.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Script">
<param name="Name" value="Scenario Scripts">
<param name="Local" value="sdk\scenario\script.html">
<param name="Name" value="Object Scripts">
<param name="Local" value="sdk\definition\script.html">
<param name="Name" value="C4Script Documentation">
<param name="Local" value="sdk\script\index.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Game Data">
<param name="Name" value="Game Data">
<param name="Local" value="sdk\files.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Scenarios">
<param name="Name" value="Scenarios">
<param name="Local" value="sdk\scenario\index.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Scenario Scripts">
<param name="Name" value="Scenario Scripts">
<param name="Local" value="sdk\scenario\script.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Typechecking">
<param name="Name" value="Data Types">
<param name="Local" value="sdk\script\Typechecks.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Variables">
<param name="Name" value="Named Variables">
<param name="Local" value="sdk\script\NamedVar.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Vertices">
<param name="Name" value="Vertices">
<param name="Local" value="sdk\definition\vertices.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Effects">
<param name="Name" value="Effects">
<param name="Local" value="sdk\script\Effects.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Script players">
<param name="Name" value="Script players">
<param name="Local" value="sdk\script\ScriptPlayers.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="++"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="--"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="~"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="!"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="+"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="-"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="*"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="/"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="%"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="-"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="<<"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value=">>"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="<"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="<="> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value=">"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value=">="> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="=="> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="!="> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="S="> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="ne"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="eq"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="&amp;"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="^"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="|"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="&amp;&amp;"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="||"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="*="> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="/="> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="%="> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="+="> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="-="> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="="> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
</UL>
</BODY></HTML>

21
docs/Template.hhp 100644 → 100755
View File

@ -11,7 +11,6 @@ Title=Clonk Developer Mode
[FILES]
images\cpem.gif
images\icon_em_brush.gif
images\icon_em_dynamic.gif
images\icon_em_edit.gif
@ -24,16 +23,16 @@ images\icon_em_rect.gif
images\icon_em_sky.gif
images\icon_em_static.gif
images\icon_em_tunnel.gif
images\icon_image.gif
images\icon_material.gif
images\icon_music.gif
images\icon_object_definition.gif
images\icon_player.gif
images\icon_scenario.gif
images\icon_scenario_folder.gif
images\icon_sound.gif
images\icon_system.gif
images\icon_text.gif
images\icon_image.png
images\icon_material.png
images\icon_music.png
images\icon_object_definition.png
images\icon_player.png
images\icon_scenario.png
images\icon_scenario_folder.png
images\icon_sound.png
images\icon_system.png
images\icon_text.png
images\icons_em_play.gif
[INFOTYPES]

40
docs/bitmasks.js 100755
View File

@ -0,0 +1,40 @@
var cat;
function CheckCharacters(text,allowed) {
for (var i = 0; i < text.length; ++i) {
if(allowed.indexOf(text.charAt(i))<0 ) {
return false;
}
}
return true;
}
function Calc() {
var input = document.getElementById("input").value*1;
if(CheckCharacters(input,"0123456789")) cat=input;
for(var i=0;i<BIT_COUNT;++i)
Mark(i);
}
function Mark(bit) {
if((1<<bit) & cat) {
if(!(bit%2))
document.getElementById(PREFIX+bit).className="mark";
else
document.getElementById(PREFIX+bit).className="darkmark";
}
else {
if(!(bit%2))
document.getElementById(PREFIX+bit).className="";
else
document.getElementById(PREFIX+bit).className="dark";
}
}
function Switch(bit) {
cat = cat ^ (1 << bit);
Mark(bit);
document.getElementById("input").value = cat;
}

View File

@ -1,268 +0,0 @@
#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-
import sys
import xml.sax
import experimental
import gettext
class ClonkEntityResolver(xml.sax.handler.EntityResolver):
def resolveEntity(self, publicId, systemId):
s = 'file:sdk/script/fn/' + systemId
return s
def setrelpath(self, path):
dirlist = path.split('/')
self.relpath = ''
for d in dirlist[1:]:
self.relpath = self.relpath + '../'
class Clonkparser(xml.sax.handler.ContentHandler):
def __init__(self):
self.cats = { }
self.subcats = { }
self.versions = { }
self.extversions = { }
self.files = { }
def setfilename(self, filename):
self.filename = filename
self.htmlfilename = filename[:-3] + 'html'
def _setcurcat(self, curcat):
self.curcat = curcat
if self.curcat not in self.cats:
self.cats[self.curcat] = { }
self.subcats[self.curcat] = { }
def startDocument(self):
self.cur = ""
self.curcat = ""
self.title = ""
self.state = None
def startElement(self, name, attr):
# subcat inside category?
if self.state == 'category' and self.cur != "":
self._setcurcat(self.cur)
self.cur = ""
self.state = name
def characters(self, content):
if self.state in ['category', 'subcat', 'version', 'extversion', 'title']:
self.cur += content
def endElement(self, name):
self.cur = self.cur.strip()
if name == 'category':
if self.cur != "":
self._setcurcat(self.cur)
if self.title == "":
print "WARNING: category before title in " + self.filename
self.cats[self.curcat][self.title] = self.htmlfilename
else:
print "WARNING: possibly broken category in " + self.filename
elif name == 'subcat':
if self.curcat != "" and self.cur != "":
self.cats[self.curcat].pop(self.title, None)
if self.cur not in self.subcats[self.curcat]:
self.subcats[self.curcat][self.cur] = { }
self.subcats[self.curcat][self.cur][self.title] = self.htmlfilename
else:
print "WARNING: possibly broken subcategory in " + self.filename
elif name == 'version':
self.cur = self.cur.upper()
if self.cur != "":
if self.cur not in self.extversions:
self.extversions[self.cur] = { }
if self.cur not in self.versions:
self.versions[self.cur] = { }
self.versions[self.cur][self.title] = self.htmlfilename
elif name == 'extversion':
self.cur = self.cur.upper()
if self.cur != "":
if self.cur not in self.extversions:
self.extversions[self.cur] = { }
if self.cur not in self.versions:
self.versions[self.cur] = { }
self.extversions[self.cur][self.title] = self.htmlfilename
elif name == 'title':
self.title = self.cur
self.files[self.title] = self.htmlfilename
self.cur = ""
self.state = None
def printcontents1(f, _):
f.write('\n <UL>\n')
cats = parser.cats.keys()
cats.sort()
for cat in cats:
f.write(' <LI> <OBJECT type="text/sitemap">\n' +
' <param name="Name" value="' + _(cat) + '">\n' +
' </OBJECT>\n' +
' <UL>\n')
subcats = parser.subcats[cat].keys()
subcats.sort()
for subcat in subcats:
f.write(' <LI> <OBJECT type="text/sitemap">\n' +
' <param name="Name" value="' + _(subcat) + '">\n' +
' </OBJECT>\n' +
' <UL>\n')
titles = parser.subcats[cat][subcat].keys()
titles.sort()
for title in titles:
f.write(' <LI> <OBJECT type="text/sitemap">\n' +
' <param name="Name" value="' + _(title) + '">\n' +
' <param name="Local" value="' +
parser.subcats[cat][subcat][title] + '#' + _(title) + '">\n' +
' </OBJECT>\n')
f.write(' </UL>\n')
titles = parser.cats[cat].keys()
titles.sort()
for title in titles:
f.write(' <LI> <OBJECT type="text/sitemap">\n' +
' <param name="Name" value="' + _(title) + '">\n' +
' <param name="Local" value="' +
parser.cats[cat][title] + '#' + _(title) + '">\n' +
' </OBJECT>\n')
f.write(' </UL>\n')
f.write(' </UL>\n')
def printcontents2(f, _):
f.write(' <UL>\n')
versions = parser.versions.keys()
versions.sort()
for version in versions:
f.write(' <LI> <OBJECT type="text/sitemap">\n' +
' <param name="Name" value="' + _(version) + '">\n' +
' </OBJECT>\n' +
' <UL>\n')
titles = parser.versions[version].keys()
titles.sort()
for title in titles:
f.write(' <LI> <OBJECT type="text/sitemap">\n' +
' <param name="Name" value="' + _(title) + '">\n' +
' <param name="Local" value="' +
parser.versions[version][title] + '#' + _(title) + '">\n' +
' </OBJECT>\n')
titles = parser.extversions[version].keys()
titles.sort()
for title in titles:
f.write(' <LI> <OBJECT type="text/sitemap">\n' +
' <param name="Name" value="' + _(title) + ' (' + _('erweitert') + ')">\n' +
' <param name="Local" value="' +
parser.extversions[version][title] + '#' + _(title) + '">\n' +
' </OBJECT>\n')
f.write(' </UL>\n')
f.write(' </UL>\n')
def printcontents3(f, _):
ihack = [1000]
def folder(name):
i = str(ihack[0])
f.write("<li><img id='tgl" + i + "' class='collapseimg' src='../images/bullet_folder.gif' alt='-' onclick='tb(" + i + ")' ondblclick='ta(" + i + ")' />\n" +
name + "\n" +
"<ul id='brn" + i + "' class='invisi'>\n")
ihack[0] = ihack[0] + 1
def sheet(url, name):
f.write("<li><img src='../images/bullet_sheet.gif' alt='' />\n" +
"<emlink href='" + url[4:] + "'>" + name + "</emlink></li>\n")
def sheetE(url, name):
f.write("<li><img src='../images/bullet_sheet.gif' alt='' />\n" +
"<emlink href='" + url[4:] + "'>" + name + "</emlink> (erweitert)</li>\n")
folder("Funktionen nach Kategorie")
cats = parser.cats.keys()
cats.sort()
for cat in cats:
folder(_(cat))
subcats = parser.subcats[cat].keys()
subcats.sort()
for subcat in subcats:
folder(_(subcat))
titles = parser.subcats[cat][subcat].keys()
titles.sort()
for title in titles:
sheet(parser.subcats[cat][subcat][title] + '#' + _(title), _(title))
f.write('</ul></li>\n')
titles = parser.cats[cat].keys()
titles.sort()
for title in titles:
sheet(parser.cats[cat][title] + '#' + _(title), _(title))
f.write('</ul></li>\n')
f.write('</ul></li>\n')
folder("Funktionen nach Version")
versions = parser.versions.keys()
versions.sort()
for version in versions:
folder(_(version))
titles = parser.versions[version].keys()
titles.sort()
for title in titles:
sheet(parser.versions[version][title] + '#' + _(title), _(title))
titles = parser.extversions[version].keys()
titles.sort()
for title in titles:
sheetE(parser.extversions[version][title] + '#' + _(title), _(title))
f.write('</ul></li>\n')
f.write('</ul></li>\n')
parser = Clonkparser()
reader = xml.sax.make_parser()
reader.setContentHandler(parser)
reader.setEntityResolver(ClonkEntityResolver())
for filename in sys.argv[1:]:
reader.getEntityResolver().setrelpath(filename)
parser.setfilename(filename)
reader.parse(filename)
if 0:
reader.setContentHandler(experimental.ExperimentParser())
for filename in sys.argv[1:]:
reader.getEntityResolver().setrelpath(filename)
reader.parse(filename)
experimental.Result()
mofile = open("de.mo", "rb")
gt = gettext.GNUTranslations(mofile)
#_ = lambda s: s.encode('iso-8859-1')
#for f, fin in ((file("chm/de/Output.hhc", "w"), file("Template.hhc", "r")),
# (file("chm/en/Output.hhc", "w"), file("Template.en.hhc", "r"))):
# for line in fin:
# if line.find("<!-- Insert Functions here 1-->") != -1:
# printcontents1(f, _)
# elif line.find("<!-- Insert Functions here 2-->") != -1:
# printcontents2(f, _)
# else:
# f.write(line)
# f.close()
# fin.close()
# _ = lambda s: gt.ugettext(s).encode('iso-8859-1')
_ = lambda s: s.encode('utf-8')
f, fin = (file("sdk/content.xml", "w"), file("sdk/content.xml.in", "r"))
for line in fin:
if line.find("<!-- Insert Functions here -->") != -1:
printcontents3(f, _)
else:
f.write(line)
f.close()
fin.close()
for f, fin in ((file("chm/en/Output.hhp", "w"), file("Template.hhp", "r")),
(file("chm/de/Output.hhp", "w"), file("Template.de.hhp", "r"))):
for line in fin:
if line.find("[INFOTYPES]") != -1:
for filename in sys.argv[1:]:
f.write(filename[:-3].replace("/", "\\") + 'html\r\n')
f.write(line)
f.close()
fin.close()
_ = lambda s: s.encode('iso-8859-1')
for f, fin in ((file("chm/en/Output.hhk", "w"), file("Template.hhk", "r")),
(file("chm/de/Output.hhk", "w"), file("Template.de.hhk", "r"))):
for line in fin:
if line.find("</UL>") != -1:
for title, filename in parser.files.iteritems():
f.write(" <LI> <OBJECT type=\"text/sitemap\">\n" +
" <param name=\"Name\" value=\"" + _(title) + "\">\n" +
" <param name=\"Local\" value=\"" + filename + "#" + _(title) + "\">\n" +
" </OBJECT>\n")
f.write(line)
f.close()
fin.close()
_ = lambda s: gt.ugettext(s).encode('iso-8859-1')

View File

@ -0,0 +1,198 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import xml.sax
import experimental
class ClonkEntityResolver(xml.sax.handler.EntityResolver):
def resolveEntity(self, publicId, systemId):
s = 'file:sdk/script/fn/' + systemId
return s
def setrelpath(self, path):
dirlist = path.split('/')
self.relpath = ''
for d in dirlist[1:]:
self.relpath = self.relpath + '../'
class Clonkparser(xml.sax.handler.ContentHandler):
def __init__(self):
self.cats = { }
self.subcats = { }
self.versions = { }
self.extversions = { }
self.funcs = { }
self.files = { }
def setfilename(self, filename):
self.filename = filename
self.htmlfilename = filename[:-3] + 'html'
def _setcurcat(self, curcat):
self.curcat = curcat
if self.curcat not in self.cats:
self.cats[self.curcat] = { }
self.subcats[self.curcat] = { }
def _addToIndex(self, title, href):
if not title in self.files:
self.files[title] = { self.title: href }
else:
if self.title in self.files[title]:
print "WARNING: duplicate " + title + " in " + href + " and " + self.files[title][self.title]
self.files[title][self.title] = href
def startDocument(self):
self.cur = ""
self.curcat = ""
self.title = ""
self.func = 0
self.state = None
self.id = None
self.idTitle = None
self.idStackdepth = 0
self.Stackdepth = 0
def startElement(self, name, attr):
# subcat inside category?
if self.state == 'category' and self.cur != "":
self._setcurcat(self.cur)
# is func
if name == 'funcs':
self.func = 1
self.cur = unicode("")
self.state = name
self.Stackdepth = self.Stackdepth + 1
if 'id' in attr:
self.id = attr["id"]
self.idTitle = unicode("")
self.idStackdepth = self.Stackdepth
def characters(self, content):
if self.state in ['category', 'subcat', 'version', 'extversion', 'title', 'funcs']:
self.cur += content
if self.id:
self.idTitle += content
def endElement(self, name):
self.cur = self.cur.strip()
if name == 'category':
if self.cur != "":
self._setcurcat(self.cur)
if self.title == "":
print "WARNING: category before title in " + self.filename
self.cats[self.curcat][self.title] = self.htmlfilename
else:
print "WARNING: possibly broken category in " + self.filename
elif name == 'subcat':
if self.curcat != "" and self.cur != "":
self.cats[self.curcat].pop(self.title, None)
if self.cur not in self.subcats[self.curcat]:
self.subcats[self.curcat][self.cur] = { }
self.subcats[self.curcat][self.cur][self.title] = self.htmlfilename
else:
print "WARNING: possibly broken subcategory in " + self.filename
elif name == 'version':
self.cur = self.cur.upper()
if self.cur != "":
if self.cur not in self.extversions:
self.extversions[self.cur] = { }
if self.cur not in self.versions:
self.versions[self.cur] = { }
self.versions[self.cur][self.title] = self.htmlfilename
elif name == 'extversion':
self.cur = self.cur.upper()
if self.cur != "":
if self.cur not in self.extversions:
self.extversions[self.cur] = { }
if self.cur not in self.versions:
self.versions[self.cur] = { }
self.extversions[self.cur][self.title] = self.htmlfilename
elif name == 'funcs':
self.func = 0
elif name == 'title':
self.title = self.cur
if self.func == 1:
self._addToIndex(self.title, self.htmlfilename + '#' + self.title.encode('utf-8'))
self.funcs[self.title] = self.htmlfilename
else:
self._addToIndex(self.title, self.htmlfilename)
self.Stackdepth = self.Stackdepth - 1
if self.id and (self.idStackdepth > self.Stackdepth or name == 'col' or name == 'literal_col'):
title = self.idTitle.strip()
href = self.htmlfilename + '#' + self.id.encode('utf-8')
if title == "":
print "WARNING: id " + self.id.encode('utf-8') + " without text content in " + self.filename
else:
self._addToIndex(title, href)
self.id = None
self.idTitle = None
self.cur = ""
self.state = None
def printfunctions(f, _):
def folder(name):
f.write("<li>" + name + "\n<ul>\n")
def sheet(url, name):
f.write("<li><emlink href='" + url[4:] + "'>" + name + "</emlink></li>\n")
def sheetE(url, name):
f.write("<li><emlink href='" + url[4:] + "'>" + name + "</emlink> (extended)</li>\n")
folder("Functions by Category")
cats = parser.cats.keys()
cats.sort()
for cat in cats:
folder(_(cat))
subcats = parser.subcats[cat].keys()
subcats.sort()
for subcat in subcats:
folder(_(subcat))
titles = parser.subcats[cat][subcat].keys()
titles.sort()
for title in titles:
sheet(parser.subcats[cat][subcat][title] + '#' + _(title), _(title))
f.write('</ul></li>\n')
titles = parser.cats[cat].keys()
titles.sort()
for title in titles:
sheet(parser.cats[cat][title] + '#' + _(title), _(title))
f.write('</ul></li>\n')
f.write('</ul></li>\n')
def printindex(f, _):
def folder(name):
f.write("<li class='index'>" + name + "\n<ul>\n")
def sheet(url, name):
f.write("<li><emlink href='" + url[4:] + "'>" + name.replace('&', '&amp;').replace('<', '&lt;').replace('>', '&gt;') + "</emlink></li>\n")
folder("Index")
titles = parser.files.keys()
titles.sort(key=unicode.lower)
for title in titles:
ctitles = parser.files[title].keys()
ctitles.sort(key=unicode.lower)
if len(ctitles) == 1:
sheet(parser.files[title][ctitles[0]], _(title))
else:
for ctitle in ctitles:
sheet(parser.files[title][ctitle], _(title + " (" + ctitle + ")"))
f.write('</ul></li>\n')
parser = Clonkparser()
reader = xml.sax.make_parser()
reader.setContentHandler(parser)
reader.setEntityResolver(ClonkEntityResolver())
for filename in sys.argv[1:]:
reader.getEntityResolver().setrelpath(filename)
parser.setfilename(filename)
reader.parse(filename)
if 0:
reader.setContentHandler(experimental.ExperimentParser())
for filename in sys.argv[1:]:
reader.getEntityResolver().setrelpath(filename)
reader.parse(filename)
experimental.Result()
_ = lambda s: s.encode('utf-8')
f, fin = (file("sdk/content.xml", "w"), file("sdk/content.xml.in", "r"))
for line in fin:
if line.find("<!-- Insert Functions here -->") != -1:
printfunctions(f, _)
elif line.find("<!-- Insert Index here -->") != -1:
printindex(f, _)
else:
f.write(line)
f.close()
fin.close()

13
docs/build_hhp.py 100755
View File

@ -0,0 +1,13 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
f = file(sys.argv[1], "w")
fin = file(sys.argv[2], "r")
for line in fin:
if line.find("[INFOTYPES]") != -1:
for filename in sys.argv[3:]:
f.write(filename[:-3].replace("/", "\\") + 'html\r\n')
f.write(line)
f.close()
fin.close()

8
docs/clonk.dtd 100644 → 100755
View File

@ -2,8 +2,9 @@
<!ENTITY % text "a | img | emlink | funclink | em | code | strong">
<!ELEMENT funcs (func+, (author, date)+)>
<!ELEMENT funcs ((func | const)+, (author, date)+)>
<!ELEMENT func (title, deprecated?, category, subcat*, version, deprecated?, syntax, desc, remark*, examples?, related?)>
<!ELEMENT const (title, deprecated?, category, subcat*, version, deprecated?, syntax, desc, remark*, examples?, related?)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT category (#PCDATA)>
<!ELEMENT subcat (#PCDATA)>
@ -30,8 +31,9 @@
<!ATTLIST emlink href CDATA #REQUIRED>
<!ELEMENT author (#PCDATA)>
<!ELEMENT date (#PCDATA)>
<!ELEMENT doc (title, (h | text | dl | part | code | author | date | img)*)>
<!ELEMENT part (h | text | part | code | dl)*>
<!ELEMENT search EMPTY>
<!ELEMENT doc (title, (h | text | dl | part | code | author | date | img | search)*)>
<!ELEMENT part (h | text | part | code | dl | search)*>
<!ELEMENT br EMPTY>

2
docs/clonk.py 100644 → 100755
View File

@ -15,7 +15,7 @@ class clonkXmlMode:
return ['code']
_stuff = ['funclink', 'version', 'extversion', 'rtype', 'author', 'date',
'type', 'code', 'code/i', 'code/b', 'name', 'func/title', 'literal_col']
'type', 'code', 'code/i', 'code/b', 'name', 'func/title', 'const/title', 'literal_col']
def _delete_stuff(self, node, msg):
#print "looking at " + str(node.name)
if node and node.children:

235
docs/clonk.xsl 100644 → 100755
View File

@ -6,7 +6,7 @@
<xsl:variable name="procinst" select="processing-instruction('xml-stylesheet')" />
<xsl:param name="relpath" select="substring-after(substring-before($procinst, 'clonk.xsl'),'href=&quot;')" />
<xsl:param name="webnotes" />
<xsl:param name="chm" />
<xsl:param name="fileext" select="'.xml'" />
<xsl:template name="head">
<head>
@ -14,32 +14,14 @@
<link rel="stylesheet">
<xsl:attribute name="href"><xsl:value-of select="$relpath" />doku.css</xsl:attribute>
</link>
<xsl:if test="$webnotes">
<link rel="stylesheet" href="http://www.openclonk.org/header/header.css" />
</xsl:if>
<xsl:if test="descendant::table[bitmask]">
<script>
<xsl:attribute name="src"><xsl:value-of select="$relpath" />bitmasks.js</xsl:attribute>
</script>
<script type="text/javascript">
var BIT_COUNT = <xsl:value-of select="count(descendant::table[bitmask]/row)" />; // Anzahl der Bits
var PREFIX = "bit"; // Prefix für die numerierten IDs
</script>
</xsl:if>
<xsl:if test="$webnotes">
<!-- <xsl:processing-instruction name="php">
$g_page_language = '<xsl:choose><xsl:when test='lang("en")'>english</xsl:when><xsl:otherwise>german</xsl:otherwise></xsl:choose>';
require_once('<xsl:value-of select="$relpath" />../webnotes/core/api.html');
pwn_head();
?</xsl:processing-instruction> -->
<script type="text/javascript">
function switchLanguage() {
var loc = window.location.href;
if (loc.match(/\/en\//)) loc = loc.replace(/\/en\//, "/de/");
else loc = loc.replace(/\/de\//, "/en/");
window.location = loc;
}
</script>
<script type="text/javascript">
var BIT_COUNT = <xsl:value-of select="count(descendant::table[bitmask]/row)" />; // Anzahl der Bits
var PREFIX = "bit"; // Prefix für die numerierten IDs
</script>
</xsl:if>
</head>
</xsl:template>
@ -47,87 +29,66 @@
<xsl:template match="title" mode="head">
<title><xsl:value-of select="." /><xsl:apply-templates select="../deprecated" /> -
OpenClonk <xsl:choose>
<xsl:when test='lang("en")'>Reference</xsl:when>
<xsl:otherwise>Referenz</xsl:otherwise>
<xsl:when test='lang("de")'>Referenz</xsl:when>
<xsl:otherwise>Reference</xsl:otherwise>
</xsl:choose>
</title>
</xsl:template>
<xsl:template match="script">
<xsl:copy><xsl:apply-templates select="@*|node()" /></xsl:copy>
</xsl:template>
<xsl:template match="func" mode="head">
<xsl:template match="func|const" mode="head">
<xsl:apply-templates mode="head" />
</xsl:template>
<xsl:template match="*" mode="head" />
<xsl:template match="title" />
<xsl:template name="header">
<xsl:if test="$webnotes">
<!--<xsl:processing-instruction name="php">
<xsl:choose><xsl:when test='lang("en")'>
readfile("http://www.openclonk.org/header/header.html?p=docs");
</xsl:when><xsl:otherwise>
readfile("http://www.openclonk.org/header/header.html?p=docsde");
</xsl:otherwise></xsl:choose>
?</xsl:processing-instruction> -->
<!-- <xsl:copy-of select='document("header.xml")/*/*' /> -->
<xsl:apply-templates select="document('header.xml')" />
</xsl:if>
<xsl:apply-templates select="document('header.xml')" />
</xsl:template>
<!-- <xsl:template match="header//@action">
<xsl:attribute name="action"><xsl:value-of select="concat($relpath, current())" /></xsl:attribute>
</xsl:template>-->
<xsl:template match="header|header//*|header//@*">
<xsl:copy><xsl:apply-templates select="@*|node()" /></xsl:copy>
</xsl:template>
<xsl:template match="deprecated">
(<xsl:choose><xsl:when test='lang("en")'>deprecated</xsl:when><xsl:otherwise>veraltet</xsl:otherwise></xsl:choose>)
(<xsl:choose><xsl:when test='lang("de")'>veraltet</xsl:when><xsl:otherwise>deprecated</xsl:otherwise></xsl:choose>)
</xsl:template>
<xsl:template match="funcs">
<xsl:template match="doc|funcs">
<html>
<xsl:call-template name="head" />
<body>
<xsl:call-template name="header" />
<div id="content">
<xsl:call-template name="nav" />
<xsl:for-each select="func">
<xsl:apply-templates select="." />
</xsl:for-each>
<xsl:apply-templates select="author" />
<xsl:if test="$webnotes">
<!-- <xsl:processing-instruction name="php">
pwn_body(basename (dirname(__FILE__)) . basename(__FILE__,".html"), $_SERVER['SCRIPT_NAME']);
?</xsl:processing-instruction> -->
</xsl:if>
<xsl:call-template name="nav" />
</div>
<xsl:if test="$chm">
<xsl:attribute name="id">chm</xsl:attribute>
<xsl:apply-templates />
</xsl:if>
<xsl:if test="not($chm)">
<xsl:call-template name="header" />
<div id="iframe"><iframe>
<xsl:attribute name="src"><xsl:value-of select="$relpath" />sdk/content<xsl:value-of select="$fileext" /></xsl:attribute>
</iframe></div>
<div id="content">
<xsl:apply-templates />
</div>
</xsl:if>
</body>
</html>
</xsl:template>
<xsl:template match="doc">
<xsl:template match="toc">
<html>
<xsl:call-template name="head" />
<body>
<xsl:call-template name="header" />
<div id="content">
<xsl:call-template name="nav" />
<div id="toc">
<xsl:apply-templates />
<xsl:if test="$webnotes">
<!-- <xsl:processing-instruction name="php">
pwn_body(basename (dirname(__FILE__)) . basename(__FILE__,".html"), $_SERVER['SCRIPT_NAME']);
?</xsl:processing-instruction> -->
</xsl:if>
<xsl:call-template name="nav" />
</div>
</body>
</html>
</xsl:template>
<xsl:template match="func">
<xsl:template match="func|const">
<h1>
<xsl:attribute name="id"><xsl:value-of select="title" /></xsl:attribute>
<xsl:value-of select="title" /><xsl:apply-templates select="deprecated" />
@ -138,13 +99,16 @@
<xsl:apply-templates select="version" />
</div>
<h2><xsl:choose>
<xsl:when test='lang("en")'>Description</xsl:when>
<xsl:otherwise>Beschreibung</xsl:otherwise>
<xsl:when test='lang("de")'>Beschreibung</xsl:when>
<xsl:otherwise>Description</xsl:otherwise>
</xsl:choose></h2>
<div class="text"><xsl:apply-templates select="desc" /></div>
<xsl:apply-templates select="syntax" />
<xsl:for-each select="syntax"><xsl:for-each select="params">
<h2>Parameter<xsl:if test="count(param)!=1 and lang('en')">s</xsl:if></h2>
<h2><xsl:choose>
<xsl:when test='lang("de")'>Parameter</xsl:when>
<xsl:otherwise>Parameter<xsl:if test="count(param)!=1">s</xsl:if></xsl:otherwise>
</xsl:choose></h2>
<dl><xsl:for-each select="param">
<dt><xsl:value-of select="name" />: </dt>
<dd><div class="text">
@ -156,16 +120,16 @@
<xsl:for-each select="remark">
<xsl:if test="generate-id(.)=generate-id(../remark[1])">
<h2><xsl:choose>
<xsl:when test='lang("en")'>Remark<xsl:if test="count(../remark)!=1">s</xsl:if></xsl:when>
<xsl:otherwise>Anmerkung<xsl:if test="count(../remark)!=1">en</xsl:if></xsl:otherwise>
<xsl:when test='lang("de")'>Anmerkung<xsl:if test="count(../remark)!=1">en</xsl:if></xsl:when>
<xsl:otherwise>Remark<xsl:if test="count(../remark)!=1">s</xsl:if></xsl:otherwise>
</xsl:choose></h2>
</xsl:if>
<div class="text"><xsl:apply-templates /></div>
</xsl:for-each>
<xsl:for-each select="examples">
<h2><xsl:choose>
<xsl:when test='lang("en")'>Example<xsl:if test="count(example)!=1">s</xsl:if></xsl:when>
<xsl:otherwise>Beispiel<xsl:if test="count(example)!=1">e</xsl:if></xsl:otherwise>
<xsl:when test='lang("de")'>Beispiel<xsl:if test="count(example)!=1">e</xsl:if></xsl:when>
<xsl:otherwise>Example<xsl:if test="count(example)!=1">s</xsl:if></xsl:otherwise>
</xsl:choose></h2>
<xsl:apply-templates />
</xsl:for-each>
@ -178,7 +142,7 @@
<span class="type"><xsl:apply-templates select="rtype" /></span>
<xsl:if test="not(contains(rtype[1],'&amp;'))"><xsl:text>&#160;</xsl:text></xsl:if>
<xsl:value-of select="../title" />
(<xsl:apply-templates select="params" />);
<xsl:if test="parent::func">(<xsl:apply-templates select="params" />);</xsl:if>
</div>
</xsl:template>
@ -200,8 +164,8 @@
<xsl:template match="category">
<b><xsl:choose>
<xsl:when test='lang("en")'>Category: </xsl:when>
<xsl:otherwise>Kategorie: </xsl:otherwise>
<xsl:when test='lang("de")'>Kategorie: </xsl:when>
<xsl:otherwise>Category: </xsl:otherwise>
</xsl:choose></b>
<xsl:value-of select="." /><xsl:apply-templates select="../subcat" />
</xsl:template>
@ -212,19 +176,19 @@
<xsl:template match="version">
<b><xsl:choose>
<xsl:when test='lang("en")'>Since engine version: </xsl:when>
<xsl:otherwise>Ab Engineversion: </xsl:otherwise>
<xsl:when test='lang("de")'>Ab Engineversion: </xsl:when>
<xsl:otherwise>Since engine version: </xsl:otherwise>
</xsl:choose></b>
<xsl:apply-templates />
</xsl:template>
<xsl:template match="extversion">
<xsl:choose>
<xsl:when test='lang("en")'>
(extended in <xsl:value-of select="." />)
<xsl:when test='lang("de")'>
(erweitert ab <xsl:value-of select="." />)
</xsl:when>
<xsl:otherwise>
(erweitert ab <xsl:value-of select="." />)
(extended in <xsl:value-of select="." />)
</xsl:otherwise>
</xsl:choose>
</xsl:template>
@ -247,7 +211,7 @@
<xsl:template match="doc/h">
<h1><xsl:apply-templates select="@id|node()" /></h1>
</xsl:template>
<xsl:template match="doc/part/h">
<xsl:template match="doc/part/h|toc/h">
<h2><xsl:apply-templates select="@id|node()" /></h2>
</xsl:template>
<xsl:template match="doc/part/part/h">
@ -257,6 +221,36 @@
<h4><xsl:apply-templates select="@id|node()" /></h4>
</xsl:template>
<!-- content.xml -->
<xsl:template match="toc//li">
<xsl:copy>
<xsl:for-each select="@*">
<xsl:copy />
</xsl:for-each>
<xsl:choose><xsl:when test="ul">
<xsl:if test="ancestor::ul/ancestor::ul/ancestor::ul">
<xsl:attribute name="class">invisi</xsl:attribute>
</xsl:if>
<img class='collapseimg'>
<xsl:attribute name="src">../images/<xsl:choose>
<xsl:when test="ancestor::ul/ancestor::ul/ancestor::ul">bullet_folder.png</xsl:when>
<xsl:otherwise>bullet_folder_open.png</xsl:otherwise>
</xsl:choose></xsl:attribute>
<xsl:attribute name="alt"><xsl:choose>
<xsl:when test="ancestor::ul/ancestor::ul/ancestor::ul">+</xsl:when>
<xsl:otherwise>-</xsl:otherwise>
</xsl:choose></xsl:attribute>
<xsl:attribute name="id">tgl<xsl:number level="any" count="ul"/></xsl:attribute>
<xsl:attribute name="onclick">tb(<xsl:number level="any" count="ul"/>)</xsl:attribute>
<xsl:attribute name="ondblclick">ta(<xsl:number level="any" count="ul"/>)</xsl:attribute>
</img>
</xsl:when><xsl:otherwise>
<img src='../images/bullet_sheet.png' alt='' />
</xsl:otherwise></xsl:choose>
<xsl:apply-templates />
</xsl:copy>
</xsl:template>
<!-- copy some HTML elements literally -->
<xsl:template match="img|a|em|strong|br|code/i|code/b|ul|li">
<xsl:copy>
@ -284,8 +278,8 @@
<xsl:template match="related">
<div class="text">
<b><xsl:choose>
<xsl:when test='lang("en")'>See also: </xsl:when>
<xsl:otherwise>Siehe auch: </xsl:otherwise>
<xsl:when test='lang("de")'>Siehe auch: </xsl:when>
<xsl:otherwise>See also: </xsl:otherwise>
</xsl:choose></b>
<xsl:for-each select="*">
<xsl:sort />
@ -314,6 +308,9 @@
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:if test="/toc">
<xsl:attribute name="target">_top</xsl:attribute>
</xsl:if>
<xsl:value-of select="$text" />
</a>
</xsl:template>
@ -352,6 +349,14 @@
<caption><xsl:apply-templates select="@id|node()" /></caption>
</xsl:template>
<xsl:template match="search">
<form action="../search.php" method="get">
<input name="search" type="text"></input>
<input type="submit" name="func" value="Search"></input>
<input type="submit" name="fulltext" value="Fulltext"></input>
</form>
</xsl:template>
<xsl:template match="table/bitmask">
<xsl:value-of select="." />:
<input id="input" onKeyUp="Calc();" name="input" type="text">
@ -383,62 +388,6 @@
<xsl:template match="@colspan">
<xsl:attribute name="colspan"><xsl:value-of select="." /></xsl:attribute>
</xsl:template>
<xsl:template name="nav"><xsl:if test="$webnotes">
<ul class="nav">
<li><xsl:call-template name="link">
<xsl:with-param name="href" select="'index.html'" />
<xsl:with-param name="text"><xsl:choose>
<xsl:when test='lang("en")'>Introduction</xsl:when>
<xsl:otherwise>Einleitung</xsl:otherwise>
</xsl:choose></xsl:with-param>
</xsl:call-template></li>
<li><a>
<xsl:attribute name="href"><xsl:value-of select="$relpath" />sdk/content.html</xsl:attribute>
<xsl:choose>
<xsl:when test='lang("en")'>Contents</xsl:when>
<xsl:otherwise>Inhalt</xsl:otherwise>
</xsl:choose>
</a></li>
<li><a>
<xsl:attribute name="href"><xsl:value-of select="$relpath" />search.php</xsl:attribute>
<xsl:choose>
<xsl:when test='lang("en")'>Search</xsl:when>
<xsl:otherwise>Suche</xsl:otherwise>
</xsl:choose>
</a></li>
<li><xsl:call-template name="link">
<xsl:with-param name="href" select="'console.html'" />
<xsl:with-param name="text" select="'Engine'" />
</xsl:call-template></li>
<li><xsl:call-template name="link">
<xsl:with-param name="href" select="'cmdline.html'" />
<xsl:with-param name="text"><xsl:choose>
<xsl:when test='lang("en")'>Command Line</xsl:when>
<xsl:otherwise>Kommandozeile</xsl:otherwise>
</xsl:choose></xsl:with-param>
</xsl:call-template></li>
<li><xsl:call-template name="link">
<xsl:with-param name="href" select="'files.html'" />
<xsl:with-param name="text"><xsl:choose>
<xsl:when test='lang("en")'>Game Data</xsl:when>
<xsl:otherwise>Spieldaten</xsl:otherwise>
</xsl:choose></xsl:with-param>
</xsl:call-template></li>
<li><xsl:call-template name="link">
<xsl:with-param name="href" select="'script/index.html'" />
<xsl:with-param name="text" select="'Script'" />
</xsl:call-template></li>
<li class="switchlang"><xsl:choose>
<xsl:when test='lang("en")'><a href='javascript:switchLanguage()'><img src='/deco/dco_de_sml.gif' alt='German' border='0'/></a></xsl:when>
<xsl:otherwise><a href='javascript:switchLanguage()'><img src='/deco/dco_en_sml.gif' alt='English' border='0'/></a></xsl:otherwise>
</xsl:choose></li>
<!--<li><a><xsl:attribute name="href">index.xml</xsl:attribute>.</a></li>
<xsl:if test="starts-with($relpath, '../..')">
<li><a><xsl:attribute name="href">../index.xml</xsl:attribute>..</a></li>
</xsl:if>-->
</ul>
</xsl:if></xsl:template>
<!-- some code blocks are made into paragraphs -->
<xsl:template match="example/code|part/code|doc/code|dd/code">
@ -565,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|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|int|proplist|object|array|string|bool|any|return|if|else|break|continue|while|for|func|true|false|nil|'" />
<xsl:param name="w" select="substring-before($t, '|')" />
<!-- text before the keyword -->
<xsl:variable name="l" select="substring-before($s, $w)" />

8385
docs/de.po 100644 → 100755

File diff suppressed because it is too large Load Diff

67
docs/doku.css 100644 → 100755
View File

@ -4,25 +4,50 @@ body {
font-family: Verdana, Arial, 'Trebuchet MS';
background-color: white;
color: black;
}
body {
font-size: small;
line-height: 1.6em;
}
.text, pre.code, ul, ol, dl {
margin: 8px 0 12px 0;
#iframe {
position: absolute; top: 145px; width: 300px; border: 0; bottom: 0; overflow: auto;
height: auto;
display: block;
}
/* indent the parameters of the function if it's broken into multiple lines*/
div.fnsyntax {
text-indent: -1em;
margin-left: 1em;
#iframe > iframe {
border: 0; overflow: auto;
height: 100%;
width: 100%;
display: block;
}
#toc {
padding-left: 1em;
}
#toc h2 {
margin-bottom: 10px;
}
#chm {
margin: 1em;
}
#content {
padding: 0 1em;
margin: 0 auto;
position: absolute; top: 145px; left: 300px; right: 0; bottom: 0; overflow: auto;
}
.text, pre.code, ul, ol, dl {
padding-top: 5px;
padding-bottom: 5px;
margin: 0;
}
/* indent the parameters of the function if it's broken into multiple lines*/
div.fnsyntax {
text-indent: -1em;
margin-left: 1em;
}
div.example {
@ -34,14 +59,14 @@ dd {
margin: 0;
}
.text img {
.text img, dt img {
vertical-align: middle;
margin-right: 6px;
}
img#cpem {
img.cpem {
float: left;
margin: 0 6px 6px 18px;
margin: 12px;
}
h1, h2, h3, h4, h5, h6 {
@ -59,23 +84,22 @@ h1 {
h2 {
font-weight: normal;
font-size: 150%;
font-size: 140%;
margin: 0;
padding: 0;
margin-top: 0.8em;
margin-top: 0.6em;
margin-bottom: 0.2em;
padding: .35em .1em 0 0;
border-bottom: 3px solid #eee;
border-bottom: 1px solid #eee;
}
h3, table caption, dt {
text-align: left;
font-weight: bold;
font-size:132%;
font-size:100%;
margin: 0;
border-bottom:1px solid #eee;
margin-bottom:0.3em;
margin-top:1em;
padding:0.2em 0.1em 0.3em 0;
margin-top:0.6em;
padding:0;
}
table {
@ -157,6 +181,7 @@ ul.contents li a {
}
ul.contents img {
vertical-align: middle;
margin-right: 4px;
}
ul.contents a {
color: navy;
@ -186,7 +211,7 @@ ul.contents ul li:not(:last-child)::after {
.collapseimg {
cursor: pointer;
}
.toggleinvisi .invisi {
.toggleinvisi li.invisi > ul {
display: none;
}

4
docs/experimental.py 100644 → 100755
View File

@ -10,9 +10,10 @@ import xml.sax
codeparents = {}
allcode = {}
c4scripter = file("Functions.txt", 'w')
c4scripter = None
class ExperimentParser(xml.sax.handler.ContentHandler):
def __init__(self):
global c4scripter
self.statestack = []
self.parameter = ""
self.type = ""
@ -21,6 +22,7 @@ class ExperimentParser(xml.sax.handler.ContentHandler):
self.title = ""
self.cur = ""
self.desc = ""
c4scripter = file("Functions.txt", 'w')
def startElement(self, name, attr):
self.statestack.append(name)
if name == 'params':

4
docs/extra-strings.xml 100644 → 100755
View File

@ -3,4 +3,8 @@
<doc>
<!-- Zum markieren von veralteten Funktionen im Inhaltsverzeichnis -->
<text>extended</text>
<ul><li>Functions by Category
<ul></ul></li>
<li>Functions by Version
<ul></ul></li></ul>
</doc>

63
docs/header.xml 100644 → 100755
View File

@ -3,34 +3,24 @@ Unfortunately, xml documents can only have one root, so there needs to be a dumm
header is an appropiate html element, so it's arbitrarily chosen.
clonk.xsl also uses it to match the processing for it. -->
<header>
<!-- header -->
<div id="nav_header">
<!-- logo -->
<div id="nav_logo">
<a href="http://wiki.openclonk.org/"><img src="http://www.openclonk.org/header/logo.png" alt="OpenClonk"/></a>
<a href="http://www.openclonk.org/" target="_top"><img src="http://www.openclonk.org/header/logo.png" alt="OpenClonk"/></a>
</div>
</div>
<!-- Navigation Menu -->
<div id="nav_navigation">
<!-- search -->
<div id="nav_search">
<form action="http://www.openclonk.org/header/search.php" id="searchform" method="get"><div>
<form action="http://www.openclonk.org/header/search.php" id="searchform" method="get" target="_top"><div>
search <input id="searchInput" name="s" type="text" value="" /> in the
<select name="p">
<option value="blog">blog</option>
<option selected="selected" value="functions">c4script function list</option>
<option 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="bugtrack">bugtracker</option>
<option value="forum">forum</option>
<option value="hg">hg changelog</option>
<option value="hg-resources">hg resources changelog</option>
<option value="wiki">website</option>
</select>
@ -38,32 +28,41 @@ clonk.xsl also uses it to match the processing for it. -->
</div></form>
</div>
<div style="float:right">
<ul>
<li>
<a href="http://docs.openclonk.org/en/sdk/" target="_top"><img src="http://forum.openclonk.org/flags/gb.png"/></a>
</li>
<li>
<a href="http://docs.openclonk.org/de/sdk/" target="_top"><img src="http://forum.openclonk.org/flags/de.png"/></a>
</li>
</ul>
</div>
<ul>
<li><!--[if lt IE 9]><span><![endif]--><a href="http://www.openclonk.org/">Home</a><!--[if lt IE 9]></span><![endif]--> <ul>
<li><a href="http://wiki.openclonk.org/w/FAQ">FAQ</a></li>
<li><a href="http://wiki.openclonk.org/w/About">About</a></li>
<li><a class="current" href="http://www.openclonk.org/" target="_top">Home</a> <ul>
<li><a href="http://wiki.openclonk.org/w/FAQ" target="_top">FAQ</a></li>
<li><a href="http://wiki.openclonk.org/w/About" target="_top">About</a></li>
</ul>
</li>
<li><!--[if lt IE 9]><span><![endif]--><a href="http://www.openclonk.org/w/download">Download</a><!--[if lt IE 9]></span><![endif]--> <ul>
<li><a href="http://www.openclonk.org/download">Latest Release</a></li>
<li><a href="http://www.openclonk.org/nightly-builds">Nightly builds</a></li>
<li><!--[if lt IE 9]><span><![endif]--><a href="http://www.openclonk.org/download/" target="_top">Download</a><!--[if lt IE 9]></span><![endif]--> <ul>
<li><a href="http://www.openclonk.org/download/" target="_top">Latest Release</a></li>
<li><a href="http://www.openclonk.org/nightly-builds" target="_top">Development Snapshot</a></li>
<li><a href="http://www.openclonk.org/builds/release/" target="_top">Archive</a></li>
</ul>
</li>
<li><!--[if lt IE 9]><span><![endif]--><a href="http://forum.openclonk.org/">Forum</a><!--[if lt IE 9]></span><![endif]--></li>
<li><!--[if lt IE 9]><span><![endif]--><a href="http://wiki.openclonk.org/w/Development">Development</a><!--[if lt IE 9]></span><![endif]--> <ul>
<li><a href="http://bugs.openclonk.org">Bugtracker</a></li>
<li><a href="http://hg.openclonk.org/openclonk/">Repository</a></li>
<li><a href="http://hg.openclonk.org/openclonk-resources/">Resource Repository</a></li>
<li><!--[if lt IE 9]><span><![endif]--><a href="http://forum.openclonk.org/" target="_top">Forum</a><!--[if lt IE 9]></span><![endif]--></li>
<li><!--[if lt IE 9]><span><![endif]--><a href="http://wiki.openclonk.org/w/Development" target="_top">Development</a><!--[if lt IE 9]></span><![endif]--> <ul>
<li><a href="http://bugs.openclonk.org" target="_top">Bugtracker</a></li>
<li><a href="http://hg.openclonk.org/openclonk/" target="_top">Repository</a></li>
<li><a href="http://hg.openclonk.org/openclonk-resources/" target="_top">Resource Repository</a></li>
</ul>
</li>
<li><a class="current" href="http://wiki.openclonk.org/w/C4Script_Documentation">Documentation</a> <ul>
<li><a href="http://docs.openclonk.org/en/sdk/">C4Script reference</a></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><a href="http://docs.openclonk.org/en/sdk/" target="_top">C4Script Reference</a></li>
</ul>
</li>
<li><!--[if lt IE 9]><span><![endif]--><a href="http://blog.openclonk.org/">Blog</a><!--[if lt IE 9]></span><![endif]--></li>
<li><!--[if lt IE 9]><span><![endif]--><a href="http://blog.openclonk.org/" target="_top">Blog</a><!--[if lt IE 9]></span><![endif]--></li>
</ul>
</div>

11
docs/hhc.xsl 100644 → 100755
View File

@ -7,7 +7,7 @@
<!-- Take care: Apparently microsofts html help compiler doesn't parse the html properly,
and needs at least some of the whitespace added with xsl:text below, and perhaps that there not be any in other places. -->
<xsl:template match="doc">
<xsl:template match="toc">
<HTML>
<HEAD>
</HEAD>
@ -27,15 +27,18 @@ and needs at least some of the whitespace added with xsl:text below, and perhaps
</UL>
</xsl:template>
<xsl:template match="li[@class='index']">
</xsl:template>
<xsl:template match="li">
<LI><xsl:text> </xsl:text><OBJECT type="text/sitemap"><xsl:text>
</xsl:text>
<param name="Name">
<xsl:attribute name="value"><xsl:for-each select="text()|a/text()"><xsl:value-of select="normalize-space(string(.))" /></xsl:for-each></xsl:attribute>
<xsl:attribute name="value"><xsl:for-each select="text()|emlink/text()"><xsl:value-of select="normalize-space(string(.))" /></xsl:for-each></xsl:attribute>
</param><xsl:text>
</xsl:text>
<xsl:if test="a/@href"><param name="Local">
<xsl:attribute name="value">sdk\<xsl:value-of select="translate(string(a/@href), '/', '\\')" /></xsl:attribute>
<xsl:if test="emlink/@href"><param name="Local">
<xsl:attribute name="value">sdk\<xsl:value-of select="translate(string(emlink/@href), '/', '\\')" /></xsl:attribute>
</param><xsl:text>
</xsl:text></xsl:if>
</OBJECT>

44
docs/hhk.xsl 100755
View File

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="cp1252" doctype-public="-//IETF//DTD HTML//EN" />
<!-- Take care: Apparently microsofts html help compiler doesn't parse the html properly,
and needs at least some of the whitespace added with xsl:text below, and perhaps that there not be any in other places. -->
<xsl:template match="toc">
<HTML>
<HEAD>
</HEAD>
<BODY>
<UL>
<xsl:apply-templates select=".//li[@class='index']/ul/li" />
</UL>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="li">
<LI><xsl:text> </xsl:text><OBJECT type="text/sitemap"><xsl:text>
</xsl:text>
<param name="Name">
<xsl:attribute name="value"><xsl:for-each select="text()|emlink/text()"><xsl:value-of select="normalize-space(string(.))" /></xsl:for-each></xsl:attribute>
</param><xsl:text>
</xsl:text>
<xsl:if test="emlink/@href"><param name="Local">
<xsl:attribute name="value">sdk\<xsl:value-of select="translate(string(emlink/@href), '/', '\\')" /></xsl:attribute>
</param><xsl:text>
</xsl:text></xsl:if>
</OBJECT>
<xsl:apply-templates />
</LI>
</xsl:template>
<xsl:template match="*">
<xsl:apply-templates select="*" />
</xsl:template>
<xsl:template match="text()" />
</xsl:stylesheet>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 365 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 730 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 514 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 719 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1019 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 769 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 347 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 787 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1020 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 724 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 292 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 937 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 274 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 668 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 799 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 365 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 889 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 963 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 838 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 572 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 668 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 812 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 273 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 535 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

87
docs/sdk/cmdline.xml 100644 → 100755
View File

@ -4,127 +4,112 @@
<?xml-stylesheet type="text/xsl" href="../clonk.xsl"?>
<doc>
<title>Command Line Parameters</title>
<h id="cmdline">Command Line Parameters</h>
<h>Command Line Parameters</h>
<text>The installation directory of Clonk contains various executable program files. Usually programs are started with a double click or from a start menu without additional parameters. When starting programs from a command line shell or script file (batch file), additional command line parameters can be specified.</text>
<part>
<h id="Clonk">Clonk.exe (Windows) clonk (Linux) Clonk (Mac)</h>
<text>The engine. The main program of the game. Without startup parameters, the game starts in fullscreen (player mode) and shows the startup menu. The following command line parameters are recognized:</text>
<dl>
<dt id="console">/console</dt>
<dt id="editor">--editor</dt>
<dd>
<text>Starts in console mode (also called developer mode or windowed mode). In console mode, scenarios can be edited and saved. The game will also start in console mode if a scenario (*.c4s) and no /fullscreen is specified.</text>
<text>Starts in editor mode (also called developer mode or windowed mode). In editor mode, scenarios can be edited and saved. The game will also start in editor mode if a scenario (*.ocs) and no --fullscreen is specified.</text>
</dd>
<dt id="fullscreen">/fullscreen</dt>
<dt id="fullscreen">--fullscreen</dt>
<dd>
<text>Starts in fullscreen mode (also called player mode). If no scenario and no direct join adress is given, the startup menu is shown.</text>
</dd>
<dt id="config">/config:Filename</dt>
<dt id="config">--config=Filename</dt>
<dd>
<text>Loads and saves the configuration from the specified file instead of the default configuration file or the Windows registry.</text>
</dd>
<dt id="record">/record</dt>
<dt id="record">--record</dt>
<dd>
<text>The round is recorded.</text>
</dd>
<dt id="network">/network, /nonetwork</dt>
<dt id="network">--network, --nonetwork</dt>
<dd>
<text>Activates or deactivates network mode.</text>
</dd>
<dt id="signup">/signup, /nosignup</dt>
<dt id="signup">--signup, --nosignup</dt>
<dd>
<text>Activates or deactivates online signup of the game as public internet game. This value is stored in the configuration.</text>
<text>--signup implies --network. --nosignup implies --noleague.</text>
</dd>
<dd>
<text>/signup implies /network. /nosignup implies /noleague.</text>
</dd>
<dt id="league">/league, /noleague</dt>
<dt id="league">--league, --noleague</dt>
<dd>
<text>Activates or deactivates online signup of the game as league game. This value is stored in the configuration.</text>
<text>--league implies --network and --signup.</text>
</dd>
<dd>
<text>/league implies /network and /signup.</text>
</dd>
<dt id="runtimejoin">/runtimejoin, /noruntimejoin</dt>
<dt id="runtimejoin">--runtimejoin, --noruntimejoin</dt>
<dd>
<text>Activates or deactivates runtime join. This setting will be stored in the configuration.</text>
</dd>
<dt id="regjoinonly">/regjoinonly</dt>
<dt id="lobby">--lobby[=<em>time</em>]</dt>
<dd>
<text>Prevents any unregistered client from joining games hosted on this computer (<em>always</em> active in dedicated server engines).</text>
<text>Activates the lobby before a network game is started. The lobby is the waiting- and chat screen. The lobby is on by default for all network games. Implies --network. If you specify a time (e.g. --lobby=120) the lobby will start with a countdown, automatically launching the game after (in this case) 120 seconds.</text>
</dd>
<dt id="ncrw">/faircrew, /trainedcrew</dt>
<dt id="observe">--observe</dt>
<dd>
<text>Activates or deactivates fair crew. With fair crew, all clonks start with the same physical properties. With trained crew, clonks start with their individually stored, trained physical value. This value is stored in the configuration.</text>
<text>For network games: The client joins as observer (without players). Implies --network.</text>
</dd>
<dt id="lobby">/lobby[:time]</dt>
<dt id="Join">--join=&lt;<em>Address</em>&gt;</dt>
<dd>
<text>Activates the lobby before a network game is started. The lobby is the waiting- and chat screen. The lobby is on by default for all network games. Implies /network. If you specify a time (e.g. /lobby:120) the lobby will start with a countdown, automatically launching the game after (in this case) 120 seconds.</text>
</dd>
<dt id="observe">/observe</dt>
<dd>
<text>For network games: The client joins as observer (without players). Implies /network.</text>
</dd>
<dt id="Join">/join:&lt;<em>Address</em>&gt;</dt>
<dd>
<text>Searches for a network game on the specified address and joins it. No local scenario (*.c4s) should be specified. Implies /network.</text>
<text>Searches for a network game on the specified address and joins it. No local scenario (*.ocs) should be specified. Implies --network.</text>
</dd>
<dt id="clonkp">clonk://&lt;<em>Address</em>&gt;/</dt>
<dd>
<text>Same as /join if an address is specified. If "update" is specified as an address, this will cause the engine to perform an update check instead.</text>
<text>Same as --join if an address is specified. If "update" is specified as an address, this will cause the engine to perform an update check instead.</text>
</dd>
<dt id="tcpport">/tcpport:&lt;<em>Port Number</em>&gt;</dt>
<dt id="tcpport">--tcpport=&lt;<em>Port Number</em>&gt;</dt>
<dd>
<text>Sets the TCP port number for client connections in network games. This setting will be stored in the configuration. If -1 is specified, TCP is disabled and all connections are created using UDP.</text>
</dd>
<dt id="udpport">/udpport:&lt;<em>Port Number</em>&gt;</dt>
<dt id="udpport">--udpport=&lt;<em>Port Number</em>&gt;</dt>
<dd>
<text>Sets the UDP port number for client connections in network games. This setting will be stored in the configuration. If -1 is specified, UDP is disabled and all connections are created using TCP.</text>
</dd>
<dt id="pass">/pass:&lt;<em>Password</em>&gt;</dt>
<dt id="pass">--pass=&lt;<em>Password</em>&gt;</dt>
<dd>
<text>For network hosts: sets the join password to the specified value. If &lt;<em>Password</em>&gt; is left empty, no password is set.</text>
</dd>
<dt id="comment">/comment:&lt;<em>Comment</em>&gt;</dt>
<dt id="comment">--comment=&lt;<em>Comment</em>&gt;</dt>
<dd>
<text>For network hosts: sets the network game comment. This setting will be stored in the configuration.</text>
</dd>
<dt id="update">/update</dt>
<dt id="update">--update</dt>
<dd>
<text>Performs an update check at program start.</text>
</dd>
<dt id="recdump">/recdump:&lt;<em>Filename</em>&gt;</dt>
<dt id="recdump">--recdump=&lt;<em>Filename</em>&gt;</dt>
<dd>
<text>Only for replay of recorded games: Before the replay is started, all replay data (player controls) are dumped into a file called &lt;<em>File name</em>&gt; in the Clonk folder. If the file name extension is .txt, the controls will be dumped in text mode, otherwise binary. The replay file must be specified separately as a scenario file (e.g. Clonk.exe Records.c4f\Record001.c4s /recdump:CtrlRec.txt).</text>
<text>Only for replay of recorded games: Before the replay is started, all replay data (player controls) are dumped into a file called &lt;<em>File name</em>&gt; in the Clonk folder. If the file name extension is .txt, the controls will be dumped in text mode, otherwise binary. The replay file must be specified separately as a scenario file (e.g. Clonk.exe Records.ocf/Record001.ocs --recdump=CtrlRec.txt).</text>
</dd>
<dt id="startup">/startup:&lt;<em>Name</em>&gt;</dt>
<dt id="startup">--startup=&lt;<em>Name</em>&gt;</dt>
<dd>
<text>Only for fullscreen startup menu: Instead of the main menu, one of the submenus is shown directly. Possible values for &lt;<em>Name</em>&gt; are <em>main</em> (Main menu), <em>scen</em> (Scenario selection), <em>netscen</em> (Scenario selection for a new network game), <em>net</em> (Network/Internet game list), <em>options</em> (Options menu) und <em>plrsel</em> (Player selection).</text>
</dd>
<dt id="c4s">*.c4s</dt>
<dt id="ocs">*.ocs</dt>
<dd>
<text>If a scenario is specified (File extension .c4s), it will be started directly.</text>
<text>If a scenario is specified (File extension .ocs), it will be started directly.</text>
</dd>
<dt id="c4d">*.c4d</dt>
<dt id="ocd">*.ocd</dt>
<dd>
<text>If the started scenario does not specify any required definitions (File extension .c4d), and no definitions are supplied in the registry, definitions can be specified via command line.</text>
<text>If the started scenario does not specify any required definitions (File extension .ocd), and no definitions are supplied in the registry, definitions can be specified via command line.</text>
</dd>
<dt id="c4p">*.c4p</dt>
<dt id="ocp">*.ocp</dt>
<dd>
<text>Player files (File extension .c4p) can be specified in the command line. If no player files are given, the registry values are used. By specifying a non-existant player (like doesnotexist.c4p), the game can be started without players (e.g. in order to just edit landscapes in developer mode).</text>
<text>Player files (File extension .ocp) can be specified in the command line. If no player files are given, the config values are used. By specifying a non-existant player (like doesnotexist.ocp), the game can be started without players (e.g. in order to just edit landscapes in developer mode).</text>
</dd>
<dt id="c4u">*.c4u</dt>
<dt id="ocu">*.ocu</dt>
<dd>
<text>If the filename of an update package (extension .c4u) is passed to the engine, then the program will attempt to apply that update package to the local installation.</text>
<text>If the filename of an update package (extension .ocu) is passed to the engine, then the program will attempt to apply that update package to the local installation.</text>
</dd>
</dl>
</part>
<part>
<h id="Editor">Editor.exe (Windows only)</h>
<text>The editor for accessing group files and developing of game extensions. The editor does not have any command line parameters.</text>
</part>
<part>
<h id="C4Group">c4group.exe (Windows) c4group (Linux) c4group (Mac)</h>
<text>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).</text>
</part>
<author>Sven2</author><date>2007-02</date>
<author>Günther</author><date>2011</date>
</doc>

2
docs/sdk/console.xml 100644 → 100755
View File

@ -9,7 +9,7 @@
<text>In developer mode, scenarios may be edited in running or paused game mode and saved to disk afterwards.</text>
<h id="Bearbeitungsmodus">Edit mode:</h>
<text><img src="../images/icon_em_play.gif" width="16" height="16"/> Play: Mouse control works only for the first viewport of a player who has mouse control activated. Keyboard control for all players is accepted in any viewport.</text>
<text><img src="../images/icon_em_edit.gif" width="16" height="16"/>Edit objects: Objects may be edited and moved around by mouse. Additional editing options are available by right-clicking on objects in a viewport.In order to create new objects, object definitions (c4d) may be drag &amp; dropped from the menu system or an Explorer window into a viewport of the engine. Objects may be put into other objects by dragging them onto the target object while holding down the control key.</text>
<text><img src="../images/icon_em_edit.gif" width="16" height="16"/>Edit objects: Objects may be edited and moved around by mouse. Additional editing options are available by right-clicking on objects in a viewport.In order to create new objects, object definitions (ocd) may be drag &amp; dropped from the menu system or an Explorer window into a viewport of the engine. Objects may be put into other objects by dragging them onto the target object while holding down the control key.</text>
<text><img src="../images/icon_em_brush.gif" width="16" height="16"/>Draw: Landscape drawing tools may be configured by right-clicking in a viewport and selecting 'tools'.</text>
<h id="Landschaftsmodus">Landscape mode:</h>
<text><img src="../images/icon_em_dynamic.gif" width="16" height="16"/>Dynamic: Scenarios that have a dynamic landscape generally have a very small file size. But since a new landscape is generated whenever the scenario is started, landscape settings of scenarios edited in developer mode should not contain any random values. Dynamic landscapes cannot be edited. It is not possible to revert static or exact landscapes to dynamic mode.</text>

257
docs/sdk/content.xml.in 100644 → 100755
View File

@ -1,47 +1,47 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- <!DOCTYPE doc SYSTEM "../clonk.dtd"> -->
<?xml-stylesheet type="text/xsl" href="../clonk.xsl"?>
<doc>
<toc>
<title>Contents</title>
<script>
<![CDATA[
// Javascript aus mwForum, www.mwforum.org
function tb(listId) {
var branch = document.getElementById('brn' + listId);
var toggle = document.getElementById('tgl' + listId);
var branch = toggle.parentNode;
if (!branch || !toggle) return;
if (branch.style.display != 'none' && branch.className!='invisi') {
branch.style.display = 'none';
toggle.src = '../images/bullet_folder.gif';
if (branch.className != 'invisi') {
branch.className = 'invisi';
toggle.src = '../images/bullet_folder.png';
toggle.title = 'Zweig expandieren';
toggle.alt = '+';
} else {
branch.style.display = '';
toggle.src = '../images/bullet_folder_open.gif';
branch.className = '';
toggle.src = '../images/bullet_folder_open.png';
toggle.title = 'Zweig zusammenklappen';
toggle.alt = '-';
}
branch.className='';
return true;
}
function ta(listId) {
var branch = document.getElementById('brn' + listId);
var divs = document.getElementsByTagName('ul');
var display = '', img = 'bullet_folder_open.gif';
if (branch.style.display != 'none' && branch.className!='invisi') {
display = 'none';
img = 'bullet_folder.gif';
var branch = document.getElementById('tgl' + listId).parentNode;
var cls = '', img = 'bullet_folder_open.png', alt = '-';
if (branch.className != 'invisi') {
cls = 'invisi';
img = 'bullet_folder.png';
alt = '+';
}
var divs = document.getElementsByTagName('ul');
for (var i=0; i < divs.length; i++) {
if (divs[i].id.indexOf('brn') == 0) {
divs[i].style.display = display;
divs[i].className='';
}
divs[i].parentNode.className = cls;
}
var imgs = document.getElementsByTagName('img');
for (var i=0; i < imgs.length; i++) {
if (imgs[i].id.indexOf('tgl') == 0) imgs[i].src = '../images/' + img;
if (imgs[i].id.indexOf('tgl') == 0) {
imgs[i].src = '../images/' + img;
imgs[i].alt = alt;
}
}
return true;
}
@ -51,119 +51,150 @@
document.body.className = 'toggleinvisi';
]]>
</script>
<h>Contents</h>
<part>
<ul class="contents">
<li>
<img id='tgl1' class='collapseimg' src='../images/bullet_folder_open.gif' alt='-' onclick='tb(1)' ondblclick='ta(1)' />
Developer mode
<ul id='brn1'>
<li><img src='../images/bullet_sheet.gif' alt='-' />
<emlink href="index.html">Introduction</emlink></li>
<li><img src='../images/bullet_sheet.gif' alt='-' />
<emlink href="console.html">Engine</emlink></li>
<li><img src='../images/bullet_sheet.gif' alt='-' />
<emlink href="cmdline.html">Command Line Parameters</emlink></li>
<li><emlink href="index.html">Developer Mode</emlink>
<ul>
<li><emlink href="console.html">Engine</emlink></li>
<li><emlink href="cmdline.html">Command Line Parameters</emlink></li>
</ul>
</li>
<li>
<img id='tgl2' class='collapseimg' src='../images/bullet_folder_open.gif' alt='-' onclick='tb(2)' ondblclick='ta(2)' />
<emlink href="files.html">Game content</emlink>
<ul id='brn2'>
<li>
<img id='tgl3' class='collapseimg' src='../images/bullet_folder.gif' alt='-' onclick='tb(3)' ondblclick='ta(3)' />
<emlink href="definition/index.html">Object Definitions</emlink>
<ul id='brn3' class='invisi'>
<li>
<img id='tgl4' class='collapseimg' src='../images/bullet_folder.gif' alt='-' onclick='tb(4)' ondblclick='ta(4)' />
<emlink href="definition/defcore.html">DefCore</emlink>
<ul id='brn4' class='invisi'>
<li><img src='../images/bullet_sheet.gif' alt='-' />
<emlink href="definition/category.html">Category</emlink></li>
<li><img src='../images/bullet_sheet.gif' alt='-' />
<emlink href="definition/ocf.html">OCF</emlink></li>
<li><img src='../images/bullet_sheet.gif' alt='-' />
<emlink href="definition/vertices.html">Vertices</emlink></li>
<li><img src='../images/bullet_sheet.gif' alt='-' />
<emlink href="definition/cnat.html">CNAT - Contact Attachment</emlink></li>
<li><emlink href="files.html">Game content</emlink>
<ul>
<li><emlink href="definition/index.html">Object Definitions</emlink>
<ul>
<li><emlink href="definition/defcore.html">DefCore</emlink>
<ul>
<li><emlink href="definition/category.html">Category</emlink></li>
<li><emlink href="definition/ocf.html">OCF</emlink></li>
<li><emlink href="definition/vertices.html">Vertices</emlink></li>
<li><emlink href="definition/cnat.html">CNAT - Contact Attachment</emlink></li>
</ul>
</li>
<li>
<img id='tgl5' class='collapseimg' src='../images/bullet_folder.gif' alt='-' onclick='tb(5)' ondblclick='ta(5)' />
<emlink href="definition/actmap.html">ActMap</emlink>
<ul id='brn5' class='invisi'>
<li><img src='../images/bullet_sheet.gif' alt='-' />
<emlink href="definition/procedures.html">Procedures</emlink></li>
<li><emlink href="definition/actmap.html">ActMap</emlink>
<ul>
<li><emlink href="definition/procedures.html">Procedures</emlink></li>
</ul>
</li>
<li><img src='../images/bullet_sheet.gif' alt='-' />
<emlink href="definition/script.html">Scripts</emlink></li>
<li><img src='../images/bullet_sheet.gif' alt='-' />
<emlink href="definition/properties.html">Properties</emlink></li>
<li><img src='../images/bullet_sheet.gif' alt='-' />
<emlink href="particle/index.html">Particles</emlink></li>
<li><emlink href="definition/script.html">Scripts</emlink></li>
<li><emlink href="definition/properties.html">Properties</emlink></li>
<li><emlink href="particle/index.html">Particles</emlink></li>
</ul>
</li>
<li>
<img id='tgl6' class='collapseimg' src='../images/bullet_folder.gif' alt='-' onclick='tb(6)' ondblclick='ta(6)' />
<emlink href="scenario/index.html">Scenarios</emlink>
<ul id='brn6' class='invisi'>
<li><img src='../images/bullet_sheet.gif' alt='-' />
<emlink href="scenario/scenario.html">Scenario</emlink></li>
<li><img src='../images/bullet_sheet.gif' alt='-' />
<emlink href="scenario/MapCreatorS2.html">Map Generator</emlink></li>
<li><img src='../images/bullet_sheet.gif' alt='-' />
<emlink href="scenario/script.html">Scripts</emlink></li>
<li><emlink href="scenario/index.html">Scenarios</emlink>
<ul>
<li><emlink href="scenario/scenario.html">Scenario</emlink></li>
<li><emlink href="scenario/Teams.html">Multiplayer</emlink></li>
<li><emlink href="scenario/MapCreatorS2.html">Map Generator</emlink></li>
<li><emlink href="scenario/script.html">Scripts</emlink></li>
</ul>
</li>
<li>
<img id='tgl7' class='collapseimg' src='../images/bullet_folder.gif' alt='-' onclick='tb(7)' ondblclick='ta(7)' />
<emlink href="material/index.html">Materials</emlink>
<ul id='brn7' class='invisi'>
<li><img src='../images/bullet_sheet.gif' alt='-' />
<emlink href="material/c4m.html">Definitions</emlink></li>
</ul>
</li>
<li>
<img id='tgl8' class='collapseimg' src='../images/bullet_folder.gif' alt='-' onclick='tb(8)' ondblclick='ta(8)' />
Internationalization
<ul id='brn8' class='invisi'>
<li><img src='../images/bullet_sheet.gif' alt='-' />
<emlink href="lang.html">Internationalization</emlink></li>
<li><emlink href="material/index.html">Materials</emlink>
<ul>
<li><emlink href="material/ocm.html">Definitions</emlink></li>
</ul>
</li>
<li><emlink href="lang.html">Internationalization</emlink></li>
<li><emlink href="playercontrols.html">Controls</emlink></li>
</ul>
</li>
<li>
<img id='tgl9' class='collapseimg' src='../images/bullet_folder_open.gif' alt='-' onclick='tb(9)' ondblclick='ta(9)' />
<emlink href="script/index.html">Script</emlink>
<ul id='brn9'>
<li><img src='../images/bullet_sheet.gif' alt='-' />
<emlink href="script/Funcs.html">Functions</emlink></li>
<li><img src='../images/bullet_sheet.gif' alt='-' />
<emlink href="script/FuncCall.html">Function Call</emlink></li>
<li><img src='../images/bullet_sheet.gif' alt='-' />
<emlink href="script/Typechecks.html">Data Types</emlink></li>
<li><img src='../images/bullet_sheet.gif' alt='-' />
<emlink href="script/NamedVar.html">Variables</emlink></li>
<li><img src='../images/bullet_sheet.gif' alt='-' />
<emlink href="script/operatoren.html">Operators</emlink></li>
<li><img src='../images/bullet_sheet.gif' alt='-' />
<emlink href="script/for.html">for</emlink></li>
<li><img src='../images/bullet_sheet.gif' alt='-' />
<emlink href="script/BreakContinue.html">Loop Control</emlink></li>
<li><img src='../images/bullet_sheet.gif' alt='-' />
<emlink href="script/AppendTo.html">#appendto</emlink></li>
<li><img src='../images/bullet_sheet.gif' alt='-' />
<emlink href="script/Effects.html">Effects</emlink></li>
<li><img src='../images/bullet_sheet.gif' alt='-' />
<emlink href="script/GetXXVal.html">Querying Game Data</emlink></li>
<li><img src='../images/bullet_sheet.gif' alt='-' />
<emlink href="script/ScriptPlayers.html">Script Players</emlink></li>
<li><emlink href="script/index.html">Script</emlink>
<ul>
<li><emlink href="script/Funcs.html">Functions</emlink></li>
<li><emlink href="script/FuncCall.html">Function Call</emlink></li>
<li><emlink href="script/Typechecks.html">Data Types</emlink></li>
<li><emlink href="script/NamedVar.html">Variables</emlink></li>
<li><emlink href="script/operatoren.html">Operators</emlink></li>
<li><emlink href="script/for.html">for</emlink></li>
<li><emlink href="script/BreakContinue.html">Loop Control</emlink></li>
<li><emlink href="script/AppendTo.html">#appendto</emlink></li>
<li><emlink href="script/Effects.html">Effects</emlink></li>
<li><emlink href="script/GetXXVal.html">Querying Game Data</emlink></li>
<li><emlink href="script/ScriptPlayers.html">Script Players</emlink></li>
<!-- Insert Functions here -->
</ul>
</li>
<!-- Insert Index here -->
</ul>
</part>
</doc>
<script>
<![CDATA[
(function() {
function navigate(url) {
var xhr = new XMLHttpRequest();
xhr.open('GET', url.split("#")[0]);
xhr.onreadystatechange = function (e) {
if (xhr.readyState === 4) {
var d = parent.document;
var r = xhr.responseText;
d.getElementById("content").innerHTML = r.split('<div id="content">')[1];
d.title = r.slice(r.indexOf("<title>")+7, r.indexOf("</title>"));
}
};
xhr.send();
}
function onclick(e) {
if (e.target.tagName != "A") return;
if (e.target.host != parent.location.host) return;
if (e.target.port != parent.location.port) return;
if (e.target.protocol != parent.location.protocol) return;
var url = e.target.href;
if (parent.history.pushState && window.XMLHttpRequest) {
navigate(url);
parent.history.pushState(url, "", url);
e.preventDefault();
}
}
if (parent == window) return;
parent.onpopstate = function(e) {
navigate(e.state);
}
parent.document.getElementById("content").onclick = onclick;
window.onclick = onclick;
if (parent.history.replaceState)
parent.history.replaceState(parent.location.href, "", parent.location.href);
var l = parent.location.href;
// recognize index file as such
if(l.charAt(l.length-1) == "/") l += "index";
var as = document.getElementsByTagName("a");
var i = 0, a;
var firsta;
while (a = as[i++]) {
if (a.href.indexOf(l) != -1) {
if (!firsta) {
firsta = a;
}
if (a.parentNode.tagName == "LI") {
if (a.parentNode.className == 'invisi') tb(a.parentNode.firstElementChild.id.slice(3));
}
var p = a.parentNode.parentNode;
while (p.tagName == "UL") {
if (p.parentNode.className == 'invisi') tb(p.parentNode.firstElementChild.id.slice(3));
p = p.parentNode.parentNode;
}
}
}
if (!firsta) return;
var el = firsta.parentNode.parentNode.parentNode;
var y0 = 0;
while (el) {
y0 += el.offsetTop;
el = el.offsetParent;
}
var y1 = 0;
el = firsta;
while (el) {
y1 += el.offsetTop;
el = el.offsetParent;
}
if (y0 < y1 - innerHeight + firsta.offsetHeight * 2) {
window.scrollTo(0, y1 - innerHeight / 2);
} else {
window.scrollTo(0, y0);
}
})();
]]>
</script>
</toc>

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