41 Sector Movement
This tour shows how sector movement works in Doom through four key files: p_doors.c for doors, p_plats.c for platforms, p_floor.c for floors, and p_ceilng.c for ceilings.
FILES2 - Shows the core p_* modules for moving sectors: - p_doors.c - p_plats.c - p_floor.c - p_ceilng.c
// linuxdoom-1.10/FILES2
// lines 101–10541.0.1 Door Movement (p_doors.c)
EV_DoDooris invoked when a door line special is triggered.
// linuxdoom-1.10/p_doors.c
// lines 263–267- Creates and initializes a new door thinker.
// linuxdoom-1.10/p_doors.c
// lines 283–287T_VerticalDoorthinker controls movement based on door direction.
// linuxdoom-1.10/p_doors.c
// lines 63–67- Door closes by moving floor plane down.
// linuxdoom-1.10/p_doors.c
// lines 119–123- Door opens upward until reaching topheight.
// linuxdoom-1.10/p_doors.c
// lines 168–17341.0.2 Platform Logic (p_plats.c)
- Implements elevator platforms with various states.
// linuxdoom-1.10/p_plats.c
// lines 19–21EV_DoPlat(line, type, amount)creates platform thinkers.
// linuxdoom-1.10/p_plats.c
// lines 138–142- Initializes and registers platform.
// linuxdoom-1.10/p_plats.c
// lines 174–178T_PlatRaisethinker updates movement.
// linuxdoom-1.10/p_plats.c
// lines 52–56T_MovePlaneraises platform.
// linuxdoom-1.10/p_plats.c
// lines 59–6341.0.3 Floor Logic (p_floor.c)
- Handles raising, lowering, and stair building.
// linuxdoom-1.10/p_floor.c
// lines 19–21T_MovePlaneadjusts floor plane during door closing.
// linuxdoom-1.10/p_doors.c
// lines 120–123- General
T_MovePlaneusage for platforms.
// linuxdoom-1.10/p_plats.c
// lines 59–62T_MovePlanefunction drives motion towarddest.
// linuxdoom-1.10/p_floor.c
// lines 49–53T_MoveFloorupdates floor motion.
// linuxdoom-1.10/p_floor.c
// lines 209–21341.0.4 Ceiling Logic (p_ceilng.c)
- Controls ceiling states and movement types.
// linuxdoom-1.10/p_ceilng.c
// lines 19–21T_MoveCeilinghandles active ceiling behavior.
// linuxdoom-1.10/p_ceilng.c
// lines 171–174P_ActivateInStasisCeilingresumes paused crushers.
// linuxdoom-1.10/p_ceilng.c
// lines 52–55- Ceiling thinkers for linedef-triggered movement.
// linuxdoom-1.10/p_ceilng.c
// lines 185–192fastCrushAndRaiselogic.
// linuxdoom-1.10/p_ceilng.c
// lines 195–203- Initial state setup for crushers.
// linuxdoom-1.10/p_ceilng.c
// lines 210–218raiseToHighestlogic.
// linuxdoom-1.10/p_ceilng.c
// lines 219–227- Crushing movement downward.
// linuxdoom-1.10/p_ceilng.c
// lines 233–243- Summary: all sector motion (doors, platforms, floors, ceilings) use thinkers and
T_MovePlane.
// linuxdoom-1.10/p_ceilng.c
// lines 107–110