added plugins to win32/linux installers; fixed crash when plugins are disabled
authorspog <spog>
Sat, 13 May 2006 12:25:54 +0000 (12:25 +0000)
committerspog <spog>
Sat, 13 May 2006 12:25:54 +0000 (12:25 +0000)
git-svn-id: svn://svn.icculus.org/gtkradiant/GtkRadiant/trunk@63 8a3a26a2-13c4-0310-b231-cf6edde360e5

CHANGES
install.py
libs/gtkutil/accelerator.cpp
radiant/GtkRadiant.vcproj
radiant/brush.cpp
radiant/renderstate.cpp
setup/linux/gtkradiant-1.5.0.spec
setup/win32/gtkradiant-1.5.0.xml

diff --git a/CHANGES b/CHANGES
index a59f9c8..c5a3f88 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -8,6 +8,11 @@ LordHavoc
 - Removed gcc explicit linking hack for non-final builds.
 - Added workaround for gcc static-member-pointer-as-template-argument bug.
 - Fixed bobtoolz linux compile errors.
+- Added Nexuiz and Darkplaces support.
+SPoG
+- Changed 'inconsistent vertex count' assert to be non-fatal.
+- Changed 'failed to remove accelerator' assert to be non-fatal.
+- Fixed crash due to broken module dependencies.
 
 30/04/2006
 SPoG
index 2a0f8fa..505bd94 100644 (file)
@@ -1,17 +1,17 @@
 # Copyright (C) 2001-2006 William Joseph.
-# 
+#
 # This file is part of GtkRadiant.
-# 
+#
 # GtkRadiant is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
 # the Free Software Foundation; either version 2 of the License, or
 # (at your option) any later version.
-# 
+#
 # GtkRadiant is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License
 # along with GtkRadiant; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
@@ -32,16 +32,16 @@ import shutil
 def assertMessage(condition, message):
   if not condition:
     raise Exception(message)
-    
+
 def copyFile(source, target):
   assertMessage(os.path.isfile(source), "failed to find file: " + source)
   print source, "->", target
   shutil.copy2(source, target)
-  
+
 def copyFileIfExists(source, target):
   if os.path.exists(source):
     copyFile(source, target)
-    
+
 def copySvn(source, target):
   assertMessage(os.path.isdir(source), "failed to find directory: " + source)
   if not os.path.exists(target):
@@ -54,7 +54,7 @@ def copySvn(source, target):
         copySvn(absolute, absTarget)
     else:
       copyFile(absolute, absTarget)
-      
+
 def copyGame(source, game, target):
   assertMessage(os.path.isdir(source), "failed to find directory: " + source)
   assertMessage(os.path.isdir(target), "failed to find directory: " + target)
@@ -65,15 +65,15 @@ def copyGame(source, game, target):
     gamesDir = os.path.join(target, "games")
     if not os.path.exists(gamesDir):
       os.mkdir(gamesDir)
-    copyFile(os.path.join(root, "games", gamename), os.path.join(gamesDir, gamename))  
-  
+    copyFile(os.path.join(root, "games", gamename), os.path.join(gamesDir, gamename))
+
 thisDir = os.path.dirname(__file__)
 gamesRoot = os.path.join(thisDir, "games")
 installRoot = os.path.join(thisDir, "install")
 
 if not os.path.exists(installRoot):
   os.mkdir(installRoot)
-  
+
 # copy generic data
 copySvn(os.path.join(thisDir, os.path.normpath("setup/data/tools")), installRoot)
 
@@ -91,7 +91,9 @@ games = [
   ("Q4Pack/tools", "q4"),
   ("Sof2Pack", "sof2"),
   ("STVEFPack", "stvef"),
-  ("WolfPack/bin", "wolf")
+  ("WolfPack/bin", "wolf"),
+  ("NexuizPack", "nexuiz"),
+  ("DarkPlacesPack", "darkplaces")
 ]
 
 # copy games
@@ -102,16 +104,16 @@ for game in games:
 gtk2Root = os.path.normpath(os.path.join(thisDir, "../gtk2-2.4"))
 if os.path.exists(gtk2Root):
   copySvn(os.path.join(gtk2Root, "install"), installRoot)
-  
+
 libxml2 = os.path.normpath(os.path.join(thisDir, "../libxml2-2.6/win32/install/libxml2.dll"))
 copyFileIfExists(libxml2, installRoot)
