# Room 60: Bedroom

This is the player's bedroom in the haunted castle tower. The room features a bed, window with view, fireplace, carpet, chest/dresser, chandelier, and a ladder leading up to an attic (room 63). A ghost/fishwife NPC appears in the room under specific quest conditions. The player can climb the ladder to reach the attic or exit through the window area to room 68.

## Look Description

"You are in a small but comfortable bedroom. Through the window you can see the castle grounds. A bed occupies one corner, and a ladder leads up through a trapdoor in the ceiling."

## Interactions

| Status | Behavior Type | Command | Response |
|--------|--------------|---------|----------|
| TODO | Look | `look` / `look around` / `look room` | "[Look room description]" (Print 60 0) |
| TODO | Look | `look` (when ghost present) | "[Ghost description]" (Print 60 1, conditional on global134==3) |
| TODO | Look | `look under bed` | "[Under bed description]" (Print 60 2) |
| TODO | Look | `look bed` | "[Bed description]" (Print 60 3) |
| TODO | Look | `look window` (when near window) | "[Window description]" (Print 60 4) |
| TODO | Look | `look window` (when far from window) | "[Not near window message]" (Print 800 1) |
| TODO | Look | `look fireplace` | "[Fireplace description]" (Print 60 5) |
| TODO | Look | `look carpet` | "[Carpet description]" (Print 60 6) |
| TODO | Look | `look in chest` / `look in dresser` / `look in drawer` | "[Container contents]" (Print 60 7) |
| TODO | Look | `look chandelier` | "[Chandelier description]" (Print 60 8) |
| TODO | Look | `look chest` / `look dresser` | "[Furniture description]" (Print 60 9) |
| TODO | Look | `look wall` | "[Wall description]" (Print 60 10) |
| TODO | Look | `look dirt` / `look down` | "[Floor description]" (Print 60 11) |
| TODO | Look | `look ceiling` (with ladder) | "[Ceiling with ladder]" (Print 60 12) |
| TODO | Look | `look ceiling` (without ladder) | "[Ceiling without ladder]" (Print 60 13) |
| TODO | Look | `look in trapdoor` / `look up trapdoor` (with ladder) | "[Trapdoor open]" (Print 60 14) |
| TODO | Look | `look in trapdoor` / `look up trapdoor` (without ladder) | "[Trapdoor closed]" (Print 60 15) |
| TODO | Look | `look up` (with ladder) | "[Looking up at open trapdoor]" (Print 60 16) |
| TODO | Look | `look up` (without ladder) | "[Nothing to look up at]" (proc0_15) |
| TODO | Look | `look ladder` (with ladder visible) | "[Ladder description]" (Print 60 17) |
| TODO | Look | `look ladder` (without ladder) | "[No ladder visible]" (Print 60 18) |
| TODO | Look | `look trapdoor` (with ladder) | "[Open trapdoor]" (Print 60 19) |
| TODO | Look | `look trapdoor` (without ladder) | "[Closed trapdoor]" (Print 60 20) |
| TODO | Action | `open trapdoor` (with ladder) | "[Already open]" (Print 60 21) |
| TODO | Action | `open trapdoor` (without ladder) | "[Opens trapdoor]" (Print 60 22) |
| TODO | Action | `close trapdoor` (with ladder) | "[Closes trapdoor]" (Print 60 23) |
| TODO | Action | `close trapdoor` (without ladder) | "[Already closed]" (Print 60 24) |
| TODO | Action | `open chest` / `open dresser` / `open drawer` | "[Container already open]" (Print 60 7) |
| TODO | Action | `lay in bed` / `sleep in bed` / `get in bed` | "[Cannot sleep now]" (Print 60 25) |
| TODO | Action | `climb ladder` (with ladder, near ladder, below top) | "[Climb ladder to attic]" (triggers climbLadder script) |
| TODO | Action | `climb ladder` (with ladder, not close enough) | "[Not near ladder]" (Print 800 1) |
| TODO | Action | `climb ladder` (with ladder, at top) | "[Already at top]" (Print 60 26) |
| TODO | Action | `climb ladder` (without ladder) | "[No ladder]" (Print 60 27) |
| TODO | Action | `climb` | "[Climb what?]" (Print 60 28) |
| TODO | Action | `move` | "[Cannot move that]" (Print 60 29) |
| TODO | Look | `look ghost` / `look fishwife` (when ghost present) | "[Ghost description]" (Print 60 1) |
| TODO | Look | `look chair` (when ghost present) | "[Chair description]" (Print 60 30) |
| TODO | Talk | `talk ghost` / `talk fishwife` / `talk` (when ghost present) | "[Ghost dialogue]" (Print 60 31) |
| TODO | Action | `get ghost` / `get fishwife` (when ghost present) | "[Cannot take ghost]" (Print 60 32) |
| TODO | Action | `get/capture ghost` / `get/capture fishwife` (when ghost present) | "[Cannot capture ghost]" (Print 60 33) |
| TODO | Action | `kill ghost` / `kill fishwife` (when ghost present) | "[Cannot kill ghost]" (Print 60 34) |
| TODO | Action | `kiss ghost` / `kiss fishwife` / `kiss` (when ghost present) | "[Ghost reaction]" (Print 60 35) |
| TODO | Action | `help ghost` / `help fishwife` (when ghost present) | "[Ghost help response]" (Print 60 36) |
| TODO | Inventory | `deliver [item]` (to ghost, when near and has item) | "[Gift accepted - wedding ring]" (Print 60 37, +2 score, clears ghost) |
| TODO | Inventory | `deliver [item]` (to ghost, wrong item) | "[Ghost rejects item]" (Print 60 38) |
| TODO | Inventory | `deliver [item]` (when not near ghost) | "[Not near ghost]" (Print 800 1) |

