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

5.9 KiB

Room 5: Forest Grove

This is the exterior of the Dwarf Cottage, a creepy forest grove with ominous trees surrounding a large thatched-roof house. The room features multiple animated trees (views 690, 691) that act as a hazard - walking into certain areas triggers a "grabbed" sequence where the trees catch the player. There are also firefly/sparkle effects (view 689) adding atmosphere. The room connects to the cottage interior (room 11) and leads to other forest areas.

Look Description

"This is a creepy place! You have found a grove of very odd, (and scary-looking), trees. A thick forest surrounds the grove."

Interactions

Status Behavior Type Command Response
TODO Look look/room / look/around / look[<around] "This is a creepy place! You have found a grove of very odd, (and scary-looking), trees. A thick forest surrounds the grove." (Print 5 0)
TODO Look look/cottage "You see the back of a large, thatched-roof house." (Print 5 1)
TODO Look look/door "The door is at the front of the house." (Print 5 2)
TODO Look look/window (when in rect 0 130 32 138) "You look through the window, but can make out no details." (Print 5 3)
TODO Look look/window (not close enough) "You're not close enough." (Print 5 4)
TODO Action break/window "That's vandalism!" (Print 5 5)
TODO Action open/window "The windows do not open." (Print 5 6)
TODO Look look/boulder (region 509) "The rocks are insignificant here." (Print 509 0)
TODO Look look/dirt (region 509) "You see nothing of importance on the ground." (Print 509 1)
TODO Look look/bush (region 509) "You don't see many shrubs here." (Print 509 2)
TODO Look look/sky / look/up (region 509, daytime) "Despite this awful forest, the sky is quite nice and blue." (Print 509 3)
TODO Look look/sky / look/up (region 509, night) "It's easy to see by the light of a full moon." (Print 509 4)
TODO Look look/grass (region 509) "There is little grass here." (Print 509 5)
TODO Look look/flora (region 509) "All you see are these awful trees!" (Print 509 6)
TODO Look look/blossom (region 509) "There are not many flowers here." (Print 509 7)
TODO Look look/forest (region 509) "These are vicious looking trees, aren't they? Best to stay clear of them!" (Print 509 8)
TODO Look look/eye (region 509) "You'd swear that these trees were LOOKING at you...! But that's impossible." (Print 509 9)
TODO Get get/blossom (region 509) "There are no flowers here!" (Print 509 10)
TODO Action climb/boulder (region 509) "You don't like to climb rocks." (Print 509 11)
TODO Action climb/forest (region 509) "You've GOT to be KIDDING!!" (Print 509 12)
TODO Action kill/forest (region 509) "That would be impossible for you to do." (Print 509 13)
TODO Action break/hit/chop/branch (region 509, no axe) "How would you go about doing that?" (Print 509 15)
TODO Action break/hit/chop/branch (region 509, has axe) Triggers chop script - trees tremble, score +4, trees won't bother further
TODO Action conceal/forest (region 509) "Go ahead, try it." (Print 509 16)
TODO Talk converse (region 509) "These trees do not have the capability to talk." (Print 509 17)

Scripts

Status Behavior Type Name Trigger Behavior
TODO Interaction grabbed Walking into control areas ($0040, $0020, $0010, $0004, $0400, $0200, $0002) when no room script running and global112 is false Stops walking music, plays grab music, plays tree animation (one of 7 trees based on location), disposes ego, continues tree animation, displays random tree pun death message (1 of 6), waits 5 seconds, sets global127 to 1
TODO Background tree1-tree7 Continuous Static tree props at various positions with stopUpd (not animated by default)
TODO Background sparkle1-sparkle2 Continuous Firefly/sparkle animations using view 689 with Fwd cycle

Technical Notes

  • Room Number: 5
  • Picture: 5
  • Region: 509 (Forest Region)
  • Exits: North→29, South→11, East→6, West→4
  • Music: Walking music (sound 64), Grabbed music (sound 65)

State Variables

Variable Values Description
global101 0 Set to 0 on init (unknown purpose)
global112 0, 1 Whether player has chopped down trees with axe
global100 0, 1 Night time flag - if true, overlay 105 is shown
global127 0, 1 Set to 1 when grabbed by trees (death/respawn trigger)
local9 1-7 Which tree prop to animate when grabbed
local11 1-3 Cel value for tree animation when grabbed

Additional Technical Details

  • Synonyms: branch = arm (region 509)
  • Trees use control area bitmasks to detect player position:
    • $0040, $0020, $0010 - trigger tree animation cel 3 (local9 = 1-3)
    • $0004, $0400, $0200 - trigger tree animation cel 1 (local9 = 4, 5, 7)
    • $0002 - trigger tree animation cel 2 (local9 = 6)
  • Entry from Room 4 (west): Position at x=1, y=120 or y unchanged if y > 135
  • Entry from Room 6 (east): Position at x=318, y=133 or y unchanged if y >= 133
  • Entry from Room 11 (south): Position at x=207, y=187 or x unchanged if x <= 207
  • Entry from Room 29 (north): Position at x=x, y=horizon+yStep, clamp x to 258 if x > 272
  • Entry from new game (0): Start at x=290, y=161
  • Trees are static Props with ignoreActors, some at different priorities
  • Firefly props use isExtra flag with cycling animations
  • The grabbed script ends with global127=1 (likely triggers death/respawn)
  • Tree pun death messages: "Wooden you know it!", "out on a limb", "torn limb from limb", "leaf this mortal world", "real sap", "discover your roots"