void CastleDaggerfallMagicDoorsSpecialOpenHack() { // Execute only when player recently teleported inside Castle Daggerfall dungeon and clicks on either magically held door in foyer // Uses LoadID to identify doors which is based on unique position in gamedata and always the same // Theoretically could break if player has non-standard gamedata, but they can still speak with guard through crack in door as per classic // This check is very fast and doesn't require any scene searches, just numerical comparisons if (GameManager.Instance.PlayerEnterExit.PlayerTeleportedIntoDungeon && GameManager.Instance.PlayerEnterExit.IsPlayerInsideDungeon && GameManager.Instance.PlayerGPS.CurrentLocation.MapTableData.MapId == 1291010263 && (loadID == 29331574 || loadID == 29331622)) { // If door is still locked and closed then unlock and open doors // Player still sees "this is a magically held lock" but door will open anyway // The purpose of this change is just to prevent player being locked inside throne room under special circumstances DaggerfallActionDoor door = GetComponent <DaggerfallActionDoor>(); if (door && door.IsLocked && door.IsClosed) { door.CurrentLockValue = 0; door.ToggleDoor(); } } }