# Room 30: Mountain Pass

A mountain pass connecting the dense forest to the east with the highlands. Features dangerous cliff edges that can cause the player to fall. Lolotte's flying goons may appear when entering from the east, performing a dramatic fly-in sequence.

## Look Description

"A mountain range rises to the east from the forest. A narrow path winds steeply up the side of it."

## Interactions

| Status | Behavior Type | Command | Response |
|--------|--------------|---------|----------|
| TODO | Action | `climb/boulder` | "You don't have the time to climb rocks." (Print 30 0) |
| TODO | Look | `look/path` | "The narrow path dangerously winds its way up the steep mountains." (Print 30 1) |
| TODO | Look | `look/boulder` | "There are rocks here and there." (Print 30 2) |
| TODO | Look | `look/goon,man,person` | If goon present: "Lolotte's goons are not appealing at all! Besides having an unnatural pallor to their skin, the goons are creepy little creatures who fly upon wings that resemble those of bats." (Print 30 3). If no goon: "You don't seen one here." (Print 30 4) |
| TODO | Look | `look`, `look/around`, `look/room` | "A mountain range rises to the east from the forest. A narrow path winds steeply up the side of it." (Print 30 5) |

## Scripts

| Status | Behavior Type | Name | Trigger | Behavior |
|--------|--------------|------|---------|----------|
| TODO | Interaction | shortFall | Player walks into control area $0010 (shallow fall zone) | Triggers short fall sequence - plays fall sound (51), plays cuckoo sound, player falls with view 17 animation, transitions to swimming view (21), then returns to normal walking |
| TODO | Interaction | deadFall | Player walks into control area $0004 (deep pit/death zone) | Triggers deadly fall sequence - plays fall sound (51), player falls with view 17 animation, transitions to view 33 (death), shakes screen, prints warning message (Print 30 6), sets global127 to 1 (player death flag) |
| TODO | Interaction | deadMagenta | Player walks into control area $0020 (magenta death zone) | Triggers deadly fall sequence - identical to deadFall but uses different control area check |
| TODO | Interaction | henchFlyIn | Entering room 30 from room 92 or 79 while in flying form (view 80) | Flying cutscene - henchman flies in from above with theme music (29), creates two goon actors (newAct, newAct_2) with bat-like wings, they fly to positions and leave |
| TODO | Background | h1Actions | Triggered by henchFlyIn script | Controls first goon's movement - flies from entry point to position 145,40, then flies off-screen upward and disposes |
| TODO | Background | h2Actions | Triggered by henchFlyIn script | Controls second goon's movement - flies from entry point to position 175,40, then flies off-screen upward and disposes |

## Technical Notes

- **Room Number**: 30
- **Picture**: 30
- **Region**: 508, 511
- **Exits**: North→24, East→79, West→29
- **Music**: Sound 29 (henchFlyIn theme), Sound 51 (fall sound), Sound 80 (cuckoo sound)

### State Variables

| Variable | Values | Description |
|----------|--------|-------------|
| `global100` | 0, 1 | Controls whether room overlay (130) is shown |
| `global101` | 0 | Unknown, set to 0 in init |
| `global127` | 0, 1 | Player death flag - set to 1 when player dies from falling |
| `gEgoOnControl` | bitmask | Current control area under player |
| `theGEgoOnControl` | bitmask | Previous control area under player (for change detection) |
| `newAct` | 0, object | First goon actor instance (created during henchFlyIn) |
| `newAct_2` | 0, object | Second goon actor instance (created during henchFlyIn) |
| `local4` | 0, 1 | Flag indicating henchman 1 has left the area |
| `local5` | 146, 154, 165 | Target Y position for fall animation based on X position |

### Special Mechanics

- Control areas: Room has three distinct control areas that trigger different fall behaviors
  - $0010 (shallow): Triggers shortFall - non-lethal fall
  - $0004 (deep pit): Triggers deadFall - deadly fall
  - $0020 (magenta): Triggers deadMagenta - deadly fall
- Henchman fly-in: Only triggers when entering from room 92 or 79 while in flying form (view 80)
- Death handling: Both deadly fall scripts set global127 to 1, which likely triggers game over
- Entry positioning: Player starts at different positions based on previous room
- Horizon handling: When entering via henchFlyIn, horizon is set to -1000 to allow flying entry

### Entry Points

| From Room | Entry Condition | Player Position/State |
|-----------|----------------|----------------------|
| West (29) | Normal | x: 2 |
| North (24) | Normal | x: 112, y: horizon+2 |
| 0 (new game) | Normal | x: 183, y: 123 |
| 92 | Flying (view 80) | Flying in from above with henchFlyIn script |
| 79 | Flying (view 80) | Flying in from east with henchFlyIn script |
| 79 | Not flying | x: 318, y: 100 |
