Browse Source

TorqueLab v0.2 source code changes

Mud-H 10 years ago
parent
commit
df8aa9c625

+ 6 - 0
Engine/source/environment/editors/guiRiverEditorCtrl.cpp

@@ -1479,3 +1479,9 @@ DefineConsoleMethod( GuiRiverEditorCtrl, regenerate, void, (), , "" )
    if ( river )
       river->regenerate();
 }
+
+//TorqueLab Added to change node from script
+DefineConsoleMethod(GuiRiverEditorCtrl, setSelectedNode, void, (S32 node), , "")
+{
+	object->setSelectedNode(node);
+}

+ 5 - 0
Engine/source/environment/editors/guiRoadEditorCtrl.cpp

@@ -1105,3 +1105,8 @@ DefineConsoleMethod( GuiRoadEditorCtrl, deleteRoad, void, (), , "" )
 {
    object->deleteSelectedRoad();
 }
+//TorqueLab Added to change node from script
+DefineConsoleMethod(GuiRoadEditorCtrl, setSelectedNode, void, (S32 node), , "")
+{
+	object->setSelectedNode(node);
+}

+ 15 - 2
Engine/source/forest/editor/forestBrushTool.cpp

@@ -40,7 +40,7 @@
 #include "math/mRandomDeck.h"
 #include "math/mRandomSet.h"
 
-
+F32 ForestBrushTool::smGlobalScale = 1.0f; //TorqueLab - Forest global scale Init
 bool ForestBrushTool::protectedSetSize( void *object, const char *index, const char *data )
 {
    ForestBrushTool *tool = static_cast<ForestBrushTool*>( object );
@@ -122,7 +122,14 @@ void ForestBrushTool::initPersistFields()
 
    Parent::initPersistFields();
 }
-
+//TorqueLab - Forest brush tool new console variables
+void ForestBrushTool::consoleInit()
+{
+	//TorqueLab - Forest global scale - Apply global scaling to painted elements
+	Con::addVariable("$Forest::GlobalScale", TypeF32, &ForestBrushTool::smGlobalScale, "For editor use.\n"
+		"@ingroup Editors\n");
+	Parent::consoleInit();
+}
 bool ForestBrushTool::onAdd()
 {
    if ( !Parent::onAdd() )
@@ -380,6 +387,10 @@ void ForestBrushTool::_paint( const Point3F &point )
       randElementSet.add( pElement, pElement->mProbability );
    }
    
+   //TorqueLab - Check forest global scale
+   if (smGlobalScale <= 0.01)
+	   smGlobalScale = 0.01f;
+
    // Pull elements from the random set until we would theoretically fill
    // the desired area.
 
@@ -403,6 +414,8 @@ void ForestBrushTool::_paint( const Point3F &point )
 
       areaLeft -= area * 5.0f; // fudge value
 
+	  scaleFactor *= smGlobalScale; //TorqueLab - Add forest global scale
+
       // No room left we are done.
       //if ( areaLeft < 0.0f )
       //   break;

+ 2 - 0
Engine/source/forest/editor/forestBrushTool.h

@@ -61,10 +61,12 @@ public:
 
    // SimObject
    DECLARE_CONOBJECT( ForestBrushTool );
+   static void consoleInit(); //TorqueLab - New console variables
    static void initPersistFields();
    virtual bool onAdd();
    virtual void onRemove();
 
+   static F32 smGlobalScale; //TorqueLab - Forest global scale
    // ForestTool
    virtual void on3DMouseDown( const Gui3DMouseEvent &evt );
    virtual void on3DMouseUp( const Gui3DMouseEvent &evt );

+ 4 - 2
Engine/source/gui/buttons/guiSwatchButtonCtrl.cpp

@@ -66,14 +66,16 @@ GuiSwatchButtonCtrl::GuiSwatchButtonCtrl()
    static StringTableEntry sProfile = StringTable->insert( "profile" );
    setDataField( sProfile, NULL, "GuiInspectorSwatchButtonProfile" );
 
