Fix blank screen issue

Also fix some other bugs and improvements (easier party modes, volume fixes, new fields for screens to control volume and popups)
This commit is contained in:
Flamefire committed 2014-11-27 21:47:02 +01:00
1 parent 36b81e8c1f
commit 26484ad137
62 files changed
+1160 -1964

No files matched your search

@@ -15,7 +15,6 @@
// along with Vocaluxe. If not, see <http://www.gnu.org/licenses/>.
#endregion
using System;
using System.Collections.Generic;
using VocaluxeLib.Menu;
@@ -31,89 +30,57 @@ namespace VocaluxeLib.PartyModes.TicTacToe
get { return 1; }
}
private int _NumPlayerTeam1 = 2;
private int _NumPlayerTeam2 = 2;
private SDataFromScreen _Data;
private new CPartyModeTicTacToe _PartyMode;
public override void Init()
{
base.Init();
_Data.ScreenNames.ProfileIDsTeam1 = new List<int>();
_Data.ScreenNames.ProfileIDsTeam2 = new List<int>();
_Data = new SDataFromScreen();
var names = new SFromScreenNames {FadeToConfig = false, ProfileIDsTeam1 = new List<int>(), ProfileIDsTeam2 = new List<int>()};
_Data.ScreenNames = names;
}
public override void DataToScreen(object receivedData)
{
try
{
var config = (SDataToScreenNames)receivedData;
_Data.ScreenNames.ProfileIDsTeam1 = config.ProfileIDsTeam1;
_Data.ScreenNames.ProfileIDsTeam2 = config.ProfileIDsTeam2;
if (_Data.ScreenNames.ProfileIDsTeam1 == null)
_Data.ScreenNames.ProfileIDsTeam1 = new List<int>();
if (_Data.ScreenNames.ProfileIDsTeam2 == null)
_Data.ScreenNames.ProfileIDsTeam2 = new List<int>();
_NumPlayerTeam1 = config.NumPlayerTeam1;
_NumPlayerTeam2 = config.NumPlayerTeam2;
while (_Data.ScreenNames.ProfileIDsTeam1.Count > _NumPlayerTeam1)
_Data.ScreenNames.ProfileIDsTeam1.RemoveAt(_Data.ScreenNames.ProfileIDsTeam1.Count - 1);
while (_Data.ScreenNames.ProfileIDsTeam2.Count > _NumPlayerTeam2)
_Data.ScreenNames.ProfileIDsTeam2.RemoveAt(_Data.ScreenNames.ProfileIDsTeam2.Count - 1);
}
catch (Exception e)
{
CBase.Log.LogError("Error in party mode screen TicTacToe names. Can't cast received data from game mode " + ThemeName + ". " + e.Message);
}
_PartyMode = (CPartyModeTicTacToe)base._PartyMode;
}
public override void OnShow()
{
base.OnShow();
SetPartyModeData(2, _NumPlayerTeam1 + _NumPlayerTeam2, new int[] {_NumPlayerTeam1, _NumPlayerTeam2});
List<int>[] ids = new List<int>[] {_Data.ScreenNames.ProfileIDsTeam1, _Data.ScreenNames.ProfileIDsTeam2};
while (_PartyMode.GameData.ProfileIDsTeam1.Count > _PartyMode.GameData.NumPlayerTeam1)
_PartyMode.GameData.ProfileIDsTeam1.RemoveAt(_PartyMode.GameData.ProfileIDsTeam1.Count - 1);
while (_PartyMode.GameData.ProfileIDsTeam2.Count > _PartyMode.GameData.NumPlayerTeam2)
_PartyMode.GameData.ProfileIDsTeam2.RemoveAt(_PartyMode.GameData.ProfileIDsTeam2.Count - 1);
SetPartyModeData(2, _PartyMode.GameData.NumPlayerTeam1 + _PartyMode.GameData.NumPlayerTeam2,
new int[] {_PartyMode.GameData.NumPlayerTeam1, _PartyMode.GameData.NumPlayerTeam2});
List<int>[] ids = new List<int>[] {_PartyMode.GameData.ProfileIDsTeam1, _PartyMode.GameData.ProfileIDsTeam2};
SetPartyModeProfiles(ids);
}
public override void Back()
{
SPartyNameOptions options = GetData();
if (options.TeamList.Length == 2)
if (_TeamList.Length == 2)
{
_Data.ScreenNames.ProfileIDsTeam1 = options.TeamList[0];
_Data.ScreenNames.ProfileIDsTeam2 = options.TeamList[1];
_PartyMode.GameData.ProfileIDsTeam1 = _TeamList[0];
_PartyMode.GameData.ProfileIDsTeam2 = _TeamList[1];
}
if (options.NumPlayerTeams.Length == 2)
if (_NumPlayerTeams.Length == 2)
{
_Data.ScreenNames.NumPlayerTeam1 = options.NumPlayerTeams[0];
_Data.ScreenNames.NumPlayerTeam2 = options.NumPlayerTeams[1];
_PartyMode.GameData.NumPlayerTeam1 = _NumPlayerTeams[0];
_PartyMode.GameData.NumPlayerTeam2 = _NumPlayerTeams[1];
}
_Data.ScreenNames.FadeToConfig = true;
_PartyMode.DataFromScreen(ThemeName, _Data);
_PartyMode.Back();
}
public override void Next()
{
SPartyNameOptions options = GetData();
if (options.TeamList.Length == 2)
if (_TeamList.Length == 2)
{
_Data.ScreenNames.ProfileIDsTeam1 = options.TeamList[0];
_Data.ScreenNames.ProfileIDsTeam2 = options.TeamList[1];
_PartyMode.GameData.ProfileIDsTeam1 = _TeamList[0];
_PartyMode.GameData.ProfileIDsTeam2 = _TeamList[1];
}
if (options.NumPlayerTeams.Length == 2)
if (_NumPlayerTeams.Length == 2)
{
_Data.ScreenNames.NumPlayerTeam1 = options.NumPlayerTeams[0];
_Data.ScreenNames.NumPlayerTeam2 = options.NumPlayerTeams[1];
_PartyMode.GameData.NumPlayerTeam1 = _NumPlayerTeams[0];
_PartyMode.GameData.NumPlayerTeam2 = _NumPlayerTeams[1];
}
_Data.ScreenNames.FadeToConfig = false;
_PartyMode.DataFromScreen(ThemeName, _Data);
_PartyMode.Next();
}
}
}