patch by namespace: lighting-preview toggle command
[xonotic/netradiant.git] / radiant / camwindow.cpp
index 057e6aa888ae9ede42d87426d410425fb273350b..ed8ec13a1e4898fe78c6951921221f6a006e267f 100644 (file)
@@ -1752,6 +1752,11 @@ void CamWnd_constructToolbar(GtkToolbar* toolbar)
 void CamWnd_registerShortcuts()
 {
   toggle_add_accelerator("ToggleCubicClip");
+  
+  if(g_pGameDescription->mGameType == "doom3")
+  {
+    command_connect_accelerator("TogglePreview");
+  }
 }
 
 
@@ -1781,6 +1786,17 @@ void CamWnd_SetMode(camera_draw_mode mode)
   }
 }
 
+void CamWnd_TogglePreview(void)
+{
+  // gametype must be doom3 for this function to work
+  // if the gametype is not doom3 something is wrong with the
+  // global command list or somebody else calls this function.
+  ASSERT_MESSAGE(g_pGameDescription->mGameType == "doom3", "CamWnd_TogglePreview called although mGameType is not doom3 compatible");
+
+  // switch between textured and lighting mode
+  CamWnd_SetMode((CamWnd_GetMode() == cd_lighting) ? cd_texture : cd_lighting);
+}
+
 
 CameraModel* g_camera_model = 0;
 
@@ -1946,6 +1962,11 @@ void CamWnd_Construct()
   GlobalCommands_insert("LookThroughSelected", FreeCaller<GlobalCamera_LookThroughSelected>());
   GlobalCommands_insert("LookThroughCamera", FreeCaller<GlobalCamera_LookThroughCamera>());
 
+  if(g_pGameDescription->mGameType == "doom3")
+  {
+    GlobalCommands_insert("TogglePreview", FreeCaller<CamWnd_TogglePreview>(), Accelerator(GDK_F3));
+  }
+
   GlobalShortcuts_insert("CameraForward", Accelerator(GDK_Up));
   GlobalShortcuts_insert("CameraBack", Accelerator(GDK_Down));
   GlobalShortcuts_insert("CameraLeft", Accelerator(GDK_Left));