forked from Mirrors/openclonk
Fix possible user action sequence id conflict when saving scenario after testing a sequence
parent
28d2172b78
commit
8d6a7058c6
|
@ -223,9 +223,9 @@ private func EvalPlrList_All(proplist props, proplist context, fn)
|
|||
private func EvalAct_Sequence(proplist props, proplist context)
|
||||
{
|
||||
// Sequence execution: Iterate over actions until one action puts the context on hold
|
||||
var n = GetLength(props.Actions), sid = props.sequence_id;
|
||||
if (!sid) sid = props.sequence_id = Format("%d", ++UserAction_SequenceIDs);
|
||||
for (var progress = context.sequence_progress[props.sequence_id] ?? 0; progress < n; ++progress)
|
||||
var n = GetLength(props.Actions), sid = props._sequence_id;
|
||||
if (!sid) sid = props._sequence_id = Format("%d", ++UserAction_SequenceIDs);
|
||||
for (var progress = context.sequence_progress[sid] ?? 0; progress < n; ++progress)
|
||||
{
|
||||
//Log("Sequence progress exec %v %v", progress, context.hold);
|
||||
// goto preparations
|
||||
|
@ -246,7 +246,7 @@ private func EvalAct_Sequence(proplist props, proplist context)
|
|||
// Sequence finished
|
||||
context.last_sequence = nil;
|
||||
// Reset for next execution.
|
||||
context.sequence_progress[props.sequence_id] = 0;
|
||||
context.sequence_progress[sid] = 0;
|
||||
}
|
||||
|
||||
private func EvalAct_Goto(proplist props, proplist context)
|
||||
|
|
|
@ -446,6 +446,7 @@ global func SaveScenarioValue2String(v, string constant_prefix, bool allow_bitma
|
|||
var props = GetProperties(v);
|
||||
for (var el in props)
|
||||
{
|
||||
if (GetChar(el) == GetChar("_")) continue; // props starting with underscore are not to be saved
|
||||
if (rval) rval = Format("%s,%s=%s", rval, el, SaveScenarioValue2String(v[el]));
|
||||
else rval = Format("%s=%s", el, SaveScenarioValue2String(v[el]));
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue