Procházet zdrojové kódy

uninitialized variables-terrain

AzaezelX před 5 roky
rodič
revize
c2e74f375a

+ 5 - 1
Engine/source/terrain/terrCell.cpp

@@ -58,7 +58,11 @@ TerrCell::TerrCell()
       mHasEmpty( false ),
       mMaterial( NULL ),
       mMaterials( 0 ),
-      mIsInteriorOnly( false )
+      mIsInteriorOnly( false ),
+      mSize(smMinCellSize),
+      mLevel(0),
+      mTerrain(NULL),
+      mRadius(0.5f)
 {
    dMemset( mChildren, 0, sizeof( mChildren ) );
    zode_vertexBuffer = 0;

+ 2 - 1
Engine/source/terrain/terrCellMaterial.cpp

@@ -73,7 +73,8 @@ TerrainCellMaterial::TerrainCellMaterial()
    :  mTerrain( NULL ),
       mCurrPass( 0 ),
       mDeferredMat( NULL ),
-      mReflectMat( NULL )
+      mReflectMat( NULL ),
+      mMaterials(0)
 {
    smAllMaterials.push_back( this );
 }

+ 11 - 1
Engine/source/terrain/terrCellMaterial.h

@@ -58,6 +58,8 @@ protected:
    public:
 
       MaterialInfo()
+         :mat(NULL), layerId(0), detailTexConst(NULL), macroTexConst(NULL), normalTexConst(NULL),
+         compositeTexConst(NULL), detailInfoVConst(NULL), detailInfoPConst(NULL), macroInfoVConst(NULL), macroInfoPConst(NULL)
       {
       }
 
@@ -92,7 +94,15 @@ protected:
    public:
 
       Pass() 
-         :  shader( NULL )                     
+         :  shader( NULL ),
+         modelViewProjConst(NULL), worldViewOnly(NULL), viewToObj(NULL),
+         eyePosWorldConst(NULL), eyePosConst(NULL),
+         objTransConst(NULL), worldToObjConst(NULL), vEyeConst(NULL),
+         layerSizeConst(NULL), lightParamsConst(NULL), lightInfoBufferConst(NULL),
+         baseTexMapConst(NULL), layerTexConst(NULL),
+         lightMapTexConst(NULL),
+         squareSize(NULL), oneOverTerrainSize(NULL),
+         fogDataConst(NULL), fogColorConst(NULL)
       {
       }
 

+ 8 - 1
Engine/source/terrain/terrCollision.cpp

@@ -167,13 +167,20 @@ S32 sFaceList135[16][9] = {
 
 TerrainConvex::TerrainConvex() 
 {
+   halfA = true;
+   square = NULL;
+   squareId = 0;
+   material = 0;
+   split45 = false;
+
    mType = TerrainConvexType; 
 }
 
 TerrainConvex::TerrainConvex( const TerrainConvex &cv ) 
 {
    mType = TerrainConvexType;
-
+   halfA = false;
+   square = NULL;
    // Only a partial copy...
    mObject = cv.mObject;
    split45 = cv.split45;

+ 1 - 0
Engine/source/terrain/terrData.cpp

@@ -190,6 +190,7 @@ TerrainBlock::TerrainBlock()
    mMaxDetailDistance( 0.0f ),
    mBaseTexScaleConst( NULL ),
    mBaseTexIdConst( NULL ),
+   mBaseLayerSizeConst(NULL),
    mDetailsDirty( false ),
    mLayerTexDirty( false ),
    mBaseTexSize( 1024 ),

+ 1 - 0
Engine/source/terrain/terrFile.cpp

@@ -46,6 +46,7 @@ template<> ResourceBase::Signature Resource<TerrainFile>::signature()
 
 TerrainFile::TerrainFile()
    : mSize( 256 ),
+     mGridLevels(0),
      mFileVersion( FILE_VERSION ),
      mNeedsResaving( false )
 {