From 187b8e58d61f756f2ebe97aa590c7e7bf97c4115 Mon Sep 17 00:00:00 2001 From: Marc Zinnschlag Date: Sat, 17 Mar 2012 19:32:44 +0100 Subject: [PATCH] fixed handling of optional instruction/function arguments; removed choice workaround --- apps/openmw/mwscript/dialogueextensions.cpp | 5 ++--- components/compiler/exprparser.cpp | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/apps/openmw/mwscript/dialogueextensions.cpp b/apps/openmw/mwscript/dialogueextensions.cpp index 78a52a185..0cca028e2 100644 --- a/apps/openmw/mwscript/dialogueextensions.cpp +++ b/apps/openmw/mwscript/dialogueextensions.cpp @@ -95,7 +95,6 @@ namespace MWScript virtual void execute (Interpreter::Runtime& runtime, unsigned int arg0) { - arg0 = 4; MWScript::InterpreterContext& context = static_cast (runtime.getContext()); MWDialogue::DialogueManager* dialogue = context.getEnvironment().mDialogueManager; @@ -129,7 +128,7 @@ namespace MWScript extensions.registerInstruction ("setjournalindex", "cl", opcodeSetJournalIndex); extensions.registerFunction ("getjournalindex", 'l', "c", opcodeGetJournalIndex); extensions.registerInstruction ("addtopic", "S" , opcodeAddTopic); - extensions.registerInstruction ("choice", "/SlSl", opcodeChoice); + extensions.registerInstruction ("choice", "/SlSlSlSlSlSlSlSlSlSlSlSlSlSlSlSl", opcodeChoice); } void installOpcodes (Interpreter::Interpreter& interpreter) @@ -137,7 +136,7 @@ namespace MWScript interpreter.installSegment5 (opcodeJournal, new OpJournal); interpreter.installSegment5 (opcodeSetJournalIndex, new OpSetJournalIndex); interpreter.installSegment5 (opcodeGetJournalIndex, new OpGetJournalIndex); - interpreter.installSegment5 (opcodeAddTopic, new OpAddTopic); + interpreter.installSegment5 (opcodeAddTopic, new OpAddTopic); interpreter.installSegment3 (opcodeChoice,new OpChoice); } } diff --git a/components/compiler/exprparser.cpp b/components/compiler/exprparser.cpp index 06c3207e2..95480c023 100644 --- a/components/compiler/exprparser.cpp +++ b/components/compiler/exprparser.cpp @@ -639,7 +639,7 @@ namespace Compiler std::vector& code, bool invert) { bool optional = false; - bool optionalCount = 0; + int optionalCount = 0; ExprParser parser (getErrorHandler(), getContext(), mLocals, mLiterals, true); StringParser stringParser (getErrorHandler(), getContext(), mLiterals);