# Room 69: The Crypt

This is the crypt room in King's Quest IV, featuring an upper platform with a rope ladder, a coffin containing a mummy, and Pandora's Box on the floor. The player must figure out how to lower the rope ladder to access the platform, avoid or defeat the mummy, and obtain Pandora's Box.

## Look Description

"What an incredible place! This looks like an ancient burial tomb, with hieroglyphics written on the walls, and an old coffin against the far wall. %s %s"

The description dynamically includes:
- If rope not lowered: "A pile of rope is at the edge of the upper platform."
- If Pandora's Box is in room: "You see an odd-looking, little chest here. It must be Pandora's Box."

## Interactions

| Status | Behavior Type | Command | Response |
|--------|--------------|---------|----------|
| TODO | Look | `look[<around][/!*]` / `look/room,crypt` | "What an incredible place! This looks like an ancient burial tomb, with hieroglyphics written on the walls, and an old coffin against the far wall." (Print 69 0) |
| TODO | Look | `look/epitaph` | "You cannot read the ancient hieroglyphics." (Print 69 1) |
| TODO | Look | `look<in/casket[<elderly]` (when close) | "You don't want to do that!" (Print 69 2) |
| TODO | Look | `look/casket` | "The lid of the coffin is decorated with hieroglyphics." (Print 69 3) |
| TODO | Look | `look/hemp,ladder` / `look/hemp[<heap]` | If rope not lowered: "You see a pile of rope on the end of the platform." (Print 69 4). If rope lowered: "A rope ladder extends from the platform down to the bottom of the crypt." (Print 69 5) |
| TODO | Look | `look/platform` | If rope not lowered: "You see a pile of rope on the end of the platform." (Print 69 4). If rope lowered: "The platform towers over the floor of the crypt." (Print 69 6) |
| TODO | Look | `look/wall` | "There are ancient hieroglyphics on the walls." (Print 69 7) |
| TODO | Look | `look/dirt` / `look<down` | If box in room: "Pandora's Box is on the floor of the crypt." (Print 69 8). If box not in room: "There is nothing of interest on the floor." (Print 69 9) |
| TODO | Look | `look/mummy` | If mummy active: "This mummy appears to be at least a thousand years old! Its' wrappings are loose and decayed...and it stinks!" (Print 69 10). If mummy not active: "There is no mummy here." (Print 69 11) |
| TODO | Look | `look/box[<pandora]` | If box in room: "Pandora's Box is on the floor of the crypt." (Print 69 8). If player has box: event not claimed (allows opening). If box not present: "There is no box here." (Print 69 12) |
| TODO | Action | `get,move,lower/hemp,ladder,heap` | If rope already lowered: "The rope is fine where it is." (Print 69 13). If too far: generic distance message. Otherwise: "You reach down and get the pile of rope. To your happy surprise, you find that the rope is actually a rope ladder attached to the end of the platform! Gladly, you throw the rope ladder over the edge of the platform, where it falls to the floor below." (Print 69 14) - awards 2 points |
| TODO | Action | `climb[/(hemp,ladder)]` | If rope not lowered: generic "can't do that" (Print 800 3). If climbing down or not on platform: descends ladder if close enough. If climbing up and on platform: climbs up to platform |
| TODO | Action | `get/box` | If not on platform: "Not from up here!" (Print 69 15). If already has box: "You already have it." (Print 69 16). If box not in room: "It's not here." (Print 69 17). If too far: generic distance message. Otherwise: triggers stoop script to pick up box |
| TODO | Action | `place,drop,return/box` | If doesn't have box: "You don't have it." (Print 69 18). If not on platform: "Not from up here!" (Print 69 15). Otherwise: triggers putBack script to place box back |
| TODO | Action | `open/box` | If doesn't have box: "You don't have it." (Print 69 18). If not on platform: "You can't do here." (Print 69 19). Otherwise: event not claimed (allows box opening) |
| TODO | Action | `read/(epitaph,wall,casket,lid)` | "You cannot read the ancient hieroglyphics." (Print 69 1) |
| TODO | Action | `get,rob,get,move/casket` | "It's too heavy to move." (Print 69 20) |
| TODO | Action | `bang[<on]/casket` | If close enough: "There's no answer." (Print 69 21). If too far: "You'll have to get a little closer, Rosella." (Print 69 22) |
| TODO | Action | `open/casket,lid` | If not on platform: triggers proc0_13 (likely generic response). If lid open: "It's already closed!" (Print 69 23). Otherwise: "You don't want to do that!" (Print 69 2) |
| TODO | Action | `get,move/casket` | If on platform: "The coffin is much too heavy for you to move." (Print 69 24). Otherwise: triggers proc0_13 |
| TODO | Talk | `converse` | If mummy active: "You attempt a conversation with the old mummy, and receive nothing but a low moan in reply." (Print 69 25). If no mummy: "There is no one here who you can talk to." (Print 69 26) |
| TODO | Talk | `/mummy` | If no mummy: "There is no mummy here." (Print 69 11) and claimed. If mummy active: various responses based on verb |
| TODO | Talk | `/mummy kill` | "How can you kill something that is already dead?" (Print 69 27) |
| TODO | Talk | `/mummy get,capture` | "Why would you want it?" (Print 69 28) |
| TODO | Talk | `/mummy kiss` | "What a horrible thought!" (Print 69 29) |
| TODO | Talk | `/mummy help,save` | "It's beyond help." (Print 69 30) |
| TODO | Inventory | `deliver/*/mummy` | If mummy active: "The mummy doesn't need anything." (Print 69 31). If no mummy: "There is no mummy here." (Print 69 11) |

