#ifndef OPENMW_COMPONENTS_SETTINGS_CATEGORIES_NAVIGATOR_H #define OPENMW_COMPONENTS_SETTINGS_CATEGORIES_NAVIGATOR_H #include "components/settings/sanitizerimpl.hpp" #include "components/settings/settingvalue.hpp" #include #include #include #include #include #include #include namespace Settings { struct NavigatorCategory : WithIndex { using WithIndex::WithIndex; SettingValue mEnable{ mIndex, "Navigator", "enable" }; SettingValue mRecastScaleFactor{ mIndex, "Navigator", "recast scale factor", makeMaxStrictSanitizerFloat(0) }; SettingValue mCellHeight{ mIndex, "Navigator", "cell height", makeMaxStrictSanitizerFloat(0) }; SettingValue mCellSize{ mIndex, "Navigator", "cell size", makeMaxStrictSanitizerFloat(0) }; SettingValue mDetailSampleDist{ mIndex, "Navigator", "detail sample dist", makeEqualOrMaxSanitizerFloat(0, 0.9f) }; SettingValue mDetailSampleMaxError{ mIndex, "Navigator", "detail sample max error", makeMaxSanitizerFloat(0) }; SettingValue mMaxSimplificationError{ mIndex, "Navigator", "max simplification error", makeMaxSanitizerFloat(0) }; SettingValue mTileSize{ mIndex, "Navigator", "tile size", makeMaxSanitizerInt(1) }; SettingValue mBorderSize{ mIndex, "Navigator", "border size", makeMaxSanitizerInt(0) }; SettingValue mMaxEdgeLen{ mIndex, "Navigator", "max edge len", makeMaxSanitizerInt(0) }; SettingValue mMaxNavMeshQueryNodes{ mIndex, "Navigator", "max nav mesh query nodes", makeClampSanitizerInt(1, 65535) }; SettingValue mMaxPolygonsPerTile{ mIndex, "Navigator", "max polygons per tile", makeClampSanitizerInt(1, 1 << 21) }; SettingValue mMaxVertsPerPoly{ mIndex, "Navigator", "max verts per poly", makeMaxSanitizerInt(3) }; SettingValue mRegionMergeArea{ mIndex, "Navigator", "region merge area", makeMaxSanitizerInt(0) }; SettingValue mRegionMinArea{ mIndex, "Navigator", "region min area", makeMaxSanitizerInt(0) }; SettingValue mAsyncNavMeshUpdaterThreads{ mIndex, "Navigator", "async nav mesh updater threads", makeMaxSanitizerSize(1) }; SettingValue mMaxNavMeshTilesCacheSize{ mIndex, "Navigator", "max nav mesh tiles cache size" }; SettingValue mMaxPolygonPathSize{ mIndex, "Navigator", "max polygon path size" }; SettingValue mMaxSmoothPathSize{ mIndex, "Navigator", "max smooth path size" }; SettingValue mEnableWriteRecastMeshToFile{ mIndex, "Navigator", "enable write recast mesh to file" }; SettingValue mEnableWriteNavMeshToFile{ mIndex, "Navigator", "enable write nav mesh to file" }; SettingValue mEnableRecastMeshFileNameRevision{ mIndex, "Navigator", "enable recast mesh file name revision" }; SettingValue mEnableNavMeshFileNameRevision{ mIndex, "Navigator", "enable nav mesh file name revision" }; SettingValue mRecastMeshPathPrefix{ mIndex, "Navigator", "recast mesh path prefix" }; SettingValue mNavMeshPathPrefix{ mIndex, "Navigator", "nav mesh path prefix" }; SettingValue mEnableNavMeshRender{ mIndex, "Navigator", "enable nav mesh render" }; SettingValue mNavMeshRenderMode{ mIndex, "Navigator", "nav mesh render mode" }; SettingValue mEnableAgentsPathsRender{ mIndex, "Navigator", "enable agents paths render" }; SettingValue mEnableRecastMeshRender{ mIndex, "Navigator", "enable recast mesh render" }; SettingValue mMaxTilesNumber{ mIndex, "Navigator", "max tiles number", makeMaxSanitizerInt(0) }; SettingValue mMinUpdateIntervalMs{ mIndex, "Navigator", "min update interval ms", makeMaxSanitizerInt(0) }; SettingValue mWaitUntilMinDistanceToPlayer{ mIndex, "Navigator", "wait until min distance to player", makeMaxSanitizerInt(0) }; SettingValue mEnableNavMeshDiskCache{ mIndex, "Navigator", "enable nav mesh disk cache" }; SettingValue mWriteToNavmeshdb{ mIndex, "Navigator", "write to navmeshdb" }; SettingValue mMaxNavmeshdbFileSize{ mIndex, "Navigator", "max navmeshdb file size" }; }; } #endif