/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/movement.dm

MIN_GLIDE_SIZEThe minimum for glide_size to be clamped to.
MAX_GLIDE_SIZEThe maximum for glide_size to be clamped to. This shouldn't be higher than the icon size, and generally you shouldn't be changing this, but it's here just in case.
DELAY_TO_GLIDE_SIZEBroken down, here's what this does: divides the world icon_size by delay divided by ticklag to get the number of pixels something should be moving each tick. The division result is given a min value of 1 to prevent obscenely slow glide sizes from being set Then that's multiplied by the global glide size multiplier. 1.25 by default feels pretty close to spot on. This is just to try to get byond to behave. The whole result is then clamped to within the range above. Not very readable but it works
MOVEMENT_ADJUSTED_GLIDE_SIZESimilar to DELAY_TO_GLIDE_SIZE, except without the clamping, and it supports piping in an unrelated scalar
MOVEMENT_DEFAULT_PRIORITYStandard, go lower then this if you want to override, higher otherwise
MOVEMENT_SPACE_PRIORITYVery few things should override this
MOVEMENT_ABOVE_SPACE_PRIORITYHigher then the heavens
MOVEMENT_LOOP_START_FASTShould the loop act immediately following its addition?
MOVEMENT_LOOP_IGNORE_PRIORITYDo we not use the priority system?
MOVEMENT_LOOP_IGNORE_GLIDEShould we override the loop's glide?
MOVEMENT_LOOP_NO_DIR_UPDATEShould we not update our movables dir on move?
MOVEMENT_LOOP_OUTSIDE_CONTROLIs the loop moving the movable outside its control, like it's an external force? e.g. footsteps won't play if enabled.
MOVELOOP_STATUS_PAUSEDHas the loop been paused, soon to be resumed?
MOVELOOP_STATUS_RUNNINGIs the loop running? (Is true even when paused)
MOVELOOP_STATUS_QUEUEDIs the loop queued in a subsystem?
CHECK_MOVE_LOOP_FLAGSReturns a bitfield containing flags both present in flags arg and the processing_move_loop_flags move_packet variable. Has no use outside of procs called within the movement proc chain.
CURRENTLY_Z_FALLINGcurrently_z_moving defines. Higher numbers mean higher priority. This one is for falling down open space from stuff such as deleted tile, pit grate...
CURRENTLY_Z_MOVING_GENERICcurrently_z_moving is set to this in zMove() if 0.
CURRENTLY_Z_FALLING_FROM_MOVEThis one is for falling down open space from movement.
CURRENTLY_Z_ASCENDINGThis one is for going upstairs.
FALL_INTERCEPTEDpossible bitflag return values of [atom/proc/intercept_zImpact] calls Stops the movable from falling further and crashing on the ground. Example: stairs.
FALL_NO_MESSAGESuppresses the "[movable] falls through [old_turf]" message because it'd make little sense in certain contexts like climbing stairs.
FALL_STOP_INTERCEPTINGUsed when the whole intercept_zImpact forvar loop should be stopped. For example: when someone falls into the supermatter and becomes dust.
FALL_RETAIN_PULLUsed when the grip on a pulled object shouldn't be broken.
ZMOVE_CHECK_PULLINGRuns check_pulling() by the end of [/atom/movable/proc/zMove] for every movable that's pulling something. Should be kept enabled unless you know what you are doing.
ZMOVE_CHECK_PULLEDBYChecks if pulledby is nearby. if not, stop being pulled.
ZMOVE_FALL_CHECKSflags for different checks done in /atom/movable/proc/can_z_move. Should be self-explainatory.
ZMOVE_IGNORE_OBSTACLESDoesn't call zPassIn() and zPassOut()
ZMOVE_FEEDBACKGives players chat feedbacks if they're unable to move through z levels.
ZMOVE_ALLOW_BUCKLEDWhether we check the movable (if it exists) the living mob is buckled on or not.
ZMOVE_VENTCRAWLINGIf the movable is actually ventcrawling vertically.
ZMOVE_INCLUDE_PULLEDIncludes movables that're either pulled by the source or mobs buckled to it in the list of moving movables.
ZMOVE_ALLOW_ANCHOREDSkips check for whether the moving atom is anchored or not.
ZMOVE_FLIGHT_FLAGSFlags used in "Move Upwards" and "Move Downwards" verbs.
ZMOVE_STAIRS_FLAGSUsed when walking upstairs
ZMOVE_FALL_FLAGSUsed for falling down open space.
FIRST_DIAG_STEPThe first step of the diagnonal movement
SECOND_DIAG_STEPThe second step of the diagnonal movement
TELEPORT_CHANNEL_BLUESPACEClassic bluespace teleportation, requires a sender but no receiver
TELEPORT_CHANNEL_QUANTUMQuantum-based teleportation, requires both sender and receiver, but is free from normal disruption
TELEPORT_CHANNEL_WORMHOLEWormhole teleportation, is not disrupted by bluespace fluctuations but tends to be very random or unsafe
TELEPORT_CHANNEL_MAGICMagic teleportation, does whatever it wants (unless there's antimagic)
TELEPORT_CHANNEL_CULTCult teleportation, does whatever it wants (unless there's holiness)
TELEPORT_CHANNEL_EIGENSTATEEigenstate teleportation, can do most things (that aren't in a teleport-prevented zone)
TELEPORT_CHANNEL_FREEAnything else
MOVELOOP_FAILUREReturn values for moveloop Move()
INERTIA_FORCE_CAPMaximum inertia that an object can hold. Used to prevent objects from getting to stupid speeds.
INERTIA_FORCE_SPACEMOVE_REDUCTIONHow much inertia is deducted when a mob has newtonian spacemove capabilities and is not moving in the same direction
INERTIA_FORCE_SPACEMOVE_GRABHow much inertia we must have to not be able to instantly stop after having something to grab
INERTIA_FORCE_THROW_FLOORHow much inertia is required for the impacted object to be thrown at the wall
INERTIA_FORCE_PER_THROW_FORCEHow much inertia is required past the floor to add 1 strength

Define Details

CHECK_MOVE_LOOP_FLAGS

Returns a bitfield containing flags both present in flags arg and the processing_move_loop_flags move_packet variable. Has no use outside of procs called within the movement proc chain.

CURRENTLY_Z_ASCENDING

This one is for going upstairs.

CURRENTLY_Z_FALLING

currently_z_moving defines. Higher numbers mean higher priority. This one is for falling down open space from stuff such as deleted tile, pit grate...

CURRENTLY_Z_FALLING_FROM_MOVE

This one is for falling down open space from movement.

CURRENTLY_Z_MOVING_GENERIC

currently_z_moving is set to this in zMove() if 0.

DELAY_TO_GLIDE_SIZE

Broken down, here's what this does: divides the world icon_size by delay divided by ticklag to get the number of pixels something should be moving each tick. The division result is given a min value of 1 to prevent obscenely slow glide sizes from being set Then that's multiplied by the global glide size multiplier. 1.25 by default feels pretty close to spot on. This is just to try to get byond to behave. The whole result is then clamped to within the range above. Not very readable but it works

FALL_INTERCEPTED

possible bitflag return values of [atom/proc/intercept_zImpact] calls Stops the movable from falling further and crashing on the ground. Example: stairs.

FALL_NO_MESSAGE

Suppresses the "[movable] falls through [old_turf]" message because it'd make little sense in certain contexts like climbing stairs.

FALL_RETAIN_PULL

Used when the grip on a pulled object shouldn't be broken.

FALL_STOP_INTERCEPTING

Used when the whole intercept_zImpact forvar loop should be stopped. For example: when someone falls into the supermatter and becomes dust.

FIRST_DIAG_STEP

The first step of the diagnonal movement

INERTIA_FORCE_CAP

Maximum inertia that an object can hold. Used to prevent objects from getting to stupid speeds.

INERTIA_FORCE_PER_THROW_FORCE

How much inertia is required past the floor to add 1 strength

INERTIA_FORCE_SPACEMOVE_GRAB

How much inertia we must have to not be able to instantly stop after having something to grab

INERTIA_FORCE_SPACEMOVE_REDUCTION

How much inertia is deducted when a mob has newtonian spacemove capabilities and is not moving in the same direction

INERTIA_FORCE_THROW_FLOOR

How much inertia is required for the impacted object to be thrown at the wall

MAX_GLIDE_SIZE

The maximum for glide_size to be clamped to. This shouldn't be higher than the icon size, and generally you shouldn't be changing this, but it's here just in case.

MIN_GLIDE_SIZE

The minimum for glide_size to be clamped to.

MOVELOOP_FAILURE

Return values for moveloop Move()

MOVELOOP_STATUS_PAUSED

Has the loop been paused, soon to be resumed?

MOVELOOP_STATUS_QUEUED

Is the loop queued in a subsystem?

MOVELOOP_STATUS_RUNNING

Is the loop running? (Is true even when paused)

MOVEMENT_ABOVE_SPACE_PRIORITY

Higher then the heavens

MOVEMENT_ADJUSTED_GLIDE_SIZE

Similar to DELAY_TO_GLIDE_SIZE, except without the clamping, and it supports piping in an unrelated scalar

MOVEMENT_DEFAULT_PRIORITY

Standard, go lower then this if you want to override, higher otherwise

MOVEMENT_LOOP_IGNORE_GLIDE

Should we override the loop's glide?

MOVEMENT_LOOP_IGNORE_PRIORITY

Do we not use the priority system?

MOVEMENT_LOOP_NO_DIR_UPDATE

Should we not update our movables dir on move?

MOVEMENT_LOOP_OUTSIDE_CONTROL

Is the loop moving the movable outside its control, like it's an external force? e.g. footsteps won't play if enabled.

MOVEMENT_LOOP_START_FAST

Should the loop act immediately following its addition?

MOVEMENT_SPACE_PRIORITY

Very few things should override this

SECOND_DIAG_STEP

The second step of the diagnonal movement

TELEPORT_CHANNEL_BLUESPACE

Classic bluespace teleportation, requires a sender but no receiver

TELEPORT_CHANNEL_CULT

Cult teleportation, does whatever it wants (unless there's holiness)

TELEPORT_CHANNEL_EIGENSTATE

Eigenstate teleportation, can do most things (that aren't in a teleport-prevented zone)

TELEPORT_CHANNEL_FREE

Anything else

TELEPORT_CHANNEL_MAGIC

Magic teleportation, does whatever it wants (unless there's antimagic)

TELEPORT_CHANNEL_QUANTUM

Quantum-based teleportation, requires both sender and receiver, but is free from normal disruption

TELEPORT_CHANNEL_WORMHOLE

Wormhole teleportation, is not disrupted by bluespace fluctuations but tends to be very random or unsafe

ZMOVE_ALLOW_ANCHORED

Skips check for whether the moving atom is anchored or not.

ZMOVE_ALLOW_BUCKLED

Whether we check the movable (if it exists) the living mob is buckled on or not.

ZMOVE_CHECK_PULLEDBY

Checks if pulledby is nearby. if not, stop being pulled.

ZMOVE_CHECK_PULLING

Runs check_pulling() by the end of [/atom/movable/proc/zMove] for every movable that's pulling something. Should be kept enabled unless you know what you are doing.

ZMOVE_FALL_CHECKS

flags for different checks done in /atom/movable/proc/can_z_move. Should be self-explainatory.

ZMOVE_FALL_FLAGS

Used for falling down open space.

ZMOVE_FEEDBACK

Gives players chat feedbacks if they're unable to move through z levels.

ZMOVE_FLIGHT_FLAGS

Flags used in "Move Upwards" and "Move Downwards" verbs.

ZMOVE_IGNORE_OBSTACLES

Doesn't call zPassIn() and zPassOut()

ZMOVE_INCLUDE_PULLED

Includes movables that're either pulled by the source or mobs buckled to it in the list of moving movables.

ZMOVE_STAIRS_FLAGS

Used when walking upstairs

ZMOVE_VENTCRAWLING

If the movable is actually ventcrawling vertically.