OMRWeaponCapabilities.cs
/// <summary>
/// Broad authored optic behavior. Scope rendering remains separate from weapon
/// mechanics so iron sights, simple fallbacks and magnified optics can share
/// the same ADS/accuracy contracts.
/// </summary>
public enum OMROpticMode
{
IronSights,
MagnifiedScope
}
/// <summary>
/// Presentation path requested by an optic.
///
/// PictureInPicture is the screen-space debug/fallback lens used while the PiP
/// renderer was being proven. ModelLensPictureInPicture keeps the same camera
/// and render-target pipeline but presents that texture on a lens surface that
/// lives with the viewmodel.
/// </summary>
public enum OMROpticPresentationMode
{
None,
SimpleOverlay,
PictureInPicture,
ModelLensPictureInPicture
}
/// <summary>
/// How the PiP render target is sized.
/// </summary>
public enum OMRPiPResolutionMode
{
Fixed,
ScreenRelative
}
/// <summary>
/// How magnification behaves while the optic is visible. BlendWithAim preserves
/// the original game-like zoom ramp. ConstantOptical models a fixed-power real
/// optic: the image is always magnified and ADS changes eye-box/clarity instead.
/// </summary>
public enum OMRPiPMagnificationMode
{
BlendWithAim,
ConstantOptical
}
/// <summary>
/// Where the secondary scope camera obtains its transform.
///
/// MainCamera mirrors the normal gameplay camera.
/// ViewModelAnchorPositionAimRotation uses the physical scope anchor for
/// position while keeping gameplay aim rotation authoritative.
/// ViewModelAnchorFullTransform follows both position and rotation of the
/// authored scope anchor and is useful for deliberately physical/parallax-heavy
/// optics.
/// </summary>
/// <summary>
/// Presentation orientation for a scope feed while the eye is outside the ideal
/// eye box. This is deliberately a presentation-only effect; it never changes
/// the PiP camera, aim ray or ballistic truth.
/// </summary>
public enum OMRScopePreviewOrientation
{
Upright,
Rotate180,
FlipHorizontal,
FlipVertical
}
public enum OMRPiPCameraPoseMode
{
MainCamera,
ViewModelAnchorPositionAimRotation,
ViewModelAnchorFullTransform
}
/// <summary>
/// Small built-in reticle families used by scope presentation. Authored
/// textures/material reticles can be added later without changing optic
/// mechanics.
/// </summary>
public enum OMRScopeReticleStyle
{
FineCross,
Duplex,
DotCross
}
/// <summary>
/// Presentation/mechanical family for a manually-cycled weapon action. Gameplay
/// code treats all variants through the same cycling capability; the kind exists
/// so presentation can choose an appropriate bolt/pump/lever animation.
/// </summary>
public enum OMRWeaponCycleKind
{
Generic,
BoltAction,
PumpAction,
LeverAction
}
/// <summary>
/// How a manually-cycled weapon treats ADS while the visible/mechanical cycle
/// is active. Legacy preserves the older AllowAimDuringCycle boolean so existing
/// profiles keep their behavior without migration.
/// </summary>
public enum OMRCycleAimPolicy
{
Legacy,
ForceExit,
RetainIfAlreadyAiming,
Allow
}