## Scripts

| Status | Behavior Type | Name | Trigger | Behavior |
|--------|--------------|------|---------|----------|
| TODO | Interaction | climbLadder | Player types `climb ladder` when ladder is visible and player is positioned below/at ladder | Disables actor collisions, moves ego to ladder position (161,140), plays climbing view animation (view 77, loop 0), moves ego up to position (161,48), sets climbing state (global204=0, global205=1), then transports to Room 63 (attic) |
| TODO | Interaction | climbDown | Entering room from Room 63 (attic) via `gPrevRoomNum == 68` check | Plays descending animation (view 77, loop 1 in reverse), moves ego from trapdoor position down to floor (161,140), restores normal view (view 4, loop 3), resets climbing state (global205=0), enables actor collisions |

## Technical Notes

- **Room Number**: 60
- **Picture**: 60
- **Region**: 603 (Haunted House - controls ghost appearance)
- **Exits**: East→68 (through window/control area), Up→63 (via ladder when visible)
- **Synonyms**: `room` = `bedroom`

### State Variables

| Variable | Values | Description |
|----------|--------|-------------|
| `global100` | `true`, `false` | Controls ghost/fishwife visibility in room |
| `global134` | Various values | Quest progression state - ladder appears when > 4; ghost appears when == 3 |
| `global133` | Room number | Current room number - compared to trigger ghost interactions |
| `global225` | `1` | Ghost quest active flag - when == 1 enables ghost interactions |
| `local1` | `0`, `1` | Ladder/trapdoor state - set to 1 when global134 > 4 (ladder visible) |
| `global204` | `0`, `1` | Climbing state - set to 0 when climbing up |
| `global205` | `0`, `1` | Climbing flag - set to 1 when ascending, 0 when on ground |
| `newView` | View object | Ladder upper portion (view 529, loop 1) |
| `newView_2` | View object | Ladder lower portion (view 529, loop 0) |

### Additional Technical Details

- Room applies Region 603 in init for haunted house logic
- When global100 is true: displays ghost visual elements (view 648, prop 536 with animation)
- When global134 > 4: loads and displays ladder views (529), sets local1 = 1
- Entry from Room 68 positions ego at (68,159) with view 4 (falling/descending)
- Entry from other rooms positions ego at (161,59) with view 77, triggers climbDown script
- Exit to Room 68 triggered by control area $0040 (window/door area)
- Ghost interactions only active when: global134==3 AND global225==1 AND global100==true
- Giving item 28 (wedding ring) to ghost: removes item, awards 2 points, calls proc0_10 to clear ghost
- Ladder climb checks: player must be within distance 10 of ladder and at or below ladder's Y position
