There are two separate problems you encounter when trying to do the first "Main Quest" quest:
1) The Dialogue Filter Functions are definitely returning the correct values. The problem is that you aren't getting the topic "Report to Caius Cosades" because it never gets added. In Vanilla Morrowind, it is added at some point between clicking the "New Game" button and entering your name. This is frustrating, because I'm unsure where this topic is added. I assume it is added via script, but checking all the relevant beginning scripts I can think of doesn't reveal where it is added. Maybe someone else will have some luck with this, because we need to find that point before we can figure out why this isn't working.
2) The second problem is just a superficial/usability problem. Once you get by the above issue by using "addtopic" to add the relevant topic there is still a problem with correctly displaying the proper links in dialogue, as seen here:
As you can see, it shows Caius Cosades in the red color indicating that you can click on it for more info. This is incorrect, in this case, because the Vanilla Engine instead links "Report to Caius Cosades", not "Caius Cosades". I think the vanilla engine starts from the left hand side of a dialogue and makes the text a link with the first matching topic that exists, so in this case, the words "report to Caius Cosades" take precedence over "Caius Cosades".
Main Quest
Re: Main Quest
Last edited by Greendogo on 23 Nov 2012, 12:00, edited 3 times in total.
Re: Main Quest
Unless I am completely misremembering topcis are rarely added via AddTopic. The normal method is just to mention them somewhere in the dialogue text and MW would then add it automatically to the list of known topics. If that is the case, maybe our algorithm for doing that is broken.
Re: Main Quest
You're right, I just did a quick refresher. Perhaps your method for doing the hyperlinking is causing the issues then, since it splits the "Report to" and "Caius Cosades" up by only hyperlinking his name? Because the mention it gets in dialogue is definitely not forcing it to be added, as explicitly typing "addtopic "Report to Caius Cosades"" fixes the problem.
Re: Main Quest
Can you please add an issue for it to the tracker? I am busy with something else right now and don't have the time to look into it. But maybe one of the other developers can have a go at it.
Re: Main Quest
Added the issue myself. Thanks anyway.
Re: Main Quest
Found the cause:
Topics are only added if the text that mentions it has a space before the topic is mentioned. However, in german MW for example, it's mentioned with single quotes. Probably other languages also use several kinds of quotes, so it would be bad to explicitely check for that. I've just removed the check entirely now, and I don't see any problems with it.
Edit: Preparing pull request.
Code: Select all
void DialogueManager::parseText (const std::string& text)
{
std::list<std::string>::iterator it;
for(it = mActorKnownTopics.begin();it != mActorKnownTopics.end();++it)
{
size_t pos = find_str_ci(text,*it,0);
if(pos !=std::string::npos)
{
if(pos==0)
{
mKnownTopics[*it] = true;
}
else if(text.substr(pos -1,1) == " ")
{
mKnownTopics[*it] = true;
}
}
}
updateTopics();
}
Edit: Preparing pull request.
Re: Main Quest
With this fix and after implementing modReputation / setReputation (opened another pull request for that), we can get until the Vivec informants part. Talking with Mehra Milo doesn't work because of the AI ("Follow me to the back of the library, we can talk there")
Re: Main Quest
That is probably as far as we will get. I declare the dialogue part of 0.20.0 a success.
Re: Main Quest
nice (sorry I didn't add the issue Zini, I was asleep)