+Object roof "Roof"
+ with description [;
+ print
+ "You're on the roof of the cabin, although it's hard
+ to tell where the snow buildup ends and the roof
+ begins. You can make out the trees around the cabin,
+ but you can't see very far out into the snowfield
+ beyond them.";
+ if (roof hasnt visited)
+ print
+ " You hear a snowmobile approaching in the
+ distance. Is it your salvation? The snowmobile
+ quickly zooms by in front of the cabin and
+ disappears into the forest.";
+ StartDaemon(snowmobile);
+ if (roof has visited)
+ print
+ " There seems to be no movement, no sound, no
+ sign of anything.";
+ new_line;
+ ],
+ n_to northofcabin,
+ cant_go "Walking off the edge of a roof seems unwise.";
+
+Object northofcabin "North Of Cabin"
+ with description [;
+ print
+ "You're on the north side of the cabin. The wind is
+ howling and the snow is coming down; falling too fast
+ to see well.";
+ if (northofcabin hasnt visited)
+ print
+ " That might be a tree in the distance or a
+ shadowy figure - It's hard to tell in this
+ storm.";
+ print_ret
+ " The snow buildup here is so great that it's
+ almost level with the cabin's roof, which is to the
+ south.";
+ ],
+ n_to westofcabin,
+ s_to roof,
+ w_to westofcabin,
+ cant_go "It's too steep to go in that direction safely.",
+ before [;
+ Go:
+ if (noun == s_obj) {
+ if (roof hasnt visited) {
+ score = score + 1;
+ }
+ }
+ ];
+