Space Station 13 - Nebula13 - Modules - TypesDefine Details

code/__defines/zmimic.dm

ZM_VISUALLY_BIG_STOPS_VB_PROPAGATIONIf this is enabled (default), a VISUALLY_BIG turf will stop upwards propagation of OVER_VB (visually big) within a stack. It is assumed that a turf that is VISUALLY_BIG will be the same size or larger as the turfs below it, so it will stop upwards propagation of the ABOVE_VB flag to avoid creating a bunch of turf proxy objects that players aren't going to see anyway. This should be enabled if your VISUALLY_BIG turfs are usually or always larger than the turfs that might be below them, but it may cause edges of turfs below that logically should be visible to not render. This artifact is unlikely to be noticed by players though, and older versions of Z-Mimic did not render even the more visible case anyway. Disabling this may increase memory usage if your map contains a large amount of VISUALLY_BIG turfs.
ZM_DEBUG_LOGEnable extra ZM debug logs -- these are useful for diagnosing layering issues, but they're potentially expensive.
TURF_IS_MIMICIs this a full Z-turf?
TURF_IS_MIMICKINGIs this turf participating in Z-mimic?
MOVABLE_IS_BELOW_ZTURFIs this movable visible from a turf that is mimicking below? Note: this does not necessarily mean directly below.
MOVABLE_IS_ON_ZTURFIs this movable located on a turf that is mimicking below? Note: this does not necessarily mean directly on.
ZM_TURF_FORCE_TERMINATESIs this turf always the end of a scan?
ZM_TURF_DOES_NOT_TERMINATE_ROOT_SCANShould the ZM turf root scan progress through this turf? This is the visually terminating turf, the one that's actually visible here (so, stops at boundaries).
ZM_TURF_DOES_NOT_TERMINATE_VB_SCANShould the ZM oversize turf scan progress through this turf? These are turfs that are above a turf flagged as VISUALLY_BIG.
ZM_TURF_DOES_NOT_TERMINATE_Z_STACKShould the ZM z-stack scan progress through this turf? This is the actual root of the z-stack as far as movable render is concerned (so, this includes boundaries).
ZM_MIMIC_BELOWIf this turf should mimic the turf on the Z below.
ZM_MIMIC_REPLACEIf this turf is Z-mimicking, replace the turf's appearance instead of using a movable. This is faster, but means the turf cannot have its own appearance (say, edges or a translucent sprite).
ZM_ALLOW_LIGHTINGIf this turf should permit passage of lighting.
ZM_ALLOW_ATMOSIf this turf permits passage of air.
ZM_MIMIC_NO_AOIf the turf shouldn't apply regular turf AO and only do Z-mimic AO.
ZM_NO_OCCLUDEDon't occlude below atoms if we're a non-mimic z-turf.
ZM_OVERRIDECopy only z_appearance or baseturf and bail, do not attempt to copy movables. This is significantly cheaper and allows you to override the mimic, but results in movables not being visible. This also terminates the Z-stack for purposes of ZM invariants.
ZM_BOUNDARYInternal use. Partially mimic the turf: allow creation of movables, but do not copy the actual turf. Movables are hidden from rightclick.
ZM_HIDE_ATOMSIf this turf is considered opaque to mouse clicks, also hide below mimics from the right-click menu. This makes it impossible to examine atoms below, however.
ZM_VISUALLY_BIGThis turf is visually larger than WORLD_ICON_SIZE, so we need to copy it even if it isn't directly visible.
ZM_OVER_VBInternal use. This turf is above a turf that is VISUALLY_BIG.
ZM_MIMIC_NO_ZAOSkip Z-AO for this turf. Useful for border turfs where the AO wouldn't be visible anyway, since this is cheaper.
ZM_MIMIC_DEFAULTSCommon defaults for zturfs.
ZMM_WIDE_LOADAtom is big and needs to scan one extra turf in both X and Y. This only extends the range by one turf. Cheap, but not free.
ZM_MIMIC_PRESET_HOLEPreset: you're creating a hole in the ground. No icon, nothing to cast shadows on. Just a hole.
ZM_MIMIC_PRESET_HOLE_WITH_BORDERPreset: you're creating a hole in the ground with a border. This turf has an icon, but you want to be able to click things in the hole like with a regular Z-hole.
ZM_MIMIC_PRESET_TRANSLUCENT_TURFPreset: you're creating a turf with translucent accents (like glass flooring). This will block clicks even where alpha on the icon is 0, add MIMIC_NO_OCCLUDE if this is unwanted.
ZM_FLAGS_AFFECTS_VISFlags that affect mimic right-click visibility (maps to ZM_HIDE_*).
ZM_FLAGS_AFFECTS_LAYERINGFlags that affect mimic layering (different render slice placement).
ZM_FLAGS_CAN_TURF_UPDATEAt least one of these flags is required for a turf to go through Z-Copy update.
ZM_INFECTIOUS_MIMIC_FLAGSFlags that persist across changeturf.
ZM_HIDE_BOUNDARYThis mimic is being hidden by its parent being a boundary.
ZM_HIDE_NONMIMICThis mimic is being hidden by its parent not being a mimic.
ZM_HIDE_OPAQUEThis mimic is being hidden by its parent having mouse_opacity set with MIMIC_HIDE_ATOMS active.
ZMM_IGNOREDo not copy this movable.
ZMM_MANGLE_PLANESCheck this movable's overlays/underlays for explicit plane use and mangle for compatibility with Z-Mimic. If you're using emissive overlays, you probably should be using this flag. Expensive, only use if necessary.
ZMM_LOOKAHEADLook one turf ahead and one turf back when considering z-turfs that might be seeing this atom. Cheap, but not free.
ZMM_LOOKBESIDELook one turf beside (left/right) when considering z-turfs that might be seeing this atom. Cheap, but not free.