-  
+
 libpng = os.path.normpath(os.path.join(thisDir, "../libpng-1.2/lib/libpng13.dll"))
 copyFileIfExists(libpng, installRoot)
-  
+
 libmhash = os.path.normpath(os.path.join(thisDir, "../mhash-0.9/win32/libmhash/Release/libmhash.dll"))
 copyFileIfExists(libmhash, installRoot)
-  
+
 zlib = os.path.normpath(os.path.join(thisDir, "../zlib1-1.2/zlib1.dll"))
 copyFileIfExists(zlib, installRoot)
 
index 778da6f..bbb2793 100644 (file)
@@ -498,14 +498,14 @@ void special_accelerators_add(Accelerator accelerator, const Callback& callback)
 {
   if(!accelerator_map_insert(g_special_accelerators, accelerator, callback))
   {
-    globalErrorStream() << "special_accelerators_add: already exists: " << makeQuoted(accelerator);
+    globalErrorStream() << "special_accelerators_add: already exists: " << makeQuoted(accelerator) << "\n";
   }
 }
 void special_accelerators_remove(Accelerator accelerator)
 {
   if(!accelerator_map_erase(g_special_accelerators, accelerator))
   {
-    globalErrorStream() << "special_accelerators_remove: not found: " << makeQuoted(accelerator);
+    globalErrorStream() << "special_accelerators_remove: not found: " << makeQuoted(accelerator) << "\n";
   }
 }
 
@@ -513,14 +513,14 @@ void keydown_accelerators_add(Accelerator accelerator, const Callback& callback)
 {
   if(!accelerator_map_insert(g_keydown_accelerators, accelerator, callback))
   {
-    globalErrorStream() << "keydown_accelerators_add: already exists: " << makeQuoted(accelerator);
+    globalErrorStream() << "keydown_accelerators_add: already exists: " << makeQuoted(accelerator) << "\n";
   }
 }
 void keydown_accelerators_remove(Accelerator accelerator)
 {
   if(!accelerator_map_erase(g_keydown_accelerators, accelerator))
   {
-    globalErrorStream() << "keydown_accelerators_remove: not found: " << makeQuoted(accelerator);
+    globalErrorStream() << "keydown_accelerators_remove: not found: " << makeQuoted(accelerator) << "\n";
   }
 }
 
@@ -528,14 +528,14 @@ void keyup_accelerators_add(Accelerator accelerator, const Callback& callback)
 {
   if(!accelerator_map_insert(g_keyup_accelerators, accelerator, callback))
   {
-    globalErrorStream() << "keyup_accelerators_add: already exists: " << makeQuoted(accelerator);
+    globalErrorStream() << "keyup_accelerators_add: already exists: " << makeQuoted(accelerator) << "\n";
   }
 }
 void keyup_accelerators_remove(Accelerator accelerator)
 {
   if(!accelerator_map_erase(g_keyup_accelerators, accelerator))
   {
-    globalErrorStream() << "keyup_accelerators_remove: not found: " << makeQuoted(accelerator);
+    globalErrorStream() << "keyup_accelerators_remove: not found: " << makeQuoted(accelerator) << "\n";
   }
 }
 
index d020446..7a06f21 100644 (file)
@@ -676,6 +676,9 @@ copy &quot;$(TargetDir)$(TargetName).pdb&quot;  &quot;$(SolutionDir)install&quot
                        </FileConfiguration>\r
                </File>\r
                <File\r
+                       RelativePath="..\install.py">\r
+               </File>\r
+               <File\r
                        RelativePath=".\radiant.ico">\r
                </File>\r
                <File\r
index 0021250..d2f217b 100644 (file)
@@ -270,14 +270,17 @@ void Brush::buildBRep()
         }
       }
 
