public bool Initialize(GameMain gameMain, out string reason)
{
this._gameMain = gameMain;
_buttons = new BBButton[4];
_x = (gameMain.ScreenWidth / 2) - 130;
_y = (gameMain.ScreenHeight / 2);
for (int i = 0; i < _buttons.Length; i++)
{
_buttons[i] = new BBButton();
}
if (!_buttons[0].Initialize("MainButtonBG", "MainButtonFG", "Continue", "LargeComputerFont", ButtonTextAlignment.CENTER, _x, _y, 260, 40, gameMain.Random, out reason, 20, -1))
{
return false;
}
if (!_buttons[1].Initialize("MainButtonBG", "MainButtonFG", "New Game", "LargeComputerFont", ButtonTextAlignment.CENTER, _x, _y + 50, 260, 40, gameMain.Random, out reason, 20, -1))
{
return false;
}
if (!_buttons[2].Initialize("MainButtonBG", "MainButtonFG", "Load Game", "LargeComputerFont", ButtonTextAlignment.CENTER, _x, _y + 100, 260, 40, gameMain.Random, out reason, 20, -1))
{
return false;
}
if (!_buttons[3].Initialize("MainButtonBG", "MainButtonFG", "Exit", "LargeComputerFont", ButtonTextAlignment.CENTER, _x, _y + 150, 260, 40, gameMain.Random, out reason, 20, -1))
{
return false;
}
for (int i = 0; i < _buttons.Length; i++)
{
_buttons[i].SetTextColor(System.Drawing.Color.Gold, System.Drawing.Color.Black);
}
_versionLabel = new BBLabel();
if (!_versionLabel.Initialize(10, _gameMain.ScreenHeight - 30, "Version 0.59", System.Drawing.Color.White, out reason))
{
return false;
}
_background = SpriteManager.GetSprite("MainBackground", gameMain.Random);
_planet = SpriteManager.GetSprite("MainPlanetBackground", gameMain.Random);
_title = SpriteManager.GetSprite("Title", gameMain.Random);
_x = (gameMain.ScreenWidth / 2) - 512;
_y = (gameMain.ScreenHeight / 2) - 300;
_files = Utility.GetSaveGames(gameMain.GameDataSet.FullName);
if (_files.Count == 0)
{
_buttons[0].Active = false; //Disabled Continue and Load buttons since there's no games to load
_buttons[2].Active = false;
}
_loadBackground = new BBStretchableImage();
if (!_loadBackground.Initialize((gameMain.ScreenWidth / 2) - 225, (gameMain.ScreenHeight / 2) - 175, 450, 350, StretchableImageType.ThinBorderBG, gameMain.Random, out reason))
{
return false;
}
_saveGameButtons = new BBInvisibleStretchButton[10];
for (int i = 0; i < _saveGameButtons.Length; i++)
{
_saveGameButtons[i] = new BBInvisibleStretchButton();
if (!_saveGameButtons[i].Initialize(string.Empty, ButtonTextAlignment.LEFT, StretchableImageType.TinyButtonBG, StretchableImageType.TinyButtonFG, (gameMain.ScreenWidth / 2) - 220, (gameMain.ScreenHeight / 2) - 160 + (i * 32), 420, 32, gameMain.Random, out reason))
{
return false;
}
}
_scrollBar = new BBScrollBar();
if (!_scrollBar.Initialize((gameMain.ScreenWidth / 2) + 200, (gameMain.ScreenHeight / 2) - 160, 320, 10, 10, false, false, gameMain.Random, out reason))
{
return false;
}
_maxVisible = _files.Count > _saveGameButtons.Length ? _saveGameButtons.Length : _files.Count;
if (_maxVisible < _saveGameButtons.Length)
{
//Disable the scrollbar
_scrollBar.SetEnabledState(false);
}
else
{
_scrollBar.SetEnabledState(true);
_scrollBar.SetAmountOfItems(_files.Count);
}
RefreshSaves();
_showingLoadMenu = false;
reason = null;
return true;
}