Files
kq4-decompile/rooms/kq4-071-cave-entrance.md
2026-02-20 10:16:03 -08:00

84 lines
3.9 KiB
Markdown

# Room 71: Cave Entrance
## High-Level Summary
Room 71 is the cave entrance area in the Troll Cave region. It serves as a transitional room connecting the upper area (room 72) and the south entrance (room 74). The room features a dark cave environment with a waterfall visible outside, a pile of bones that can be collected, and dynamic lighting effects based on whether the player has the lantern. This room is notable for its darkness mechanic - without the lantern, the cave is extremely dark, and with the lantern, visibility is still limited.
## Look Description
"This is the darkest cave you've ever seen!" (varies based on lantern possession)
## Interactions
| Status | Behavior Type | Command | Response |
|--------|--------------|---------|----------|
| TODO | Look | `look [at/around]`/`look/room/cave` | "This is the darkest cave you've ever seen! Even the lantern does little good." or "This is the darkest cave you've ever seen!" (with/without lantern). If no bone: "By the light of the cave entrance, you can see a pile of bones." |
| TODO | Look | `look/falls`/`look/out` | "Outside the cave, you see the waterfall." |
| TODO | Look | `look/heap` | "You see a pile of bones by the cave entrance." |
| TODO | Look | `look/bone`/`look/dirt`/`look/down` (no bone) | "You see a pile of bones by the cave entrance." |
| TODO | Get | `get/bone` | "You don't need another one." (if already have bone in inventory) |
| TODO | Get | `get/bone` | Gets the bone when near the pile, awards 2 points, triggers pickup animation |
| TODO | Get | `get/bone` | "You can't get that." (if not near the bone pile) |
## Scripts
| Status | Behavior Type | Name | Trigger | Behavior |
|--------|--------------|------|---------|----------|
| TODO | Interaction | `getDown` | Player picks up bone (item 23) | Plays a bending-down animation using view 940, temporarily stores ego's current view, cycles through cel animations for picking up the item, then restores the player's view |
## Technical Notes
- **Room Number**: 71
- **Picture**: 71
- **Style**: $0010 (hex)
- **Region**: 605 (Troll Cave)
- **Exits**:
- North → Room 72 (via control area $0020)
- South → Room 74 (standard exit)
- West → Room 70 (via control area $0040)
- **Music**: Not specified
- **Views Loaded**: 800, 511, 940
### State Variables
| Variable | Values | Description |
|----------|--------|-------------|
| `global101` | 1 | Room initialization flag (set to 1) |
| `global126` | 0, 1 | Darkness visibility flag |
| `global182` | 0, 1 | Bone collected flag (set to 1 after collection) |
| `global189` | 0, 1 | Troll region active flag |
| `global228` | string buffer | Format string buffer for dynamic text |
| `newView` | View object or 0 | Lantern view object (created when player has no lantern) |
| `newProp` | Prop object | Visible bone pile prop (view 511, cel 0) |
| `newProp_2` | Prop object or 0 | Hidden bone prop (view 511, cel 1) - only created if bone is in room |
### Inventory Items
- **Item 23**: Bone - Can be picked up from the cave entrance, awards 2 points when collected
### Control Areas
- `$0040`: Triggers exit to Room 70 (west)
- `$0020`: Triggers exit to Room 72 (north)
### Darkness Mechanic
The room uses `proc0_20` to check if player has the lantern (item 24). Without the lantern:
- The cave appears very dark
- A lantern view object (view 800) is created at position 108, 132
- global126 is set to 0
- Different look descriptions are shown based on lantern possession
### Bone Collection
The bone (inventory item 23) can be collected when:
1. The bone is in the room (owner is 71)
2. Player is within 15 pixels of the bone prop (newProp_2)
3. When collected: bone is added to inventory, getDown script plays animation, global182 is set to 1, score increases by 2
### Entry Points
- From Room 72 (north): Player positioned at 208, 104
- From Room 74 (south): Player positioned at 170, 183
- From other rooms: Player positioned at 78, 112, darkness initialized