From 72ce262ae89739330d16052b9548aad5cbe5c89d Mon Sep 17 00:00:00 2001 From: namespace Date: Thu, 18 Jan 2007 17:05:37 +0000 Subject: [PATCH] - Weird shiftvalues are now hidden to the user, shiftvalues will stay in ]-shader_size;shader_size[ range for display. For the sake of floatingpoint precision, it would be nice to keep the internal values in that range too, but thats "nice to have". - Fixed missing librarypaths in ufoai-plugin git-svn-id: svn://svn.icculus.org/gtkradiant/GtkRadiant/trunk@138 8a3a26a2-13c4-0310-b231-cf6edde360e5 --- CHANGES | 13 +++++++++++++ contrib/ufoaiplug/ufoai.vcproj | 4 ++-- radiant/brushmanip.cpp | 10 ++++++++++ radiant/brushmanip.h | 1 + radiant/surfacedialog.cpp | 10 ++++++++++ 5 files changed, 36 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index 23f6ede4..22d356ab 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,19 @@ This is the changelog for developers, != changelog for the end user that we distribute with the binaries. (see changelog) +18/01/2007 +namespace +- Weird shiftvalues are now hidden to the user, shiftvalues will + stay in ]-shader_size;shader_size[ range for display. + For the sake of floatingpoint precision, it would be nice + to keep the internal values in that range too, but thats "nice to have". +- Fixed missing librarypaths in ufoai-plugin + +18/01/2007 +LordHavoc +- disabled SnapPlane because it slightly corrupts collision brushes from + embedded model triangles + 17/01/2007 namespace - Fixed "jumping" texcoords when switching to a shader with different size diff --git a/contrib/ufoaiplug/ufoai.vcproj b/contrib/ufoaiplug/ufoai.vcproj index 33cf6d68..ab4f11ce 100644 --- a/contrib/ufoaiplug/ufoai.vcproj +++ b/contrib/ufoaiplug/ufoai.vcproj @@ -42,7 +42,7 @@ OutputFile="$(OutDir)/ufoai.dll" LinkIncremental="1" SuppressStartupBanner="TRUE" - AdditionalLibraryDirectories="" + AdditionalLibraryDirectories=""../../../gtk2-2.4/lib"" IgnoreDefaultLibraryNames="msvcprtd.lib" ModuleDefinitionFile="$(ProjectName).def" GenerateDebugInformation="TRUE" @@ -106,7 +106,7 @@ OutputFile="$(OutDir)/ufoai.dll" LinkIncremental="1" SuppressStartupBanner="TRUE" - AdditionalLibraryDirectories="" + AdditionalLibraryDirectories=""../../../gtk2-2.4/lib"" IgnoreDefaultLibraryNames="msvcprt.lib" ModuleDefinitionFile="$(ProjectName).def" GenerateDebugInformation="TRUE" diff --git a/radiant/brushmanip.cpp b/radiant/brushmanip.cpp index a19095e1..b2acc1fa 100644 --- a/radiant/brushmanip.cpp +++ b/radiant/brushmanip.cpp @@ -729,6 +729,16 @@ void Scene_BrushGetTexdef_Component_Selected(scene::Graph& graph, TextureProject #endif } +void Scene_BrushGetShaderSize_Component_Selected(scene::Graph& graph, size_t& width, size_t& height) +{ + if(!g_SelectedFaceInstances.empty()) + { + FaceInstance& faceInstance = g_SelectedFaceInstances.last(); + width = faceInstance.getFace().getShader().width(); + height = faceInstance.getFace().getShader().height(); + } +} + class FaceGetFlags { diff --git a/radiant/brushmanip.h b/radiant/brushmanip.h index 65d95a11..088a89fe 100644 --- a/radiant/brushmanip.h +++ b/radiant/brushmanip.h @@ -47,6 +47,7 @@ void Scene_BrushSetTexdef_Selected(scene::Graph& graph, const TextureProjection& void Scene_BrushSetTexdef_Component_Selected(scene::Graph& graph, const TextureProjection& projection); void Scene_BrushGetTexdef_Selected(scene::Graph& graph, TextureProjection& projection); void Scene_BrushGetTexdef_Component_Selected(scene::Graph& graph, TextureProjection& projection); +void Scene_BrushGetShaderSize_Component_Selected(scene::Graph& graph, size_t& width, size_t& height); void Scene_BrushSetFlags_Selected(scene::Graph& graph, const ContentsFlagsValue& flags); void Scene_BrushSetFlags_Component_Selected(scene::Graph& graph, const ContentsFlagsValue& flags); void Scene_BrushGetFlags_Selected(scene::Graph& graph, ContentsFlagsValue& flags); diff --git a/radiant/surfacedialog.cpp b/radiant/surfacedialog.cpp index 0343bbd2..7b2eb43e 100644 --- a/radiant/surfacedialog.cpp +++ b/radiant/surfacedialog.cpp @@ -276,6 +276,7 @@ namespace CopiedString g_selectedShader; TextureProjection g_selectedTexdef; ContentsFlagsValue g_selectedFlags; + size_t g_selectedShaderSize[2]; } void SurfaceInspector_SetSelectedShader(const char* shader) @@ -328,8 +329,13 @@ void SurfaceInspector_SetCurrent_FromSelected() //This *may* be the point before it fucks up... Let's see! //Yep, there was a call to removeScale in there... Scene_BrushGetTexdef_Component_Selected(GlobalSceneGraph(), projection); + SurfaceInspector_SetSelectedTexdef(projection); + Scene_BrushGetShaderSize_Component_Selected(GlobalSceneGraph(), g_selectedShaderSize[0], g_selectedShaderSize[1]); + g_selectedTexdef.m_brushprimit_texdef.coords[0][2] = float_mod(g_selectedTexdef.m_brushprimit_texdef.coords[0][2], (float)g_selectedShaderSize[0]); + g_selectedTexdef.m_brushprimit_texdef.coords[1][2] = float_mod(g_selectedTexdef.m_brushprimit_texdef.coords[1][2], (float)g_selectedShaderSize[1]); + CopiedString name; Scene_BrushGetShader_Component_Selected(GlobalSceneGraph(), name); if(string_not_empty(name.c_str())) @@ -1194,6 +1200,10 @@ globalOutputStream() << "BP: (" << g_selectedBrushPrimitTexdef.coords[0][0] << " //Ok, it's screwed up *before* we get here... ShiftScaleRotate_fromFace(shiftScaleRotate, SurfaceInspector_GetSelectedTexdef()); + // normalize again to hide the ridiculously high scale values that get created when using texlock + shiftScaleRotate.shift[0] = float_mod(shiftScaleRotate.shift[0], (float)g_selectedShaderSize[0]); + shiftScaleRotate.shift[1] = float_mod(shiftScaleRotate.shift[1], (float)g_selectedShaderSize[1]); + { spin_button_set_value_no_signal(m_hshiftIncrement.m_spin, shiftScaleRotate.shift[0]); spin_button_set_step_increment(m_hshiftIncrement.m_spin, g_si_globals.shift[0]); -- 2.39.2