Thanks for posting the code, and you could just (in theory) make ifs that "simulate" the current Mission, you would just have to find out what those are.
Example:
Code:
ClearQuests();
if (GetQuestLabel("CurrentQuest") == "mission_18a") then
QuestStart("mission_18a");
Long_Jump("earth");
end;
if (GetQuestLabel("CurrentQuest") == "mission_XX") then
SetQuestLabel("SpecialRequirement", "True");
QuestStart("mission_XX")
Long_Jump("somewhere_else");
end;