72 lines
4.6 KiB
Markdown
72 lines
4.6 KiB
Markdown
# Room 53: Seven Dwarfs' Bedroom
|
|
|
|
## High-Level Summary
|
|
|
|
Room 53 is the upstairs bedroom in the Seven Dwarfs' cottage. This room contains seven small beds, one for each dwarf, along with various furniture including a chest of drawers, mirror, and window. The room initially contains significant clutter (dirty clothes and mess) that can be cleaned by the player. A dwarf patrols the room and will chase the player out if they linger too long. The room connects to the main floor via stairs leading to room 54.
|
|
|
|
## Look Description
|
|
|
|
"You have entered the small upstairs bedroom of the Seven Dwarfs."
|
|
|
|
## Interactions
|
|
|
|
| Status | Behavior Type | Command | Response |
|
|
|--------|--------------|---------|----------|
|
|
| TODO | Look | `/bed` | "There are seven little beds." (Print 53 1) |
|
|
| TODO | Look | `/stair` | "The narrow stairs lead downward." (Print 53 2) |
|
|
| TODO | Look | `<under/bed` | "There is nothing under the beds." (Print 53 3) |
|
|
| TODO | Look | `/window` | "You see the forest out the window." (Print 53 4) - only if player in rect 211,125,271,146 |
|
|
| TODO | Look | `<in/chest,dresser,drawer` | "No. It's private." (Print 53 5) |
|
|
| TODO | Look | `/chest,dresser` | "The dwarfs share one chest of drawers." (Print 53 6) |
|
|
| TODO | Look | `/mirror` | "You look in the mirror and see the reflection of a poor, but beautiful, peasant girl." (Print 53 7) - only if player in rect 217,142,295,161 |
|
|
| TODO | Look | `/shelf` | "Quit being a snoop, Rosella!" (Print 53 8) |
|
|
| TODO | Look | `/wall` | "There is nothing of importance on the walls." (Print 53 9) |
|
|
| TODO | Look | `/dirt` or `<down` | "There is nothing interesting on the floor." (Print 53 10) |
|
|
| TODO | Look | `/carpet,carpet` | "A nice braided rug lies on the floor." (Print 53 11) |
|
|
| TODO | Look | `look[<around][/room]` | Dynamic: "My goodness, these dwarfs are sloppy!" if not cleaned, empty if cleaned (Print 53 12) |
|
|
| TODO | Action | `clean/room` or `clean[/!*]` | Triggers cleanBedroom script if room not clean, else "The house is nice and clean now." (Print 53 0) |
|
|
| TODO | Action | `create/bed` or `dust,sweep[/room,dirt,furniture]` | "The house needs more than that!" (Print 53 13) if room clean, otherwise "The house needs more than that!" |
|
|
| TODO | Action | `close,close/drawer,dresser,chest` | "You can't. It's too full of dirty, messy, dwarf clothes." (Print 53 14) |
|
|
| TODO | Action | `open/chest,dresser,drawer` | "No. It's private." (Print 53 5) |
|
|
| TODO | Action | `get<in,on/bed` or `sleep,lay[<down,on,in]` | "You have better things to do." (Print 53 15) |
|
|
|
|
## Scripts
|
|
|
|
| Status | Behavior Type | Name | Trigger | Behavior |
|
|
|--------|--------------|------|---------|----------|
|
|
| TODO | Interaction | `cleanBedroom` | Player enters "clean room" command | Player animates through a choreographed cleaning sequence, walking to each area and using a cleaning view (63) to remove clutter items (newView_6 through newView_24). Progresses through 19 states disposing of different clutter objects. Sets global115 when complete. |
|
|
| TODO | Background | `chaseEgo` | Player remains in room for 60+ seconds (state 0) | Dwarf (newAct using view 290) approaches player if they linger in the center area (rect 95,127,241,145). Prints "Oh, oh! You've been caught trespassing!" (Print 53 16) and forces player to room 54. |
|
|
|
|
## Technical Notes
|
|
|
|
- **Room Number**: 53
|
|
- **Picture**: 53
|
|
- **Region**: 601 (DwarfHouse)
|
|
- **Exits**: East→54 (edge trigger at control area $0040)
|
|
- **Music**: Sound 62 (dwarf house ambient, played via region 601)
|
|
|
|
### State Variables
|
|
|
|
| Variable | Values | Description |
|
|
|----------|--------|-------------|
|
|
| `global102` | `0`, `1` | Room cleanliness state - 0 = dirty/messy, 1 = cleaned |
|
|
| `global115` | `0`, `1` | Cleaning in progress flag - 1 when cleanBedroom script is running |
|
|
| `global122` | `0`, `1` | Dwarf chase triggered - prevents re-triggering during chase sequence |
|
|
| `global189` | `0`, `1` | Region 601 initialization flag |
|
|
| `global204` | `0`, `1` | Script state tracking for cleanBedroom |
|
|
| `global205` | `0`, `1` | Script state tracking for chaseEgo |
|
|
| `global228` | string | Message buffer for dynamic look description |
|
|
|
|
### Clutter Objects
|
|
|
|
The room contains numerous dirt/mess view objects (views 675, 676) that are disposed of during the cleaning sequence:
|
|
- newView_6 through newView_17: Loop 0-2 of view 676 (various floor clutter)
|
|
- newView_18 through newView_24: Loop 0 of view 675 (bedroom items)
|
|
- newView: View 676 loop 0 cel 0
|
|
- newView_2 through newView_5: Additional clutter items
|
|
|
|
### Entry Conditions
|
|
|
|
- Player enters from room 54 or new game (gPrevRoomNum = 54 or 0): Positioned at 72,131 with view 4
|
|
- Edge trigger at east side (control $0040) transitions to room 54
|