-   mGridBitmap = "tools/gui/images/transp_grid";
+   mGridBitmap = StringTable->insert("tools/gui/images/transp_grid"); //TorqueLab bad bitmap crash fix
+   //mGridBitmap = "tools/gui/images/transp_grid";
 }
 
 void GuiSwatchButtonCtrl::initPersistFields()
 {
    addField( "color", TypeColorF, Offset( mSwatchColor, GuiSwatchButtonCtrl ), "The foreground color of GuiSwatchButtonCtrl" );
 
-   addField( "gridBitmap", TypeString, Offset( mGridBitmap, GuiSwatchButtonCtrl ), "The bitmap used for the transparent grid" );
+   addField("gridBitmap", TypeFilename, Offset(mGridBitmap, GuiSwatchButtonCtrl), "The bitmap used for the transparent grid");//TorqueLab bad bitmap crash fix
+   //addField( "gridBitmap", TypeString, Offset( mGridBitmap, GuiSwatchButtonCtrl ), "The bitmap used for the transparent grid" );
    
    Parent::initPersistFields();
 }

+ 2 - 1
Engine/source/gui/buttons/guiSwatchButtonCtrl.h

@@ -42,7 +42,8 @@ class GuiSwatchButtonCtrl : public GuiButtonBaseCtrl
       ColorF mSwatchColor;
       
       /// Bitmap used for mGrid
-      String mGridBitmap;
+	  StringTableEntry mGridBitmap; //TorqueLab bad bitmap crash fix
+      //String mGridBitmap;
 
       /// Background texture that will show through with transparent colors.
       GFXTexHandle mGrid;

+ 16 - 6
Engine/source/gui/editor/guiMenuBar.cpp

@@ -1000,12 +1000,15 @@ GuiMenuBar::MenuItem* GuiMenuBar::findSubmenuItem(MenuItem *menuItem, const char
 //  Add a menuitem to the given submenu
 void GuiMenuBar::addSubmenuItem(Menu *menu, MenuItem *submenu, const char *text, U32 id, const char *accelerator, S32 checkGroup)
 {
-   // Check that the given menu item supports a submenu
-   if(submenu && !submenu->isSubmenu)
-   {
-      Con::errorf("GuiMenuBar::addSubmenuItem: Attempting to add menuitem '%s' to an invalid submenu",text);
-	  return;
-   }
+	// Check that the given menu item supports a submenu
+	//TorqueLab isSubmenu check removed and simply validate the submenu object
+	//if(submenu && !submenu->isSubmenu)
+	if (!submenu)
+	{
+		Con::errorf("GuiMenuBar::addSubmenuItem: Attempting to add menuitem '%s' to an invalid submenu", text);
+		return;
+	}
+	submenu->isSubmenu = true;//TorqueLab => Force isSubmenu to true (hack)
 
    // allocate the new menu item
    MenuItem *newMenuItem = new MenuItem;
@@ -1029,6 +1032,13 @@ void GuiMenuBar::addSubmenuItem(Menu *menu, MenuItem *submenu, const char *text,
    //  Point back to the submenu's menu
    newMenuItem->submenuParentMenu = menu;
 
+   //TorqueLab : Added to make sure there's a menu to add the item
+   if (!submenu->submenu){
+	   Menu *newMenu = sCreateMenu(submenu->text, submenu->id);
+	   submenu->submenu = newMenu;
+   }
+   //TorqueLab end
+
    // link it into the menu's menu item list
    MenuItem **walk = &submenu->submenu->firstMenuItem;
    while(*walk)

+ 3 - 0
Engine/source/gui/worldEditor/worldEditor.cpp

@@ -2231,6 +2231,9 @@ void WorldEditor::on3DMouseDragged(const Gui3DMouseEvent & event)
             
             copySelection( mSelected );
             pasteSelection( false );
+
+			//TorqueLab -> Needed to know a dragCopy happen
+			Con::executef(this, "onDragCopy", mSelected->getIdString());
          }
          
          // Check for grid snap toggle with ALT.