protected override ScriptBase CloneScript() { SwitchScript clone = new SwitchScript(m_scriptContext, m_expr.Clone(), (IScript)m_default.Clone()); clone.m_cases = m_cases.Clone(clone); return(clone); }
private SwitchCases(SwitchScript parent) { m_parent = parent; if (parent.m_worldModel.EditMode) { m_cases.UndoLog = parent.m_worldModel.UndoLogger; } }
internal SwitchCases Clone(SwitchScript newParent) { SwitchCases clone = new SwitchCases(newParent); clone.m_cases = (QuestDictionary <IScript>)m_cases.Clone(); clone.m_compiledExpressions = new Dictionary <string, IFunctionGeneric>(); foreach (var compiledExpression in m_compiledExpressions) { clone.m_compiledExpressions.Add(compiledExpression.Key, compiledExpression.Value); } return(clone); }
public SwitchCases(SwitchScript parent, Dictionary <IFunctionGeneric, IScript> cases) : this(parent) { foreach (var switchCase in cases) { IFunctionGeneric compiledExpression = switchCase.Key; string caseString = compiledExpression.Save(); IScript script = switchCase.Value; if (m_cases.ContainsKey(caseString)) { throw new Exception(string.Format("'switch' block contains duplicate case '{0}'", caseString)); } m_cases.Add(caseString, script); m_compiledExpressions.Add(caseString, compiledExpression); } }
public SwitchCases(SwitchScript parent, List <Tuple <List <IFunction>, IScript> > cases) { m_cases = cases; }
public SwitchCases(SwitchScript parent, List<Tuple<List<IFunction>, IScript>> cases) { m_cases = cases; }
internal SwitchCases Clone(SwitchScript newParent) { SwitchCases clone = new SwitchCases(newParent); clone.m_cases = (QuestDictionary<IScript>)m_cases.Clone(); clone.m_compiledExpressions = new Dictionary<string, IFunctionGeneric>(); foreach (var compiledExpression in m_compiledExpressions) { clone.m_compiledExpressions.Add(compiledExpression.Key, compiledExpression.Value); } return clone; }
public SwitchCases(SwitchScript parent, Dictionary<IFunctionGeneric, IScript> cases) : this(parent) { foreach (var switchCase in cases) { IFunctionGeneric compiledExpression = switchCase.Key; string caseString = compiledExpression.Save(); IScript script = switchCase.Value; if (m_cases.ContainsKey(caseString)) { throw new Exception(string.Format("'switch' block contains duplicate case '{0}'", caseString)); } m_cases.Add(caseString, script); m_compiledExpressions.Add(caseString, compiledExpression); } }
protected override ScriptBase CloneScript() { SwitchScript clone = new SwitchScript(m_scriptContext, m_expr.Clone(), (IScript)m_default.Clone()); clone.m_cases = m_cases.Clone(clone); return clone; }