@@ -355,14 +355,19 @@ void TerrainInfo::GetFullTerrainStatusForPosition(uint32 phaseMask, float x, flo
355355 data.liquidInfo ->type_flags = map_liquidHeaderTypeFlags (1 << liquidFlagType);
356356
357357 float delta = wmoData->liquidInfo ->level - z;
358+ uint32 status = LIQUID_MAP_ABOVE_WATER ;
358359 if (delta > collisionHeight)
359- data. liquidStatus = LIQUID_MAP_UNDER_WATER ;
360+ status = LIQUID_MAP_UNDER_WATER ;
360361 else if (delta > 0 .0f )
361- data. liquidStatus = LIQUID_MAP_IN_WATER ;
362+ status = LIQUID_MAP_IN_WATER ;
362363 else if (delta > -0 .1f )
363- data.liquidStatus = LIQUID_MAP_WATER_WALK ;
364- else
365- data.liquidStatus = LIQUID_MAP_ABOVE_WATER ;
364+ status = LIQUID_MAP_WATER_WALK ;
365+
366+ if (status != LIQUID_MAP_ABOVE_WATER )
367+ if (std::fabs (wmoData->floorZ - z) <= GROUND_HEIGHT_TOLERANCE )
368+ status |= LIQUID_MAP_OCEAN_FLOOR ;
369+
370+ data.liquidStatus = static_cast <ZLiquidStatus>(status);
366371 }
367372 // look up liquid data from grid map
368373 if (gmap && useGridLiquid)
@@ -433,12 +438,23 @@ ZLiquidStatus TerrainInfo::GetLiquidStatus(uint32 phaseMask, float x, float y, f
433438 float delta = vmapData.liquidInfo ->level - z;
434439
435440 // Get position delta
436- if (delta > collisionHeight) // Under water
437- return LIQUID_MAP_UNDER_WATER ;
438- if (delta > 0 .0f ) // In water
439- return LIQUID_MAP_IN_WATER ;
440- if (delta > -0 .1f ) // Walk on water
441- return LIQUID_MAP_WATER_WALK ;
441+ uint32 status = LIQUID_MAP_ABOVE_WATER ;
442+ if (delta > collisionHeight) // Under water
443+ status = LIQUID_MAP_UNDER_WATER ;
444+ else if (delta > 0 .0f ) // In water
445+ status = LIQUID_MAP_IN_WATER ;
446+ else if (delta > -0 .1f ) // Walk on water
447+ status = LIQUID_MAP_WATER_WALK ;
448+
449+ if (status != LIQUID_MAP_ABOVE_WATER )
450+ {
451+ if (status != LIQUID_MAP_ABOVE_WATER )
452+ if (std::fabs (ground_level - z) <= GROUND_HEIGHT_TOLERANCE )
453+ status |= LIQUID_MAP_OCEAN_FLOOR ;
454+
455+ return static_cast <ZLiquidStatus>(status);
456+ }
457+
442458 result = LIQUID_MAP_ABOVE_WATER ;
443459 }
444460 }
0 commit comments