Define Details

MOVABLE_IS_BELOW_ZTURF

Is this movable visible from a turf that is mimicking below? Note: this does not necessarily mean directly below.

MOVABLE_IS_ON_ZTURF

Is this movable located on a turf that is mimicking below? Note: this does not necessarily mean directly on.

TURF_IS_MIMIC

Is this a full Z-turf?

TURF_IS_MIMICKING

Is this turf participating in Z-mimic?

ZMM_IGNORE

Do not copy this movable.

ZMM_LOOKAHEAD

Look one turf ahead and one turf back when considering z-turfs that might be seeing this atom. Cheap, but not free.

ZMM_LOOKBESIDE

Look one turf beside (left/right) when considering z-turfs that might be seeing this atom. Cheap, but not free.

ZMM_MANGLE_PLANES

Check this movable's overlays/underlays for explicit plane use and mangle for compatibility with Z-Mimic. If you're using emissive overlays, you probably should be using this flag. Expensive, only use if necessary.

ZMM_WIDE_LOAD

Atom is big and needs to scan one extra turf in both X and Y. This only extends the range by one turf. Cheap, but not free.

ZM_ALLOW_ATMOS

If this turf permits passage of air.

ZM_ALLOW_LIGHTING

If this turf should permit passage of lighting.

ZM_BOUNDARY

Internal use. Partially mimic the turf: allow creation of movables, but do not copy the actual turf. Movables are hidden from rightclick.

ZM_DEBUG_LOG

Enable extra ZM debug logs -- these are useful for diagnosing layering issues, but they're potentially expensive.

ZM_FLAGS_AFFECTS_LAYERING

Flags that affect mimic layering (different render slice placement).

ZM_FLAGS_AFFECTS_VIS

Flags that affect mimic right-click visibility (maps to ZM_HIDE_*).

ZM_FLAGS_CAN_TURF_UPDATE

At least one of these flags is required for a turf to go through Z-Copy update.

