protected void KillScriptsAndResources()
{
for (int i = 0; i < NumScriptSlot; i++)
{
var ss = _slots[i];
if (ss.Where == WhereIsObject.Room || ss.Where == WhereIsObject.FLObject)
{
if (ss.CutSceneOverride != 0)
{
// if (Game.Version >= 5)
// Console.Error.WriteLine("Object {0} stopped with active cutscene/override in exit", ss.Number);
ss.CutSceneOverride = 0;
}
//nukeArrays(i);
ss.Status = ScriptStatus.Dead;
}
else if (ss.Where == WhereIsObject.Local)
{
if (ss.CutSceneOverride != 0)
{
// if (Game.Version >= 5)
// Console.Error.WriteLine("Script {0} stopped with active cutscene/override in exit", ss.Number);
ss.CutSceneOverride = 0;
}
//nukeArrays(i);
ss.Status = ScriptStatus.Dead;
}
}
/* Nuke local object names */
if (_newNames != null)
{
foreach (var obj in _newNames.Keys.ToArray())
{
var owner = GetOwnerCore(obj);
// We can delete custom name resources if either the object is
// no longer in use (i.e. not owned by anyone anymore); or if
// it is an object which is owned by a room.
if (owner == 0 || (owner == OwnerRoom))
{
// WORKAROUND for a problem mentioned in bug report #941275:
// In FOA in the sentry room, in the chest plate of the statue,
// the pegs may be renamed to mouth: this custom name is lost
// when leaving the room; this hack prevents this).
//if (owner == OF_OWNER_ROOM && _game.id == GID_INDY4 && 336 <= obj && obj <= 340)
// continue;
_newNames[obj] = new byte[0];
}
}
}
}