Bumping to post some basic cliff detection code.
function isCliffBlocking(%nodeA,%nodeB,%maxCliffHeight)
{
if(%maxCliffHeight $= "")
%maxCliffHeight = 5;
%posA = %nodeA.position;
%posB = %nodeB.position;
%typeMask = $TypeMasks::fxBrickObjectType & $TypeMasks::EnvironmentObjectType;
for(%e = 0.1; %e < 1; %e += 0.1)
{
%posC = vectorAdd(%posA,vectorScale(vectorNormalize(vectorSub(%posB,%posA)),vectorDist(%posA,%posB) * %e));
%posD = vectorSub(%posC,"0 0" SPC %maxCliffHeight);
%hit = containerRayCast(%posC,%posD,%typeMask,%obj);
if(!isObject(firstWord(%hit)))
{
return true;
}
}
return false;
}