ZM_HIDE_ATOMS

If this turf is considered opaque to mouse clicks, also hide below mimics from the right-click menu. This makes it impossible to examine atoms below, however.

ZM_HIDE_BOUNDARY

This mimic is being hidden by its parent being a boundary.

ZM_HIDE_NONMIMIC

This mimic is being hidden by its parent not being a mimic.

ZM_HIDE_OPAQUE

This mimic is being hidden by its parent having mouse_opacity set with MIMIC_HIDE_ATOMS active.

ZM_INFECTIOUS_MIMIC_FLAGS

Flags that persist across changeturf.

ZM_MIMIC_BELOW

If this turf should mimic the turf on the Z below.

ZM_MIMIC_DEFAULTS

Common defaults for zturfs.

ZM_MIMIC_NO_AO

If the turf shouldn't apply regular turf AO and only do Z-mimic AO.

ZM_MIMIC_NO_ZAO

Skip Z-AO for this turf. Useful for border turfs where the AO wouldn't be visible anyway, since this is cheaper.

ZM_MIMIC_PRESET_HOLE

Preset: you're creating a hole in the ground. No icon, nothing to cast shadows on. Just a hole.

ZM_MIMIC_PRESET_HOLE_WITH_BORDER

Preset: you're creating a hole in the ground with a border. This turf has an icon, but you want to be able to click things in the hole like with a regular Z-hole.

ZM_MIMIC_PRESET_TRANSLUCENT_TURF

Preset: you're creating a turf with translucent accents (like glass flooring). This will block clicks even where alpha on the icon is 0, add MIMIC_NO_OCCLUDE if this is unwanted.

ZM_MIMIC_REPLACE

If this turf is Z-mimicking, replace the turf's appearance instead of using a movable. This is faster, but means the turf cannot have its own appearance (say, edges or a translucent sprite).

ZM_NO_OCCLUDE

Don't occlude below atoms if we're a non-mimic z-turf.

ZM_OVERRIDE

Copy only z_appearance or baseturf and bail, do not attempt to copy movables. This is significantly cheaper and allows you to override the mimic, but results in movables not being visible. This also terminates the Z-stack for purposes of ZM invariants.

ZM_OVER_VB

Internal use. This turf is above a turf that is VISUALLY_BIG.

ZM_TURF_DOES_NOT_TERMINATE_ROOT_SCAN

Should the ZM turf root scan progress through this turf? This is the visually terminating turf, the one that's actually visible here (so, stops at boundaries).

ZM_TURF_DOES_NOT_TERMINATE_VB_SCAN

Should the ZM oversize turf scan progress through this turf? These are turfs that are above a turf flagged as VISUALLY_BIG.

ZM_TURF_DOES_NOT_TERMINATE_Z_STACK

Should the ZM z-stack scan progress through this turf? This is the actual root of the z-stack as far as movable render is concerned (so, this includes boundaries).

ZM_TURF_FORCE_TERMINATES

Is this turf always the end of a scan?

ZM_VISUALLY_BIG

This turf is visually larger than WORLD_ICON_SIZE, so we need to copy it even if it isn't directly visible.

ZM_VISUALLY_BIG_STOPS_VB_PROPAGATION

If this is enabled (default), a VISUALLY_BIG turf will stop upwards propagation of OVER_VB (visually big) within a stack. It is assumed that a turf that is VISUALLY_BIG will be the same size or larger as the turfs below it, so it will stop upwards propagation of the ABOVE_VB flag to avoid creating a bunch of turf proxy objects that players aren't going to see anyway. This should be enabled if your VISUALLY_BIG turfs are usually or always larger than the turfs that might be below them, but it may cause edges of turfs below that logically should be visible to not render. This artifact is unlikely to be noticed by players though, and older versions of Z-Mimic did not render even the more visible case anyway. Disabling this may increase memory usage if your map contains a large amount of VISUALLY_BIG turfs.