merge branch work back into trunk
authorTTimo <ttimo@ttimo.net>
Mon, 1 Sep 2008 17:34:10 +0000 (17:34 +0000)
committerTTimo <ttimo@ttimo.net>
Mon, 1 Sep 2008 17:34:10 +0000 (17:34 +0000)
git-svn-id: svn://svn.icculus.org/gtkradiant/GtkRadiant/trunk@319 8a3a26a2-13c4-0310-b231-cf6edde360e5

637 files changed:
BSD
CHANGES-MACOS
COMPILING
CONTRIBUTORS
ChangeLog [new file with mode: 0644]
GPL
INSTALL.txt [deleted file]
LGPL
LICENSE
LICENSE_ID [deleted file]
README
SConscript [deleted file]
SConscript.lib [new file with mode: 0644]
SConscript.module [new file with mode: 0644]
SConscript.q3map2 [new file with mode: 0644]
SConscript.radiant [new file with mode: 0644]
SConstruct
TODO [new file with mode: 0644]
TRANSLATING [new file with mode: 0644]
bin/Linux/x64/modules/PrtView.so [new file with mode: 0755]
bin/Linux/x64/modules/TexTool.so [new file with mode: 0755]
bin/Linux/x64/modules/bkgrnd2d.so [new file with mode: 0755]
bin/Linux/x64/modules/bobToolz_gtk.so [new file with mode: 0755]
bin/Linux/x64/modules/entity.so [new file with mode: 0755]
bin/Linux/x64/modules/fgd.so [new file with mode: 0755]
bin/Linux/x64/modules/gtkgensurf.so [new file with mode: 0755]
bin/Linux/x64/modules/hydratoolz.so [new file with mode: 0755]
bin/Linux/x64/modules/image.so [new file with mode: 0755]
bin/Linux/x64/modules/imagem8.so [new file with mode: 0755]
bin/Linux/x64/modules/imagepng.so [new file with mode: 0755]
bin/Linux/x64/modules/imagewal.so [new file with mode: 0755]
bin/Linux/x64/modules/map.so [new file with mode: 0755]
bin/Linux/x64/modules/mapxml.so [new file with mode: 0755]
bin/Linux/x64/modules/model.so [new file with mode: 0755]
bin/Linux/x64/modules/shaders.so [new file with mode: 0755]
bin/Linux/x64/modules/spritemodel.so [new file with mode: 0755]
bin/Linux/x64/modules/surface.so [new file with mode: 0755]
bin/Linux/x64/modules/surface_heretic2.so [new file with mode: 0755]
bin/Linux/x64/modules/surface_quake2.so [new file with mode: 0755]
bin/Linux/x64/modules/surface_ufoai.so [new file with mode: 0755]
bin/Linux/x64/modules/ufoai.so [new file with mode: 0755]
bin/Linux/x64/modules/vfspak.so [new file with mode: 0755]
bin/Linux/x64/modules/vfspk3.so [new file with mode: 0755]
bin/Linux/x64/modules/vfswad.so [new file with mode: 0755]
bin/Linux/x64/q3map2 [new file with mode: 0755]
bin/Linux/x64/radiant.bin [new file with mode: 0755]
bin/Linux/x86/modules/PrtView.so [new file with mode: 0755]
bin/Linux/x86/modules/TexTool.so [new file with mode: 0755]
bin/Linux/x86/modules/bkgrnd2d.so [new file with mode: 0755]
bin/Linux/x86/modules/bobToolz_gtk.so [new file with mode: 0755]
bin/Linux/x86/modules/entity.so [new file with mode: 0755]
bin/Linux/x86/modules/fgd.so [new file with mode: 0755]
bin/Linux/x86/modules/gtkgensurf.so [new file with mode: 0755]
bin/Linux/x86/modules/hydratoolz.so [new file with mode: 0755]
bin/Linux/x86/modules/image.so [new file with mode: 0755]
bin/Linux/x86/modules/imagem8.so [new file with mode: 0755]
bin/Linux/x86/modules/imagepng.so [new file with mode: 0755]
bin/Linux/x86/modules/imagewal.so [new file with mode: 0755]
bin/Linux/x86/modules/map.so [new file with mode: 0755]
bin/Linux/x86/modules/mapxml.so [new file with mode: 0755]
bin/Linux/x86/modules/model.so [new file with mode: 0755]
bin/Linux/x86/modules/shaders.so [new file with mode: 0755]
bin/Linux/x86/modules/spritemodel.so [new file with mode: 0755]
bin/Linux/x86/modules/surface.so [new file with mode: 0755]
bin/Linux/x86/modules/surface_heretic2.so [new file with mode: 0755]
bin/Linux/x86/modules/surface_quake2.so [new file with mode: 0755]
bin/Linux/x86/modules/surface_ufoai.so [new file with mode: 0755]
bin/Linux/x86/modules/ufoai.so [new file with mode: 0755]
bin/Linux/x86/modules/vfspak.so [new file with mode: 0755]
bin/Linux/x86/modules/vfspk3.so [new file with mode: 0755]
bin/Linux/x86/modules/vfswad.so [new file with mode: 0755]
bin/Linux/x86/q3map2 [new file with mode: 0755]
bin/Linux/x86/radiant.bin [new file with mode: 0755]
compile_ibuild_win32.bat [new file with mode: 0644]
config.py [new file with mode: 0644]
contrib/bkgrnd2d/bitmaps/bkgrnd2d_conf.bmp [deleted file]
contrib/bkgrnd2d/bitmaps/bkgrnd2d_xy_toggle.bmp [deleted file]
contrib/bkgrnd2d/bitmaps/bkgrnd2d_xz_toggle.bmp [deleted file]
contrib/bkgrnd2d/bitmaps/bkgrnd2d_yz_toggle.bmp [deleted file]
contrib/bkgrnd2d/bkgrnd2d.cpp
contrib/bkgrnd2d/bkgrnd2d.vcproj
contrib/bkgrnd2d/dialog.cpp
contrib/bkgrnd2d/plugin.cpp
contrib/bobtoolz/DBrush.cpp
contrib/bobtoolz/DEntity.cpp
contrib/bobtoolz/StdAfx.h
contrib/bobtoolz/bitmaps/bobtoolz_caulk.bmp [deleted file]
contrib/bobtoolz/bitmaps/bobtoolz_cleanup.bmp [deleted file]
contrib/bobtoolz/bitmaps/bobtoolz_dropent.bmp [deleted file]
contrib/bobtoolz/bitmaps/bobtoolz_merge.bmp [deleted file]
contrib/bobtoolz/bitmaps/bobtoolz_poly.bmp [deleted file]
contrib/bobtoolz/bitmaps/bobtoolz_split.bmp [deleted file]
contrib/bobtoolz/bitmaps/bobtoolz_trainpathplot.bmp [deleted file]
contrib/bobtoolz/bitmaps/bobtoolz_treeplanter.bmp [deleted file]
contrib/bobtoolz/bitmaps/bobtoolz_turnedge.bmp [deleted file]
contrib/bobtoolz/bobToolz-GTK.cpp
contrib/bobtoolz/bobToolz_gtk.vcproj
contrib/bobtoolz/dialogs/dialogs-gtk.cpp
contrib/bobtoolz/misc.cpp
contrib/bobtoolz/misc.h
contrib/camera/bitmaps/camera_insp.bmp [deleted file]
contrib/camera/camera.cpp
contrib/camera/camera.vcproj
contrib/camera/camera_VC9.vcproj [new file with mode: 0755]
contrib/camera/dialogs.cpp
contrib/camera/dialogs_common.cpp
contrib/camera/funchandlers.cpp
contrib/camera/misc.cpp
contrib/camera/misc.h
contrib/gtkgensurf/bitmap.cpp
contrib/gtkgensurf/dec.cpp
contrib/gtkgensurf/face.cpp
contrib/gtkgensurf/gendlgs.cpp
contrib/gtkgensurf/genmap.cpp
contrib/gtkgensurf/gensurf.cpp
contrib/gtkgensurf/gtkgensurf.vcproj
contrib/gtkgensurf/plugin.cpp
contrib/hydratoolz/hydratoolz.vcproj
contrib/hydratoolz/plugin.cpp
contrib/prtview/AboutDialog.cpp
contrib/prtview/AboutDialog.h [deleted file]
contrib/prtview/ConfigDialog.cpp
contrib/prtview/ConfigDialog.h [deleted file]
contrib/prtview/LoadPortalFileDialog.cpp
contrib/prtview/LoadPortalFileDialog.h
contrib/prtview/PrtView.vcproj
contrib/prtview/gtkdlgs.cpp
contrib/prtview/prtview.cpp
contrib/prtview/stdafx.h
contrib/ufoai/plugin.cpp [new file with mode: 0644]
contrib/ufoai/plugin.h [new file with mode: 0644]
contrib/ufoai/ufoai.def [new file with mode: 0644]
contrib/ufoai/ufoai.vcproj [new file with mode: 0644]
contrib/ufoai/ufoai_filters.cpp [new file with mode: 0644]
contrib/ufoai/ufoai_filters.h [new file with mode: 0644]
docs/developer/.cvsignore [deleted file]
docs/developer/CHANGES [deleted file]
docs/developer/DRAFT [deleted file]
docs/developer/HEAP [deleted file]
docs/developer/Inspector/Inspectors.argo [deleted file]
docs/developer/Inspector/Inspectors.xmi [deleted file]
docs/developer/Inspector/Inspectors_classdiagram1.pgml [deleted file]
docs/developer/Inspector/Inspectors_collaborationdiagram1.pgml [deleted file]
docs/developer/Inspector/Inspectors_usecasediagram1.pgml [deleted file]
docs/developer/Inspector/classdiagram1.gif [deleted file]
docs/developer/Inspector/collaborationdiagram1.pgml [deleted file]
docs/developer/Inspector/inspector.txt [deleted file]
docs/developer/RegExp/Go [deleted file]
docs/developer/RegExp/Go.cleaned [deleted file]
docs/developer/RegExp/pattern [deleted file]
docs/developer/RegExp/replace.pl [deleted file]
docs/developer/RegExp/tstscrpt.pl [deleted file]
docs/developer/TESTERS [deleted file]
docs/developer/TODO [deleted file]
docs/developer/TstMaps/Desktop_pb_leaf.map [deleted file]
docs/developer/TstMaps/komap1.map [deleted file]
docs/developer/TstMaps/realloc.map [deleted file]
docs/developer/TstMaps/sput.map [deleted file]
docs/developer/TstMaps/ttq3dm3.map [deleted file]
docs/developer/TstMaps/western.map [deleted file]
docs/developer/UML/modules.zargo [deleted file]
docs/developer/WIN32BETA [deleted file]
docs/developer/WIN32SETUP [deleted file]
docs/developer/XML.txt [deleted file]
docs/developer/XMLPush/ReadMe.txt [deleted file]
docs/developer/XMLPush/StdAfx.cpp [deleted file]
docs/developer/XMLPush/StdAfx.h [deleted file]
docs/developer/XMLPush/XMLDump.xml [deleted file]
docs/developer/XMLPush/XMLPush.cpp [deleted file]
docs/developer/XMLmap.txt [deleted file]
docs/developer/changes.201.202 [deleted file]
docs/developer/d2u [deleted file]
docs/developer/data-driven-design.txt [deleted file]
docs/developer/frp [deleted file]
docs/developer/q3mapfeedback.txt [deleted file]
gen.vcproj
include/idatastream.h
include/ifilesystem.h
include/ifilters.h [new file with mode: 0644]
include/igl.h
include/ishaders.h
include/isurfaceplugin.h
include/itoolbar.h
include/iui.h
include/iundo.h
include/misc_def.h
include/qerplugin.h
include/qertypes.h
include/version.h
install/bitmaps/brush_flipx.bmp [new file with mode: 0644]
install/bitmaps/brush_flipy.bmp [new file with mode: 0644]
install/bitmaps/brush_flipz.bmp [new file with mode: 0644]
install/bitmaps/brush_rotatex.bmp [new file with mode: 0644]
install/bitmaps/brush_rotatey.bmp [new file with mode: 0644]
install/bitmaps/brush_rotatez.bmp [new file with mode: 0644]
install/bitmaps/cap_bevel.bmp [new file with mode: 0644]
install/bitmaps/cap_endcap.bmp [new file with mode: 0644]
install/bitmaps/cap_ibevel.bmp [new file with mode: 0644]
install/bitmaps/cap_iendcap.bmp [new file with mode: 0644]
install/bitmaps/curve_cap.bmp [new file with mode: 0644]
install/bitmaps/dontselectcurve.bmp [new file with mode: 0644]
install/bitmaps/dontselectmodel.bmp [new file with mode: 0644]
install/bitmaps/file_open.bmp [new file with mode: 0644]
install/bitmaps/file_save.bmp [new file with mode: 0644]
install/bitmaps/icon.bmp [new file with mode: 0644]
install/bitmaps/logo.bmp [new file with mode: 0644]
install/bitmaps/patch_bend.bmp [new file with mode: 0644]
install/bitmaps/patch_drilldown.bmp [new file with mode: 0644]
install/bitmaps/patch_insdel.bmp [new file with mode: 0644]
install/bitmaps/patch_showboundingbox.bmp [new file with mode: 0644]
install/bitmaps/patch_weld.bmp [new file with mode: 0644]
install/bitmaps/patch_wireframe.bmp [new file with mode: 0644]
install/bitmaps/popup_selection.bmp [new file with mode: 0644]
install/bitmaps/scalelockx.bmp [new file with mode: 0644]
install/bitmaps/scalelocky.bmp [new file with mode: 0644]
install/bitmaps/scalelockz.bmp [new file with mode: 0644]
install/bitmaps/select_mouserotate.bmp [new file with mode: 0644]
install/bitmaps/select_mousescale.bmp [new file with mode: 0644]
install/bitmaps/selection_csgmerge.bmp [new file with mode: 0644]
install/bitmaps/selection_csgsubtract.bmp [new file with mode: 0644]
install/bitmaps/selection_makehollow.bmp [new file with mode: 0644]
install/bitmaps/selection_selectcompletetall.bmp [new file with mode: 0644]
install/bitmaps/selection_selectinside.bmp [new file with mode: 0644]
install/bitmaps/selection_selectpartialtall.bmp [new file with mode: 0644]
install/bitmaps/selection_selecttouching.bmp [new file with mode: 0644]
install/bitmaps/show_entities.bmp [new file with mode: 0644]
install/bitmaps/splash.bmp [new file with mode: 0644]
install/bitmaps/textures_popup.bmp [new file with mode: 0644]
install/bitmaps/view_cameratoggle.bmp [new file with mode: 0644]
install/bitmaps/view_cameraupdate.bmp [new file with mode: 0644]
install/bitmaps/view_change.bmp [new file with mode: 0644]
install/bitmaps/view_clipper.bmp [new file with mode: 0644]
install/bitmaps/view_cubicclipping.bmp [new file with mode: 0644]
install/bitmaps/view_entity.bmp [new file with mode: 0644]
install/bitmaps/window1.bmp [new file with mode: 0644]
install/bitmaps/window2.bmp [new file with mode: 0644]
install/bitmaps/window3.bmp [new file with mode: 0644]
install/bitmaps/window4.bmp [new file with mode: 0644]
install/modules/bitmaps/bkgrnd2d_conf.bmp [new file with mode: 0644]
install/modules/bitmaps/bkgrnd2d_xy_toggle.bmp [new file with mode: 0644]
install/modules/bitmaps/bkgrnd2d_xz_toggle.bmp [new file with mode: 0644]
install/modules/bitmaps/bkgrnd2d_yz_toggle.bmp [new file with mode: 0644]
install/modules/bitmaps/bobtoolz_caulk.bmp [new file with mode: 0644]
install/modules/bitmaps/bobtoolz_cleanup.bmp [new file with mode: 0644]
install/modules/bitmaps/bobtoolz_dropent.bmp [new file with mode: 0644]
install/modules/bitmaps/bobtoolz_merge.bmp [new file with mode: 0644]
install/modules/bitmaps/bobtoolz_poly.bmp [new file with mode: 0644]
install/modules/bitmaps/bobtoolz_split.bmp [new file with mode: 0644]
install/modules/bitmaps/bobtoolz_trainpathplot.bmp [new file with mode: 0644]
install/modules/bitmaps/bobtoolz_treeplanter.bmp [new file with mode: 0644]
install/modules/bitmaps/bobtoolz_turnedge.bmp [new file with mode: 0644]
install/modules/bitmaps/camera_insp.bmp [new file with mode: 0644]
install/modules/bitmaps/model_reload_entity.bmp [new file with mode: 0644]
install/modules/bitmaps/picomodel.bmp [new file with mode: 0644]
install/modules/bitmaps/sample.bmp [new file with mode: 0644]
install/modules/bitmaps/ufoai_actorclip.bmp [new file with mode: 0644]
install/modules/bitmaps/ufoai_level1.bmp [new file with mode: 0644]
install/modules/bitmaps/ufoai_level2.bmp [new file with mode: 0644]
install/modules/bitmaps/ufoai_level3.bmp [new file with mode: 0644]
install/modules/bitmaps/ufoai_level4.bmp [new file with mode: 0644]
install/modules/bitmaps/ufoai_level5.bmp [new file with mode: 0644]
install/modules/bitmaps/ufoai_level6.bmp [new file with mode: 0644]
install/modules/bitmaps/ufoai_level7.bmp [new file with mode: 0644]
install/modules/bitmaps/ufoai_level8.bmp [new file with mode: 0644]
install/modules/bitmaps/ufoai_nodraw.bmp [new file with mode: 0644]
install/modules/bitmaps/ufoai_stepon.bmp [new file with mode: 0644]
install/modules/bitmaps/ufoai_weaponclip.bmp [new file with mode: 0644]
libs/cmdlib/cmdlib.vcproj
libs/cmdlib/cmdlib_VC9.vcproj [new file with mode: 0755]
libs/ddslib/ddslib.c
libs/ddslib/ddslib.vcproj
libs/ddslib/ddslib_VC9.vcproj [new file with mode: 0755]
libs/jpeg6/.cvsignore [deleted file]
libs/jpeg6/.cvswrappers [deleted file]
libs/jpeg6/jchuff.h [deleted file]
libs/jpeg6/jcomapi.cpp [deleted file]
libs/jpeg6/jconfig.h [deleted file]
libs/jpeg6/jdapimin.cpp [deleted file]
libs/jpeg6/jdapistd.cpp [deleted file]
libs/jpeg6/jdatasrc.cpp [deleted file]
libs/jpeg6/jdcoefct.cpp [deleted file]
libs/jpeg6/jdcolor.cpp [deleted file]
libs/jpeg6/jdct.h [deleted file]
libs/jpeg6/jddctmgr.cpp [deleted file]
libs/jpeg6/jdhuff.cpp [deleted file]
libs/jpeg6/jdhuff.h [deleted file]
libs/jpeg6/jdinput.cpp [deleted file]
libs/jpeg6/jdmainct.cpp [deleted file]
libs/jpeg6/jdmarker.cpp [deleted file]
libs/jpeg6/jdmaster.cpp [deleted file]
libs/jpeg6/jdpostct.cpp [deleted file]
libs/jpeg6/jdsample.cpp [deleted file]
libs/jpeg6/jdtrans.cpp [deleted file]
libs/jpeg6/jerror.cpp [deleted file]
libs/jpeg6/jerror.h [deleted file]
libs/jpeg6/jfdctflt.cpp [deleted file]
libs/jpeg6/jidctflt.cpp [deleted file]
libs/jpeg6/jinclude.h [deleted file]
libs/jpeg6/jmemmgr.cpp [deleted file]
libs/jpeg6/jmemnobs.cpp [deleted file]
libs/jpeg6/jmemsys.h [deleted file]
libs/jpeg6/jmorecfg.h [deleted file]
libs/jpeg6/jpeg6.vcproj [deleted file]
libs/jpeg6/jpegint.h [deleted file]
libs/jpeg6/jpgload.cpp [deleted file]
libs/jpeg6/jutils.cpp [deleted file]
libs/jpeg6/jversion.h [deleted file]
libs/jpeglib.h [deleted file]
libs/l_net/l_net.c
libs/l_net/l_net.vcproj
libs/l_net/l_net_VC9.vcproj [new file with mode: 0755]
libs/l_net/l_net_berkeley.c [new file with mode: 0644]
libs/l_net/l_net_berkley.c [deleted file]
libs/mathlib/linear.c
libs/mathlib/m4x4.c
libs/mathlib/mathlib.vcproj
libs/mathlib/mathlib_VC9.vcproj [new file with mode: 0755]
libs/md5lib/md5lib.vcproj
libs/md5lib/md5lib_VC9.vcproj [new file with mode: 0755]
libs/missing.h
libs/picomodel/lwo/lwio.c
libs/picomodel/lwo/lwob.c
libs/picomodel/lwo/pntspols.c
libs/picomodel/picomodel.c
libs/picomodel/picomodel.vcproj
libs/picomodel/picomodel_VC9.vcproj [new file with mode: 0755]
libs/picomodel/pm_ase.c
libs/picomodel/pm_md2.c
libs/picomodel/pm_obj.c
libs/radiant_jpeglib.h [deleted file]
libs/splines/Splines.vcproj
libs/splines/Splines_VC9.vcproj [new file with mode: 0755]
libs/str.h
libs/synapse/synapse.cpp
libs/synapse/synapse.vcproj
libs/synapse/synapse_VC9.vcproj [new file with mode: 0755]
plugins/config.mk [deleted file]
plugins/eclassfgd/fgd.vcproj
plugins/eclassfgd/plugin.cpp
plugins/entity/entity.vcproj
plugins/entity/entity_VC9.vcproj [new file with mode: 0755]
plugins/entity/light.cpp
plugins/entity/plugin.cpp
plugins/image/bmp.h
plugins/image/image.cpp
plugins/image/image.vcproj
plugins/image/image_VC9.vcproj [new file with mode: 0755]
plugins/image/jpeg.cpp
plugins/image/lbmlib.cpp
plugins/imagehl/imagehl.cpp
plugins/imagehl/imagehl.vcproj
plugins/imagehl/lbmlib.cpp
plugins/imagem8/imagem8.cpp
plugins/imagem8/imagem8.vcproj
plugins/imagem8/m32.cpp
plugins/imagem8/m8.cpp
plugins/imagepng/imagepng.vcproj
plugins/imagepng/imagepng_VC9.vcproj [new file with mode: 0755]
plugins/imagepng/plugin.cpp
plugins/imagewal/imagewal.cpp
plugins/imagewal/imagewal.vcproj
plugins/imagewal/wal.cpp
plugins/map/map.vcproj
plugins/map/map_VC9.vcproj [new file with mode: 0755]
plugins/map/parse.cpp
plugins/map/plugin.cpp
plugins/map/write.cpp
plugins/mapxml/mapxml.vcproj
plugins/mapxml/mapxml_VC9.vcproj [new file with mode: 0755]
plugins/mapxml/plugin.cpp
plugins/model/bitmaps/model_reload_entity.bmp [deleted file]
plugins/model/bitmaps/picomodel.bmp [deleted file]
plugins/model/model.vcproj
plugins/model/model_VC9.vcproj [new file with mode: 0755]
plugins/model/plugin.cpp
plugins/sample/plugin.cpp [new file with mode: 0644]
plugins/sample/plugin.h [new file with mode: 0644]
plugins/sample/sample.def [new file with mode: 0644]
plugins/sample/sample.vcproj [new file with mode: 0644]
plugins/shaders/plugin.cpp
plugins/shaders/shaders.vcproj
plugins/shaders/shaders_VC9.vcproj [new file with mode: 0755]
plugins/spritemodel/plugin.cpp
plugins/spritemodel/spritemodel.vcproj
plugins/surface/surface.vcproj
plugins/surface/surface_VC9.vcproj [new file with mode: 0755]
plugins/surface/surfacedialog.cpp
plugins/surface/surfdlg_plugin.cpp
plugins/surface_heretic2/surface_heretic2.vcproj
plugins/surface_heretic2/surfacedialog.cpp
plugins/surface_heretic2/surfaceflagsdialog_heretic2.cpp
plugins/surface_heretic2/surfdlg_plugin.cpp
plugins/surface_quake2/surface_quake2.vcproj
plugins/surface_quake2/surfacedialog.cpp
plugins/surface_quake2/surfaceflagsdialog_quake2.cpp
plugins/surface_quake2/surfdlg_plugin.cpp
plugins/surface_ufoai/surface_ufoai.def [new file with mode: 0644]
plugins/surface_ufoai/surface_ufoai.vcproj [new file with mode: 0644]
plugins/surface_ufoai/surfacedialog.cpp [new file with mode: 0644]
plugins/surface_ufoai/surfacedialog.h [new file with mode: 0644]
plugins/surface_ufoai/surfaceflagsdialog_ufoai.cpp [new file with mode: 0644]
plugins/surface_ufoai/surfaceflagsdialog_ufoai.h [new file with mode: 0644]
plugins/surface_ufoai/surfdlg_plugin.cpp [new file with mode: 0644]
plugins/surface_ufoai/surfdlg_plugin.h [new file with mode: 0644]
plugins/textool/StdAfx.cpp
plugins/textool/StdAfx.h
plugins/textool/TexTool.cpp
plugins/textool/TexTool.vcproj
plugins/vfspak/vfs.cpp
plugins/vfspak/vfspak.cpp
plugins/vfspak/vfspak.vcproj
plugins/vfspk3/vfs.cpp
plugins/vfspk3/vfspk3.cpp
plugins/vfspk3/vfspk3.vcproj
plugins/vfspk3/vfspk3_VC9.vcproj [new file with mode: 0755]
plugins/vfswad/vfs.cpp
plugins/vfswad/vfswad.cpp
plugins/vfswad/vfswad.vcproj
po/de.po [new file with mode: 0644]
radiant.pot [new file with mode: 0644]
radiant.sln
radiant/bitmaps/brush_flipx.bmp [deleted file]
radiant/bitmaps/brush_flipy.bmp [deleted file]
radiant/bitmaps/brush_flipz.bmp [deleted file]
radiant/bitmaps/brush_rotatex.bmp [deleted file]
radiant/bitmaps/brush_rotatey.bmp [deleted file]
radiant/bitmaps/brush_rotatez.bmp [deleted file]
radiant/bitmaps/cap_bevel.bmp [deleted file]
radiant/bitmaps/cap_endcap.bmp [deleted file]
radiant/bitmaps/cap_ibevel.bmp [deleted file]
radiant/bitmaps/cap_iendcap.bmp [deleted file]
radiant/bitmaps/curve_cap.bmp [deleted file]
radiant/bitmaps/dontselectcurve.bmp [deleted file]
radiant/bitmaps/dontselectmodel.bmp [deleted file]
radiant/bitmaps/file_open.bmp [deleted file]
radiant/bitmaps/file_save.bmp [deleted file]
radiant/bitmaps/icon.bmp [deleted file]
radiant/bitmaps/logo.bmp [deleted file]
radiant/bitmaps/patch_bend.bmp [deleted file]
radiant/bitmaps/patch_drilldown.bmp [deleted file]
radiant/bitmaps/patch_insdel.bmp [deleted file]
radiant/bitmaps/patch_showboundingbox.bmp [deleted file]
radiant/bitmaps/patch_weld.bmp [deleted file]
radiant/bitmaps/patch_wireframe.bmp [deleted file]
radiant/bitmaps/popup_selection.bmp [deleted file]
radiant/bitmaps/scalelockx.bmp [deleted file]
radiant/bitmaps/scalelocky.bmp [deleted file]
radiant/bitmaps/scalelockz.bmp [deleted file]
radiant/bitmaps/select_mouserotate.bmp [deleted file]
radiant/bitmaps/select_mousescale.bmp [deleted file]
radiant/bitmaps/selection_csgmerge.bmp [deleted file]
radiant/bitmaps/selection_csgsubtract.bmp [deleted file]
radiant/bitmaps/selection_makehollow.bmp [deleted file]
radiant/bitmaps/selection_selectcompletetall.bmp [deleted file]
radiant/bitmaps/selection_selectinside.bmp [deleted file]
radiant/bitmaps/selection_selectpartialtall.bmp [deleted file]
radiant/bitmaps/selection_selecttouching.bmp [deleted file]
radiant/bitmaps/show_entities.bmp [deleted file]
radiant/bitmaps/splash.bmp [deleted file]
radiant/bitmaps/textures_popup.bmp [deleted file]
radiant/bitmaps/view_cameratoggle.bmp [deleted file]
radiant/bitmaps/view_cameraupdate.bmp [deleted file]
radiant/bitmaps/view_change.bmp [deleted file]
radiant/bitmaps/view_clipper.bmp [deleted file]
radiant/bitmaps/view_cubicclipping.bmp [deleted file]
radiant/bitmaps/view_entity.bmp [deleted file]
radiant/bitmaps/window1.bmp [deleted file]
radiant/bitmaps/window2.bmp [deleted file]
radiant/bitmaps/window3.bmp [deleted file]
radiant/bitmaps/window4.bmp [deleted file]
radiant/bp_dlg.cpp
radiant/brush.cpp
radiant/brush_primit.cpp
radiant/camwindow.cpp
radiant/camwindow.h
radiant/dialog.cpp
radiant/dialog.h
radiant/drag.cpp
radiant/eclass.cpp
radiant/error.cpp
radiant/filters.cpp
radiant/filters.h
radiant/findtexturedialog.cpp
radiant/glwidget.cpp
radiant/groupdialog.cpp
radiant/groupdialog.h
radiant/gtkdlgs.cpp
radiant/gtkfilesel-linux.c
radiant/gtkmisc.cpp
radiant/gtkmisc.h
radiant/main.cpp
radiant/mainframe.cpp
radiant/mainframe.h
radiant/map.cpp
radiant/missing.cpp
radiant/patchdialog.cpp
radiant/pluginmanager.cpp
radiant/pmesh.cpp
radiant/preferences.cpp
radiant/preferences.h
radiant/qe3.cpp
radiant/qe3.h
radiant/qgl.h
radiant/radiant.rc
radiant/radiant.vcproj
radiant/radiant_VC9.vcproj [new file with mode: 0755]
radiant/select.cpp
radiant/selectedface.cpp
radiant/surfacedialog.cpp
radiant/surfaceplugin.cpp
radiant/texwindow.cpp
radiant/ui.h
radiant/undo.cpp
radiant/undo.h
radiant/watchbsp.cpp
radiant/winding.cpp
radiant/xmlstuff.h
radiant/xywindow.cpp
radiant_VC9.sln [new file with mode: 0644]
tools/quake2/common/cmdlib.c
tools/quake2/common/cmdlib.h
tools/quake2/common/inout.c
tools/quake2/common/path_init.c
tools/quake2/common/qfiles.h
tools/quake2/common/threads.c
tools/quake2/q2map/q2map.h
tools/quake2/q2map/q2map.vcproj
tools/quake2/q2map/qbsp.h
tools/quake2/q2map/qrad.h
tools/quake2/q2map/qvis.h
tools/quake2/qdata/images.c
tools/quake2/qdata/models.c
tools/quake2/qdata/qdata.c
tools/quake2/qdata/qdata.h
tools/quake2/qdata/qdata3.vcproj
tools/quake2/qdata/sprites.c
tools/quake2/qdata/tables.c
tools/quake2/qdata/video.c
tools/quake2/qdata_heretic2/anorms.h
tools/quake2/qdata_heretic2/common/cmdlib.c
tools/quake2/qdata_heretic2/common/inout.c
tools/quake2/qdata_heretic2/common/md4.c
tools/quake2/qdata_heretic2/common/path_init.c
tools/quake2/qdata_heretic2/common/threads.c
tools/quake2/qdata_heretic2/qdata.c
tools/quake2/qdata_heretic2/qdata3_heretic2.vcproj
tools/quake3/common/aselib.c
tools/quake3/common/cmdlib.c
tools/quake3/common/imagelib.c
tools/quake3/common/imagelib.h
tools/quake3/common/inout.c
tools/quake3/common/inout.h
tools/quake3/common/jpeg.c [new file with mode: 0644]
tools/quake3/common/mutex.c
tools/quake3/common/polylib.c
tools/quake3/common/surfaceflags.h
tools/quake3/common/threads.c
tools/quake3/common/vfs.c
tools/quake3/q3data/3dslib.c
tools/quake3/q3data/3dslib.h
tools/quake3/q3data/compress.c
tools/quake3/q3data/images.c
tools/quake3/q3data/md3lib.c
tools/quake3/q3data/md3lib.h
tools/quake3/q3data/models.c
tools/quake3/q3data/oldstuff.c
tools/quake3/q3data/p3dlib.c
tools/quake3/q3data/p3dlib.h
tools/quake3/q3data/polyset.c
tools/quake3/q3data/q3data.c
tools/quake3/q3data/q3data.h
tools/quake3/q3data/q3data.vcproj
tools/quake3/q3data/stripper.c
tools/quake3/q3data/video.c
tools/quake3/q3map2/brush.c
tools/quake3/q3map2/brush_primit.c
tools/quake3/q3map2/bsp.c
tools/quake3/q3map2/bspfile_abstract.c
tools/quake3/q3map2/bspfile_ibsp.c
tools/quake3/q3map2/bspfile_rbsp.c
tools/quake3/q3map2/changelog.q3map1
tools/quake3/q3map2/changelog.q3map2.txt
tools/quake3/q3map2/convert_ase.c
tools/quake3/q3map2/convert_map.c
tools/quake3/q3map2/decals.c
tools/quake3/q3map2/facebsp.c
tools/quake3/q3map2/fog.c
tools/quake3/q3map2/game_ef.h
tools/quake3/q3map2/game_etut.h [new file with mode: 0644]
tools/quake3/q3map2/game_ja.h
tools/quake3/q3map2/game_jk2.h
tools/quake3/q3map2/game_qfusion.h [new file with mode: 0644]
tools/quake3/q3map2/game_quake3.h
tools/quake3/q3map2/game_sof2.h
tools/quake3/q3map2/game_tenebrae.h
tools/quake3/q3map2/game_tremulous.h [new file with mode: 0644]
tools/quake3/q3map2/game_wolf.h
tools/quake3/q3map2/game_wolfet.h
tools/quake3/q3map2/image.c
tools/quake3/q3map2/leakfile.c
tools/quake3/q3map2/light.c
tools/quake3/q3map2/light_bounce.c
tools/quake3/q3map2/light_trace.c
tools/quake3/q3map2/light_ydnar.c
tools/quake3/q3map2/lightmaps_ydnar.c
tools/quake3/q3map2/main.c
tools/quake3/q3map2/map.c
tools/quake3/q3map2/mesh.c
tools/quake3/q3map2/model.c
tools/quake3/q3map2/patch.c
tools/quake3/q3map2/path_init.c
tools/quake3/q3map2/portals.c
tools/quake3/q3map2/prtfile.c
tools/quake3/q3map2/q3map2.h
tools/quake3/q3map2/q3map2.vcproj
tools/quake3/q3map2/q3map2_VC9.vcproj [new file with mode: 0755]
tools/quake3/q3map2/shaders.c
tools/quake3/q3map2/surface.c
tools/quake3/q3map2/surface_extra.c
tools/quake3/q3map2/surface_foliage.c
tools/quake3/q3map2/surface_fur.c
tools/quake3/q3map2/surface_meta.c
tools/quake3/q3map2/tjunction.c
tools/quake3/q3map2/tree.c
tools/quake3/q3map2/vis.c
tools/quake3/q3map2/visflow.c
tools/quake3/q3map2/writebsp.c
uncrustify.cfg [new file with mode: 0644]
utils.py [new file with mode: 0644]
win32_install.py [deleted file]
www/bug.shtml [deleted file]
www/coding.html [deleted file]
www/files.html [deleted file]
www/gtkradiant.html [deleted file]
www/hosted.html [deleted file]
www/index.html [deleted file]
www/reviews.html [deleted file]

