# Room 63: Attic

The attic is a cramped, dusty space in the old haunted house. It features an open trapdoor with a ladder leading down to the bedroom below, an interesting wooden chest near the trapdoor, and various junk and boxes scattered throughout. The little boy ghost haunts this room, sitting on top of the chest. The player can interact with the chest to find sheet music, and can climb down the ladder to reach the bedroom below. There's also a window looking out toward the cemetery.

## Look Description

"After adjusting your eyes to the gloom, you soon see that you have stumbled upon the musty attic of the old house. The trapdoor in the floor is open, and from it, a ladder leads down to the room below. Useless junk and boxes clutter the room. There is an interesting chest near the open trapdoor."

## Interactions

| Status | Behavior Type | Command | Response |
|--------|--------------|---------|----------|
| TODO | Look | `look boxes` | "There is nothing of interest in the old boxes." |
| TODO | Look | `look birdcage` / `look in birdcage` | "It's just an old bird cage...nothing interesting there." |
| TODO | Look | `look in chest` | If chest closed: If ghost on chest (global134=5): "The top of the wooden chest is currently occupied by a naughty little ghost." / Otherwise: "The wooden chest is not open." If chest open: If has sheet music: "You peek into the open chest, and find...an old set of sheet music! You take the sheet music and carry it with you." / Otherwise: "You peek into the open chest, and find...nothing." |
| TODO | Look | `look chest` | If ghost on chest (global134=5): "The top of the wooden chest is currently occupied by a naughty little ghost." / Otherwise: "An interesting wooden chest catches your attention." |
| TODO | Look | `look in trapdoor` | If near trapdoor (in rect 135,138,182,148): "You can see into the room below. There's nothing there." / Otherwise: "You can't see from here." |
| TODO | Look | `look trapdoor` / `look down` | "The trapdoor in the attic floor is open. From it, a ladder leads to the room below." |
| TODO | Look | `look ladder` | "A ladder descends from the open trapdoor into the room below." |
| TODO | Look | `look window` | "You see the cemetery out the window." |
| TODO | Look | `look junk` | "The old junk is useless." |
| TODO | Look | `look wall` | "There is nothing of importance on the walls." |
| TODO | Look | `look dirt` / `look floor` | "There is nothing of interest on the floor." |
| TODO | Look | `look ghost` | If ghost in this room (global133=63): "The little boy ghost laughs, and refuses to budge from his seat on top of the chest. It might help if he had a toy to play with." / Otherwise: "What ghost?" |
| TODO | Look | `look around` / `look room` / `look [<around][/room]` | "After adjusting your eyes to the gloom, you soon see that you have stumbled upon the musty attic of the old house. The trapdoor in the floor is open, and from it, a ladder leads down to the room below. Useless junk and boxes clutter the room. There is an interesting chest near the open trapdoor." |
| TODO | Action | `play boy` / `play ghost` | If ghost in room (global133=63): "The boy ghost laughs and teases, and refuses to leave his spot on top of the chest." / Otherwise: "There is no need to do that." |
| TODO | Action | `climb ladder` / `climb down` | If in rect (131,138,205,159): Triggers climbDown script to go to room 60 / Otherwise: "You're not close enough." |
| TODO | Action | `close trapdoor` | "The trapdoor is already open." |
| TODO | Action | `open trapdoor` | "The trapdoor is already open." |
| TODO | Get | `get chest` | "The chest is too heavy. You cannot carry it." |
| TODO | Get | `get ghost` / `move ghost` / `detach ghost` | If ghost in room (global133=63): "You're afraid to get too near the ghost." / Otherwise: "What ghost?" |
| TODO | Action | `close chest` | If chest open: Closes chest, sets local0=0 / Otherwise: "The chest is already closed." |
| TODO | Action | `open chest` | If already open: "The chest is already open." / If ghost on chest (global134=5): "The top of the wooden chest is currently occupied by a naughty little ghost." / If in rect (141,120,193,129): Opens chest, sets local0=1 / Otherwise: "You're not close enough." |
| TODO | Inventory | `use toy` / `deliver toy/ghost` | If boy ghost in room 63 and has toy horse (item 30): Ghost accepts toy and disappears, player gets 2 points (handled by boyScript in region 603) |

## Scripts

| Status | Behavior Type | Name | Trigger | Behavior |
|--------|--------------|------|---------|----------|
| TODO | Interaction | climbDown | Player types `climb ladder` or `climb down` when in position | Stops player motion, changes view to descending animation (view 40, loop 1), then to climbing down (view 77, loop 2), and transitions to room 60 |
| TODO | Interaction | climbIn | Room initialization | Plays entry animation when entering room 63 from below - Rosella climbs up through trapdoor using ladder (view 77 loop 2, then view 40 loop 1), then returns to normal walking view |
| TODO | Interaction | fallDead | Player walks into control area $0004 (pit/hole) | Falls to death sequence - plays fall sound (52), shows falling animation (view 44), then death scene with screen shake and game over |

## Technical Notes

- **Room Number**: 63
- **Picture**: 63
- **Region**: 603 (GhostWander - Haunted House)
- **Exits**: Down→60 (via ladder at trapdoor position)
- **Music**: Sound 52 (falling sound)

### State Variables

| Variable | Values | Description |
|----------|--------|-------------|
| `local0` | `0`, `1` | Chest state: 0 = closed, 1 = open |
| `global134` | `0-255` | Ghost type/state for region 603 (5 = boy ghost active) |
| `global133` | Room number | Current room where ghost is located |
| `global182` | `0`, `1` | Sheet music taken flag (1 = taken) |
| `global204` | `0`, `1` | Climbing state - down indicator |
| `global205` | `0`, `1` | Climbing state - up indicator |
| `global100` | `0`, `non-zero` | Controls visibility of certain props (e.g., candelabra when non-zero) |

### Additional Technical Details

- Entry from Room 60: Player climbs up ladder, triggers climbIn script
- Room loads picture 60 as background during fall/death sequence
- Player cannot fall into pit in this room - control area $0004 triggers death sequence
- Chest can only be opened when player is in rect (141,120,193,129) - near the chest position
- Trapdoor is always open in this room (open/close are no-ops)
- Ladder descent only works when player is in rect (131,138,205,159) - near the trapdoor
- The ghost boy (boyScript from region 603) sits on top of the chest when global134=5 and global133=63
- Player can get sheet music (item 26) from chest when it's open and they haven't taken it yet (+2 score)
- Uses region 603 for boy ghost NPC behavior and wandering

### Boy Ghost Interactions (from Region 603)

The boy ghost in this room responds to various commands through the GhostWander region (603):
- `deliver toy` / `give toy`: Gives toy horse (item 30) to ghost, triggers ghost to leave (+2 score)
- `talk` / `converse`: Ghost just giggles
- `look ghost`: Describes ghost sitting on chest
- `play ghost`: Ghost laughs and refuses to move
- `get ghost` / `capture ghost`: Cannot capture ghost
- `kill ghost`: Cannot kill already dead ghost
- `help ghost`: "You'd like to help the little boy ghost, but how can you do that?"
