Eynherr |
1. When I use Said statements with three parts (e.g. Said('use/key/door') , why does this only work if I enter something like "use key with door" ? |
Lars Skovlund |
The said check is really a two-step process. First, the actual text string (typed by the user) is fed through a kernel call named Parse. This is a part of the class library, though enhacements like my own right-click function uses it explicitly. Doing this creates a parse tree for the sentence according to a grammar which is supplied with the game (vocab.900, I think) but not editable from SCI studio. Each invocation of Said generates additional parse trees for each said spec, and the two trees are compared. However, if your text string was rejected in the first phase, all of the calls to Said will also fail. You can verify that this is in fact what happens by looking at the event stream generated by SCI (a breakpoint in the relevant handleEvent method will do the trick). Lars |