The clue is in the signatures for each function:
void ChangeCharacterSimon(string &in asEntity)
void ChangeCharacterMark(string &in asEntity)
As you can see - they are expecting a string parameter (which isn't being used inside the functions currently). The solution is to either change the signatures so they no longer use this parameter, I.e:
void ChangeCharacterSimon()
{
//stuff...
}
void ChangeCharacterMark()
{
//stuff...
}
OR pass a parameter in (in this case i am assuming you want to pass in "asEntity" from the calling function):
void NextLevelCheck(string &in asEntity)
{
if(asEntity == "AreaSimon")
{
if(GetLocalVarInt("SimonReady") == 1 && GetLocalVarInt("MarkReady") == 1)
{
ChangeCharacterMark(asEntity);
return;
}
}
if(asEntity == "AreaMark")
{
if(GetLocalVarInt("SimonReady") == 1 && GetLocalVarInt("MarkReady") == 1)
{
ChangeCharacterSimon(asEntity);
return;
}
}
if(GetLocalVarInt("SimonReady") == 0)
{
SetMessage("Messages", "NotDone", 0);
}
if(GetLocalVarInt("MarkReady") == 0)
{
SetMessage("Messages", "NotDone", 0);
}
}