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