diff --git a/BSD b/BSD
index 79fe1f977b0c10314080a03cec011c1c98a3d6ea..70755aa7574de9180ab73d14c8f57f1f2e6b730a 100644 (file)
--- a/BSD
+++ b/BSD
@@ -1,28 +1,28 @@
-Copyright (c) 2001, Loki software, inc.\r
-All rights reserved.\r
-\r
-Redistribution and use in source and binary forms, with or without modification,\r
-are permitted provided that the following conditions are met:\r
-\r
-Redistributions of source code must retain the above copyright notice, this list\r
-of conditions and the following disclaimer.\r
-\r
-Redistributions in binary form must reproduce the above copyright notice, this\r
-list of conditions and the following disclaimer in the documentation and/or\r
-other materials provided with the distribution.\r
-\r
-Neither the name of Loki software nor the names of its contributors may be used\r
-to endorse or promote products derived from this software without specific prior\r
- written permission. \r
-\r
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''\r
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\r
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY \r
-DIRECT,INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES \r
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\r
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\r
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \r
-\r
+Copyright (c) 2001, Loki software, inc.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+Redistributions of source code must retain the above copyright notice, this list
+of conditions and the following disclaimer.
+
+Redistributions in binary form must reproduce the above copyright notice, this
+list of conditions and the following disclaimer in the documentation and/or
+other materials provided with the distribution.
+
+Neither the name of Loki software nor the names of its contributors may be used
+to endorse or promote products derived from this software without specific prior
+ written permission. 
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY 
+DIRECT,INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
+
index fbe5461833e0274e9ff26d637b0957418cb0f4a8..1792be8bc101b6d84c6a4cf5ad0504c0d2a5828b 100644 (file)
@@ -1,11 +1,11 @@
-Changes file for the MacOS port of GtkRadiant 1.1-TA\r
-----------------------------------------------------\r
-05/24/2001\r
-TTimo\r
- Patching the MacOS branch to build on linux\r
-04/15/2001\r
-Pradeep\r
- Changes so that the whole project compiles under MacOSX/XFree. \r
-03/28/2001\r
-TTimo\r
-  added this file and gave write access to pradeep on the tree (testing write access)\r
+Changes file for the MacOS port of GtkRadiant 1.1-TA
+----------------------------------------------------
+05/24/2001
+TTimo
+ Patching the MacOS branch to build on linux
+04/15/2001
+Pradeep
+ Changes so that the whole project compiles under MacOSX/XFree. 
+03/28/2001
+TTimo
+  added this file and gave write access to pradeep on the tree (testing write access)
index a53331be7b7d5fa3c3230cdba2e552b72526b2cd..0a5c74d8b944e260d64aa0938cfaa0cab6fc627b 100644 (file)
--- a/COMPILING
+++ b/COMPILING
@@ -1,7 +1,73 @@
- * understand relative paths in the .game file\r
- * ignore warnings: 4996 4244 4267\r
- ( some CRT API warning stuff, and size conversion warnings)\r
- * using the same updated Gtk win32 as GtkR 1.5 (may be packaged a bit differently for sanity)\r
- * converted the project files to VC8\r
- * disabled all the modules that are not necessary for Q3 editing\r
- * default parameters can't be used in function typedefs anymore, removed those and fixed the code accordingly\r
+developer documentation for GtkRadiant 1.6.0 (Zeroradiant)
+==========================================================
+
+getting the source
+==================
+
+The latest source is available from the Subversion repository.
+  https://zerowing.idsoftware.com/svn/radiant/GtkRadiant/trunk/
+
+The subversion client can be obtained from the Subversion site.
+  http://subversion.tigris.org
+
+To get a copy of the source using the commandline Subversion client:
+  Change the current directory to the desired location for the source.
+  svn checkout https://zerowing.idsoftware.com/svn/radiant/GtkRadiant/trunk/ ./GtkRadiant
+
+Download the desired game packs:
+  cd ./GtkRadiant/install/installs
+  svn checkout https://zerowing.idsoftware.com/svn/radiant.gamepacks/Q3Pack/trunk/ ./Q3Pack
+  svn checkout https://zerowing.idsoftware.com/svn/radiant.gamepacks/UFOAIPack/trunk/ ./UFOAIPack
+  svn checkout https://zerowing.idsoftware.com/svn/radiant.gamepacks/TremulousPack/trunk/ ./TremulousPack
+
+Linux/OSX(using X-windows)
+==========================
+
+environment:
+- gcc >= version 3.1 (preferably)
+- scons >= 0.96 (radiant is built with scons rather than make)
+- python >= 2.3.0, (scons requires python, some build steps use python)
+- svn >= 1.1 (some build steps use svn)
+
+dependencies:
+- gtk+ >= 2.4.0 (requires glib, atk, pango, iconv, etc)
+- gtkglext >= 1.0.0 (requires opengl)
+- libxml2 >= 2.0.0
+- zlib >= 1.2.0 (for archivezip module)
+- libpng >= 1.2.0 (for imagepng module)
+- libmhash = 0.9.0 (for q3map2)
+
+build:
+Execute 'scons' in the directory containing SConscript
+
+install:
+run 'python ./GtkRadiant/install.py'
+note - this script should be run after each time you update from svn
+
+run:
+Execute './GtkRadiant/install/radiant.x86' (or './GtkRadiant/install/radiant.ppc' on osx)
+
+
+Win32 (2000, XP or Vista)
+==================
+
+environment:
+- visual studio 2005
+- python 2.3.0 or later (some build steps use python)
+- subversion 1.1 or later (some build steps use svn)
+
+dependencies are prepackaged archives, extract them to the directory above GtkRadiant.sln:
+- http://zerowing.idsoftware.com/files/radiant/developer/1.5/gtkradiant-1.5-dependencies-1.0.zip
+
+build:
+Open GtkRadiant.sln.
+In tools > options > projects > VC++ Directories > executables, add the paths to python.exe (e.g. c:\python23\) and svn.exe (e.g. c:\svn\)
+Hit 'Build > Build Solution' (F7)
+
+install:
+run 'python ./GtkRadiant/install.py'
+note - this script should be run after each time you update from svn
+
+run:
+set Project > Properties > Debugging > Command to "$(SolutionDir)install/$(TargetFileName)"
+hit 'Debug > Start' (F5)
index 3cfab6d2f8b8472d1bc64c740d77e2fc6b670cb3..323dbd0d79aca552f90f83bdd7fb8cc12eac8d5a 100644 (file)
@@ -1,65 +1,65 @@
-GtkRadiant CONTRIBUTORS and CREDITS\r
-last update: 01/15/2001\r
-=======================\r
-\r
-Loki\r
-----\r
-Leonardo Zide leo@lokigames.com\r
-Mike Phillips (Loki QA)\r
-Bernd Kreimeier (overall coordination)\r
-\r
-QER.com\r
--------\r
-TTimo timo@qeradiant.com\r
-^Fishman (Pablo Zurita) fish@gamedesign.net\r
-RR2DO2 rr2do2@q3f.com\r
-\r
-Curry plugin\r
-------------\r
-Mike "mickey" Jackman\r
-Tim "Maj" Rennie\r
-William "SmallPileOfGibs" Joseph\r
-\r
-PrtView plugin, various bug fixes and q3map guru\r
-------------------------------------------------\r
-Geoffrey DeWan\r
-\r
-Gensurf plugin\r
---------------\r
-David Hyde\r
-\r
-PicoModel\r
----------\r
-seaw0lf with assist by ydnar\r
-\r
-Q3Map2\r
-------\r
-Randy 'ydnar' Reddig\r
-\r
-Updated shader files, textures, entities.def, keyboard shortcut list\r
-overall testing and feedback\r
-----------------------------\r
-Jean-Francois "Eutectic" Groleau\r
-\r
-Improvements and bug fixing\r
----------------------------\r
-Jan Paul "MrElusive" van Waveren\r
-Robert Duffy\r
-\r
-Web\r
----\r
-Dave "Bargle" Koenig and Jason "Wolfen" Spencer\r
-\r
-Thanks to John Hutton, AstroCreep and W2k for web help\r
-\r
-FAQ\r
----\r
-Equim and Wex\r
-\r
-Misc\r
-----\r
-Thanks to everyone on the beta mailing list and\r
-irc.telefragged.com #qeradiant for testing and feedback.\r
-Updated icons by AstroCreep!\r
-Bitch-slapping by RaYGunn!\r
-Last minute bugs by SpoG! (SpoG--)\r
+GtkRadiant CONTRIBUTORS and CREDITS
+last update: 01/15/2001
+=======================
+
+Loki
+----
+Leonardo Zide leo@lokigames.com
+Mike Phillips (Loki QA)
+Bernd Kreimeier (overall coordination)
+
+QER.com
+-------
+TTimo timo@qeradiant.com
+^Fishman (Pablo Zurita) fish@gamedesign.net
+RR2DO2 rr2do2@q3f.com
+
+Curry plugin
+------------
+Mike "mickey" Jackman
+Tim "Maj" Rennie
+William "SmallPileOfGibs" Joseph
+
+PrtView plugin, various bug fixes and q3map guru
+------------------------------------------------
+Geoffrey DeWan
+
+Gensurf plugin
+--------------
+David Hyde
+
+PicoModel
+---------
+seaw0lf with assist by ydnar
+
+Q3Map2
+------
+Randy 'ydnar' Reddig
+
+Updated shader files, textures, entities.def, keyboard shortcut list
+overall testing and feedback
+----------------------------
+Jean-Francois "Eutectic" Groleau
+
+Improvements and bug fixing
+---------------------------
+Jan Paul "MrElusive" van Waveren
+Robert Duffy
+
+Web
+---
+Dave "Bargle" Koenig and Jason "Wolfen" Spencer
+
+Thanks to John Hutton, AstroCreep and W2k for web help
+
+FAQ
+---
+Equim and Wex
+
+Misc
+----
+Thanks to everyone on the beta mailing list and
+irc.telefragged.com #qeradiant for testing and feedback.
+Updated icons by AstroCreep!
+Bitch-slapping by RaYGunn!
+Last minute bugs by SpoG! (SpoG--)
diff --git a/ChangeLog b/ChangeLog
new file mode 100644 (file)
index 0000000..ff51851
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,2 @@
+ * converted the project files to VC8
+ * default parameters can't be used in function typedefs anymore, removed those and fixed the code accordingly
diff --git a/GPL b/GPL
index 2128a66ea7d038eecac13febce1a26b3da3b7159..960fe7469fe8270891a6640460b8610f18eb9059 100644 (file)
--- a/GPL
+++ b/GPL
-                   GNU GENERAL PUBLIC LICENSE\r
-                      Version 2, June 1991\r
-\r
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.\r
-                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\r
- Everyone is permitted to copy and distribute verbatim copies\r
- of this license document, but changing it is not allowed.\r
-\r
-                           Preamble\r
-\r
-  The licenses for most software are designed to take away your\r
-freedom to share and change it.  By contrast, the GNU General Public\r
-License is intended to guarantee your freedom to share and change free\r
-software--to make sure the software is free for all its users.  This\r
-General Public License applies to most of the Free Software\r
-Foundation's software and to any other program whose authors commit to\r
-using it.  (Some other Free Software Foundation software is covered by\r
-the GNU Library General Public License instead.)  You can apply it to\r
-your programs, too.\r
-\r
-  When we speak of free software, we are referring to freedom, not\r
-price.  Our General Public Licenses are designed to make sure that you\r
-have the freedom to distribute copies of free software (and charge for\r
-this service if you wish), that you receive source code or can get it\r
-if you want it, that you can change the software or use pieces of it\r
-in new free programs; and that you know you can do these things.\r
-\r
-  To protect your rights, we need to make restrictions that forbid\r
-anyone to deny you these rights or to ask you to surrender the rights.\r
-These restrictions translate to certain responsibilities for you if you\r
-distribute copies of the software, or if you modify it.\r
-\r
-  For example, if you distribute copies of such a program, whether\r
-gratis or for a fee, you must give the recipients all the rights that\r
-you have.  You must make sure that they, too, receive or can get the\r
-source code.  And you must show them these terms so they know their\r
-rights.\r
-\r
-  We protect your rights with two steps: (1) copyright the software, and\r
-(2) offer you this license which gives you legal permission to copy,\r
-distribute and/or modify the software.\r
-\r
-  Also, for each author's protection and ours, we want to make certain\r
-that everyone understands that there is no warranty for this free\r
-software.  If the software is modified by someone else and passed on, we\r
-want its recipients to know that what they have is not the original, so\r
-that any problems introduced by others will not reflect on the original\r
-authors' reputations.\r
-\r
-  Finally, any free program is threatened constantly by software\r
-patents.  We wish to avoid the danger that redistributors of a free\r
-program will individually obtain patent licenses, in effect making the\r
-program proprietary.  To prevent this, we have made it clear that any\r
-patent must be licensed for everyone's free use or not licensed at all.\r
-\r
-  The precise terms and conditions for copying, distribution and\r
-modification follow.\r
-\f\r
-                   GNU GENERAL PUBLIC LICENSE\r
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\r
-\r
-  0. This License applies to any program or other work which contains\r
-a notice placed by the copyright holder saying it may be distributed\r
-under the terms of this General Public License.  The "Program", below,\r
-refers to any such program or work, and a "work based on the Program"\r
-means either the Program or any derivative work under copyright law:\r
-that is to say, a work containing the Program or a portion of it,\r
-either verbatim or with modifications and/or translated into another\r
-language.  (Hereinafter, translation is included without limitation in\r
-the term "modification".)  Each licensee is addressed as "you".\r
-\r
-Activities other than copying, distribution and modification are not\r
-covered by this License; they are outside its scope.  The act of\r
-running the Program is not restricted, and the output from the Program\r
-is covered only if its contents constitute a work based on the\r
-Program (independent of having been made by running the Program).\r
-Whether that is true depends on what the Program does.\r
-\r
-  1. You may copy and distribute verbatim copies of the Program's\r
-source code as you receive it, in any medium, provided that you\r
-conspicuously and appropriately publish on each copy an appropriate\r
-copyright notice and disclaimer of warranty; keep intact all the\r
-notices that refer to this License and to the absence of any warranty;\r
-and give any other recipients of the Program a copy of this License\r
-along with the Program.\r
-\r
-You may charge a fee for the physical act of transferring a copy, and\r
-you may at your option offer warranty protection in exchange for a fee.\r
-\r
-  2. You may modify your copy or copies of the Program or any portion\r
-of it, thus forming a work based on the Program, and copy and\r
-distribute such modifications or work under the terms of Section 1\r
-above, provided that you also meet all of these conditions:\r
-\r
-    a) You must cause the modified files to carry prominent notices\r
-    stating that you changed the files and the date of any change.\r
-\r
-    b) You must cause any work that you distribute or publish, that in\r
-    whole or in part contains or is derived from the Program or any\r
-    part thereof, to be licensed as a whole at no charge to all third\r
-    parties under the terms of this License.\r
-\r
-    c) If the modified program normally reads commands interactively\r
-    when run, you must cause it, when started running for such\r
-    interactive use in the most ordinary way, to print or display an\r
-    announcement including an appropriate copyright notice and a\r
-    notice that there is no warranty (or else, saying that you provide\r
-    a warranty) and that users may redistribute the program under\r
-    these conditions, and telling the user how to view a copy of this\r
-    License.  (Exception: if the Program itself is interactive but\r
-    does not normally print such an announcement, your work based on\r
-    the Program is not required to print an announcement.)\r
-\f\r
-These requirements apply to the modified work as a whole.  If\r
-identifiable sections of that work are not derived from the Program,\r
-and can be reasonably considered independent and separate works in\r
-themselves, then this License, and its terms, do not apply to those\r
-sections when you distribute them as separate works.  But when you\r
-distribute the same sections as part of a whole which is a work based\r
-on the Program, the distribution of the whole must be on the terms of\r
-this License, whose permissions for other licensees extend to the\r
-entire whole, and thus to each and every part regardless of who wrote it.\r
-\r
-Thus, it is not the intent of this section to claim rights or contest\r
-your rights to work written entirely by you; rather, the intent is to\r
-exercise the right to control the distribution of derivative or\r
-collective works based on the Program.\r
-\r
-In addition, mere aggregation of another work not based on the Program\r
-with the Program (or with a work based on the Program) on a volume of\r
-a storage or distribution medium does not bring the other work under\r
-the scope of this License.\r
-\r
-  3. You may copy and distribute the Program (or a work based on it,\r
-under Section 2) in object code or executable form under the terms of\r
-Sections 1 and 2 above provided that you also do one of the following:\r
-\r
-    a) Accompany it with the complete corresponding machine-readable\r
-    source code, which must be distributed under the terms of Sections\r
-    1 and 2 above on a medium customarily used for software interchange; or,\r
-\r
-    b) Accompany it with a written offer, valid for at least three\r
-    years, to give any third party, for a charge no more than your\r
-    cost of physically performing source distribution, a complete\r
-    machine-readable copy of the corresponding source code, to be\r
-    distributed under the terms of Sections 1 and 2 above on a medium\r
-    customarily used for software interchange; or,\r
-\r
-    c) Accompany it with the information you received as to the offer\r
-    to distribute corresponding source code.  (This alternative is\r
-    allowed only for noncommercial distribution and only if you\r
-    received the program in object code or executable form with such\r
-    an offer, in accord with Subsection b above.)\r
-\r
-The source code for a work means the preferred form of the work for\r
-making modifications to it.  For an executable work, complete source\r
-code means all the source code for all modules it contains, plus any\r
-associated interface definition files, plus the scripts used to\r
-control compilation and installation of the executable.  However, as a\r
-special exception, the source code distributed need not include\r
-anything that is normally distributed (in either source or binary\r
-form) with the major components (compiler, kernel, and so on) of the\r
-operating system on which the executable runs, unless that component\r
-itself accompanies the executable.\r
-\r
-If distribution of executable or object code is made by offering\r
-access to copy from a designated place, then offering equivalent\r
-access to copy the source code from the same place counts as\r
-distribution of the source code, even though third parties are not\r
-compelled to copy the source along with the object code.\r
-\f\r
-  4. You may not copy, modify, sublicense, or distribute the Program\r
-except as expressly provided under this License.  Any attempt\r
-otherwise to copy, modify, sublicense or distribute the Program is\r
-void, and will automatically terminate your rights under this License.\r
-However, parties who have received copies, or rights, from you under\r
-this License will not have their licenses terminated so long as such\r
-parties remain in full compliance.\r
-\r
-  5. You are not required to accept this License, since you have not\r
-signed it.  However, nothing else grants you permission to modify or\r
-distribute the Program or its derivative works.  These actions are\r
-prohibited by law if you do not accept this License.  Therefore, by\r
-modifying or distributing the Program (or any work based on the\r
-Program), you indicate your acceptance of this License to do so, and\r
-all its terms and conditions for copying, distributing or modifying\r
-the Program or works based on it.\r
-\r
-  6. Each time you redistribute the Program (or any work based on the\r
-Program), the recipient automatically receives a license from the\r
-original licensor to copy, distribute or modify the Program subject to\r
-these terms and conditions.  You may not impose any further\r
-restrictions on the recipients' exercise of the rights granted herein.\r
-You are not responsible for enforcing compliance by third parties to\r
-this License.\r
-\r
-  7. If, as a consequence of a court judgment or allegation of patent\r
-infringement or for any other reason (not limited to patent issues),\r
-conditions are imposed on you (whether by court order, agreement or\r
-otherwise) that contradict the conditions of this License, they do not\r
-excuse you from the conditions of this License.  If you cannot\r
-distribute so as to satisfy simultaneously your obligations under this\r
-License and any other pertinent obligations, then as a consequence you\r
-may not distribute the Program at all.  For example, if a patent\r
-license would not permit royalty-free redistribution of the Program by\r
-all those who receive copies directly or indirectly through you, then\r
-the only way you could satisfy both it and this License would be to\r
-refrain entirely from distribution of the Program.\r
-\r
-If any portion of this section is held invalid or unenforceable under\r
-any particular circumstance, the balance of the section is intended to\r
-apply and the section as a whole is intended to apply in other\r
-circumstances.\r
-\r
-It is not the purpose of this section to induce you to infringe any\r
-patents or other property right claims or to contest validity of any\r
-such claims; this section has the sole purpose of protecting the\r
-integrity of the free software distribution system, which is\r
-implemented by public license practices.  Many people have made\r
-generous contributions to the wide range of software distributed\r
-through that system in reliance on consistent application of that\r
-system; it is up to the author/donor to decide if he or she is willing\r
-to distribute software through any other system and a licensee cannot\r
-impose that choice.\r
-\r
-This section is intended to make thoroughly clear what is believed to\r
-be a consequence of the rest of this License.\r
-\f\r
-  8. If the distribution and/or use of the Program is restricted in\r
-certain countries either by patents or by copyrighted interfaces, the\r
-original copyright holder who places the Program under this License\r
-may add an explicit geographical distribution limitation excluding\r
-those countries, so that distribution is permitted only in or among\r
-countries not thus excluded.  In such case, this License incorporates\r
-the limitation as if written in the body of this License.\r
-\r
-  9. The Free Software Foundation may publish revised and/or new versions\r
-of the General Public License from time to time.  Such new versions will\r
-be similar in spirit to the present version, but may differ in detail to\r
-address new problems or concerns.\r
-\r
-Each version is given a distinguishing version number.  If the Program\r
-specifies a version number of this License which applies to it and "any\r
-later version", you have the option of following the terms and conditions\r
-either of that version or of any later version published by the Free\r
-Software Foundation.  If the Program does not specify a version number of\r
-this License, you may choose any version ever published by the Free Software\r
-Foundation.\r
-\r
-  10. If you wish to incorporate parts of the Program into other free\r
-programs whose distribution conditions are different, write to the author\r
-to ask for permission.  For software which is copyrighted by the Free\r
-Software Foundation, write to the Free Software Foundation; we sometimes\r
-make exceptions for this.  Our decision will be guided by the two goals\r
-of preserving the free status of all derivatives of our free software and\r
-of promoting the sharing and reuse of software generally.\r
-\r
-                           NO WARRANTY\r
-\r
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY\r
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN\r
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES\r
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED\r
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\r
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS\r
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE\r
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,\r
-REPAIR OR CORRECTION.\r
-\r
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\r
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR\r
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,\r
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING\r
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED\r
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY\r
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER\r
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE\r
-POSSIBILITY OF SUCH DAMAGES.\r
-\r
-                    END OF TERMS AND CONDITIONS\r
+                   GNU GENERAL PUBLIC LICENSE
+                      Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                           Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+\f
+                   GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+\f
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+\f
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+\f
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                           NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                    END OF TERMS AND CONDITIONS
diff --git a/INSTALL.txt b/INSTALL.txt
deleted file mode 100644 (file)
index a9e7279..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-Compilation instructions
-------------------------
-
-See latest information for compiling and installation
-on the developer pages:
-
-http://www.qeradiant.com/wikifaq/index.php?GtkRadiant%20Hacker
diff --git a/LGPL b/LGPL
index f95d0f6396a935291468102bab5660c3cdfe6283..3b204400cf3d548f93a0f4f8e85d41d7e39ecb59 100644 (file)
--- a/LGPL
+++ b/LGPL
-                 GNU LESSER GENERAL PUBLIC LICENSE\r
-                      Version 2.1, February 1999\r
-\r
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.\r
-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\r
- Everyone is permitted to copy and distribute verbatim copies\r
- of this license document, but changing it is not allowed.\r
-\r
-[This is the first released version of the Lesser GPL.  It also counts\r
- as the successor of the GNU Library Public License, version 2, hence\r
- the version number 2.1.]\r
-\r
-                           Preamble\r
-\r
-  The licenses for most software are designed to take away your\r
-freedom to share and change it.  By contrast, the GNU General Public\r
-Licenses are intended to guarantee your freedom to share and change\r
-free software--to make sure the software is free for all its users.\r
-\r
-  This license, the Lesser General Public License, applies to some\r
-specially designated software packages--typically libraries--of the\r
-Free Software Foundation and other authors who decide to use it.  You\r
-can use it too, but we suggest you first think carefully about whether\r
-this license or the ordinary General Public License is the better\r
-strategy to use in any particular case, based on the explanations below.\r
-\r
-  When we speak of free software, we are referring to freedom of use,\r
-not price.  Our General Public Licenses are designed to make sure that\r
-you have the freedom to distribute copies of free software (and charge\r
-for this service if you wish); that you receive source code or can get\r
-it if you want it; that you can change the software and use pieces of\r
-it in new free programs; and that you are informed that you can do\r
-these things.\r
-\r
-  To protect your rights, we need to make restrictions that forbid\r
-distributors to deny you these rights or to ask you to surrender these\r
-rights.  These restrictions translate to certain responsibilities for\r
-you if you distribute copies of the library or if you modify it.\r
-\r
-  For example, if you distribute copies of the library, whether gratis\r
-or for a fee, you must give the recipients all the rights that we gave\r
-you.  You must make sure that they, too, receive or can get the source\r
-code.  If you link other code with the library, you must provide\r
-complete object files to the recipients, so that they can relink them\r
-with the library after making changes to the library and recompiling\r
-it.  And you must show them these terms so they know their rights.\r
-\r
-  We protect your rights with a two-step method: (1) we copyright the\r
-library, and (2) we offer you this license, which gives you legal\r
-permission to copy, distribute and/or modify the library.\r
-\r
-  To protect each distributor, we want to make it very clear that\r
-there is no warranty for the free library.  Also, if the library is\r
-modified by someone else and passed on, the recipients should know\r
-that what they have is not the original version, so that the original\r
-author's reputation will not be affected by problems that might be\r
-introduced by others.\r
-\f\r
-  Finally, software patents pose a constant threat to the existence of\r
-any free program.  We wish to make sure that a company cannot\r
-effectively restrict the users of a free program by obtaining a\r
-restrictive license from a patent holder.  Therefore, we insist that\r
-any patent license obtained for a version of the library must be\r
-consistent with the full freedom of use specified in this license.\r
-\r
-  Most GNU software, including some libraries, is covered by the\r
-ordinary GNU General Public License.  This license, the GNU Lesser\r
-General Public License, applies to certain designated libraries, and\r
-is quite different from the ordinary General Public License.  We use\r
-this license for certain libraries in order to permit linking those\r
-libraries into non-free programs.\r
-\r
-  When a program is linked with a library, whether statically or using\r
-a shared library, the combination of the two is legally speaking a\r
-combined work, a derivative of the original library.  The ordinary\r
-General Public License therefore permits such linking only if the\r
-entire combination fits its criteria of freedom.  The Lesser General\r
-Public License permits more lax criteria for linking other code with\r
-the library.\r
-\r
-  We call this license the "Lesser" General Public License because it\r
-does Less to protect the user's freedom than the ordinary General\r
-Public License.  It also provides other free software developers Less\r
-of an advantage over competing non-free programs.  These disadvantages\r
-are the reason we use the ordinary General Public License for many\r
-libraries.  However, the Lesser license provides advantages in certain\r
-special circumstances.\r
-\r
-  For example, on rare occasions, there may be a special need to\r
-encourage the widest possible use of a certain library, so that it becomes\r
-a de-facto standard.  To achieve this, non-free programs must be\r
-allowed to use the library.  A more frequent case is that a free\r
-library does the same job as widely used non-free libraries.  In this\r
-case, there is little to gain by limiting the free library to free\r
-software only, so we use the Lesser General Public License.\r
-\r
-  In other cases, permission to use a particular library in non-free\r
-programs enables a greater number of people to use a large body of\r
-free software.  For example, permission to use the GNU C Library in\r
-non-free programs enables many more people to use the whole GNU\r
-operating system, as well as its variant, the GNU/Linux operating\r
-system.\r
-\r
-  Although the Lesser General Public License is Less protective of the\r
-users' freedom, it does ensure that the user of a program that is\r
-linked with the Library has the freedom and the wherewithal to run\r
-that program using a modified version of the Library.\r
-\r
-  The precise terms and conditions for copying, distribution and\r
-modification follow.  Pay close attention to the difference between a\r
-"work based on the library" and a "work that uses the library".  The\r
-former contains code derived from the library, whereas the latter must\r
-be combined with the library in order to run.\r
-\f\r
-                 GNU LESSER GENERAL PUBLIC LICENSE\r
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\r
-\r
-  0. This License Agreement applies to any software library or other\r
-program which contains a notice placed by the copyright holder or\r
-other authorized party saying it may be distributed under the terms of\r
-this Lesser General Public License (also called "this License").\r
-Each licensee is addressed as "you".\r
-\r
-  A "library" means a collection of software functions and/or data\r
-prepared so as to be conveniently linked with application programs\r
-(which use some of those functions and data) to form executables.\r
-\r
-  The "Library", below, refers to any such software library or work\r
-which has been distributed under these terms.  A "work based on the\r
-Library" means either the Library or any derivative work under\r
-copyright law: that is to say, a work containing the Library or a\r
-portion of it, either verbatim or with modifications and/or translated\r
-straightforwardly into another language.  (Hereinafter, translation is\r
-included without limitation in the term "modification".)\r
-\r
-  "Source code" for a work means the preferred form of the work for\r
-making modifications to it.  For a library, complete source code means\r
-all the source code for all modules it contains, plus any associated\r
-interface definition files, plus the scripts used to control compilation\r
-and installation of the library.\r
-\r
-  Activities other than copying, distribution and modification are not\r
-covered by this License; they are outside its scope.  The act of\r
-running a program using the Library is not restricted, and output from\r
-such a program is covered only if its contents constitute a work based\r
-on the Library (independent of the use of the Library in a tool for\r
-writing it).  Whether that is true depends on what the Library does\r
-and what the program that uses the Library does.\r
-  \r
-  1. You may copy and distribute verbatim copies of the Library's\r
-complete source code as you receive it, in any medium, provided that\r
-you conspicuously and appropriately publish on each copy an\r
-appropriate copyright notice and disclaimer of warranty; keep intact\r
-all the notices that refer to this License and to the absence of any\r
-warranty; and distribute a copy of this License along with the\r
-Library.\r
-\r
-  You may charge a fee for the physical act of transferring a copy,\r
-and you may at your option offer warranty protection in exchange for a\r
-fee.\r
-\f\r
-  2. You may modify your copy or copies of the Library or any portion\r
-of it, thus forming a work based on the Library, and copy and\r
-distribute such modifications or work under the terms of Section 1\r
-above, provided that you also meet all of these conditions:\r
-\r
-    a) The modified work must itself be a software library.\r
-\r
-    b) You must cause the files modified to carry prominent notices\r
-    stating that you changed the files and the date of any change.\r
-\r
-    c) You must cause the whole of the work to be licensed at no\r
-    charge to all third parties under the terms of this License.\r
-\r
-    d) If a facility in the modified Library refers to a function or a\r
-    table of data to be supplied by an application program that uses\r
-    the facility, other than as an argument passed when the facility\r
-    is invoked, then you must make a good faith effort to ensure that,\r
-    in the event an application does not supply such function or\r
-    table, the facility still operates, and performs whatever part of\r
-    its purpose remains meaningful.\r
-\r
-    (For example, a function in a library to compute square roots has\r
-    a purpose that is entirely well-defined independent of the\r
-    application.  Therefore, Subsection 2d requires that any\r
-    application-supplied function or table used by this function must\r
-    be optional: if the application does not supply it, the square\r
-    root function must still compute square roots.)\r
-\r
-These requirements apply to the modified work as a whole.  If\r
-identifiable sections of that work are not derived from the Library,\r
-and can be reasonably considered independent and separate works in\r
-themselves, then this License, and its terms, do not apply to those\r
-sections when you distribute them as separate works.  But when you\r
-distribute the same sections as part of a whole which is a work based\r
-on the Library, the distribution of the whole must be on the terms of\r
-this License, whose permissions for other licensees extend to the\r
-entire whole, and thus to each and every part regardless of who wrote\r
-it.\r
-\r
-Thus, it is not the intent of this section to claim rights or contest\r
-your rights to work written entirely by you; rather, the intent is to\r
-exercise the right to control the distribution of derivative or\r
-collective works based on the Library.\r
-\r
-In addition, mere aggregation of another work not based on the Library\r
-with the Library (or with a work based on the Library) on a volume of\r
-a storage or distribution medium does not bring the other work under\r
-the scope of this License.\r
-\r
-  3. You may opt to apply the terms of the ordinary GNU General Public\r
-License instead of this License to a given copy of the Library.  To do\r
-this, you must alter all the notices that refer to this License, so\r
-that they refer to the ordinary GNU General Public License, version 2,\r
-instead of to this License.  (If a newer version than version 2 of the\r
-ordinary GNU General Public License has appeared, then you can specify\r
-that version instead if you wish.)  Do not make any other change in\r
-these notices.\r
-\f\r
-  Once this change is made in a given copy, it is irreversible for\r
-that copy, so the ordinary GNU General Public License applies to all\r
-subsequent copies and derivative works made from that copy.\r
-\r
-  This option is useful when you wish to copy part of the code of\r
-the Library into a program that is not a library.\r
-\r
-  4. You may copy and distribute the Library (or a portion or\r
-derivative of it, under Section 2) in object code or executable form\r
-under the terms of Sections 1 and 2 above provided that you accompany\r
-it with the complete corresponding machine-readable source code, which\r
-must be distributed under the terms of Sections 1 and 2 above on a\r
-medium customarily used for software interchange.\r
-\r
-  If distribution of object code is made by offering access to copy\r
-from a designated place, then offering equivalent access to copy the\r
-source code from the same place satisfies the requirement to\r
-distribute the source code, even though third parties are not\r
-compelled to copy the source along with the object code.\r
-\r
-  5. A program that contains no derivative of any portion of the\r
-Library, but is designed to work with the Library by being compiled or\r
-linked with it, is called a "work that uses the Library".  Such a\r
-work, in isolation, is not a derivative work of the Library, and\r
-therefore falls outside the scope of this License.\r
-\r
-  However, linking a "work that uses the Library" with the Library\r
-creates an executable that is a derivative of the Library (because it\r
-contains portions of the Library), rather than a "work that uses the\r
-library".  The executable is therefore covered by this License.\r
-Section 6 states terms for distribution of such executables.\r
-\r
-  When a "work that uses the Library" uses material from a header file\r
-that is part of the Library, the object code for the work may be a\r
-derivative work of the Library even though the source code is not.\r
-Whether this is true is especially significant if the work can be\r
-linked without the Library, or if the work is itself a library.  The\r
-threshold for this to be true is not precisely defined by law.\r
-\r
-  If such an object file uses only numerical parameters, data\r
-structure layouts and accessors, and small macros and small inline\r
-functions (ten lines or less in length), then the use of the object\r
-file is unrestricted, regardless of whether it is legally a derivative\r
-work.  (Executables containing this object code plus portions of the\r
-Library will still fall under Section 6.)\r
-\r
-  Otherwise, if the work is a derivative of the Library, you may\r
-distribute the object code for the work under the terms of Section 6.\r
-Any executables containing that work also fall under Section 6,\r
-whether or not they are linked directly with the Library itself.\r
-\f\r
-  6. As an exception to the Sections above, you may also combine or\r
-link a "work that uses the Library" with the Library to produce a\r
-work containing portions of the Library, and distribute that work\r
-under terms of your choice, provided that the terms permit\r
-modification of the work for the customer's own use and reverse\r
-engineering for debugging such modifications.\r
-\r
-  You must give prominent notice with each copy of the work that the\r
-Library is used in it and that the Library and its use are covered by\r
-this License.  You must supply a copy of this License.  If the work\r
-during execution displays copyright notices, you must include the\r
-copyright notice for the Library among them, as well as a reference\r
-directing the user to the copy of this License.  Also, you must do one\r
-of these things:\r
-\r
-    a) Accompany the work with the complete corresponding\r
-    machine-readable source code for the Library including whatever\r
-    changes were used in the work (which must be distributed under\r
-    Sections 1 and 2 above); and, if the work is an executable linked\r
-    with the Library, with the complete machine-readable "work that\r
-    uses the Library", as object code and/or source code, so that the\r
-    user can modify the Library and then relink to produce a modified\r
-    executable containing the modified Library.  (It is understood\r
-    that the user who changes the contents of definitions files in the\r
-    Library will not necessarily be able to recompile the application\r
-    to use the modified definitions.)\r
-\r
-    b) Use a suitable shared library mechanism for linking with the\r
-    Library.  A suitable mechanism is one that (1) uses at run time a\r
-    copy of the library already present on the user's computer system,\r
-    rather than copying library functions into the executable, and (2)\r
-    will operate properly with a modified version of the library, if\r
-    the user installs one, as long as the modified version is\r
-    interface-compatible with the version that the work was made with.\r
-\r
-    c) Accompany the work with a written offer, valid for at\r
-    least three years, to give the same user the materials\r
-    specified in Subsection 6a, above, for a charge no more\r
-    than the cost of performing this distribution.\r
-\r
-    d) If distribution of the work is made by offering access to copy\r
-    from a designated place, offer equivalent access to copy the above\r
-    specified materials from the same place.\r
-\r
-    e) Verify that the user has already received a copy of these\r
-    materials or that you have already sent this user a copy.\r
-\r
-  For an executable, the required form of the "work that uses the\r
-Library" must include any data and utility programs needed for\r
-reproducing the executable from it.  However, as a special exception,\r
-the materials to be distributed need not include anything that is\r
-normally distributed (in either source or binary form) with the major\r
-components (compiler, kernel, and so on) of the operating system on\r
-which the executable runs, unless that component itself accompanies\r
-the executable.\r
-\r
-  It may happen that this requirement contradicts the license\r
-restrictions of other proprietary libraries that do not normally\r
-accompany the operating system.  Such a contradiction means you cannot\r
-use both them and the Library together in an executable that you\r
-distribute.\r
-\f\r
-  7. You may place library facilities that are a work based on the\r
-Library side-by-side in a single library together with other library\r
-facilities not covered by this License, and distribute such a combined\r
-library, provided that the separate distribution of the work based on\r
-the Library and of the other library facilities is otherwise\r
-permitted, and provided that you do these two things:\r
-\r
-    a) Accompany the combined library with a copy of the same work\r
-    based on the Library, uncombined with any other library\r
-    facilities.  This must be distributed under the terms of the\r
-    Sections above.\r
-\r
-    b) Give prominent notice with the combined library of the fact\r
-    that part of it is a work based on the Library, and explaining\r
-    where to find the accompanying uncombined form of the same work.\r
-\r
-  8. You may not copy, modify, sublicense, link with, or distribute\r
-the Library except as expressly provided under this License.  Any\r
-attempt otherwise to copy, modify, sublicense, link with, or\r
-distribute the Library is void, and will automatically terminate your\r
-rights under this License.  However, parties who have received copies,\r
-or rights, from you under this License will not have their licenses\r
-terminated so long as such parties remain in full compliance.\r
-\r
-  9. You are not required to accept this License, since you have not\r
-signed it.  However, nothing else grants you permission to modify or\r
-distribute the Library or its derivative works.  These actions are\r
-prohibited by law if you do not accept this License.  Therefore, by\r
-modifying or distributing the Library (or any work based on the\r
-Library), you indicate your acceptance of this License to do so, and\r
-all its terms and conditions for copying, distributing or modifying\r
-the Library or works based on it.\r
-\r
-  10. Each time you redistribute the Library (or any work based on the\r
-Library), the recipient automatically receives a license from the\r
-original licensor to copy, distribute, link with or modify the Library\r
-subject to these terms and conditions.  You may not impose any further\r
-restrictions on the recipients' exercise of the rights granted herein.\r
-You are not responsible for enforcing compliance by third parties with\r
-this License.\r
-\f\r
-  11. If, as a consequence of a court judgment or allegation of patent\r
-infringement or for any other reason (not limited to patent issues),\r
-conditions are imposed on you (whether by court order, agreement or\r
-otherwise) that contradict the conditions of this License, they do not\r
-excuse you from the conditions of this License.  If you cannot\r
-distribute so as to satisfy simultaneously your obligations under this\r
-License and any other pertinent obligations, then as a consequence you\r
-may not distribute the Library at all.  For example, if a patent\r
-license would not permit royalty-free redistribution of the Library by\r
-all those who receive copies directly or indirectly through you, then\r
-the only way you could satisfy both it and this License would be to\r
-refrain entirely from distribution of the Library.\r
-\r
-If any portion of this section is held invalid or unenforceable under any\r
-particular circumstance, the balance of the section is intended to apply,\r
-and the section as a whole is intended to apply in other circumstances.\r
-\r
-It is not the purpose of this section to induce you to infringe any\r
-patents or other property right claims or to contest validity of any\r
-such claims; this section has the sole purpose of protecting the\r
-integrity of the free software distribution system which is\r
-implemented by public license practices.  Many people have made\r
-generous contributions to the wide range of software distributed\r
-through that system in reliance on consistent application of that\r
-system; it is up to the author/donor to decide if he or she is willing\r
-to distribute software through any other system and a licensee cannot\r
-impose that choice.\r
-\r
-This section is intended to make thoroughly clear what is believed to\r
-be a consequence of the rest of this License.\r
-\r
-  12. If the distribution and/or use of the Library is restricted in\r
-certain countries either by patents or by copyrighted interfaces, the\r
-original copyright holder who places the Library under this License may add\r
-an explicit geographical distribution limitation excluding those countries,\r
-so that distribution is permitted only in or among countries not thus\r
-excluded.  In such case, this License incorporates the limitation as if\r
-written in the body of this License.\r
-\r
-  13. The Free Software Foundation may publish revised and/or new\r
-versions of the Lesser General Public License from time to time.\r
-Such new versions will be similar in spirit to the present version,\r
-but may differ in detail to address new problems or concerns.\r
-\r
-Each version is given a distinguishing version number.  If the Library\r
-specifies a version number of this License which applies to it and\r
-"any later version", you have the option of following the terms and\r
-conditions either of that version or of any later version published by\r
-the Free Software Foundation.  If the Library does not specify a\r
-license version number, you may choose any version ever published by\r
-the Free Software Foundation.\r
-\f\r
-  14. If you wish to incorporate parts of the Library into other free\r
-programs whose distribution conditions are incompatible with these,\r
-write to the author to ask for permission.  For software which is\r
-copyrighted by the Free Software Foundation, write to the Free\r
-Software Foundation; we sometimes make exceptions for this.  Our\r
-decision will be guided by the two goals of preserving the free status\r
-of all derivatives of our free software and of promoting the sharing\r
-and reuse of software generally.\r
-\r
-                           NO WARRANTY\r
-\r
-  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO\r
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.\r
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR\r
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY\r
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE\r
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\r
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE\r
-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME\r
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\r
-\r
-  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN\r
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY\r
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU\r
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR\r
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE\r
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING\r
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A\r
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF\r
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\r
-DAMAGES.\r
-\r
-                    END OF TERMS AND CONDITIONS\r
+                 GNU LESSER GENERAL PUBLIC LICENSE
+                      Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+                           Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+\f
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+\f
+                 GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+  
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+\f
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+\f
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+\f
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+\f
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+\f
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+\f
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+                           NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+                    END OF TERMS AND CONDITIONS
diff --git a/LICENSE b/LICENSE
index e8d70b6f7441aa5a39375cd447f8e97a1f0ef90f..962a9fb295bc83d3bb6ae4e100a216ccac530efe 100644 (file)
--- a/LICENSE
+++ b/LICENSE
@@ -1,36 +1,36 @@
-LICENSE ( last update: Wed Feb  8 17:16:40 CST 2006 )\r
------------------------------------------------------\r
-\r
-There are 3 license types used throughout GtkRadiant source code.\r
-\r
-BSD - modified Berkeley Software Distribution license\r
-( each BSD licensed source file starts with the appropriate header )\r
-LGPL - GNU Lesser General Public License v2.1\r
-( see LGPL at the root of the tree )\r
-GPL - GNU General Public License\r
-( see GPL at the root of the tree )\r
-\r
-How do I check which license applies to a given part of the source code?\r
-\r
-Each source file in the tree comes with a license header which explains what\r
-license applies. To sum up shortly:\r
-\r
-GPL: ( except some files contributed by Loki Software under BSD license )\r
-GtkRadiant Core\r
-GtkRadiant Modules\r
-GtkRadiant Libraries\r
-Quake III Tools\r
-Quake II Tools\r
-Background2D Plugin\r
-HydraToolz Plugin\r
-\r
-BSD:\r
-JPEG Library\r
-MD5 Library\r
-DDS Library\r
-PicoModel Library\r
-PrtView Plugin\r
-\r
-LGPL\r
-BobToolz Plugin\r
-GenSurf Plugin\r
+LICENSE ( last update: Wed Feb  8 17:16:40 CST 2006 )
+-----------------------------------------------------
+
+There are 3 license types used throughout GtkRadiant source code.
+
+BSD - modified Berkeley Software Distribution license
+( each BSD licensed source file starts with the appropriate header )
+LGPL - GNU Lesser General Public License v2.1
+( see LGPL at the root of the tree )
+GPL - GNU General Public License
+( see GPL at the root of the tree )
+
+How do I check which license applies to a given part of the source code?
+
+Each source file in the tree comes with a license header which explains what
+license applies. To sum up shortly:
+
+GPL: ( except some files contributed by Loki Software under BSD license )
+GtkRadiant Core
+GtkRadiant Modules
+GtkRadiant Libraries
+Quake III Tools
+Quake II Tools
+Background2D Plugin
+HydraToolz Plugin
+
+BSD:
+JPEG Library
+MD5 Library
+DDS Library
+PicoModel Library
+PrtView Plugin
+
+LGPL
+BobToolz Plugin
+GenSurf Plugin
diff --git a/LICENSE_ID b/LICENSE_ID
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/README b/README
index c0370749848faef9c976ae9a6d7158eaf7185cb9..f611ded844f60d1ba026fb6925206d63a5cb702b 100644 (file)
--- a/README
+++ b/README
@@ -1,49 +1,49 @@
-Terms and Conditions of Use\r
-\r
-\r
--------\r
-\r
-GTKRadiant contains software developed by Id Software, Loki Software and third \r
-party contributors.\r
-\r
-All portions of GTKRadiant which are licensed by Id Software are subject to the \r
-terms of its LIMITED USE SOFTWARE LICENSE AGREEMENT, a copy of which is included \r
-with GTKRadiant. If you did not receive a LIMITED USE SOFTWARE LICENSE \r
-AGREEMENT, please contact Id Software immediately at info@idsoftware.com.\r
-\r
-All portions of GTKRadiant which have been developed by Loki Software and/or \r
-third party contributors are licensed under the terms set forth below.\r
-\r
--------\r
-\r
-Copyright (c) 1999-2000, Loki Software, Inc. \r
-All rights reserved.\r
-\r
-Redistribution and use in source and binary forms, with or without modification, \r
-are permitted provided that the following conditions are met:\r
-\r
-Redistributions of source code must retain the above copyright notice, this list \r
-of conditions and the following disclaimer.\r
-\r
-Redistributions in binary form must reproduce the above copyright notice, this \r
-list of conditions and the following disclaimer in the documentation and/or \r
-other materials provided with the distribution.\r
-\r
-Neither the name of Loki Software nor the names of its contributors may be used \r
-to endorse or promote products derived from this software without specific prior \r
-written permission. No license is hereby granted to any trademarks, tradenames \r
-or logos.\r
-\r
-THIS SOFTWARE IS PROVIDED BY LOKI AND THE CONTRIBUTORS "AS IS." ANY AND ALL \r
-WARRANTUES, EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED \r
-WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND \r
-NONINFRENGEMENT ARE HEREBY DISCLAIMED. IN NO EVENT SHALL LOKI OR THE \r
-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, \r
-OR CONSEQUENTIAL DAMAGES (INCLUDING, WITHOUT LIMITATION, PROCUREMENT OF \r
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS \r
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN \r
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING \r
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY \r
-OF SUCH DAMAGE.\r
-\r
--------\r
+Terms and Conditions of Use
+
+
+-------
+
+GTKRadiant contains software developed by Id Software, Loki Software and third 
+party contributors.
+
+All portions of GTKRadiant which are licensed by Id Software are subject to the 
+terms of its LIMITED USE SOFTWARE LICENSE AGREEMENT, a copy of which is included 
+with GTKRadiant. If you did not receive a LIMITED USE SOFTWARE LICENSE 
+AGREEMENT, please contact Id Software immediately at info@idsoftware.com.
+
+All portions of GTKRadiant which have been developed by Loki Software and/or 
+third party contributors are licensed under the terms set forth below.
+
+-------
+
+Copyright (c) 1999-2000, Loki Software, Inc. 
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, 
+are permitted provided that the following conditions are met:
+
+Redistributions of source code must retain the above copyright notice, this list 
+of conditions and the following disclaimer.
+
+Redistributions in binary form must reproduce the above copyright notice, this 
+list of conditions and the following disclaimer in the documentation and/or 
+other materials provided with the distribution.
+
+Neither the name of Loki Software nor the names of its contributors may be used 
+to endorse or promote products derived from this software without specific prior 
+written permission. No license is hereby granted to any trademarks, tradenames 
+or logos.
+
+THIS SOFTWARE IS PROVIDED BY LOKI AND THE CONTRIBUTORS "AS IS." ANY AND ALL 
+WARRANTUES, EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED 
+WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 
+NONINFRENGEMENT ARE HEREBY DISCLAIMED. IN NO EVENT SHALL LOKI OR THE 
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, 
+OR CONSEQUENTIAL DAMAGES (INCLUDING, WITHOUT LIMITATION, PROCUREMENT OF 
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 
+IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 
+OF SUCH DAMAGE.
+
+-------
diff --git a/SConscript b/SConscript
deleted file mode 100644 (file)
index aa05577..0000000
+++ /dev/null
@@ -1,839 +0,0 @@
-import os, sys, commands, string
-from makeversion import get_version
-# OS Detection:
-OS = commands.getoutput('uname')
-
-Import('GLOBALS')
-Import(GLOBALS)
-
-# make scons link shared libs against static libs
-g_env['STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME'] = 1
-
-# make gcc accept default parameters in function typedefs
-g_env['CXXFLAGS'] += '-fpermissive '
-
-g_env['CXXFLAGS'] += '-fPIC '
-g_env['CCFLAGS'] += '-fPIC '
-
-def build_list(s_prefix, s_string):
-       s_list = Split(s_string)
-       for i in range(len(s_list)):
-               s_list[i] = s_prefix + '/' + s_list[i]
-       return s_list
-
-# common code ------------------------------------------------------
-
-cmdlib_lib = g_env.StaticLibrary(target='libs/cmdlib', source='libs/cmdlib/cmdlib.cpp')
-
-
-mathlib_src = 'mathlib.c bbox.c linear.c m4x4.c ray.c'
-mathlib_lib = g_env.StaticLibrary(target='libs/mathlib', source=build_list('libs/mathlib', mathlib_src))
-
-
-md5lib_lib = g_env.StaticLibrary(target='libs/md5lib', source='libs/md5lib/md5lib.c')
-
-
-ddslib_lib = g_env.StaticLibrary(target='libs/ddslib', source='libs/ddslib/ddslib.c')
-
-
-jpeg_env = g_env.Copy()
-jpeg_env.Prepend(CPPPATH = 'libs/jpeg6')
-jpeg_src = 'jcomapi.cpp jdcoefct.cpp jdinput.cpp jdpostct.cpp jfdctflt.cpp jpgload.cpp jdapimin.cpp jdcolor.cpp jdmainct.cpp jdsample.cpp jidctflt.cpp jutils.cpp jdapistd.cpp jddctmgr.cpp jdmarker.cpp jdtrans.cpp jmemmgr.cpp jdatasrc.cpp jdhuff.cpp jdmaster.cpp jerror.cpp jmemnobs.cpp'
-jpeg_lib = jpeg_env.StaticLibrary(target='libs/jpeg', source=build_list('libs/jpeg6', jpeg_src))
-
-
-net_lib = g_env.StaticLibrary(target='libs/l_net', source=['libs/l_net/l_net.c', 'libs/l_net/l_net_berkley.c'])
-
-
-picomodel_src = 'picointernal.c picomodel.c picomodules.c pm_3ds.c pm_ase.c pm_md3.c pm_obj.c\
-  pm_ms3d.c pm_mdc.c pm_fm.c pm_md2.c pm_lwo.c lwo/clip.c lwo/envelope.c lwo/list.c lwo/lwio.c\
-  lwo/lwo2.c lwo/lwob.c lwo/pntspols.c lwo/surface.c lwo/vecmath.c lwo/vmap.c'
-picomodel_lib = g_env.StaticLibrary(target='libs/picomodel', source=build_list('libs/picomodel', picomodel_src))
-
-
-synapse_env = g_env.Copy()
-synapse_env.useGlib2()
-synapse_env.useXML2()
-synapse_env['CPPPATH'].append('include')
-synapse_src = 'synapse.cpp'
-synapse_lib = synapse_env.StaticLibrary(target='libs/synapse', source=build_list('libs/synapse', synapse_src))
-# scons 0.95. Doesn't recognize archive compatible for dynamic modules
-# see thread: http://scons.tigris.org/servlets/BrowseList?listName=users&by=thread&from=168952&to=168952&first=1&count=2
-
-
-splines_env = g_env.Copy()
-splines_src = build_list('libs/splines', 
-'math_angles.cpp math_matrix.cpp math_quaternion.cpp math_vector.cpp q_parse.cpp q_shared.cpp splines.cpp util_str.cpp')
-splines_env['CPPPATH'].append('include')
-splines_lib = splines_env.StaticLibrary(target='libs/splines', source=splines_src)
-
-
-# end static / common libraries ---------------------------------------------------
-
-# q3map ---------------------------------------------------------------------------
-
-q3map_env = g_env.Copy()
-q3map_env['CPPPATH'].append('include')
-q3map_env.useXML2()
-q3map_env.useGlib2()
-q3map_env.usePNG()
-q3map_env.usePThread()
-q3map_env.Prepend(CPPPATH='tools/quake3/common')
-
-q3map_common_src = [
-  'common/cmdlib.c',
-  'common/imagelib.c',
-  'common/inout.c',
-  'common/mutex.c',
-  'common/polylib.c',
-  'common/scriplib.c',
-  'common/threads.c',
-  'common/unzip.c',
-  'common/vfs.c' ]
-
-q3map_src = [
-  'q3map2/brush.c',
-  'q3map2/brush_primit.c',
-  'q3map2/bsp.c',
-  'q3map2/facebsp.c',
-  'q3map2/fog.c',
-  'q3map2/leakfile.c',
-  'q3map2/map.c',
-  'q3map2/model.c',
-  'q3map2/patch.c',
-  'q3map2/portals.c',
-  'q3map2/prtfile.c',
-  'q3map2/surface.c',
-  'q3map2/surface_fur.c',
-  'q3map2/surface_meta.c',
-  'q3map2/tjunction.c',
-  'q3map2/tree.c',
-  'q3map2/writebsp.c',
-  'q3map2/image.c',
-  'q3map2/light.c',
-  'q3map2/light_bounce.c',
-  'q3map2/light_trace.c',
-  'q3map2/light_ydnar.c',
-  'q3map2/lightmaps_ydnar.c',
-  'q3map2/vis.c',
-  'q3map2/visflow.c',
-  'q3map2/bspfile_abstract.c',
-  'q3map2/bspfile_ibsp.c',
-  'q3map2/bspfile_rbsp.c',
-  'q3map2/decals.c',
-  'q3map2/main.c',
-  'q3map2/mesh.c',
-  'q3map2/path_init.c',
-  'q3map2/shaders.c',
-  'q3map2/surface_extra.c',
-  'q3map2/surface_foliage.c',
-  'q3map2/convert_ase.c',
-  'q3map2/convert_map.c' ]
-
-q3map_full_src = [ ]
-for i in q3map_common_src + q3map_src:
-  q3map_full_src.append('tools/quake3/' + i)
-
-q3map_full_src.append('libs/libmathlib.a')
-q3map_full_src.append('libs/libl_net.a')
-q3map_full_src.append('libs/libjpeg.a')
-q3map_full_src.append('libs/libpicomodel.a')
-q3map_full_src.append('libs/libmd5lib.a')
-q3map_full_src.append('libs/libddslib.a')
-
-q3map_env.Program(target='q3map2.' + g_cpu, source=q3map_full_src )
-q3map_env.Install(INSTALL, 'q3map2.' + g_cpu)
-
-# end q3map2 ----------------------------------------------------------------------
-
-# q3data ---------------------------------------------------------------------------
-
-q3data_env = q3map_env.Copy()
-
-q3data_common_src = [
-  'common/aselib.c',
-  'common/bspfile.c',
-  'common/cmdlib.c',
-  'common/imagelib.c',
-  'common/inout.c',
-  'common/scriplib.c',
-  'common/trilib.c',
-  'common/unzip.c',
-  'common/vfs.c'
-  ]
-
-q3data_src = [
-  'q3data/3dslib.c',
-  'q3data/compress.c',
-  'q3data/images.c',
-  'q3data/md3lib.c',
-  'q3data/models.c',
-  'q3data/p3dlib.c',
-  'q3data/polyset.c',
-  'q3data/q3data.c',
-  'q3data/stripper.c',
-  'q3data/video.c' ]
-
-q3data_full_src = [ ]
-for i in q3data_common_src + q3data_src:
-  q3data_full_src.append('tools/quake3/' + i)
-
-q3data_full_src.append('libs/libmathlib.a')
-q3data_full_src.append('libs/libl_net.a')
-
-q3data_env.Program( target = 'q3data.' + g_cpu, source = q3data_full_src )
-q3data_env.Install( INSTALL, 'q3data.' + g_cpu )
-
-# end q3data ----------------------------------------------------------------------
-
-# q2_tools ---------------------------------------------------------------------------
-
-q2_tools_env = g_env.Copy()
-q2_tools_env['CPPPATH'].append('include')
-q2_tools_env.useXML2()
-q2_tools_env.usePThread()
-q2_tools_env.Prepend(CPPPATH='tools/quake2/common')
-
-q2_tools_common_src = [
-  'common/bspfile.c',
-  'common/cmdlib.c',
-  'common/inout.c',
-  'common/l3dslib.c',
-  'common/lbmlib.c',
-  'common/mathlib.c',
-  'common/path_init.c',
-  'common/polylib.c',
-  'common/scriplib.c',
-  'common/threads.c',
-  'common/trilib.c'
-]
-
-
-q2_tools_q2map_src = [
-  'q2map/brushbsp.c',
-  'q2map/csg.c',
-  'q2map/faces.c',
-  'q2map/flow.c',
-  'q2map/glfile.c',
-  'q2map/leakfile.c',
-  'q2map/lightmap.c',
-  'q2map/main.c',
-  'q2map/map.c',
-  'q2map/nodraw.c',
-  'q2map/patches.c',
-  'q2map/portals.c',
-  'q2map/prtfile.c',
-  'q2map/qbsp.c',
-  'q2map/qrad.c',
-  'q2map/qvis.c',
-  'q2map/textures.c',
-  'q2map/trace.c',
-  'q2map/tree.c',
-  'q2map/writebsp.c'
-]
-
-q2_tools_qdata3_common_src = [
-  'common/bspfile.c',
-  'common/cmdlib.c',
-  'common/inout.c',
-  'common/l3dslib.c',
-  'common/lbmlib.c',
-  'common/mathlib.c',
-  'common/path_init.c',
-  'common/scriplib.c',
-  'common/threads.c',
-  'common/trilib.c'
-]
-
-q2_tools_qdata3_src = [
-  'qdata/images.c',
-  'qdata/models.c',
-  'qdata/qdata.c',
-  'qdata/sprites.c',
-  'qdata/tables.c',
-  'qdata/video.c'
-]
-
-q2_tools_q2map_full_src = [ ]
-for i in q2_tools_common_src + q2_tools_q2map_src:
-  q2_tools_q2map_full_src.append('tools/quake2/' + i)
-
-q2_tools_q2map_full_src.append('libs/libl_net.a')
-
-q2_tools_qdata3_full_src = [ ]
-for i in q2_tools_common_src + q2_tools_qdata3_src:
-  q2_tools_qdata3_full_src.append('tools/quake2/' + i)
-
-q2_tools_qdata3_full_src.append('libs/libl_net.a')
-
-if ( OS != 'Darwin' ):
-       q2_tools_env.Program(target='quake2_tools/q2map', source=q2_tools_q2map_full_src )
-       q2_tools_env.Install(INSTALL + '/q2', 'quake2_tools/q2map' )
-
-       q2_tools_env.Program(target='quake2_tools/qdata3', source=q2_tools_qdata3_full_src )
-       q2_tools_env.Install(INSTALL + '/q2', 'quake2_tools/qdata3' )
-
-
-# end q2_tools ----------------------------------------------------------------------
-
-# qdata3_heretic2 ---------------------------------------------------------------------------
-
-heretic2_tools_env = g_env.Copy()
-heretic2_tools_env['CPPPATH'].append('include')
-heretic2_tools_env.useXML2()
-heretic2_tools_env.usePThread()
-heretic2_tools_env.Prepend(CPPPATH='tools/quake2/qdata_heretic2')
-heretic2_tools_env.Prepend(CPPPATH='tools/quake2/qdata_heretic2/qcommon')
-heretic2_tools_env.Prepend(CPPPATH='tools/quake2/qdata_heretic2/common')
-
-heretic2_tools_qdata3_common_src = [
-  'qdata_heretic2/common/bspfile.c',
-  'qdata_heretic2/common/cmdlib.c',
-  'qdata_heretic2/common/inout.c',
-  'qdata_heretic2/common/l3dslib.c',
-  'qdata_heretic2/common/lbmlib.c',
-  'qdata_heretic2/common/mathlib.c',
-  'qdata_heretic2/common/path_init.c',
-  'qdata_heretic2/common/qfiles.c',
-  'qdata_heretic2/common/scriplib.c',
-  'qdata_heretic2/common/threads.c',
-  'qdata_heretic2/common/token.c',
-  'qdata_heretic2/common/trilib.c'
-]
-
-heretic2_tools_qdata3_qcommon_src = [
-  'qdata_heretic2/qcommon/reference.c',
-  'qdata_heretic2/qcommon/resourcemanager.c',
-  'qdata_heretic2/qcommon/skeletons.c'
-]
-
-heretic2_tools_qdata3_src = [
-  'qdata_heretic2/animcomp.c',
-  'qdata_heretic2/book.c',
-  'qdata_heretic2/fmodels.c',
-  'qdata_heretic2/images.c',
-  'qdata_heretic2/jointed.c',
-  'qdata_heretic2/models.c',
-  'qdata_heretic2/pics.c',
-  'qdata_heretic2/qdata.c',
-  'qdata_heretic2/qd_skeletons.c',
-  'qdata_heretic2/sprites.c',
-  'qdata_heretic2/svdcmp.c',
-  'qdata_heretic2/tables.c',
-  'qdata_heretic2/tmix.c',
-  'qdata_heretic2/video.c'
-]
-
-heretic2_tools_qdata3_full_src = [ ]
-for i in heretic2_tools_qdata3_common_src + heretic2_tools_qdata3_qcommon_src + heretic2_tools_qdata3_src:
-  heretic2_tools_qdata3_full_src.append('tools/quake2/' + i)
-
-heretic2_tools_qdata3_full_src.append('libs/libl_net.a')
-
-heretic2_tools_env['CCFLAGS'] += '-D_LINUX '
-
-if ( OS != 'Darwin' ):
-       heretic2_tools_env.Program(target='heretic2_tools/qdata3', source=heretic2_tools_qdata3_full_src )
-       heretic2_tools_env.Install(INSTALL + '/heretic2', 'heretic2_tools/qdata3' )
-
-       heretic2_q2map_env = q2_tools_env
-       heretic2_q2map_env.Install(INSTALL + '/heretic2', 'quake2_tools/q2map' )
-
-# end heretic2_tools ----------------------------------------------------------------------
-
-
-
-# radiant, modules and plugins ----------------------------------------------------
-
-module_env = g_env.Copy()
-module_env['CPPPATH'].append('include')
-if ( OS == 'Darwin' ):
-       module_env['LINKFLAGS'] += '-dynamiclib -ldl '
-else:
-       module_env['LINKFLAGS'] += '-ldl '
-module_env['LIBPREFIX'] = ''
-module_env.useGlib2()
-module_env.useXML2()
-
-module_env.SharedLibrarySafe(target='fgd', source=['plugins/eclassfgd/plugin.cpp', 'libs/libsynapse.a'])
-module_env.Install(INSTALL + '/modules', 'fgd.so')
-
-vfspk3_lst=build_list('plugins/vfspk3', 'vfspk3.cpp vfs.cpp unzip.cpp')
-vfspk3_lst.append('libs/libsynapse.a')
-module_env.SharedLibrarySafe(target='vfspk3', source=vfspk3_lst)
-module_env.Install(INSTALL + '/modules', 'vfspk3.so')
-
-vfswad_lst=build_list('plugins/vfswad', 'unwad.cpp vfs.cpp vfswad.cpp')
-vfswad_lst.append('libs/libsynapse.a')
-module_env.SharedLibrarySafe(target='vfswad', source=vfswad_lst)
-module_env.Install(INSTALL + '/modules', 'vfswad.so')
-
-vfspak_lst=build_list('plugins/vfspak', 'vfspak.cpp vfs.cpp')
-vfspak_lst.append('libs/libsynapse.a')
-module_env.SharedLibrarySafe(target='vfspak', source=vfspak_lst)
-module_env.Install(INSTALL + '/q2/modules', 'vfspak.so')
-module_env.Install(INSTALL + '/heretic2/modules', 'vfspak.so')
-
-shaders_lst=build_list('plugins/shaders', 'shaders.cpp plugin.cpp')
-shaders_lst.append('libs/libsynapse.a')
-module_env.SharedLibrarySafe(target='shaders', source=shaders_lst)
-module_env.Install(INSTALL + '/modules', 'shaders.so')
-
-image_lst=build_list('plugins/image', 'jpeg.cpp image.cpp lbmlib.cpp')
-image_lst.append('libs/libsynapse.a')
-image_lst.append('libs/libjpeg.a')
-module_env.SharedLibrarySafe(target='image', source=image_lst)
-module_env.Install(INSTALL + '/modules', 'image.so')
-
-imagewal_lst=build_list('plugins/imagewal', 'wal.cpp imagewal.cpp')
-imagewal_lst.append('libs/libsynapse.a')
-module_env.SharedLibrarySafe(target='imagewal', source=imagewal_lst)
-module_env.Install(INSTALL + '/q2/modules', 'imagewal.so')
-
-imagem8_lst=build_list('plugins/imagem8', 'm8.cpp m32.cpp imagem8.cpp')
-imagem8_lst.append('libs/libsynapse.a')
-module_env.SharedLibrarySafe(target='imagem8', source=imagem8_lst)
-module_env.Install(INSTALL + '/heretic2/modules', 'imagem8.so')
-
-imagehl_lst=build_list('plugins/imagehl', 'imagehl.cpp lbmlib.cpp')
-imagehl_lst.append('libs/libsynapse.a')
-module_env.SharedLibrarySafe(target='imagehl', source=imagehl_lst)
-module_env.Install(INSTALL + '/modules', 'imagehl.so')
-
-imagepng_lst=build_list('plugins/imagepng', 'plugin.cpp')
-imagepng_lst.append('libs/libsynapse.a')
-module_env.usePNG()
-module_env.SharedLibrarySafe(target='imagepng', source=imagepng_lst)
-module_env.Install(INSTALL + '/modules', 'imagepng.so')
-
-map_lst=build_list('plugins/map', 'plugin.cpp parse.cpp write.cpp')
-map_lst.append('libs/libsynapse.a')
-map_lst.append('libs/libcmdlib.a')
-module_env.SharedLibrarySafe(target='map', source=map_lst)
-module_env.Install(INSTALL + '/modules', 'map.so')
-
-mapxml_lst=build_list('plugins/mapxml', 'plugin.cpp xmlparse.cpp xmlwrite.cpp')
-mapxml_lst.append('libs/libsynapse.a')
-module_env.SharedLibrarySafe(target='mapxml', source=mapxml_lst)
-module_env.Install(INSTALL + '/modules', 'mapxml.so')
-
-model_lst=build_list('plugins/model', 'plugin.cpp model.cpp cpicomodel.cpp cpicosurface.cpp remap.cpp')
-model_lst.append('libs/libsynapse.a')
-model_lst.append('libs/libpicomodel.a')
-model_lst.append('libs/libmathlib.a')
-module_env.SharedLibrarySafe(target='model', source=model_lst)
-module_env.Install(INSTALL + '/modules', 'model.so')
-
-entity_lst = build_list('plugins/entity', 'plugin.cpp entity_entitymodel.cpp miscmodel.cpp eclassmodel.cpp entity.cpp light.cpp')
-entity_lst.append('libs/libsynapse.a')
-entity_lst.append('libs/libmathlib.a')
-module_env.SharedLibrarySafe(target='entity', source=entity_lst)
-module_env.Install(INSTALL + '/modules', 'entity.so')
-
-bob_env = module_env.Copy()
-bob_env.useGtk2()
-bob_lst = build_list('contrib/bobtoolz/',
-'dialogs/dialogs-gtk.cpp bobToolz-GTK.cpp bsploader.cpp cportals.cpp DBobView.cpp \
-DBrush.cpp DEntity.cpp DEPair.cpp DListener.cpp DMap.cpp DPatch.cpp DPlane.cpp DPoint.cpp \
-DShape.cpp DTrainDrawer.cpp DTreePlanter.cpp DVisDrawer.cpp DWinding.cpp funchandlers-GTK.cpp \
-lists.cpp misc.cpp ScriptParser.cpp shapes.cpp visfind.cpp')
-bob_lst.append('libs/libsynapse.a')
-bob_lst.append('libs/libmathlib.a')
-bob_lst.append('libs/libcmdlib.a')
-bob_env['CPPPATH'].append('contrib/bobtoolz/dialogs')
-bob_env.SharedLibrarySafe(target='bobtoolz', source=bob_lst)
-bob_env.Install(INSTALL + '/plugins', 'bobtoolz.so')
-
-camera_lst = build_list('contrib/camera', 
-'camera.cpp dialogs.cpp dialogs_common.cpp funchandlers.cpp listener.cpp misc.cpp renderer.cpp')
-camera_lst.append('libs/libsynapse.a')
-camera_lst.append('libs/libsplines.a')
-bob_env.SharedLibrarySafe(target='camera', source=camera_lst)
-bob_env.Install(INSTALL + '/plugins', 'camera.so')
-
-prtview_lst = build_list('contrib/prtview', 
-'AboutDialog.cpp ConfigDialog.cpp LoadPortalFileDialog.cpp portals.cpp prtview.cpp')
-prtview_lst.append('libs/libsynapse.a')
-prtview_env = bob_env.Copy()
-prtview_env['CXXFLAGS'] += '-DGTK_PLUGIN '
-prtview_env.SharedLibrarySafe(target='prtview', source=prtview_lst)
-prtview_env.Install(INSTALL + '/plugins', 'prtview.so')
-
-gensurf_lst = build_list('contrib/gtkgensurf',
-'bitmap.cpp dec.cpp face.cpp font.cpp gendlgs.cpp genmap.cpp gensurf.cpp heretic.cpp plugin.cpp view.cpp triangle.c')
-gensurf_lst.append('libs/libsynapse.a')
-bob_env.SharedLibrarySafe(target='gensurf', source=gensurf_lst)
-bob_env.Install(INSTALL + '/plugins', 'gensurf.so')
-
-surface_lst = build_list('plugins/surface', 'surfdlg_plugin.cpp surfacedialog.cpp')
-surface_lst.append('libs/libsynapse.a')
-surface_lst.append('libs/libmathlib.a')
-surface_env = module_env.Copy()
-surface_env.useGtk2()
-surface_env.SharedLibrarySafe(target='surface', source=surface_lst)
-surface_env.Install(INSTALL + '/modules', 'surface.so')
-
-surface_quake2_lst = build_list('plugins/surface_quake2', 'surfdlg_plugin.cpp surfacedialog.cpp surfaceflagsdialog_quake2.cpp')
-surface_quake2_lst.append('libs/libsynapse.a')
-surface_quake2_lst.append('libs/libmathlib.a')
-surface_quake2_env = module_env.Copy()
-surface_quake2_env.useGtk2()
-surface_quake2_env.SharedLibrarySafe(target='surface_quake2', source=surface_quake2_lst)
-surface_quake2_env.Install(INSTALL + '/q2/modules', 'surface_quake2.so')
-
-surface_heretic2_lst = build_list('plugins/surface_heretic2', 'surfdlg_plugin.cpp surfacedialog.cpp surfaceflagsdialog_heretic2.cpp')
-surface_heretic2_lst.append('libs/libsynapse.a')
-surface_heretic2_lst.append('libs/libmathlib.a')
-surface_heretic2_env = module_env.Copy()
-surface_heretic2_env.useGtk2()
-surface_heretic2_env.SharedLibrarySafe(target='surface_heretic2', source=surface_heretic2_lst)
-surface_heretic2_env.Install(INSTALL + '/heretic2/modules', 'surface_heretic2.so')
-
-bkgrnd2d_list = build_list( 'contrib/bkgrnd2d', 'bkgrnd2d.cpp plugin.cpp dialog.cpp' )
-bkgrnd2d_list.append( 'libs/libsynapse.a' )
-bkgrnd2d_env = module_env.Copy()
-bkgrnd2d_env.useGtk2()
-bkgrnd2d_env.SharedLibrarySafe( target='bkgrnd2d', source=bkgrnd2d_list )
-bkgrnd2d_env.Install( INSTALL + '/plugins', 'bkgrnd2d.so' )
-
-radiant_env = g_env.Copy()
-radiant_env['CPPPATH'].append('include')
-radiant_env['LINKFLAGS'] += '-ldl '
-if ( OS == 'Darwin' ):
-  radiant_env['CXXFLAGS'] += '-fno-common '
-  radiant_env['CCFLAGS'] += '-fno-common '
-  radiant_env['LINKFLAGS'] += '-lX11 -lGL -lGLU '
-radiant_env['LIBPREFIX'] = ''
-radiant_env.useGlib2()
-radiant_env.useXML2()
-radiant_env.useGtk2()
-radiant_env.useGtkGLExt()
-
-radiant_src=[ 'qgl.c', 'brush.cpp', 'brush_primit.cpp', 'brushscript.cpp', 'camwindow.cpp', 'csg.cpp',
- 'dialog.cpp', 'dialoginfo.cpp', 'drag.cpp', 'eclass.cpp', 'eclass_def.cpp', 'error.cpp', 'feedback.cpp',
- 'file.cpp', 'findtexturedialog.cpp', 'glinterface.cpp', 'glwidget.cpp', 'glwindow.cpp', 'groupdialog.cpp', 
- 'gtkdlgs.cpp', 'gtkmisc.cpp', 'main.cpp', 'mainframe.cpp', 'map.cpp', 'missing.cpp', 'parse.cpp', 
- 'patchdialog.cpp', 'pluginentities.cpp', 'pluginmanager.cpp', 'pmesh.cpp', 'points.cpp', 'preferences.cpp', 
- 'profile.cpp', 'qe3.cpp', 'qgl_ext.cpp', 'select.cpp', 'selectedface.cpp', 'surfacedialog.cpp',
- 'surfaceplugin.cpp', 'targetname.cpp', 'texmanip.cpp', 'texwindow.cpp', 'undo.cpp', 'vertsel.cpp', 
- 'watchbsp.cpp', 'winding.cpp', 'xywindow.cpp', 'z.cpp', 'zwindow.cpp', 'filters.cpp', 'bp_dlg.cpp', 'ui.cpp' ]
-
-for i in range(len(radiant_src)):
-  radiant_src[i] = 'radiant/' + radiant_src[i]
-
-radiant_src.append('libs/libmathlib.a')
-radiant_src.append('libs/libcmdlib.a')
-radiant_src.append('libs/libl_net.a')
-radiant_src.append('libs/libsynapse.a')
-
-radiant_env.Program(target='radiant.' + g_cpu, source=radiant_src)
-radiant_env.Install(INSTALL, 'radiant.' + g_cpu)
-
-# setup -------------------------------------------------------------------------------------------
-
-class setup_builder:
-
-  g_dryrun = 0
-  
-  def system(self, cmd):
-    if (self.g_dryrun):
-      print cmd
-    else:
-      sys.stdout.write(cmd)
-      ret = commands.getstatusoutput(cmd)
-      print ret[1]
-      if (ret[0] != 0):
-        raise 'command failed'
-
-  def copy_core(self):
-    # binaries and misc
-    self.system('mkdir -p %s/modules' % self.SETUP_BIN_DIR)
-    self.system('mkdir -p %s/plugins' % self.SETUP_BIN_DIR)
-    self.system('cp install/%s %s' % (self.EDITOR_BIN, self.SETUP_BIN_DIR))
-    self.system('cp install/modules/*.so %s/modules' % self.SETUP_BIN_DIR )
-    self.system('cp install/plugins/*.so %s/plugins' % self.SETUP_BIN_DIR )
-    self.system('cp install/q3map2.%s %s' % ( g_cpu, self.SETUP_BIN_DIR ) )
-    self.M4_STDC = ''
-    if (not self.g_darwin):    
-      # fugly
-      # copy libgcc_s and stdc++ over to distribute it and reduce potential ABI fuckups
-      ret = commands.getstatusoutput('ldd -r install/' + self.EDITOR_BIN + ' 2>/dev/null | grep libgcc_s | sed -e \'s/.* => \\([^ ]*\\) .*/\\1/\'')
-      if (ret[0] != 0):
-        raise 'ldd command failed'
-      self.system('cp ' + ret[1] + ' ' + self.SETUP_BIN_DIR)
-      ret = commands.getstatusoutput('ldd -r install/' + self.EDITOR_BIN + ' 2>/dev/null | grep libstdc++ | sed -e \'s/.* => \\([^ ]*\\) .*/\\1/\'')
-      if (ret[0] != 0):
-        raise 'ldd command failed'
-      lines = string.split(ret[1], '\n')
-      self.M4_STDC = '"' 
-      for i in lines:
-        self.system('cp ' + i + ' ' + self.SETUP_BIN_DIR)
-        self.M4_STDC += os.path.basename(i) + ' \n'
-      self.M4_STDC += '"'
-    # hack for symlink
-    # setup process generates the wrapper at install time
-    # but we need a dummy executable for symlink in loki_setup
-    self.system('echo -n "#!/bin/sh\necho If you read this then there was a bug during setup. Report the bug and try running %s directly from it\'s installation directory.\n" > %s/radiant' % (self.EDITOR_BIN, self.SETUP_BIN_DIR));
-    self.system('echo -n "#!/bin/sh\necho If you read this then there was a bug during setup. Report the bug and try running %s directly from it\'s installation directory.\n" > %s/q3map2' % (self.EDITOR_BIN, self.SETUP_BIN_DIR));
-    ## this goes to the core install directory
-    DEST = self.SETUP_DIR + '/core'
-    self.system('mkdir -p ' + DEST + '/modules/bitmaps')
-    # general content stuff
-    self.system('cp -R plugins/model/bitmaps/* ' + DEST + '/modules/bitmaps')
-    self.system('cp -R setup/data/tools/* ' + DEST)
-    self.system('cp -R radiant/bitmaps ' + DEST)
-    self.system('cp setup/changelog.txt ' + DEST)
-    self.system('cp setup/openurl.sh ' + DEST)
-    self.system('cp tools/quake3/q3map2/changelog.q3map2.txt ' + DEST)
-    # documentation
-    self.system('cp -R docs/manual/Q3Rad_Manual ' + DEST)
-    self.system('cp -R docs/manual/quake3/Compile_Manual ' + DEST)
-    self.system('cp -R docs/manual/quake3/Model_Manual ' + DEST)
-    self.system('cp -R docs/manual/quake3/Terrain_Manual ' + DEST)
-    # copy plugins media
-    self.system('mkdir -p ' + DEST + '/plugins/bitmaps')
-    self.system('cp -R contrib/bobtoolz/bitmaps/* ' + DEST + '/plugins/bitmaps')
-    self.system('cp -R contrib/bobtoolz/bt ' + DEST + '/plugins')
-    self.system('cp -R contrib/camera/bitmaps/* ' + DEST + '/plugins/bitmaps' )
-    self.system('cp -R contrib/bkgrnd2d/bitmaps/* ' + DEST + '/plugins/bitmaps' )
-  
-  def copy_q3(self):
-    # binaries
-    self.system('mkdir -p ' + self.SETUP_BIN_DIR + '/q3')
-    if ( self.g_darwin == 0 ):
-      self.system('cp setup/linux/bspc ' + self.SETUP_BIN_DIR + '/q3')
-
-    # goes in core
-    DEST = self.SETUP_DIR + '/core/q3'
-    self.system('mkdir -p ' + DEST)
-    self.system('cp setup/data/tools/synapse.config ' + DEST)
-    self.system('cp setup/data/tools/game.xlink ' + DEST)
-    self.system('cp -R docs/manual/quake3/Team_Arena_Mapping_Help ' + DEST)
-    self.system('cp -R docs/manual/quake3/New_Teams_For_Q3TA ' + DEST)
-    self.system('cp -R docs/manual/quake3/Q3AShader_Manual ' + DEST)
-  
-    # goes in the game install path
-    DEST = self.SETUP_DIR + '/q3'
-    self.system('mkdir -p ' + DEST)
-    self.system('cp -R setup/data/baseq3 ' + DEST)
-    self.system('cp -R setup/data/missionpack ' + DEST)
-
-  def copy_wolf(self):
-    # binaries
-    self.system('mkdir -p ' + self.SETUP_BIN_DIR + '/wolf')
-    if ( self.g_darwin == 0 ):
-      self.system('cp ../WolfPack/bin/Linux/bspc ' + self.SETUP_BIN_DIR + '/wolf')
-  
-    # goes in core
-    DEST = self.SETUP_DIR + '/core/wolf'
-    self.system('mkdir -p ' + DEST)
-    self.system('cp ../WolfPack/synapse.config ' + DEST)
-    self.system('cp -R ../WolfPack/docs ' + DEST)
-    self.system('cp ../WolfPack/game.xlink ' + DEST)
-    self.system('cp ../WolfPack/bin/aascfg_lg.c ' + DEST)
-    self.system('cp ../WolfPack/bin/aascfg_sm.c ' + DEST)
-    self.system('cp ../WolfPack/bin/bspc.ai ' + DEST)
-
-    # goes in the game install path
-    DEST = self.SETUP_DIR + '/wolf/main'
-    self.system('mkdir -p ' + DEST)
-    self.system('cp ../WolfPack/astro-skies.pk3 ' + DEST)
-    self.system('cp ../WolfPack/common-astro-spog.pk3 ' + DEST)
-    self.system('cp ../WolfPack/lights.pk3 ' + DEST)      
-    self.system('cp -R ../WolfPack/scripts ' + DEST)
-    self.system('cp -R ../WolfPack/maps ' + DEST)
-    self.system('cp -R ../WolfPack/models ' + DEST)
-  
-  def copy_et(self):
-    # goes in core
-    DEST = self.SETUP_DIR + '/core/et'
-    self.system('mkdir -p ' + DEST)    
-    self.system('cp -R ../ETPack/bitmaps ' + DEST)
-    self.system('cp -R ../ETPack/docs ' + DEST)
-    self.system('cp ../ETPack/game.xlink ' + DEST)
-    self.system('cp ../ETPack/synapse.config ' + DEST)
-    
-    # goes in game install path
-    DEST = self.SETUP_DIR + '/et/etmain'
-    self.system('mkdir -p ' + DEST)
-    self.system('cp ../ETPack/astro-skies.pk3 ' + DEST)
-    self.system('cp ../ETPack/common.pk3 ' + DEST)
-    self.system('cp ../ETPack/goldrush.pcx ' + DEST)    
-    self.system('cp ../ETPack/lights.pk3 ' + DEST)
-    self.system('cp ../ETPack/mapmedia.pk3 ' + DEST)
-    self.system('cp -R ../ETPack/scripts ' + DEST)
-    self.system('cp -R ../ETPack/maps ' + DEST)
-    self.system('cp -R ../ETPack/models ' + DEST)
-
-  def copy_q2(self):
-    # binaries
-    self.system('cp -R install/q2 %s' % (self.SETUP_BIN_DIR))
-
-    # goes in core
-    DEST = self.SETUP_DIR + '/core/q2'
-    self.system('mkdir -p ' + DEST + '/modules')
-    self.system('cp ../Q2Pack/game.xlink ' + DEST)
-    self.system('cp ../Q2Pack/synapse.config ' + DEST)
-    self.system('cp install/q2/q2map install/q2/qdata3 ' + DEST) 
-    self.system('cp -R install/q2/modules ' + DEST )
-
-    # goes in game install path
-    DEST = self.SETUP_DIR + '/q2'
-    self.system('mkdir -p ' + DEST +  '/baseq2')
-    self.system('cp -R ../Q2Pack/baseq2/* ' + DEST + '/baseq2')
-
-  def copy_her2(self):
-    # binaries
-    self.system('cp -R install/heretic2 %s' % (self.SETUP_BIN_DIR))
-
-    # goes in core
-    DEST = self.SETUP_DIR + '/core/heretic2'
-    self.system('mkdir -p ' + DEST + '/modules')
-    self.system('cp ../Her2Pack/game.xlink ' + DEST)
-    self.system('cp ../Her2Pack/synapse.config ' + DEST)
-    self.system('cp install/q2/q2map install/heretic2/qdata3 ' + DEST)
-    self.system('cp -R install/heretic2/modules ' + DEST )
-
-    # goes in game install path
-    DEST = self.SETUP_DIR + '/heretic2'
-    self.system('mkdir -p ' + DEST +  '/base')
-    self.system('cp -R ../Her2Pack/base/* ' + DEST + '/base')
-
-  def build_setup(self):
-    self.system( 'cp -R ' + self.SETUP_IMAGE_OS + '/* ' + self.SETUP_DIR )
-    self.system( 'cp -fR ' + self.SETUP_IMAGE + '/* ' + self.SETUP_DIR )
-    self.system('cp setup/license.txt ' + self.SETUP_DIR)
-    self.system('cp setup/linux/README ' + self.SETUP_DIR)
-    OS_DEFS=''
-    if (self.g_darwin):
-      OS_DEFS='--define=M4_OSX'
-    M4_LINE = OS_DEFS + ' --define=M4_VER_MAJOR=' + self.major + ' --define=M4_VER_MINOR=' + self.minor + ' --define=M4_VER=' + self.line 
-    M4_LINE += ' --define=M4_GAME_ET=%d' % self.DO_GAME_ET
-    M4_LINE += ' --define=M4_GAME_Q2=%d' % self.DO_GAME_Q2
-    if ( self.M4_STDC != '' ):
-      M4_LINE += ' --define=M4_STDC=' + self.M4_STDC 
-    # setup.xml
-    self.system('m4 ' + M4_LINE + ' ' + self.SETUP_DIR + '/setup.data/setup.xml.in > ' + self.SETUP_DIR + '/setup.data/setup.xml')
-    # postinstall.sh
-    self.system('m4 ' + M4_LINE + ' ' + self.SETUP_DIR + '/setup.data/postinstall.sh.in > ' + self.SETUP_DIR + '/setup.data/postinstall.sh')
-    # config.sh
-    self.system('m4 ' + M4_LINE + ' ' + self.SETUP_DIR + '/setup.data/config.sh.in > ' + self.SETUP_DIR + '/setup.data/config.sh')
-    # setup.sh
-    self.system('m4 ' + M4_LINE + ' ' + self.SETUP_DIR + '/setup.sh.in > ' + self.SETUP_DIR + '/setup.sh')
-    self.system('chmod +x ' +self.SETUP_DIR + '/setup.sh')
-    self.system('find ' + self.SETUP_DIR + ' -name .svn | while read i ; do rm -r "$i" ; done')
-    # pack it up
-    self.system('setup/linux/makeself/makeself.sh ' + self.SETUP_DIR + ' ' + self.SETUP_TARGET + ' "GtkRadiant ' + self.line + ' setup" ./setup.sh')
-    if (self.g_darwin):
-      def build_fink_deb(self):
-        print "Building installer .deb\n"
-        self.F_REV = '1'
-        self.FINKINFO_DIR = '/sw/fink/10.2/unstable/main/finkinfo/games'
-        self.TARBALL_DIR='radiant-' + self.F_REV + '.' + self.major 
-        self.TARBALL_NAME='radiant-' + self.F_REV + '.' + self.major + '.tar.gz'
-        self.TARBALL_DEST='/sw/src'
-
-        # prepare package description
-        self.system('mkdir -p ' + self.FINKINFO_DIR)
-        self.system('m4 ' + M4_LINE + ' --define=M4_SETUP_TARGET=' + self.SETUP_TARGET + '  --define=M4_F_REV=' + self.F_REV + ' ' + 'setup/osx/radiant.info.m4 > ' + self.FINKINFO_DIR + '/radiant-' + self.TARBALL_DIR + '.info')
-
-        # build the tarball
-        self.system('if [ -r /tmp/' + self.TARBALL_DIR + ' ] ; then rm -r ' '/tmp/' + self.TARBALL_DIR + ' ; fi')
-        self.system('mkdir -p ' '/tmp/' + self.TARBALL_DIR)
-        self.system('cp ' + self.SETUP_TARGET + ' ' + '/tmp/' + self.TARBALL_DIR)
-        self.system('cd /tmp ; tar -cvzf ' + self.TARBALL_NAME + ' ' + self.TARBALL_DIR + ' ; cp ' + self.TARBALL_NAME + ' ' + self.TARBALL_DEST + '/')
-        self.system('/sw/bin/fink rebuild radiant')
-
-       build_fink_deb(self)
-      
-  def spawn_setup(self, env, target, source):
-    if ( OS == 'Darwin' ):
-      self.g_darwin = 1
-    else:
-      self.g_darwin = 0
-    (self.line, self.major, self.minor) = get_version()
-    print 'Setup: GtkRadiant %s' % self.line  
-    if ( self.g_darwin ):
-      self.SETUP_IMAGE_OS = '../loki_setup/image'
-    else:
-      self.SETUP_IMAGE_OS = 'setup/linux/setup_image.Linux'
-    self.SETUP_IMAGE = 'setup/linux/setup_image'
-    self.SETUP_DIR = '/tmp/radiant-setup.%d' % os.getpid()
-    self.EDITOR_BIN='radiant.' + g_cpu
-    if ( self.g_darwin ):
-      self.SETUP_BIN_DIR = self.SETUP_DIR + '/bin/Darwin/ppc'
-      self.SETUP_TARGET = 'osx-radiant-%s.run' % self.line
-    else:
-      self.SETUP_BIN_DIR = self.SETUP_DIR + '/bin/Linux/x86'
-      self.SETUP_TARGET = 'linux-radiant-%s.run' % self.line
-    # TODO: eval a conf file instead
-    self.DO_CORE=1
-    self.DO_GAME_Q3=1
-    self.DO_GAME_WOLF=1
-    self.DO_GAME_ET=1
-    self.DO_GAME_Q2=1
-    self.DO_GAME_HER2=1
-    if ( self.g_darwin ):
-      self.DO_GAME_Q2=0
-      self.DO_GAME_ET=0
-      self.DO_GAME_HER2=0
-    # verbose a bit
-    print 'version: %s major: %s minor: %s\neditor core: %d\nq3: %d\nwolf: %d\nq2: %d\nher2: %d' % (self.line, self.major, self.minor, self.DO_CORE, self.DO_GAME_Q3, self.DO_GAME_WOLF, self.DO_GAME_Q2, self.DO_GAME_HER2)
-    if (self.DO_CORE):
-      self.copy_core()
-    if (self.DO_GAME_Q3):
-      self.copy_q3()
-    if (self.DO_GAME_WOLF):
-      self.copy_wolf()
-    if (self.DO_GAME_ET):
-      self.copy_et()
-    if (self.DO_GAME_Q2):
-      self.copy_q2()
-    if (self.DO_GAME_HER2):
-      self.copy_her2()
-    self.build_setup()
-    return 0
-    
-def spawn_setup(env, target, source):
-  setup = setup_builder()
-  setup.spawn_setup(env, target, source)
-
-# NOTE: could modify g_env to add the deps auto when calling SharedLibrarySafe ..
-if (SETUP == '1'):
-  g_env.Command('foo', INSTALL + '/radiant.' + g_cpu, [ spawn_setup ] )
-  depends_list = [ 
-    INSTALL + '/modules/entity.so',
-    INSTALL + '/modules/fgd.so',
-    INSTALL + '/modules/imagehl.so',
-    INSTALL + '/modules/image.so',
-    INSTALL + '/modules/imagepng.so',
-    INSTALL + '/modules/map.so',
-    INSTALL + '/modules/mapxml.so',
-    INSTALL + '/modules/model.so',
-    INSTALL + '/modules/shaders.so',
-    INSTALL + '/modules/surface.so',
-    INSTALL + '/modules/vfspk3.so',
-    INSTALL + '/modules/vfswad.so',
-    INSTALL + '/plugins/bobtoolz.so',
-    INSTALL + '/plugins/camera.so',
-    INSTALL + '/plugins/prtview.so',
-    INSTALL + '/plugins/gensurf.so',
-    INSTALL + '/plugins/bkgrnd2d.so',
-    INSTALL + '/q3map2.' + g_cpu,
-    INSTALL + '/radiant.' + g_cpu,
-    INSTALL + '/q3data.' + g_cpu ]
-  if ( OS != 'Darwin' ):
-    depends_list += [
-      INSTALL + '/q2/modules/imagewal.so',
-      INSTALL + '/q2/modules/surface_quake2.so',
-      INSTALL + '/q2/modules/vfspak.so',
-      INSTALL + '/q2/q2map',
-      INSTALL + '/q2/qdata3',
-      INSTALL + '/heretic2/modules/imagem8.so',
-      INSTALL + '/heretic2/modules/surface_heretic2.so',
-      INSTALL + '/heretic2/modules/vfspak.so',
-      INSTALL + '/heretic2/qdata3',
-      INSTALL + '/heretic2/q2map' ]
-  g_env.Depends( 'foo', depends_list )
-
-# end setup ---------------------------------------------------------------------------------------
diff --git a/SConscript.lib b/SConscript.lib
new file mode 100644 (file)
index 0000000..777fb2c
--- /dev/null
@@ -0,0 +1,34 @@
+# -*- mode: python -*-
+# ZeroRadiant build scripts
+# TTimo <ttimo@idsoftware.com>
+# http://scons.sourceforge.net
+
+import os
+
+Import( [ 'utils', 'config', 'settings', 'project' ] )
+
+( libpath, libname ) = os.path.split( project )
+libname = os.path.splitext( libname )[0]
+
+env = Environment()
+settings.SetupEnvironment( env, config['name'] )
+proj = utils.vcproj( os.path.join( GetLaunchDir(), project ) )
+
+# some filtering. may need to improve that
+add_sources = []
+( drop, files ) = proj.filterSource( r'.*l_net_wins\.c' )
+if ( len( drop ) != 0 ):
+       add_sources.append( 'l_net_berkeley.c' )
+
+emit_func = env.StaticObject
+try:
+       if ( config['shared'] ):
+               emit_func = env.SharedObject
+except:
+       pass
+
+objects = []
+for i in files + add_sources:
+       objects.append( emit_func( os.path.join( libpath, i ) ) )
+
+Return( 'objects' )
diff --git a/SConscript.module b/SConscript.module
new file mode 100644 (file)
index 0000000..a7f2549
--- /dev/null
@@ -0,0 +1,60 @@
+# -*- mode: python -*-
+# ZeroRadiant build scripts
+# TTimo <ttimo@idsoftware.com>
+# http://scons.sourceforge.net
+
+import os
+
+Import( [ 'utils', 'config', 'settings', 'project', 'shlib_objects' ] )
+
+( libpath, libname ) = os.path.split( project )
+libname = os.path.splitext( libname )[0]
+
+env = Environment()
+useJPEG = False
+useGtk = False
+useZ = False
+usePNG = False
+if ( libname == 'image' ):
+       useJPEG = True
+if ( libname == 'surface' ):
+       useGtk = True
+if ( libname == 'surface_ufoai' ):
+       useGtk = True
+if ( libname == 'surface_quake2' ):
+       useGtk = True
+if ( libname == 'surface_heretic2' ):
+       useGtk = True
+if ( libname == 'bkgrnd2d' ):
+       useGtk = True
+if ( libname == 'gtkgensurf' ):
+       useGtk = True
+if ( libname == 'bobToolz_gtk' ):
+       useGtk = True
+if ( libname == 'camera' ):
+       useGtk = True
+if ( libname == 'PrtView' ):
+       useGtk = True
+if ( libname == 'spritemodel' ):
+       useGtk = True
+if ( libname == 'model' ):
+       useGtk = True
+if ( libname == 'TexTool' ):
+       useGtk = True
+if ( libname == 'imagepng' ):
+       usePNG = True
+
+
+settings.SetupEnvironment( env, config['name'], useGtk = useGtk, useJPEG = useJPEG, useZ = useZ, usePNG = usePNG )
+proj = utils.vcproj( os.path.join( GetLaunchDir(), project ) )
+
+# some filtering. may need to improve that
+add_sources = []
+( drop, files ) = proj.filterSource( r'.*l_net_wins\.c' )
+if ( len( drop ) != 0 ):
+       add_sources.append( 'l_net_berkeley.c' )
+
+module_base = env.SharedLibrary( os.path.join( 'modules', libname ), shlib_objects + [ os.path.join( libpath, i ) for i in files ] )
+module = env.AddPostAction( module_base, utils.CheckUnresolved )
+
+Return( 'module' )
diff --git a/SConscript.q3map2 b/SConscript.q3map2
new file mode 100644 (file)
index 0000000..963f51a
--- /dev/null
@@ -0,0 +1,19 @@
+# -*- mode: python -*-
+# ZeroRadiant build scripts
+# TTimo <ttimo@idsoftware.com>
+# http://scons.sourceforge.net
+
+import os
+
+Import( [ 'utils', 'config', 'settings', 'lib_objects' ] )
+
+env = Environment()
+settings.SetupEnvironment( env, config['name'] )
+env.Prepend( CPPPATH = [ '#tools/quake3/common' ] )
+env.Append( LIBS = [ 'pthread', 'png', 'jpeg', 'mhash' ] )
+proj = utils.vcproj( os.path.join( GetLaunchDir(), 'tools/quake3/q3map2/q3map2.vcproj' ) )
+objects = lib_objects
+objects += [ os.path.join( 'tools/quake3/q3map2', i ) for i in proj.getSourceFiles() ]
+q3map2 = env.Program( 'q3map2', objects )
+
+Return( 'q3map2' )
diff --git a/SConscript.radiant b/SConscript.radiant
new file mode 100644 (file)
index 0000000..f37b0bb
--- /dev/null
@@ -0,0 +1,18 @@
+# -*- mode: python -*-
+# ZeroRadiant build scripts
+# TTimo <ttimo@idsoftware.com>
+# http://scons.sourceforge.net
+
+import os
+
+Import( [ 'utils', 'config', 'settings', 'lib_objects' ] )
+
+env = Environment()
+settings.SetupEnvironment( env, config[ 'name' ], useGtk = True, useGtkGL = True )
+proj = utils.vcproj( os.path.join( GetLaunchDir(), 'radiant/radiant.vcproj' ) )
+
+radiant = env.Program( 'radiant.bin', lib_objects + [ os.path.join( 'radiant', i ) for i in proj.getSourceFiles() ] )
+
+Return( 'radiant' )
+
+
index d5d6c824dc85f93c651b64683d1c74842b0e8534..a8307a6e62459c337ff87c8caff908542ee461e3 100644 (file)
-# scons build script\r
+# -*- mode: python -*-\r
+# ZeroRadiant build scripts\r
+# TTimo <ttimo@idsoftware.com>\r
 # http://scons.sourceforge.net\r
 \r
-import commands, re, sys, os, pickle, string, popen2\r
-from makeversion import radiant_makeversion, get_version\r
-from osx_setup import do_osx_setup\r
+import sys, os, platform, cPickle\r
 \r
-# to access some internal stuff\r
-import SCons\r
+import utils, config\r
 \r
-conf_filename='site.conf'\r
-# there is a default hardcoded value, you can override on command line, those are saved between runs\r
-# we only handle strings\r
-serialized=['CC', 'CXX', 'JOBS', 'BUILD', 'SETUP']\r
+conf_filename = 'site.sconf'\r
 \r
-# help -------------------------------------------\r
-\r
-Help("""\r
-Usage: scons [OPTIONS] [TARGET] [CONFIG]\r
-\r
-[OPTIONS] and [TARGET] are covered in command line options, use scons -H\r
-\r
-[CONFIG]: KEY="VALUE" [...]\r
-a number of configuration options saved between runs in the """ + conf_filename + """ file\r
-erase """ + conf_filename + """ to start with default settings again\r
-\r
-CC\r
-CXX\r
-       Specify C and C++ compilers (defaults gcc and g++)\r
-       ex: CC="gcc-3.2"\r
-       You can use ccache and distcc, for instance:\r
-       CC="ccache distcc gcc" CXX="ccache distcc g++"\r
-\r
-JOBS\r
-       Parallel build\r
-       ex: JOBS="4" is a good setting on SMP machines\r
-\r
-BUILD\r
-       Use debug/release to select build settings\r
-       ex: BUILD="release" - default is debug\r
-       OSX: use BUILD="info" to generate the set of release files\r
-\r
-SETUP\r
-  Build a setup - default 0\r
-"""\r
-)\r
-\r
-# end help ---------------------------------------\r
-  \r
-# sanity -----------------------------------------\r
-\r
-# use q decently recent python release\r
-EnsurePythonVersion( 2, 1 )\r
-# above 0.90\r
-EnsureSConsVersion( 0, 95 )\r
-print 'SCons ' + SCons.__version__\r
-\r
-# end sanity -------------------------------------\r
-\r
-# system detection -------------------------------\r
-\r
-# CPU type\r
-g_cpu = commands.getoutput('uname -m')\r
-exp = re.compile('.*i?86.*')\r
-if (g_cpu == 'Power Macintosh'):\r
-  g_cpu = 'ppc'\r
-elif exp.match(g_cpu):\r
-  g_cpu = 'x86'\r
-else:\r
-  g_cpu = 'cpu'\r
-\r
-# OS\r
-OS = commands.getoutput('uname')\r
-\r
-if (OS == 'Linux'):\r
-  # libc .. do the little magic!\r
-  # NOTE: this used to work fine up to libc 2.3\r
-  libc = commands.getoutput('/lib/libc.so.6 |grep "GNU C "|grep version|awk -F "version " \'{ print $2 }\'|cut -b -3')\r
-\r
-# end system detection ---------------------------\r
-\r
-# default settings -------------------------------\r
-\r
-CC='gcc'\r
-CXX='g++'\r
-JOBS='1'\r
-BUILD='debug'\r
-INSTALL='#install'\r
-SETUP='0'\r
-g_build_root = 'build'\r
-\r
-# end default settings ---------------------------\r
-\r
-# site settings ----------------------------------\r
-\r
-site_dict = {}\r
-if (os.path.exists(conf_filename)):\r
-       site_file = open(conf_filename, 'r')\r
-       p = pickle.Unpickler(site_file)\r
-       site_dict = p.load()\r
-       print 'Loading build configuration from ' + conf_filename\r
-       for k, v in site_dict.items():\r
-               exec_cmd = k + '=\"' + v + '\"'\r
-               print exec_cmd\r
-               exec(exec_cmd)\r
-\r
-# end site settings ------------------------------\r
-\r
-# command line settings --------------------------\r
-\r
-for k in serialized:\r
-       if (ARGUMENTS.has_key(k)):\r
-               exec_cmd = k + '=\"' + ARGUMENTS[k] + '\"'\r
-               print 'Command line: ' + exec_cmd\r
-               exec(exec_cmd)\r
-\r
-# end command line settings ----------------------\r
-\r
-# sanity check -----------------------------------\r
-\r
-if (SETUP == '1' and BUILD != 'release' and BUILD != 'info'):\r
-  print 'Forcing release build for setup'\r
-  BUILD = 'release'\r
-\r
-def GetGCCVersion(name):\r
-  ret = commands.getstatusoutput('%s -dumpversion' % name)\r
-  if ( ret[0] != 0 ):\r
-    return None\r
-  vers = string.split(ret[1], '.')\r
-  if ( len(vers) == 2 ):\r
-    return [ vers[0], vers[1], 0 ]\r
-  elif ( len(vers) == 3 ):\r
-    return vers\r
-  return None\r
-\r
-ver_cc = GetGCCVersion(CC)\r
-ver_cxx = GetGCCVersion(CXX)\r
-\r
-# end sanity check -------------------------------\r
-\r
-# save site configuration ----------------------\r
-\r
-for k in serialized:\r
-       exec_cmd = 'site_dict[\'' + k + '\'] = ' + k\r
-       exec(exec_cmd)\r
-\r
-site_file = open(conf_filename, 'w')\r
-p = pickle.Pickler(site_file)\r
-p.dump(site_dict)\r
-site_file.close()\r
-\r
-# end save site configuration ------------------\r
-\r
-# general configuration, target selection --------\r
-\r
-SConsignFile( "scons.signatures" )\r
-\r
-g_build = g_build_root + '/' + BUILD\r
-\r
-SetOption('num_jobs', JOBS)\r
-\r
-LINK = CXX\r
-# common flags\r
-CCFLAGS = ''\r
-CXXFLAGS = '-pipe -DQ_NO_STLPORT '\r
-CPPPATH = []\r
-if (BUILD == 'debug'):\r
-       CXXFLAGS += '-g -D_DEBUG '\r
-       CCFLAGS += '-g -D_DEBUG '\r
-elif (BUILD == 'release'):\r
-       CXXFLAGS += '-g -O2 '\r
-       CCFLAGS += '-g -O2 '\r
-elif ( BUILD == 'info' ):\r
-       print 'Preparing OSX release'\r
-       ( line, major, minor ) = get_version()\r
-       do_osx_setup( major, minor, 'osx-radiant-%s.run' % line )\r
-       sys.exit( 0 )\r
+try:\r
+       sys.argv.index( '-h' )\r
+except:\r
+       pass\r
 else:\r
-       print 'Unknown build configuration ' + BUILD\r
-       sys.exit( 0 )\r
-\r
-LINKFLAGS = ''\r
-if ( OS == 'Linux' ):\r
-  LINKFLAGS += '-Wl,-fini,fini_stub '\r
-if ( OS == 'Darwin' ):\r
-  CCFLAGS += '-force_cpusubtype_ALL -fPIC '\r
-  CXXFLAGS += '-force_cpusubtype_ALL -fPIC -fno-exceptions -fno-rtti '\r
-  CPPPATH.append('/sw/include')\r
-  CPPPATH.append('/usr/X11R6/include')\r
-  LINKFLAGS += '-L/sw/lib -L/usr/lib -L/usr/X11R6/lib '\r
-\r
-CPPPATH.append('libs')\r
-\r
-# extend the standard Environment a bit\r
-class idEnvironment(Environment):\r
-\r
-  def useGlib2(self):\r
-    self['CXXFLAGS'] += '`pkg-config glib-2.0 --cflags` '\r
-    self['CCFLAGS'] += '`pkg-config glib-2.0 --cflags` '\r
-    self['LINKFLAGS'] += '`pkg-config glib-2.0 --libs` '\r
-    \r
-  def useXML2(self):\r
-    self['CXXFLAGS'] += '`xml2-config --cflags` '      \r
-    self['CCFLAGS'] += '`xml2-config --cflags` '      \r
-    self['LINKFLAGS'] += '`xml2-config --libs` '\r
-\r
-  def useGtk2(self):\r
-    self['CXXFLAGS'] += '`pkg-config gtk+-2.0 --cflags` '\r
-    self['CCFLAGS'] += '`pkg-config gtk+-2.0 --cflags` '\r
-    self['LINKFLAGS'] += '`pkg-config gtk+-2.0 --libs-only-L` `pkg-config gtk+-2.0 --libs-only-l` '\r
-   \r
-  def useGtkGLExt(self):\r
-    self['CXXFLAGS'] += '`pkg-config gtkglext-1.0 --cflags` '\r
-    self['CCFLAGS'] += '`pkg-config gtkglext-1.0 --cflags` '\r
-    self['LINKFLAGS'] += '`pkg-config gtkglext-1.0 --libs-only-L` `pkg-config gtkglext-1.0 --libs-only-l` '      \r
-    \r
-  def usePNG(self):\r
-    self['CXXFLAGS'] += '`libpng-config --cflags` '\r
-    self['CCFLAGS'] += '`libpng-config --cflags` '\r
-    self['LINKFLAGS'] += '`libpng-config --ldflags` '\r
-\r
-  def usePThread(self):\r
-    if ( OS == 'Darwin' ):\r
-      self['LINKFLAGS'] += '-lpthread -Wl,-stack_size,0x400000 '\r
-    else:\r
-      self['LINKFLAGS'] += '-lpthread '\r
-\r
-  def CheckLDD(self, target, source, env):\r
-    file = target[0]\r
-    if (not os.path.isfile(file.abspath)):\r
-        print('ERROR: CheckLDD: target %s not found\n' % target[0])\r
-        Exit(1)\r
-    # not using os.popen3 as I want to check the return code\r
-    ldd = popen2.Popen3('`which ldd` -r %s' % target[0], 1)\r
-    stdout_lines = ldd.fromchild.readlines()\r
-    stderr_lines = ldd.childerr.readlines()\r
-    ldd_ret = ldd.wait()\r
-    del ldd\r
-    have_undef = 0\r
-    if ( ldd_ret != 0 ):\r
-        print "ERROR: ldd command returned with exit code %d" % ldd_ret\r
-        os.system('rm %s' % target[0])\r
-        Exit()\r
-    for i_line in stderr_lines:\r
-        print repr(i_line)\r
-        regex = re.compile('undefined symbol: (.*)\t\\((.*)\\)\n')\r
-        if ( regex.match(i_line) ):\r
-            symbol = regex.sub('\\1', i_line)\r
-            try:\r
-                env['ALLOWED_SYMBOLS'].index(symbol)\r
-            except:\r
-                have_undef = 1\r
-        else:\r
-            print "ERROR: failed to parse ldd stderr line: %s" % i_line\r
-            os.system('rm %s' % target[0])\r
-            Exit(1)\r
-    if ( have_undef ):\r
-        print "ERROR: undefined symbols"\r
-        os.system('rm %s' % target[0])\r
-        Exit(1)\r
-  \r
-  def SharedLibrarySafe(self, target, source):\r
-    self.SharedLibrary(target, source)\r
-    if (OS != 'Darwin'):\r
-      AddPostAction(target + '.so', self.CheckLDD)\r
-\r
-g_env = idEnvironment(ENV = os.environ, \r
-  CC = CC,\r
-  CXX = CXX,\r
-  LINK = LINK,\r
-  CCFLAGS = CCFLAGS,\r
-  CXXFLAGS = CXXFLAGS,\r
-  CPPPATH = CPPPATH,\r
-  LINKFLAGS = LINKFLAGS)\r
-\r
-# export the globals\r
-GLOBALS = 'g_env INSTALL SETUP g_cpu'\r
-\r
-radiant_makeversion('\\ngcc version: %s.%s.%s' % ( ver_cc[0], ver_cc[1], ver_cc[2] ) )\r
-\r
-# end general configuration ----------------------\r
-\r
-# targets ----------------------------------------\r
-\r
-Default('.')\r
-\r
-Export('GLOBALS ' + GLOBALS)\r
-BuildDir(g_build, '.', duplicate = 0)\r
-SConscript(g_build + '/SConscript')\r
-\r
-# end targets ------------------------------------\r
+       Help(\r
+"""\r
+======================================================================\r
+ZeroRadiant build system quick help\r
+\r
+You need scons v0.97.0d20070918.r2446 or newer\r
+\r
+Default build (release), just run scons at the toplevel\r
+\r
+debug build:\r
+$ scons config=debug\r
+======================================================================\r
+""" )\r
+       Return()\r
+\r
+active_configs = []\r
+\r
+# load up configurations from the save file\r
+if ( os.path.exists( conf_filename ) ):\r
+       f = open( conf_filename )\r
+       print 'reading saved configuration from site.conf'\r
+       try:\r
+               while ( True ):\r
+                       c = cPickle.load( f )\r
+                       active_configs.append( c )\r
+       except:\r
+               pass\r
+\r
+# read the command line and build configs\r
+config_statements = sys.argv[1:]\r
+active_configs = config.ConfigParser().parseStatements( active_configs, config_statements )\r
+assert( len( active_configs ) >= 1 )\r
+\r
+# save the config\r
+print 'saving updated configuration'\r
+f = open( conf_filename, 'wb' )\r
+for c in active_configs:\r
+       cPickle.dump( c, f, -1 )\r
+\r
+print 'emit build rules'\r
+for c in active_configs:\r
+       print 'emit configuration: %s' % repr( c )\r
+       c.emit()\r
diff --git a/TODO b/TODO
new file mode 100644 (file)
index 0000000..1fffec0
--- /dev/null
+++ b/TODO
@@ -0,0 +1,10 @@
+- add browse buttons to CGameInstall dialog for engine folder
+
+- copy content, only generating the .game atm
+
+- delete .game files? should we also delete files that were copied?
+
+- when doing Q3 + mod, the mod has to be setup in the preferences
+(that's a bit awkward)
+
+- the game list reload doesn't work right, the entries in the combo probably need to be initialized again
diff --git a/TRANSLATING b/TRANSLATING
new file mode 100644 (file)
index 0000000..c1ded1c
--- /dev/null
@@ -0,0 +1,26 @@
+Call xgettext to generate the cataloge:
+=======================================
+
+xgettext -j --keyword="_" -C -o radiant.pot --omit-header radiant/*.cpp radiant/*.h
+
+Create new translation:
+=======================
+
+Use a po file editor like Poedit to edit and create new po files.
+Select 'New Cataloge from pot' and select the radiant.pot. Enter the translation
+data and you can start to translate the available strings. The po files should
+go into po/ in the radiant svn.
+
+Using translations:
+===================
+
+You just have to copy the compiled mo-file (which is auto-generated when you
+save your translation in Poedit) into your radiant installation folder
+to lang/<your_language_id>/LC_MESSAGES/radiant.mo. The next time you start
+radiant, your translation should be available.
+
+General notes:
+==============
+
+In order to start radiant in a translated version, you have to make sure that
+the working dir is set correctly. Otherwise the mo files are not found.
diff --git a/bin/Linux/x64/modules/PrtView.so b/bin/Linux/x64/modules/PrtView.so
new file mode 100755 (executable)
index 0000000..b1183e5
Binary files /dev/null and b/bin/Linux/x64/modules/PrtView.so differ
diff --git a/bin/Linux/x64/modules/TexTool.so b/bin/Linux/x64/modules/TexTool.so
new file mode 100755 (executable)
index 0000000..9069b2b
Binary files /dev/null and b/bin/Linux/x64/modules/TexTool.so differ
diff --git a/bin/Linux/x64/modules/bkgrnd2d.so b/bin/Linux/x64/modules/bkgrnd2d.so
new file mode 100755 (executable)
index 0000000..07305e3
Binary files /dev/null and b/bin/Linux/x64/modules/bkgrnd2d.so differ
diff --git a/bin/Linux/x64/modules/bobToolz_gtk.so b/bin/Linux/x64/modules/bobToolz_gtk.so
new file mode 100755 (executable)
index 0000000..eb00638
Binary files /dev/null and b/bin/Linux/x64/modules/bobToolz_gtk.so differ
diff --git a/bin/Linux/x64/modules/entity.so b/bin/Linux/x64/modules/entity.so
new file mode 100755 (executable)
index 0000000..f2b4a75
Binary files /dev/null and b/bin/Linux/x64/modules/entity.so differ
diff --git a/bin/Linux/x64/modules/fgd.so b/bin/Linux/x64/modules/fgd.so
new file mode 100755 (executable)
index 0000000..e94edab
Binary files /dev/null and b/bin/Linux/x64/modules/fgd.so differ
diff --git a/bin/Linux/x64/modules/gtkgensurf.so b/bin/Linux/x64/modules/gtkgensurf.so
new file mode 100755 (executable)
index 0000000..4d4ff7c
Binary files /dev/null and b/bin/Linux/x64/modules/gtkgensurf.so differ
diff --git a/bin/Linux/x64/modules/hydratoolz.so b/bin/Linux/x64/modules/hydratoolz.so
new file mode 100755 (executable)
index 0000000..b19c92c
Binary files /dev/null and b/bin/Linux/x64/modules/hydratoolz.so differ
diff --git a/bin/Linux/x64/modules/image.so b/bin/Linux/x64/modules/image.so
new file mode 100755 (executable)
index 0000000..9b59b32
Binary files /dev/null and b/bin/Linux/x64/modules/image.so differ
diff --git a/bin/Linux/x64/modules/imagem8.so b/bin/Linux/x64/modules/imagem8.so
new file mode 100755 (executable)
index 0000000..9104770
Binary files /dev/null and b/bin/Linux/x64/modules/imagem8.so differ
diff --git a/bin/Linux/x64/modules/imagepng.so b/bin/Linux/x64/modules/imagepng.so
new file mode 100755 (executable)
index 0000000..288bf34
Binary files /dev/null and b/bin/Linux/x64/modules/imagepng.so differ
diff --git a/bin/Linux/x64/modules/imagewal.so b/bin/Linux/x64/modules/imagewal.so
new file mode 100755 (executable)
index 0000000..94430b5
Binary files /dev/null and b/bin/Linux/x64/modules/imagewal.so differ
diff --git a/bin/Linux/x64/modules/map.so b/bin/Linux/x64/modules/map.so
new file mode 100755 (executable)
index 0000000..8e38d50
Binary files /dev/null and b/bin/Linux/x64/modules/map.so differ
diff --git a/bin/Linux/x64/modules/mapxml.so b/bin/Linux/x64/modules/mapxml.so
new file mode 100755 (executable)
index 0000000..d426f62
Binary files /dev/null and b/bin/Linux/x64/modules/mapxml.so differ
diff --git a/bin/Linux/x64/modules/model.so b/bin/Linux/x64/modules/model.so
new file mode 100755 (executable)
index 0000000..ea0e568
Binary files /dev/null and b/bin/Linux/x64/modules/model.so differ
diff --git a/bin/Linux/x64/modules/shaders.so b/bin/Linux/x64/modules/shaders.so
new file mode 100755 (executable)
index 0000000..499f566
Binary files /dev/null and b/bin/Linux/x64/modules/shaders.so differ
diff --git a/bin/Linux/x64/modules/spritemodel.so b/bin/Linux/x64/modules/spritemodel.so
new file mode 100755 (executable)
index 0000000..e856c4f
Binary files /dev/null and b/bin/Linux/x64/modules/spritemodel.so differ
diff --git a/bin/Linux/x64/modules/surface.so b/bin/Linux/x64/modules/surface.so
new file mode 100755 (executable)
index 0000000..601274a
Binary files /dev/null and b/bin/Linux/x64/modules/surface.so differ
diff --git a/bin/Linux/x64/modules/surface_heretic2.so b/bin/Linux/x64/modules/surface_heretic2.so
new file mode 100755 (executable)
index 0000000..6d15b16
Binary files /dev/null and b/bin/Linux/x64/modules/surface_heretic2.so differ
diff --git a/bin/Linux/x64/modules/surface_quake2.so b/bin/Linux/x64/modules/surface_quake2.so
new file mode 100755 (executable)
index 0000000..f80c594
Binary files /dev/null and b/bin/Linux/x64/modules/surface_quake2.so differ
diff --git a/bin/Linux/x64/modules/surface_ufoai.so b/bin/Linux/x64/modules/surface_ufoai.so
new file mode 100755 (executable)
index 0000000..c7524b2
Binary files /dev/null and b/bin/Linux/x64/modules/surface_ufoai.so differ
diff --git a/bin/Linux/x64/modules/ufoai.so b/bin/Linux/x64/modules/ufoai.so
new file mode 100755 (executable)
index 0000000..598a71b
Binary files /dev/null and b/bin/Linux/x64/modules/ufoai.so differ
diff --git a/bin/Linux/x64/modules/vfspak.so b/bin/Linux/x64/modules/vfspak.so
new file mode 100755 (executable)
index 0000000..64482d4
Binary files /dev/null and b/bin/Linux/x64/modules/vfspak.so differ
diff --git a/bin/Linux/x64/modules/vfspk3.so b/bin/Linux/x64/modules/vfspk3.so
new file mode 100755 (executable)
index 0000000..0a28b68
Binary files /dev/null and b/bin/Linux/x64/modules/vfspk3.so differ
diff --git a/bin/Linux/x64/modules/vfswad.so b/bin/Linux/x64/modules/vfswad.so
new file mode 100755 (executable)
index 0000000..09ed1c2
Binary files /dev/null and b/bin/Linux/x64/modules/vfswad.so differ
diff --git a/bin/Linux/x64/q3map2 b/bin/Linux/x64/q3map2
new file mode 100755 (executable)
index 0000000..02c8455
Binary files /dev/null and b/bin/Linux/x64/q3map2 differ
diff --git a/bin/Linux/x64/radiant.bin b/bin/Linux/x64/radiant.bin
new file mode 100755 (executable)
index 0000000..d9a516e
Binary files /dev/null and b/bin/Linux/x64/radiant.bin differ
diff --git a/bin/Linux/x86/modules/PrtView.so b/bin/Linux/x86/modules/PrtView.so
new file mode 100755 (executable)
index 0000000..a1450df
Binary files /dev/null and b/bin/Linux/x86/modules/PrtView.so differ
diff --git a/bin/Linux/x86/modules/TexTool.so b/bin/Linux/x86/modules/TexTool.so
new file mode 100755 (executable)
index 0000000..a08bc90
Binary files /dev/null and b/bin/Linux/x86/modules/TexTool.so differ
diff --git a/bin/Linux/x86/modules/bkgrnd2d.so b/bin/Linux/x86/modules/bkgrnd2d.so
new file mode 100755 (executable)
index 0000000..35c3cc9
Binary files /dev/null and b/bin/Linux/x86/modules/bkgrnd2d.so differ
diff --git a/bin/Linux/x86/modules/bobToolz_gtk.so b/bin/Linux/x86/modules/bobToolz_gtk.so
new file mode 100755 (executable)
index 0000000..7a27b99
Binary files /dev/null and b/bin/Linux/x86/modules/bobToolz_gtk.so differ
diff --git a/bin/Linux/x86/modules/entity.so b/bin/Linux/x86/modules/entity.so
new file mode 100755 (executable)
index 0000000..626a7ff
Binary files /dev/null and b/bin/Linux/x86/modules/entity.so differ
diff --git a/bin/Linux/x86/modules/fgd.so b/bin/Linux/x86/modules/fgd.so
new file mode 100755 (executable)
index 0000000..9634368
Binary files /dev/null and b/bin/Linux/x86/modules/fgd.so differ
diff --git a/bin/Linux/x86/modules/gtkgensurf.so b/bin/Linux/x86/modules/gtkgensurf.so
new file mode 100755 (executable)
index 0000000..e7d7537
Binary files /dev/null and b/bin/Linux/x86/modules/gtkgensurf.so differ
diff --git a/bin/Linux/x86/modules/hydratoolz.so b/bin/Linux/x86/modules/hydratoolz.so
new file mode 100755 (executable)
index 0000000..d885679
Binary files /dev/null and b/bin/Linux/x86/modules/hydratoolz.so differ
diff --git a/bin/Linux/x86/modules/image.so b/bin/Linux/x86/modules/image.so
new file mode 100755 (executable)
index 0000000..b52d5a8
Binary files /dev/null and b/bin/Linux/x86/modules/image.so differ
diff --git a/bin/Linux/x86/modules/imagem8.so b/bin/Linux/x86/modules/imagem8.so
new file mode 100755 (executable)
index 0000000..eef3a97
Binary files /dev/null and b/bin/Linux/x86/modules/imagem8.so differ
diff --git a/bin/Linux/x86/modules/imagepng.so b/bin/Linux/x86/modules/imagepng.so
new file mode 100755 (executable)
index 0000000..3839c98
Binary files /dev/null and b/bin/Linux/x86/modules/imagepng.so differ
diff --git a/bin/Linux/x86/modules/imagewal.so b/bin/Linux/x86/modules/imagewal.so
new file mode 100755 (executable)
index 0000000..0d067b9
Binary files /dev/null and b/bin/Linux/x86/modules/imagewal.so differ
diff --git a/bin/Linux/x86/modules/map.so b/bin/Linux/x86/modules/map.so
new file mode 100755 (executable)
index 0000000..6ad740a
Binary files /dev/null and b/bin/Linux/x86/modules/map.so differ
diff --git a/bin/Linux/x86/modules/mapxml.so b/bin/Linux/x86/modules/mapxml.so
new file mode 100755 (executable)
index 0000000..16595f6
Binary files /dev/null and b/bin/Linux/x86/modules/mapxml.so differ
diff --git a/bin/Linux/x86/modules/model.so b/bin/Linux/x86/modules/model.so
new file mode 100755 (executable)
index 0000000..a311233
Binary files /dev/null and b/bin/Linux/x86/modules/model.so differ
diff --git a/bin/Linux/x86/modules/shaders.so b/bin/Linux/x86/modules/shaders.so
new file mode 100755 (executable)
index 0000000..45669f1
Binary files /dev/null and b/bin/Linux/x86/modules/shaders.so differ
diff --git a/bin/Linux/x86/modules/spritemodel.so b/bin/Linux/x86/modules/spritemodel.so
new file mode 100755 (executable)
index 0000000..037d2c3
Binary files /dev/null and b/bin/Linux/x86/modules/spritemodel.so differ
diff --git a/bin/Linux/x86/modules/surface.so b/bin/Linux/x86/modules/surface.so
new file mode 100755 (executable)
index 0000000..0d65a0c
Binary files /dev/null and b/bin/Linux/x86/modules/surface.so differ
diff --git a/bin/Linux/x86/modules/surface_heretic2.so b/bin/Linux/x86/modules/surface_heretic2.so
new file mode 100755 (executable)
index 0000000..7ef8df9
Binary files /dev/null and b/bin/Linux/x86/modules/surface_heretic2.so differ
diff --git a/bin/Linux/x86/modules/surface_quake2.so b/bin/Linux/x86/modules/surface_quake2.so
new file mode 100755 (executable)
index 0000000..c2d9c63
Binary files /dev/null and b/bin/Linux/x86/modules/surface_quake2.so differ
diff --git a/bin/Linux/x86/modules/surface_ufoai.so b/bin/Linux/x86/modules/surface_ufoai.so
new file mode 100755 (executable)
index 0000000..4d44e55
Binary files /dev/null and b/bin/Linux/x86/modules/surface_ufoai.so differ
diff --git a/bin/Linux/x86/modules/ufoai.so b/bin/Linux/x86/modules/ufoai.so
new file mode 100755 (executable)
index 0000000..eb532e0
Binary files /dev/null and b/bin/Linux/x86/modules/ufoai.so differ
diff --git a/bin/Linux/x86/modules/vfspak.so b/bin/Linux/x86/modules/vfspak.so
new file mode 100755 (executable)
index 0000000..624ae39
Binary files /dev/null and b/bin/Linux/x86/modules/vfspak.so differ
diff --git a/bin/Linux/x86/modules/vfspk3.so b/bin/Linux/x86/modules/vfspk3.so
new file mode 100755 (executable)
index 0000000..5a874a9
Binary files /dev/null and b/bin/Linux/x86/modules/vfspk3.so differ
diff --git a/bin/Linux/x86/modules/vfswad.so b/bin/Linux/x86/modules/vfswad.so
new file mode 100755 (executable)
index 0000000..4da76d8
Binary files /dev/null and b/bin/Linux/x86/modules/vfswad.so differ
diff --git a/bin/Linux/x86/q3map2 b/bin/Linux/x86/q3map2
new file mode 100755 (executable)
index 0000000..ce12d80
Binary files /dev/null and b/bin/Linux/x86/q3map2 differ
diff --git a/bin/Linux/x86/radiant.bin b/bin/Linux/x86/radiant.bin
new file mode 100755 (executable)
index 0000000..bae3199
Binary files /dev/null and b/bin/Linux/x86/radiant.bin differ
diff --git a/compile_ibuild_win32.bat b/compile_ibuild_win32.bat
new file mode 100644 (file)
index 0000000..5541e34
--- /dev/null
@@ -0,0 +1,5 @@
+rem silly build script for compiling with MSVC using the IncrediBuild console\r
+rem can't figure how to use the buildbot ShellCommand to pass the correct CFG= line\r
+rem because of the configuration name with a | in it (Release|Win32)\r
+\r
+buildconsole.exe radiant.sln /BUILD /CFG="Release|Win32"\r
diff --git a/config.py b/config.py
new file mode 100644 (file)
index 0000000..d3ff368
--- /dev/null
+++ b/config.py
@@ -0,0 +1,445 @@
+import sys, traceback, platform, re, commands, platform
+
+if __name__ != '__main__':
+       from SCons.Script import *
+
+import utils
+
+# config = debug release
+# aliases are going to be very needed here
+# we have dependency situations too
+# target =
+
+class Config:
+       # not used atm, but useful to keep a list in mind
+       # may use them eventually for the 'all' and other aliases expansions?
+       target_choices = utils.Enum( 'radiant', 'q3map2', 'setup' )
+       config_choices = utils.Enum( 'debug', 'release' )
+
+       # aliases
+       # 'all' -> for each choices
+       # 'gamecode' for the targets, 'game' 'cgame' 'ui'
+
+       def __init__( self ):
+               # initialize defaults
+               self.target_selected = [ 'radiant', 'q3map2' ]
+               self.config_selected = [ 'release' ]
+               # those are global to each config
+               self.platform = platform.system()
+               self.cc = 'gcc'
+               self.cxx = 'g++'
+               self.install_directory = 'install'
+
+               # platforms for which to assemble a setup
+               self.setup_platforms = [ 'local', 'x86', 'x64', 'win32' ]
+               # paks to assemble in the setup
+               self.setup_packs = [ 'Q3Pack', 'UrTPack', 'UFOAIPack', 'Q2WPack' ]
+
+       def __repr__( self ):
+               return 'config: target=%s config=%s' % ( self.target_selected, self.config_selected )
+
+       def _processTarget( self, ops ):
+               self.target_selected = ops
+
+       def _processConfig( self, ops ):
+               self.config_selected = ops
+
+       def _processCC( self, ops ):
+               self.cc = ops
+
+       def _processCXX( self, ops ):
+               self.cxx = ops
+
+       def _processInstallDir( self, ops ):
+               self.install_directory = os.path.normpath( os.path.expanduser( ops[0] ) )
+
+       def _processSetupPlatforms( self, ops ):
+               self.setup_platforms = ops
+
+       def _processSetupPacks( self, ops ):
+               self.setup_packs = ops
+
+       def setupParser( self, operators ):
+               operators['target'] = self._processTarget
+               operators['config'] = self._processConfig
+               operators['cc'] = self._processCC
+               operators['cxx'] = self._processCXX
+               operators['install_directory'] = self._processInstallDir
+               operators['setup_platforms'] = self._processSetupPlatforms
+               operators['setup_packs'] = self._processSetupPacks
+
+       def emit_radiant( self ):
+               settings = self
+               for config_name in self.config_selected:
+                       config = {}
+                       config['name'] = config_name
+                       config['shared'] = False
+                       Export( 'utils', 'settings', 'config' )
+                       build_dir = os.path.join( 'build', config_name, 'radiant' )
+                       BuildDir( build_dir, '.', duplicate = 0 )
+                       # left out jpeg6, splines (FIXME: I think jpeg6 is not used at all, can trash?)
+                       lib_objects = []
+                       for project in [ 'libs/synapse/synapse.vcproj', 'libs/cmdlib/cmdlib.vcproj', 'libs/mathlib/mathlib.vcproj', 'libs/l_net/l_net.vcproj', 'libs/ddslib/ddslib.vcproj', 'libs/picomodel/picomodel.vcproj', 'libs/md5lib/md5lib.vcproj' ]:
+                               Export( 'project' )
+                               lib_objects += SConscript( os.path.join( build_dir, 'SConscript.lib' ) )
+                       Export( 'lib_objects' )
+                       radiant = SConscript( os.path.join( build_dir, 'SConscript.radiant' ) )
+                       Default( InstallAs( os.path.join( self.install_directory, 'radiant.bin' ), radiant ) )
+
+                       # PIC versions of the libs for the modules
+                       shlib_objects_extra = {}
+                       for project in [ 'libs/synapse/synapse.vcproj', 'libs/mathlib/mathlib.vcproj', 'libs/picomodel/picomodel.vcproj', 'libs/cmdlib/cmdlib.vcproj' ]:
+                               ( libpath, libname ) = os.path.split( project )
+                               libname = os.path.splitext( libname )[0]
+                               config['shared'] = True
+                               Export( 'project', 'config' )
+                               build_dir = os.path.join( 'build', config_name, 'shobjs' )
+                               BuildDir( build_dir, '.', duplicate = 0 )
+                               shlib_objects_extra[libname] = SConscript( os.path.join( build_dir, 'SConscript.lib' ) )
+
+                       for project in [ 'plugins/vfspk3/vfspk3.vcproj',
+                                        'plugins/vfspak/vfspak.vcproj',
+                                        'plugins/vfswad/vfswad.vcproj',
+                                        'plugins/eclassfgd/fgd.vcproj',
+                                        'plugins/entity/entity.vcproj',
+                                        'plugins/image/image.vcproj',
+                                        'plugins/model/model.vcproj',
+                                        'plugins/imagepng/imagepng.vcproj',
+                                        'plugins/imagewal/imagewal.vcproj',
+                                        'plugins/imagem8/imagem8.vcproj',
+                                        'plugins/spritemodel/spritemodel.vcproj',
+                                        'plugins/textool/TexTool.vcproj',
+                                       # 'plugins/sample/sample.vcproj',
+                                        'plugins/map/map.vcproj',
+                                        'plugins/mapxml/mapxml.vcproj',
+                                        'plugins/shaders/shaders.vcproj',
+                                        'plugins/surface/surface.vcproj',
+                                        'plugins/surface_ufoai/surface_ufoai.vcproj',
+                                        'plugins/surface_quake2/surface_quake2.vcproj',
+                                        'plugins/surface_heretic2/surface_heretic2.vcproj',
+                                       # FIXME Needs splines
+                                       # 'contrib/camera/camera.vcproj',
+
+                                       # FIXME What is this? Empty dir for me - remove me?
+                                       # 'contrib/patches/patches.vcproj',
+                                       # 'plugins/archivewad/archivewad.vcproj',
+
+                                        'contrib/prtview/PrtView.vcproj',
+                                        'contrib/hydratoolz/hydratoolz.vcproj',
+                                        'contrib/bobtoolz/bobToolz_gtk.vcproj',
+                                        'contrib/gtkgensurf/gtkgensurf.vcproj',
+                                        'contrib/ufoai/ufoai.vcproj',
+                                        'contrib/bkgrnd2d/bkgrnd2d.vcproj'
+                                ]:
+                               ( libpath, libname ) = os.path.split( project )
+                               libname = os.path.splitext( libname )[0]
+                               shlib_objects = shlib_objects_extra['synapse']
+                               if ( libname == 'entity' ):
+                                       shlib_objects += shlib_objects_extra['mathlib']
+                               elif ( libname == 'model' ):
+                                       shlib_objects += shlib_objects_extra['picomodel']
+#                              elif ( libname == 'spritemodel' ):
+#                                      shlib_objects += shlib_objects_extra['mathlib']
+#                              elif ( libname == 'TexTool' ):
+#                                      shlib_objects += shlib_objects_extra['mathlib']
+                               elif ( libname == 'map' ):
+                                       shlib_objects += shlib_objects_extra['cmdlib']
+                               Export( 'project', 'shlib_objects' )
+                               module = SConscript( os.path.join( build_dir, 'SConscript.module' ) )
+                               Default( InstallAs( os.path.join( self.install_directory, 'modules/%s.so' % libname ), module ) )
+
+       def emit_q3map2( self ):
+               settings = self
+               for config_name in self.config_selected:
+                       config = {}
+                       config['name'] = config_name
+                       config['shared'] = False
+                       Export( 'utils', 'settings', 'config' )
+                       build_dir = os.path.join( 'build', config_name, 'q3map2' )
+                       BuildDir( build_dir, '.', duplicate = 0 )
+                       lib_objects = []
+                       for project in [ 'libs/cmdlib/cmdlib.vcproj', 'libs/mathlib/mathlib.vcproj', 'libs/l_net/l_net.vcproj', 'libs/ddslib/ddslib.vcproj', 'libs/picomodel/picomodel.vcproj', 'libs/md5lib/md5lib.vcproj' ]:
+                               Export( 'project' )
+                               lib_objects += SConscript( os.path.join( build_dir, 'SConscript.lib' ) )
+                       Export( 'lib_objects' )
+                       q3map2 = SConscript( os.path.join( build_dir, 'SConscript.q3map2' ) )
+                       Default( InstallAs( os.path.join( self.install_directory, 'q3map2' ), q3map2 ) )
+
+
+       def emit( self ):
+               try:
+                       self.target_selected.index( 'radiant' )
+               except:
+                       pass
+               else:
+                       self.emit_radiant()
+               try:
+                       self.target_selected.index( 'q3map2' )
+               except:
+                       pass
+               else:
+                       self.emit_q3map2()
+
+               try:
+                       self.target_selected.index( 'setup' )
+               except:
+                       pass
+               else:
+                       self.Setup()
+
+       def SetupEnvironment( self, env, config, useGtk = False, useGtkGL = False, useJPEG = False, useZ = False, usePNG = False ):
+               env['CC'] = self.cc
+               env['CXX'] = self.cxx
+               ( ret, xml2 ) = commands.getstatusoutput( 'xml2-config --cflags' )
+               if ( ret != 0 ):
+                       print 'xml2-config failed'
+                       assert( False )
+               xml2libs = commands.getoutput( 'xml2-config --libs' )
+               env.Append( LINKFLAGS = xml2libs.split( ' ' ) )
+               baseflags = [ '-pipe', '-Wall', '-fmessage-length=0', '-fvisibility=hidden', xml2.split( ' ' ) ]
+#              baseflags += [ '-m32' ]
+
+               if ( self.platform == 'Darwin' ):
+                       env.Append( CPPPATH = [ '/Developer/SDKs/MacOSX10.4u.sdk/usr/X11R6/include' ] )
+
+               if ( useGtk ):
+                       ( ret, gtk2 ) = commands.getstatusoutput( 'pkg-config gtk+-2.0 --cflags' )
+                       if ( ret != 0 ):
+                               print 'pkg-config gtk+-2.0 failed'
+                               assert( False )
+                       baseflags += gtk2.split( ' ' )
+                       gtk2libs = commands.getoutput( 'pkg-config gtk+-2.0 --libs' )
+                       env.Append( LINKFLAGS = gtk2libs.split( ' ' ) )
+               else:
+                       # always setup at least glib
+                       ( ret, glib ) = commands.getstatusoutput( 'pkg-config glib-2.0 --cflags' )
+                       if ( ret != 0 ):
+                               print 'pkg-config glib-2.0 failed'
+                               assert( False )
+                       baseflags += glib.split( ' ' )
+                       gliblibs = commands.getoutput( 'pkg-config glib-2.0 --libs' )
+                       env.Append( LINKFLAGS = gliblibs.split( ' ' ) )
+
+               if ( useGtkGL ):
+                       ( ret, gtkgl ) = commands.getstatusoutput( 'pkg-config gtkglext-1.0 --cflags' )
+                       if ( ret != 0 ):
+                               print 'pkg-config gtkglext-1.0 failed'
+                               assert( False )
+                       baseflags += gtkgl.split( ' ' )
+                       gtkgllibs = commands.getoutput( 'pkg-config gtkglext-1.0 --libs' )
+                       env.Append( LINKFLAGS = gtkgllibs.split( ' ' ) )
+               if ( useJPEG ):
+                       env.Append( LIBS = 'jpeg' )
+               if ( usePNG ):
+                       pnglibs = 'png z'
+                       env.Append( LIBS = pnglibs.split( ' ' ) )
+               if ( useZ ):
+                       env.Append( LIBS = 'z' )
+
+               env.Append( CCFLAGS = baseflags )
+               env.Append( CXXFLAGS = baseflags + [ '-fpermissive', '-fvisibility-inlines-hidden' ] )
+               env.Append( CPPPATH = [ 'include', 'libs' ] )
+               env.Append( CPPDEFINES = [ 'Q_NO_STLPORT' ] )
+               if ( config == 'debug' ):
+                       env.Append( CFLAGS = [ '-g' ] )
+                       env.Append( CXXFLAGS = [ '-g' ] )
+                       env.Append( CPPDEFINES = [ '_DEBUG' ] )
+               else:
+                       env.Append( CFLAGS = [ '-O3', '-Winline', '-ffast-math', '-fno-unsafe-math-optimizations', '-fno-strict-aliasing' ] )
+                       env.Append( CXXFLAGS = [ '-O3', '-Winline', '-ffast-math', '-fno-unsafe-math-optimizations','-fno-strict-aliasing' ] )
+
+       def CheckoutOrUpdate( self, svnurl, path ):
+               if ( os.path.exists( path ) ):
+                       # NOTE: check the svnurl matches?
+                       cmd = 'svn update "%s"' % path
+                       print cmd
+               else:
+                       cmd = 'svn checkout %s "%s"' % ( svnurl, path )
+               ret = os.system( cmd )
+               if ( ret != 0 ):
+                       raise Exception( 'checkout or update failed' )
+
+
+       def FetchGamePaks( self, path ):
+               for pak in self.setup_packs:
+                       if ( pak == 'Q3Pack' or pak == 'UrTPack' or pak == 'UFOAIPack' or pak == 'Q2WPack' ):
+                               svnurl = 'https://zerowing.idsoftware.com/svn/radiant.gamepacks/%s/trunk' % pak
+                               self.CheckoutOrUpdate( svnurl, os.path.join( path, 'installs', pak ) )
+
+       def Setup( self ):
+                       if ( platform == 'local' ):
+                               # special case, fetch external paks under the local install directory
+                               self.FetchGamePaks( self.install_directory )
+               # NOTE: unrelated to self.setup_platforms - grab support files and binaries and install them
+               if ( self.platform == 'Windows' ):
+                       depsfile = 'GtkR-deps-1.6-3.zip'
+                       # TMP
+                       #if ( not os.path.exists( depsfile ) ):
+                       if ( True ):
+                               cmd = 'wget http://zerowing.idsoftware.com/files/radiant/developer/1.6.1/%s' % depsfile
+                               print cmd
+                               ret = os.system( cmd )
+                               if ( ret != 0 ):
+                                       raise Exception( 'Failed to download dependencies file' )
+
+                               # extract one directoy above
+                               f = os.path.abspath( depsfile )
+                               backup_cwd = os.getcwd()
+                               os.chdir( os.path.dirname( backup_cwd ) )
+                               cmd = 'unzip %s' % f
+                               print cmd
+                               ret = os.system( cmd )
+                               if ( ret != 0 ):
+                                       raise Exception( 'unzip dependencies file failed' )
+                               os.chdir( backup_cwd )
+                               
+                               # copy all the dependent runtime data to the install directory
+                               srcdir = os.path.dirname( backup_cwd )
+                               for f in [
+                                       'libxml2/bin/libxml2.dll',
+                                       'gtk2/bin/libglib-2.0-0.dll',
+                                       'gtk2/bin/libgobject-2.0-0.dll',
+                                       'gtk2/bin/libgdk-win32-2.0-0.dll',
+                                       'gtk2/bin/libgtk-win32-2.0-0.dll',
+                                       'gtk2/bin/intl.dll',
+                                       'gtk2/bin/libatk-1.0-0.dll',
+                                       'gtk2/bin/libcairo-2.dll',
+                                       'gtk2/bin/libgdk_pixbuf-2.0-0.dll',
+                                       'gtk2/bin/libgmodule-2.0-0.dll',
+                                       'gtk2/bin/libpng13.dll',
+                                       'gtk2/bin/libpango-1.0-0.dll',
+                                       'gtk2/bin/libpangocairo-1.0-0.dll',
+                                       'gtk2/bin/libpangowin32-1.0-0.dll',
+                                       'gtk2/lib/libgtkglext-win32-1.0-0.dll',
+                                       'gtk2/lib/libgdkglext-win32-1.0-0.dll',
+                                       'gtk2/lib/iconv.dll', ]:
+                                       cmd = 'cp -v "%s" installs' % os.path.join( srcdir, f )
+                                       print cmd
+                                       ret = os.system( cmd )
+                                       if ( ret != 0 ):
+                                               raise Exception( 'runtime file copy failed' )
+                               for d in [
+                                       'gtk2/etc',
+                                       'gtk2/share',
+                                       ]:
+                                       cmd = 'cp -r -v "%s" install' % os.path.join( srcdir, d )
+                                       print cmd
+                                       ret = os.system( cmd )
+                                       if ( ret != 0 ):
+                                               raise Exception( 'runtime directory copy failed' )
+
+# parse the config statement line to produce/update an existing config list
+# the configs expose a list of keywords and accepted values, which the engine parses out
+class ConfigParser:
+       def __init__( self ):
+               self.operators = {}
+
+       def _processOp( self, ops ):
+               assert( len( ops ) == 1 )
+               op = ops.pop()
+               if ( op == 'clear' ):
+                       self.configs = []
+                       self.current_config = None
+               elif ( op == 'pop' ):
+                       self.configs.pop()
+                       self.current_config = None
+               elif ( op == 'push' ):
+                       self.configs.append( self.current_config )
+                       self.current_config = Config()
+                       self._setupParser( self.current_config )
+
+       def _setupParser( self, c ):
+               self.operators = { 'op' : self._processOp }
+               c.setupParser( self.operators )
+
+       def _parseStatement( self, s ):
+               statement_re = re.compile( '(.*)=(.*)' )
+               value_list_re = re.compile( '([^,]*),?' )
+               if ( not statement_re.match( s ) ):
+                       print 'syntax error (statement match): %s' % repr( s )
+                       return
+               statement_split = statement_re.split( s )
+               if ( len( statement_split ) != 4 ):
+                       print 'syntax error (statement split): %s' % repr( s )
+                       return
+               ( foo, name, value, bar ) = statement_split
+               value_split = value_list_re.split( value )
+               if ( len( value_split ) < 2 or len( value_split ) % 2 != 1 ):
+                       print 'syntax error (value split): %s' % ( repr( value_split ) )
+                       return
+               try:
+                       value_array = []
+                       value_split.reverse()
+                       value_split.pop()
+                       while ( len( value_split ) != 0 ):
+                               value_array.append( value_split.pop() )
+                               value_split.pop()
+               except:
+                       print traceback.print_exception( sys.exc_type, sys.exc_value, sys.exc_traceback )
+                       print 'syntax error (value to array): %s' % ( repr( value_split ) )
+                       return
+
+               return ( name, value_array )
+
+       def parseStatements( self, _configs, statements ):
+               self.current_config = None
+               self.configs = _configs
+               if ( self.configs is None ):
+                       self.configs = []
+               for s in statements:
+
+                       if ( self.current_config is None ):
+                               # use a provided config, or create a default one
+                               if ( len( self.configs ) > 0 ):
+                                       self.current_config = self.configs.pop()
+                               else:
+                                       self.current_config = Config()
+                               # setup the operator table for this config
+                               # NOTE: have that in self._processOp too
+                               self._setupParser( self.current_config )
+
+                       ret = self._parseStatement( s )
+                       if ( ret is None ):
+                               print 'stop statement parse at %s' % repr( s )
+                               break
+                       ( name, value_array ) = ret
+                       try:
+                               processor = self.operators[name]
+                       except:
+                               print 'unknown operator %s - stop statement parse at %s' % ( repr( name ), repr( s ) )
+                               break
+                       processor( value_array )
+
+               if ( not self.current_config is None ):
+                       self.configs.append( self.current_config )
+               # make sure there is at least one config
+               if ( len( self.configs ) == 0 ):
+                       print 'pushing a default config'
+                       self.configs.append( Config() )
+               return self.configs
+
+import unittest
+
+class TestConfigParse( unittest.TestCase ):
+
+       def setUp( self ):
+               self.parser = ConfigParser()
+
+       def testBasicParse( self ):
+               # test basic config parsing
+               # needs to cleanly stop at the first config statement that is not recognized
+               configs = self.parser.parseStatements( None, [ 'game=missionpack', 'config=qvm', 'foobar' ] )
+               print repr( configs )
+
+       def testMultiParse( self ):
+               # multiple configs seperated by commas
+               configs = self.parser.parseStatements( None, [ 'target=server,game,cgame' ] )
+               print repr( configs )
+
+       def testOp( self ):
+               # test the operator for multiple configs
+               configs = self.parser.parseStatements( None, [ 'target=core', 'config=release', 'op=push', 'target=game,cgame,ui', 'config=debug' ] )
+               print repr( configs )
+
+if __name__ == '__main__':
+       unittest.main()
diff --git a/contrib/bkgrnd2d/bitmaps/bkgrnd2d_conf.bmp b/contrib/bkgrnd2d/bitmaps/bkgrnd2d_conf.bmp
deleted file mode 100644 (file)
index bc307e2..0000000
Binary files a/contrib/bkgrnd2d/bitmaps/bkgrnd2d_conf.bmp and /dev/null differ
diff --git a/contrib/bkgrnd2d/bitmaps/bkgrnd2d_xy_toggle.bmp b/contrib/bkgrnd2d/bitmaps/bkgrnd2d_xy_toggle.bmp
deleted file mode 100644 (file)
index d95fa28..0000000
Binary files a/contrib/bkgrnd2d/bitmaps/bkgrnd2d_xy_toggle.bmp and /dev/null differ
diff --git a/contrib/bkgrnd2d/bitmaps/bkgrnd2d_xz_toggle.bmp b/contrib/bkgrnd2d/bitmaps/bkgrnd2d_xz_toggle.bmp
deleted file mode 100644 (file)
index 6af8308..0000000
Binary files a/contrib/bkgrnd2d/bitmaps/bkgrnd2d_xz_toggle.bmp and /dev/null differ
diff --git a/contrib/bkgrnd2d/bitmaps/bkgrnd2d_yz_toggle.bmp b/contrib/bkgrnd2d/bitmaps/bkgrnd2d_yz_toggle.bmp
deleted file mode 100644 (file)
index de9f4df..0000000
Binary files a/contrib/bkgrnd2d/bitmaps/bkgrnd2d_yz_toggle.bmp and /dev/null differ
index 0789083eab3a9d233f85316907b6823027260b3a..130fd2b830e90e9e9d07adfc315100bb04a0ec4d 100644 (file)
@@ -95,7 +95,7 @@ CBackgroundImage::CBackgroundImage(VIEWTYPE vt)
 }
 
 /*
- * should cleanup, but I don't think we can be sure it happens before our 
+ * should cleanup, but I don't think we can be sure it happens before our
  * interfaces are gone
 CBackgroundImage::~CBackgroundImage()
 {
@@ -154,7 +154,7 @@ void CBackgroundImage::Render()
 bool CBackgroundImage::Load(const char *filename)
 {
        qtexture_t *newtex;
-       
+
        unsigned char *image = NULL; // gets allocated with what ? g_malloc
        int width = 0, height = 0;
 
@@ -166,7