Merge pull request #1576

pull/355/head
scrawl 7 years ago
commit d2b3f902c7
No known key found for this signature in database
GPG Key ID: 2E6CC3676024C402

@ -146,7 +146,6 @@ namespace MWDialogue
// TODO play sound // TODO play sound
} }
MWScript::InterpreterContext interpreterContext(&mActor.getRefData().getLocals(),mActor); MWScript::InterpreterContext interpreterContext(&mActor.getRefData().getLocals(),mActor);
callback->addResponse("", Interpreter::fixDefinesDialog(info->mResponse, interpreterContext)); callback->addResponse("", Interpreter::fixDefinesDialog(info->mResponse, interpreterContext));
executeScript (info->mResultScript, mActor); executeScript (info->mResultScript, mActor);
@ -387,7 +386,7 @@ namespace MWDialogue
{ {
Filter filter (mActor, mChoice, mTalkedTo); Filter filter (mActor, mChoice, mTalkedTo);
if (dialogue->mType == ESM::Dialogue::Topic || dialogue->mType == ESM::Dialogue::Greeting) if (dialogue->mType == ESM::Dialogue::Topic || dialogue->mType == ESM::Dialogue::Greeting)
{ {
if (const ESM::DialInfo *info = filter.search (*dialogue, true)) if (const ESM::DialInfo *info = filter.search (*dialogue, true))
{ {
@ -401,15 +400,18 @@ namespace MWDialogue
MWScript::InterpreterContext interpreterContext(&mActor.getRefData().getLocals(),mActor); MWScript::InterpreterContext interpreterContext(&mActor.getRefData().getLocals(),mActor);
callback->addResponse("", Interpreter::fixDefinesDialog(text, interpreterContext)); callback->addResponse("", Interpreter::fixDefinesDialog(text, interpreterContext));
// Make sure the returned DialInfo is from the Dialogue we supplied. If could also be from the Info refusal group, if (dialogue->mType == ESM::Dialogue::Topic)
// in which case it should not be added to the journal.
for (ESM::Dialogue::InfoContainer::const_iterator iter = dialogue->mInfo.begin();
iter!=dialogue->mInfo.end(); ++iter)
{ {
if (iter->mId == info->mId) // Make sure the returned DialInfo is from the Dialogue we supplied. If could also be from the Info refusal group,
// in which case it should not be added to the journal
for (ESM::Dialogue::InfoContainer::const_iterator iter = dialogue->mInfo.begin();
iter!=dialogue->mInfo.end(); ++iter)
{ {
MWBase::Environment::get().getJournal()->addTopic (Misc::StringUtils::lowerCase(mLastTopic), info->mId, mActor); if (iter->mId == info->mId)
break; {
MWBase::Environment::get().getJournal()->addTopic (Misc::StringUtils::lowerCase(mLastTopic), info->mId, mActor);
break;
}
} }
} }

@ -281,6 +281,8 @@ BookTypesetter::Ptr JournalBooks::createCyrillicJournalIndex ()
textColours.journalTopicOver, textColours.journalTopicOver,
textColours.journalTopicPressed, first); textColours.journalTopicPressed, first);
ch[1]++;
// Words can not be started with these characters // Words can not be started with these characters
if (i == 26 || i == 28) if (i == 26 || i == 28)
continue; continue;
@ -290,8 +292,6 @@ BookTypesetter::Ptr JournalBooks::createCyrillicJournalIndex ()
typesetter->write (style, to_utf8_span (buffer)); typesetter->write (style, to_utf8_span (buffer));
typesetter->lineBreak (); typesetter->lineBreak ();
ch[1]++;
} }
return typesetter; return typesetter;

Loading…
Cancel
Save