/// <summary>Initializes the program. A matching call to deinitialize must be made when the program is terminated.</summary>
/// <returns>Whether the initialization was successful.</returns>
private static bool Initialize()
{
if (!Plugins.LoadPlugins())
{
return(false);
}
if (!Screen.Initialize())
{
MessageBox.Show("SDL failed to initialize the video subsystem.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Hand);
return(false);
}
if (!Joysticks.Initialize())
{
MessageBox.Show("SDL failed to initialize the joystick subsystem.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Hand);
return(false);
}
Sounds.Initialize();
// begin HACK //
const double degrees = 0.0174532925199433;
World.VerticalViewingAngle = 45.0 * degrees;
World.HorizontalViewingAngle = 2.0 * Math.Atan(Math.Tan(0.5 * World.VerticalViewingAngle) * World.AspectRatio);
World.OriginalVerticalViewingAngle = World.VerticalViewingAngle;
World.ExtraViewingDistance = 50.0;
World.ForwardViewingDistance = (double)Interface.CurrentOptions.ViewingDistance;
World.BackwardViewingDistance = 0.0;
World.BackgroundImageDistance = (double)Interface.CurrentOptions.ViewingDistance;
// end HACK //
ClearLogFile();
return(true);
}