protected void StopObjectCode()
{
var ss = _slots[CurrentScript];
if (Game.Version <= 2)
{
if (ss.Where == WhereIsObject.Global || ss.Where == WhereIsObject.Local)
{
StopScript(ss.Number);
}
else
{
ss.Number = 0;
ss.Status = ScriptStatus.Dead;
}
}
else if (Game.Version <= 5)
{
if (ss.Where != WhereIsObject.Global && ss.Where != WhereIsObject.Local)
{
StopObjectScriptCore(ss.Number);
}
else
{
ss.Number = 0;
ss.Status = ScriptStatus.Dead;
}
}
else
{
if (ss.CutSceneOverride != 0)
throw new InvalidOperationException(
string.Format("{0} {1} ending with active cutscene/override ({2})",
(ss.Where != WhereIsObject.Global && ss.Where != WhereIsObject.Local) ? "Object" : "Script",
ss.Number, ss.CutSceneOverride));
ss.Number = 0;
ss.Status = ScriptStatus.Dead;
}
CurrentScript = 0xFF;
}