/// <summary>
/// Allows the game to perform any initialization it needs to before starting to run.
/// This is where it can query for any required services and load any non-graphic
/// related content. Calling base.Initialize will enumerate through any components
/// and initialize them as well.
/// </summary>
protected override void Initialize()
{
OperatingSystem os = Environment.OSVersion;
PlatformID pid = os.Platform;
GameFacade.Linux = (pid == PlatformID.MacOSX || pid == PlatformID.Unix);
FSO.Content.Content.Init(GlobalSettings.Default.StartupPath, GraphicsDevice);
base.Initialize();
GameFacade.SoundManager = new FSO.Client.Sound.SoundManager();
GameFacade.GameThread = Thread.CurrentThread;
SceneMgr = new _3DLayer();
SceneMgr.Initialize(GraphicsDevice);
GameFacade.Controller = new GameController();
GameFacade.Screens = uiLayer;
GameFacade.Scenes = SceneMgr;
GameFacade.GraphicsDevice = GraphicsDevice;
GameFacade.GraphicsDeviceManager = Graphics;
GameFacade.Cursor = new CursorManager(this.Window);
if (!GameFacade.Linux)
{
GameFacade.Cursor.Init(FSO.Content.Content.Get().GetPath(""));
}
/** Init any computed values **/
GameFacade.Init();
GameFacade.Strings = new ContentStrings();
GameFacade.Controller.StartLoading();
GraphicsDevice.RasterizerState = new RasterizerState()
{
CullMode = CullMode.None
};
if (!GameFacade.Linux)
{
BassNet.Registration("*****@*****.**", "2X3163018312422");
Bass.BASS_Init(-1, 8000, BASSInit.BASS_DEVICE_DEFAULT, IntPtr.Zero, System.Guid.Empty);
}
this.IsMouseVisible = true;
this.IsFixedTimeStep = true;
WorldContent.Init(this.Services, Content.RootDirectory);
base.Screen.Layers.Add(SceneMgr);
base.Screen.Layers.Add(uiLayer);
GameFacade.LastUpdateState = base.Screen.State;
if (!GlobalSettings.Default.Windowed)
{
Graphics.ToggleFullScreen();
}
}