Beginner/Torque Bugs

From TDN

Contents

List of bug fixes: TGE 1.4

By Dennis De Marco 4/23/2006

Every software package comes with bugs or 'features'. This is a compilation of fixes from the boards by various members in a centralized place. All these changes are for the current Torque 1.4 sources and to my knowledge are not in the CVS HEAD.

Waterblock can't be selected - Where is my gizmo/gadget/ axis selector?


[1] GG forum posting:

This is a simple fix supplied by Alan James to bring back the axis gizmo.


In waterblock.cc around lines 399.


// if(!mRemoveWetEdges)
// {
// setGlobalBounds();
// }


List of bug fixes: TGE 1.5

Fix for missing terrain brush when "tiled" is turned off

Originally posted by Matt Fairfax[2]

Whenever you disable/uncheck "tiled" on a TerrainBlock you can no longer use the TerrainEditor to make changes to it.

It turns out that this is because of a *long* standing bug in TerrainEditor::collide() where it was using the wrong transform.

To fix this go into editor\terrainEditor.cc and find bool TerrainEditor::collide() and change this code:

   mTerrainBlock->getTransform().mulP(startPnt, &tStartPnt);
   mTerrainBlock->getTransform().mulP(endPnt, &tEndPnt);

to

   mTerrainBlock->getWorldTransform().mulP(startPnt, &tStartPnt);
   mTerrainBlock->getWorldTransform().mulP(endPnt, &tEndPnt);

This should fix you right up and allow you to edit the terrain when the tiling is off.


Fix for InteriorInstance's that only have NULL surfaces

Originally posted by Matt Fairfax[3]

A small bug crept into TGE 1.5.1 and TGE 1.5.2 where if you try to add an InteriorInstance that only has NULL surfaces or an InteriorInstance that only uses Static Meshes and no brushes to a scene that already has an InteriorInstance in it, it would cause a hard crash.

This was caused because the lack of any visible surfaces would cause Interior::setupActivePolyList() to return early and some of the global variables that Interior uses for rendering would never get reset back to zero.

Simply add these lines to the top of Interior::setupActivePolyList() in engine\interior\interior.cc so that it looks like this:

void Interior::setupActivePolyList(ZoneVisDeterminer& zoneDeterminer,
                                   SceneState*        state,
                                   const Point3F&     rPoint,
                                   const Point3F&     osCamVector,
                                   const Point3F&     osZVec,
                                   const F32          worldZ,
                                   const Point3F&     scale)
{
   // These global variables need to be initialized in case we return early
   sgActivePolyListSize  = 0;
   sgEnvironPolyListSize = 0;
   sgFogPolyListSize     = 0;