Files
kq4-decompile/rooms/kq4-010-forest-path.md
2026-02-20 10:16:03 -08:00

78 lines
5.9 KiB
Markdown

# Room 10: Forest Path
This is a forest path room in King's Quest IV connecting multiple areas of the game world. The room features a dense pine forest surrounding the player, with a cottage visible in the distance to the north. An ogre may randomly appear and chase the player, representing a dangerous encounter. Birds fly in the sky overhead. The room serves as a transit hub connecting the eastern and western regions of the game map.
## Look Description
"A thick forest of pine trees surrounds you. You see a house in the distance to the north."
## Interactions
| Status | Behavior Type | Command | Response |
|--------|--------------|---------|----------|
| TODO | Look | `look cottage` | "It's too far in the distance to see it clearly." |
| TODO | Look | `look around` / `look room` | "A thick forest of pine trees surrounds you. You see a house in the distance to the north." |
| TODO | Look | `look /boulder` | "There are rocks here and there." (from Region 508) |
| TODO | Look | `look /dirt` / `look down` | "You see nothing of importance on the ground." (from Region 508) |
| TODO | Look | `look /grass` | "Pine needles, among the grass, crunch beneath your feet as you walk through the forest." (from Region 508) |
| TODO | Look | `look /bush` | "You don't see many shrubs here." (from Region 508) |
| TODO | Look | `look /flora` | "Mostly, you see pine trees." (from Region 508) |
| TODO | Look | `look /blossom` | "You don't notice many flowers here." (from Region 508) |
| TODO | Look | `look /forest` | "A forest of pine trees encircles you." (from Region 508) |
| TODO | Look | `look /crow` / `look /bird` | If raven present: "The raven doesn't look to be a friendly bird at all!" / If not: "You see small birds here and there." (from Region 508) |
| TODO | Action | `climb /boulder` | "You don't like to climb rocks." (from Region 508) |
| TODO | Get | `get /blossom` | "There aren't many flowers to pick!" (from Region 508) |
| TODO | Action | `climb /forest` | "It is difficult to climb trees while wearing that dress!" (from Region 508) |
| TODO | Talk | `converse /crow` | If raven present: "Caw, caw!" / If not: "Cheep, cheep!" (from Region 508) |
| TODO | Action | `get/capture /crow` / `get/capture /bird` | If raven present: "You wouldn't want it even if you COULD get it!" / If not: "Cheep, cheep!" (from Region 508) |
| TODO | Action | `kiss /crow` / `kiss /bird` | If raven present: "Not this bird!" / If not: "Cheep, cheep!" (from Region 508) |
| TODO | Look | `look /giant` (when ogre present) | "The ogre looks MEAN!! Better get out of there...FAST!!" (from Region 517) |
| TODO | Talk | `converse` (when ogre present) | "This is no time for conversation!" (from Region 517) |
| TODO | Action | `kill /giant` (when ogre present) | "You have no way of killing a giant ogre!" (from Region 517) |
| TODO | Action | `get/capture /giant` (when ogre present) | "That's ridiculous!" (from Region 517) |
| TODO | Action | `kiss` (when ogre present) | "He wouldn't like it, and neither would you!" (from Region 517) |
| TODO | Inventory | `deliver [item]` (when ogre present and item owned) | "You don't want to get that close to the ogre!" (from Region 517) |
| TODO | Inventory | `deliver [item]` (when ogre present and item not owned) | "You don't have it." (from Region 517) |
## Scripts
| Status | Behavior Type | Name | Trigger | Behavior |
|--------|--------------|------|---------|----------|
| TODO | Interaction | ogreActions | Random chance on room entry OR entering from room 4 without item 33 | Creates ogre actor that chases player; plays ogre theme music; ogre catches player and displays death message; sets game over state |
| TODO | Background | bird1Actions | Random chance (50%) on room entry when global100 is false | Creates animated bird in sky (view 342, loop 5), cycles between animation frames with random delays |
| TODO | Background | bird2Actions | Random chance (50%) on room entry when global100 is false | Creates second animated bird in sky (view 342, loop 4), cycles between animation frames with random delays |
| TODO | Background | ravenActions (from Region 508) | Random chance (20%) on room init | Creates raven actor that flies across screen, disposes after reaching destination |
## Technical Notes
- **Room Number**: 10
- **Picture**: 10
- **Region**: 508 (Forest Region), 517 (Ogre's Region)
- **Exits**: North→4, South→16, East→11, West→9
- **Music**: Ogre theme (sound #5, looping when ogre present)
### State Variables
| Variable | Values | Description |
|----------|--------|-------------|
| `global101` | `0` | Set to 0 on room init |
| `global189` | `0`, `1` | Ogre encounter state flag (set to 1 during chase) |
| `global165` | `4`, `5` | Ogre state tracking - 4 triggers new encounter, 5 prevents immediate re-encounter |
| `global100` | `true`, `false` | Whether overlay picture 110 is active (birds suppressed when true) |
| `local2` | `0`, `1` | Ogre encounter initialized flag |
| `ogre_present` | `true`, `false` | Whether gNewAct (ogre) exists in the cast |
### Additional Technical Details
- Synonyms defined in Ogre's Region: `kiss` = `embrace`, `giant` = `giant` = `giant` = `giant` = `man` = `giant`
- Entry from room 16 (south) positions player at y=187 with x constrained to minimum 63
- Entry from room 4 (north) positions player at horizon+2 (y=74) with x constrained to minimum 200
- Ogre uses view 250 for walking, view 78 for catching animation, view 79 for departing
- Ogre has custom movement: xStep 6, yStep 2 with Walk cycle and Avoid for pathfinding
- Random ogre spawn: 40% chance if not arriving from room 4 and no current ogre
- Guaranteed ogre spawn: 100% when arriving from room 4 without item 33
- Birds only spawn when global100 is false (overlay not active)
- Bird 1 uses view 342 loop 5, Bird 2 uses view 342 loop 4
- Room clears timers with dispose: 84 on exit
- When ogre catches player: ego is hidden, ogre plays catch animation, plays scream sound (#6), game over triggered (global127 = 1)