-      ASSERT_MESSAGE((uniqueVertices.size() + faces_size) - uniqueEdges.size() == 2, "Final B-Rep: inconsistent vertex count");
+      if((uniqueVertices.size() + faces_size) - uniqueEdges.size() != 2)
+      {
+        globalErrorStream() << "Final B-Rep: inconsistent vertex count\n";
+      }
 
 #if BRUSH_CONNECTIVITY_DEBUG
       if((uniqueVertices.size() + faces_size) - uniqueEdges.size() != 2)
       {
         for(Faces::iterator i = m_faces.begin(); i != m_faces.end(); ++i)
         {
-                 std::size_t faceIndex = std::distance(m_faces.begin(), i);
+          std::size_t faceIndex = std::distance(m_faces.begin(), i);
 
           if(!(*i)->contributes())
           {
index b648c92..2f5596d 100644 (file)
@@ -2629,7 +2629,32 @@ void OpenGLShader::construct(const char* name)
 #include "modulesystem/singletonmodule.h"
 #include "modulesystem/moduleregistry.h"
 
-class ShaderCacheDependencies : public GlobalShadersModuleRef, public GlobalTexturesModuleRef
+class OpenGLStateLibraryAPI
+{
+  OpenGLStateMap m_stateMap;
+public:
+  typedef OpenGLStateLibrary Type;
+  STRING_CONSTANT(Name, "*");
+
+  OpenGLStateLibraryAPI()
+  {
+    g_openglStates = &m_stateMap;
+  }
+  ~OpenGLStateLibraryAPI()
+  {
+    g_openglStates = 0;
+  }
+  OpenGLStateLibrary* getTable()
+  {
+    return &m_stateMap;
+  }
+};
+
+typedef SingletonModule<OpenGLStateLibraryAPI> OpenGLStateLibraryModule;
+typedef Static<OpenGLStateLibraryModule> StaticOpenGLStateLibraryModule;
+StaticRegisterModule staticRegisterOpenGLStateLibrary(StaticOpenGLStateLibraryModule::instance());
+
+class ShaderCacheDependencies : public GlobalShadersModuleRef, public GlobalTexturesModuleRef, public GlobalOpenGLStateLibraryModuleRef
 {
 public:
   ShaderCacheDependencies() :
@@ -2666,27 +2691,3 @@ typedef Static<ShaderCacheModule> StaticShaderCacheModule;
 StaticRegisterModule staticRegisterShaderCache(StaticShaderCacheModule::instance());
 
 
-class OpenGLStateLibraryAPI
-{
-  OpenGLStateMap m_stateMap;
-public:
-  typedef OpenGLStateLibrary Type;
-  STRING_CONSTANT(Name, "*");
-
-  OpenGLStateLibraryAPI()
-  {
-    g_openglStates = &m_stateMap;
-  }
-  ~OpenGLStateLibraryAPI()
-  {
-    g_openglStates = 0;
-  }
-  OpenGLStateLibrary* getTable()
-  {
-    return &m_stateMap;
-  }
-};
-
-typedef SingletonModule<OpenGLStateLibraryAPI> OpenGLStateLibraryModule;
-typedef Static<OpenGLStateLibraryModule> StaticOpenGLStateLibraryModule;
-StaticRegisterModule staticRegisterOpenGLStateLibrary(StaticOpenGLStateLibraryModule::instance());
index cec9f7c..3f906ab 100644 (file)
@@ -70,6 +70,8 @@ cp games/Q3Pack/tools/games/q3.game $RPM_BUILD_ROOT%{installdir}/games
 cp games/Doom3Pack/tools/games/doom3.game $RPM_BUILD_ROOT%{installdir}/games
 cp games/Q4Pack/tools/games/q4.game $RPM_BUILD_ROOT%{installdir}/games
 cp games/JAPack/Tools/games/ja.game $RPM_BUILD_ROOT%{installdir}/games
+cp games/NexuizPack/games/nexuiz.game $RPM_BUILD_ROOT%{installdir}/games
+cp games/DarkPlacesPack/games/darkplaces.game $RPM_BUILD_ROOT%{installdir}/games
 mkdir $RPM_BUILD_ROOT%{installdir}/modules
 cp install/modules/entity.so $RPM_BUILD_ROOT%{installdir}/modules
 cp install/modules/model.so $RPM_BUILD_ROOT%{installdir}/modules
@@ -85,6 +87,10 @@ cp install/modules/imagepng.so $RPM_BUILD_ROOT%{installdir}/modules
 cp install/modules/imageq2.so $RPM_BUILD_ROOT%{installdir}/modules
 cp install/modules/mapq3.so $RPM_BUILD_ROOT%{installdir}/modules
 cp install/modules/archivewad.so $RPM_BUILD_ROOT%{installdir}/modules
+cp install/plugins/prtview.so $RPM_BUILD_ROOT%{installdir}/prtview
+cp install/plugins/bobtoolz.so $RPM_BUILD_ROOT%{installdir}/plugins
+cp install/plugins/bt/*.txt $RPM_BUILD_ROOT%{installdir}/plugins/bt
+cp install/plugins/bitmaps/bobtoolz_*.bmp $RPM_BUILD_ROOT%{installdir}/plugins/bitmaps
 mkdir $RPM_BUILD_ROOT%{installdir}/q1.game
 cp games/Q1Pack/q1.game/default_build_menu.xml $RPM_BUILD_ROOT%{installdir}/q1.game
 mkdir $RPM_BUILD_ROOT%{installdir}/q1.game/id1
@@ -105,6 +111,18 @@ mkdir $RPM_BUILD_ROOT%{installdir}/q3.game/baseq3
 cp games/Q3Pack/tools/q3.game/baseq3/entities.ent $RPM_BUILD_ROOT%{installdir}/q3.game/baseq3
 cp games/Q3Pack/tools/q3.game/baseq3/default_shaderlist.txt $RPM_BUILD_ROOT%{installdir}/q3.game/baseq3
 cp games/Q3Pack/tools/q3.game/baseq3/entities.def $RPM_BUILD_ROOT%{installdir}/q3.game/baseq3
+mkdir $RPM_BUILD_ROOT%{installdir}/nexuiz.game
+cp games/NexuizPack/nexuiz.game/game.xlink $RPM_BUILD_ROOT%{installdir}/nexuiz.game
+cp games/NexuizPack/nexuiz.game/default_build_menu.xml $RPM_BUILD_ROOT%{installdir}/nexuiz.game
+mkdir $RPM_BUILD_ROOT%{installdir}/nexuiz.game/data
+cp games/NexuizPack/nexuiz.game/data/default_shaderlist.txt $RPM_BUILD_ROOT%{installdir}/nexuiz.game/data
+cp games/NexuizPack/nexuiz.game/data/entities.def $RPM_BUILD_ROOT%{installdir}/nexuiz.game/data
+mkdir $RPM_BUILD_ROOT%{installdir}/darkplaces.game
+cp games/DarkPlacesPack/darkplaces.game/game.xlink $RPM_BUILD_ROOT%{installdir}/darkplaces.game
+cp games/DarkPlacesPack/darkplaces.game/default_build_menu.xml $RPM_BUILD_ROOT%{installdir}/darkplaces.game
+mkdir $RPM_BUILD_ROOT%{installdir}/darkplaces.game/id1
+cp games/DarkPlacesPack/darkplaces.game/id1/default_shaderlist.txt $RPM_BUILD_ROOT%{installdir}/darkplaces.game/id1
+cp games/DarkPlacesPack/darkplaces.game/id1/entities.ent $RPM_BUILD_ROOT%{installdir}/darkplaces.game/id1
 mkdir $RPM_BUILD_ROOT%{installdir}/bitmaps
 cp setup/data/tools/bitmaps/view_cubicclipping.bmp $RPM_BUILD_ROOT%{installdir}/bitmaps
 cp setup/data/tools/bitmaps/cap_endcap.bmp $RPM_BUILD_ROOT%{installdir}/bitmaps
index 3e841fc..3818ac9 100644 (file)
     <component name=".\components\mapq3.xml" root="..\..\install"/>
     <component name=".\components\mapxml.xml" root="..\..\install"/>
 
+    <feature name="BobToolz Plugin" desc="Bob's tools for Enemy Territory">
+      <component name=".\components\bobtoolz.xml" root="..\..\install"/>
+    </feature>
+    <feature name="PrtView Plugin" desc="Geoffrey Dewan's Portal Viewer">
+      <component name=".\components\prtview.xml" root="..\..\install"/>
+    </feature>
     <feature name="GtkRadiant Editor Manual" desc="Documentation for GtkRadiant users.">
       <component name=".\components\radiant_manual.xml" root="..\..\docs\manual"/>
     </feature>
     <feature name="Half-Life Support" desc="Support for Half-Life.">
       <component name=".\components\hl.xml" root="..\..\games\HalfLifePack"/>
     </feature>
+    <feature name="Nexuiz Support" desc="Support for Nexuiz.">
+      <component name=".\components\nexuiz.xml" root="..\..\games\NexuizPack"/>
+    </feature>
+    <feature name="DarkPlaces Support" desc="Support for DarkPlaces Quake.">
+      <component name=".\components\darkplaces.xml" root="..\..\games\DarkPlacesPack"/>
+    </feature>
   </feature>
 </package>