CopiedString g_selectedShader;
TextureProjection g_selectedTexdef;
ContentsFlagsValue g_selectedFlags;
+ size_t g_selectedShaderSize[2];
}
void SurfaceInspector_SetSelectedShader(const char* shader)
//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()))
g_object_set_data(G_OBJECT(check), "handler", gint_to_pointer(handler_id));
}
}
+
+ // not allowed to modify detail flag using Surface Inspector
+ gtk_widget_set_sensitive(GTK_WIDGET(m_contentFlags[BRUSH_DETAIL_FLAG]), FALSE);
}
}
}
//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]);