Here's another idea: define this helper function in the deck-level script:
on qa ...x do a:raze table 2 window 1 drop x r:dd.ask[first x keys a] dd.say[(range a)[r].value] r end
It takes a prompt and then alternating pairs of choices and references to the field containing the ensuing scene, allowing you to write that main script like:
on click do
o.size:180,0
o.pos:"pos2"
o.osound:"click"
o.asound:"click"
o.tsound:("talk1","moan2","talk3")
o.speed:3
dd.style[o]
dd.open[deck o]
dd.say[script.value]
r:qa["What were you looking for?"
"You." ask
"Love" ask3
"What are you reading?" ask4
"Nevermind..." ask5
]
if r~0
qa["Sarah: and now the site doesn't get much traffic."
"Why did it go down?" ask6
"You do seem like you'd have a low satisfaction score" ask2
"*say nothing*" ask5
]
end
dd.close[]
pt.clear[]
end
Anywhere your code has repetitive patterns, there's a chance that a helper function could make things more concise and easier to edit.