IAISystem::NavCapMask

#include

Public Member Functions

NavCapMask (unsigned caps)
operator unsigned () const
NavCapMask & operator &= (unsigned rhs)
NavCapMask & operator|= (unsigned rhs)
unsigned GetLnmCaps () const
void SetLnmCaps (unsigned lnmData)
unsigned GetFullMask () const
void Serialize (TSerialize ser)

Detailed Description

Bit mask using ENavigationType.

Note
NavCapMask is no longer a primitive type. This thin wrapper around primitive unsigned is necessary to transparently support the LNM. The LNM breaks the design assumptions of the current system by producing meshes tailored to various agent type capabilities. While the question "can triangulation be used" was well-formed it doesn't make sense in the context of the LNM where there's multiple meshes, out of which some might be useable and some not.

To narrow the choice down to a single mesh, still making the rest of the system work as it did before, 's_lnmBits' are set aside to be used to discriminate among LNM meshes built for different agent types. Operators are overloaded so that non-LNM parts of the system never see the LNM part. LNM-aware parts can request the LNM bits explicitly.

Note also that the LNM bits aren't used as a bitmask.