protected virtual void SetCameraAt(Point pos)
{
if (_camera.Mode != CameraMode.FollowActor || Math.Abs(pos.X - _camera.CurrentPosition.X) > (ScreenWidth / 2))
{
_camera.CurrentPosition.X = pos.X;
}
_camera.DestinationPosition.X = pos.X;
if (VariableCameraMinX.HasValue && _camera.CurrentPosition.X < _variables[VariableCameraMinX.Value])
_camera.CurrentPosition.X = _variables[VariableCameraMinX.Value];
if (VariableCameraMaxX.HasValue && _camera.CurrentPosition.X > _variables[VariableCameraMaxX.Value])
_camera.CurrentPosition.X = _variables[VariableCameraMaxX.Value];
if (VariableScrollScript.HasValue && _variables[VariableScrollScript.Value] != 0)
{
_variables[VariableCameraPosX.Value] = _camera.CurrentPosition.X;
RunScript(_variables[VariableScrollScript.Value], false, false, new int[0]);
}
// If the camera moved and text is visible, remove it
if (_camera.CurrentPosition.X != _camera.LastPosition.X && _charset.HasMask)
StopTalk();
}