Parcourir la source

Merge pull request #1529 from Azaezel/alpha41/WaterGridGrinding

adress odd water values
Brian Roberts il y a 5 mois
Parent
commit
07c67f2935

+ 2 - 5
Engine/source/environment/waterBlock.cpp

@@ -531,12 +531,9 @@ void WaterBlock::initPersistFields()
    docsURL;
    addGroup( "WaterBlock" );
 
-   addProtectedFieldV("gridSize", TypeRangedS32, Offset(mGridElementSize, WaterBlock), &setGridSizeProperty, &defaultProtectedGetFn, &CommonValidators::NaturalNumber,
+   addProtectedFieldV("gridSize", TypeRangedF32, Offset(mGridElementSize, WaterBlock), &setGridSizeProperty, &defaultProtectedGetFn, &CommonValidators::PositiveFloat,
       "Spacing between vertices in the WaterBlock mesh");
-
-   addProtectedFieldV("gridElementSize", TypeRangedS32, Offset(mGridElementSize, WaterBlock), &setGridSizeProperty, &defaultProtectedGetFn, &CommonValidators::NaturalNumber,
-      "Duplicate of gridElementSize for backwards compatility");
-
+   addProtectedFieldV("gridElementSize", TypeRangedF32, Offset(mGridElementSize, WaterBlock), &setGridSizeProperty, &defaultProtectedGetFn, &CommonValidators::PositiveFloat, "Duplicate of gridElementSize for backwards compatility");
    Parent::initPersistFields();
 }     
 

+ 1 - 1
Engine/source/environment/waterBlock.h

@@ -82,7 +82,7 @@ private:
    GFXPrimitiveBufferHandle mRadialPrimBuff;
 
    // misc
-   U32            mGridElementSize;
+   F32            mGridElementSize;
    U32            mWidth;
    U32            mHeight;
    F32            mElapsedTime;   

+ 3 - 0
Engine/source/environment/waterObject.cpp

@@ -45,6 +45,7 @@
 #include "T3D/sfx/sfx3DWorld.h"
 #include "sfx/sfxTypes.h"
 #include "console/typeValidators.h"
+#include "gfx/gfxTransformSaver.h"
 
 GFXImplementVertexFormat( GFXWaterVertex )
 {
@@ -699,6 +700,8 @@ void WaterObject::prepRenderImage( SceneRenderState *state )
    if( !state->isDiffusePass() )
       return;
 
+   GFXTransformSaver saver;
+
    // Setup scene transforms
    mMatrixSet->setSceneView(GFX->getWorldMatrix());
    mMatrixSet->setSceneProjection(GFX->getProjectionMatrix());

+ 3 - 3
Engine/source/environment/waterPlane.cpp

@@ -124,9 +124,7 @@ void WaterPlane::initPersistFields()
 
       addProtectedFieldV( "gridSize", TypeRangedS32, Offset( mGridSize, WaterPlane ), &protectedSetGridSize, &defaultProtectedGetFn, &CommonValidators::NaturalNumber,
 		  "Spacing between vertices in the WaterBlock mesh" );
-
-      addProtectedFieldV( "gridElementSize", TypeRangedS32, Offset( mGridElementSize, WaterPlane ), &protectedSetGridElementSize, &defaultProtectedGetFn, &CommonValidators::NaturalNumber,
-		  "Duplicate of gridElementSize for backwards compatility");
+      addProtectedFieldV("gridElementSize", TypeRangedF32, Offset(mGridElementSize, WaterPlane), &protectedSetGridElementSize, &defaultProtectedGetFn, &CommonValidators::PositiveFloat, "Duplicate of gridElementSize for backwards compatility");
 
    endGroup( "WaterPlane" );
 
@@ -699,6 +697,8 @@ void WaterPlane::prepRenderImage( SceneRenderState *state )
    if( !state->isDiffusePass() )
       return;
 
+   GFXTransformSaver saver;
+
    mBasicLighting = dStricmp( LIGHTMGR->getId(), "BLM" ) == 0;
    mUnderwater = isUnderwater( state->getCameraPosition() );