From 64f8549604fab025155b0fe84759d829bb4fcaea Mon Sep 17 00:00:00 2001 From: faketruth Date: Sat, 31 Mar 2012 12:10:17 +0000 Subject: Fixed a crash when fluid would try to go below the world (y = -1) git-svn-id: http://mc-server.googlecode.com/svn/trunk@442 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/cFluidSimulator.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/source/cFluidSimulator.cpp b/source/cFluidSimulator.cpp index 68a6af599..c2df9b1f2 100644 --- a/source/cFluidSimulator.cpp +++ b/source/cFluidSimulator.cpp @@ -350,10 +350,12 @@ void cFluidSimulator::Simulate( float a_Dt ) cPickup* Pickup = new cPickup( pos.x * 32 + 16, (pos.y-1) * 32 + 16, pos.z * 32 + 16, cItem( (ENUM_ITEM_ID)DownID, 1, m_World->GetBlockMeta( pos.x, pos.y-1, pos.z ) ) ); Pickup->Initialize( m_World ); } - - m_World->FastSetBlock( pos.x, pos.y-1, pos.z, m_FluidBlock, 8 ); // falling - AddBlock( pos.x, pos.y-1, pos.z ); - ApplyUniqueToNearest(pos - Vector3i(0, 1, 0)); + if( pos.y > 0 ) + { + m_World->FastSetBlock( pos.x, pos.y-1, pos.z, m_FluidBlock, 8 ); // falling + AddBlock( pos.x, pos.y-1, pos.z ); + ApplyUniqueToNearest(pos - Vector3i(0, 1, 0)); + } } if(IsSolidBlock(DownID)||( BlockID == m_StationaryFluidBlock)) // Not falling { -- cgit v1.2.3