## Scripts

| Status | Behavior Type | Name | Trigger | Behavior |
|--------|--------------|------|---------|----------|
| TODO | Interaction | `doMummy` | Player approaches too close to coffin (within 25 pixels) while not in safe zone (not in rect 138,110,192,125) | Mummy animation sequence: appears, walks toward player. If player has Scarab (item 7): mummy runs away in fear, player gains points. If no Scarab: mummy chases and kills player (sets global127 = 1) |
| TODO | Interaction | `DownLadder` | Player climbs up/down the rope ladder | Complex climbing animation sequence. When climbing up: requires player to be in ladder area (rect 99,142,120,158). Sets local7 to 1 when on platform. When on platform, triggers doMummy script |
| TODO | Interaction | `DropRope` | Player uses get/lower on rope | Player walks to rope, pulls rope, rope lowers to floor (sets global170 = 1). Awards 2 points |
| TODO | Background | `cryptFall` | Player steps on certain control area (onControl: 1 & $0004) while not already in a script | Player falls into pit with animation, screen shakes. Prints death message "You will be the next victim of the mummy!!" and sets global127 = 1 (death) |
| TODO | Interaction | `stoop` | Player uses get/box while on platform and box is present | Player performs stoop animation, picks up Pandora's Box, box is removed from room. Awards 4 points (or -2 if global169 = 0), sets global218 = 1, global182 = 1 |
| TODO | Interaction | `putBack` | Player uses place/drop/return/box while on platform and has box | Player places box back on floor at current position. If global169 = 0: stops all sounds, plays sound 50, awards 2 points. Creates new box actor at appropriate position |

## Technical Notes

- **Room Number**: 69
- **Picture**: 69
- **Style**: $0010 (DISPLAY_FADE)
- **Exits**: 
  - Falling through pit (control area $0040) → Room 18
- **Music**: 
  - Fall sound: 51 (fallMusic)
  - Mummy music: 27 (mummyMusic)

### State Variables

| Variable | Values | Description |
|----------|--------|-------------|
| `local7` | `0`, `1` | Player on ladder/platform flag (0 = on ground, 1 = on platform) |
| `local8` | `0`, `1` | Mummy active/visible flag (0 = not visible, 1 = mummy encountered) |
| `global170` | `0`, `1` | Rope lowered flag (0 = rope not lowered, 1 = rope ladder lowered to floor) |
| `global127` | `0`, `1` | Death flag (1 = player has died) |
| `global218` | `0`, `1` | Pandora's Box picked up flag (1 = box has been picked up from this room) |
| `global182` | `0`, `1` | Puzzle progress flag (set when box is picked up) |
| `global169` | `0`, `1` | Time-based flag (affects score adjustments when placing box) |

### Objects in Room

| Object | View | Description |
|--------|------|-------------|
| Platform | 520 (loop 2) | Upper platform with rope |
| Rope/Prop | 520 (loop 0) | Rope pile or ladder |
| Coffin | 522 (loop 3) | Decorative coffin |
| Coffin Lid | 522 (loop 2) | Animated lid |
| Mummy Actor | 195 | The mummy (view changes for animation) |
| Pandora's Box | 519 | Box actor (only if in room) |

### Control Areas

- `$0040` - Pitfall area (triggers cryptFall script, leads to room 18)
- `$0004` - Crypt floor trigger area (triggers fall if player walks on it incorrectly)

### Inventory Items Referenced

- Item 4: Pandora's Box
- Item 7: Scarab (needed to defeat mummy)
