Changed players->Profile handling (no redundant entries)

This commit is contained in:
Flamefire committed 2013-04-25 18:27:59 +02:00
1 parent dfc705aea4
commit bdca0554e4
18 files changed
+232 -323

No files matched your search

@@ -459,33 +459,22 @@ namespace VocaluxeLib.PartyModes.Challenge
CBase.Game.AddSong(songID, gm); CBase.Game.AddSong(songID, gm);
CBase.Game.SetNumPlayer(_GameData.NumPlayerAtOnce); CBase.Game.SetNumPlayer(_GameData.NumPlayerAtOnce);
SPlayer[] player = CBase.Game.GetPlayer(); SPlayer[] player = CBase.Game.GetPlayers();
if (player == null) if (player == null)
return; return;
if (player.Length < _GameData.NumPlayerAtOnce) if (player.Length < _GameData.NumPlayerAtOnce)
return; return;
SProfile[] profiles = CBase.Profiles.GetProfiles();
CCombination c = _GameData.Rounds.GetRound(_GameData.CurrentRoundNr - 1); CCombination c = _GameData.Rounds.GetRound(_GameData.CurrentRoundNr - 1);
for (int i = 0; i < _GameData.NumPlayerAtOnce; i++) for (int i = 0; i < _GameData.NumPlayerAtOnce; i++)
{ {
//default values
player[i].Name = "foobar";
player[i].Difficulty = EGameDifficulty.TR_CONFIG_EASY;
player[i].ProfileID = -1;
//try to fill with the right data //try to fill with the right data
if (c != null) if (c != null)
{ player[i].ProfileID = _GameData.ProfileIDs[c.Player[i]];
if (_GameData.ProfileIDs[c.Player[i]] < profiles.Length) else
{ player[i].ProfileID = -1;
player[i].Name = profiles[_GameData.ProfileIDs[c.Player[i]]].PlayerName;
player[i].Difficulty = profiles[_GameData.ProfileIDs[c.Player[i]]].Difficulty;
player[i].ProfileID = _GameData.ProfileIDs[c.Player[i]];
}
}
} }
CBase.Songs.AddPartySongSung(songID); CBase.Songs.AddPartySongSung(songID);
@@ -593,7 +582,7 @@ namespace VocaluxeLib.PartyModes.Challenge
} }
else else
{ {
SPlayer[] results = CBase.Game.GetPlayer(); SPlayer[] results = CBase.Game.GetPlayers();
if (results == null) if (results == null)
return; return;
@@ -482,33 +482,22 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
#region PlayerNames #region PlayerNames
CBase.Game.SetNumPlayer(_GameData.NumPlayerAtOnce); CBase.Game.SetNumPlayer(_GameData.NumPlayerAtOnce);
SPlayer[] player = CBase.Game.GetPlayer(); SPlayer[] player = CBase.Game.GetPlayers();
if (player == null) if (player == null)
return false; return false;
if (player.Length < _GameData.NumPlayerAtOnce) if (player.Length < _GameData.NumPlayerAtOnce)
return false; return false;
SProfile[] profiles = CBase.Profiles.GetProfiles();
CCombination c = _GameData.Rounds.GetRound(_GameData.CurrentRoundNr - 1); CCombination c = _GameData.Rounds.GetRound(_GameData.CurrentRoundNr - 1);
for (int i = 0; i < _GameData.NumPlayerAtOnce; i++) for (int i = 0; i < _GameData.NumPlayerAtOnce; i++)
{ {
//default values
player[i].Name = "foobar";
player[i].Difficulty = EGameDifficulty.TR_CONFIG_EASY;
player[i].ProfileID = -1;
//try to fill with the right data //try to fill with the right data
if (c != null) if (c != null)
{ player[i].ProfileID = _GameData.ProfileIDs[c.Player[i]];
if (_GameData.ProfileIDs[c.Player[i]] < profiles.Length) else
{ player[i].ProfileID = -1;
player[i].Name = profiles[_GameData.ProfileIDs[c.Player[i]]].PlayerName;
player[i].Difficulty = profiles[_GameData.ProfileIDs[c.Player[i]]].Difficulty;
player[i].ProfileID = _GameData.ProfileIDs[c.Player[i]];
}
}
} }
#endregion PlayerNames #endregion PlayerNames
@@ -718,7 +718,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe
CBase.Game.SetNumPlayer(2); CBase.Game.SetNumPlayer(2);
SPlayer[] player = CBase.Game.GetPlayer(); SPlayer[] player = CBase.Game.GetPlayers();
if (player == null) if (player == null)
return; return;
@@ -732,8 +732,6 @@ namespace VocaluxeLib.PartyModes.TicTacToe
for (int i = 0; i < 2; i++) for (int i = 0; i < 2; i++)
{ {
//default values //default values
player[i].Name = "foobar";
player[i].Difficulty = EGameDifficulty.TR_CONFIG_EASY;
player[i].ProfileID = -1; player[i].ProfileID = -1;
} }
@@ -742,16 +740,12 @@ namespace VocaluxeLib.PartyModes.TicTacToe
{ {
if (_GameData.ProfileIDsTeam1[r.SingerTeam1] < profiles.Length) if (_GameData.ProfileIDsTeam1[r.SingerTeam1] < profiles.Length)
{ {
player[0].Name = profiles[_GameData.ProfileIDsTeam1[r.SingerTeam1]].PlayerName;
player[0].Difficulty = profiles[_GameData.ProfileIDsTeam1[r.SingerTeam1]].Difficulty;
player[0].ProfileID = _GameData.ProfileIDsTeam1[r.SingerTeam1]; player[0].ProfileID = _GameData.ProfileIDsTeam1[r.SingerTeam1];
if (isDuet) if (isDuet)
player[0].LineNr = 0; player[0].LineNr = 0;
} }
if (_GameData.ProfileIDsTeam2[r.SingerTeam2] < profiles.Length) if (_GameData.ProfileIDsTeam2[r.SingerTeam2] < profiles.Length)
{ {
player[1].Name = profiles[_GameData.ProfileIDsTeam2[r.SingerTeam2]].PlayerName;
player[1].Difficulty = profiles[_GameData.ProfileIDsTeam2[r.SingerTeam2]].Difficulty;
player[1].ProfileID = _GameData.ProfileIDsTeam2[r.SingerTeam2]; player[1].ProfileID = _GameData.ProfileIDsTeam2[r.SingerTeam2];
if (isDuet) if (isDuet)
player[1].LineNr = 1; player[1].LineNr = 1;
@@ -792,7 +786,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe
if (!_GameData.Rounds[_GameData.SingRoundNr].Finished) if (!_GameData.Rounds[_GameData.SingRoundNr].Finished)
_GameData.CurrentRoundNr++; _GameData.CurrentRoundNr++;
SPlayer[] results = CBase.Game.GetPlayer(); SPlayer[] results = CBase.Game.GetPlayers();
if (results == null) if (results == null)
return; return;
+2 -4
View File
@@ -842,13 +842,11 @@ namespace Vocaluxe.Base
if (Path.GetFileName(CProfiles.Profiles[i].ProfileFile) == Players[j] && CProfiles.Profiles[i].Active == EOffOn.TR_CONFIG_ON) if (Path.GetFileName(CProfiles.Profiles[i].ProfileFile) == Players[j] && CProfiles.Profiles[i].Active == EOffOn.TR_CONFIG_ON)
{ {
//Update Game-infos with player //Update Game-infos with player
CGame.Player[j].Name = CProfiles.Profiles[i].PlayerName; CGame.Players[j].ProfileID = i;
CGame.Player[j].Difficulty = CProfiles.Profiles[i].Difficulty;
CGame.Player[j].ProfileID = i;
} }
} }
else else
CGame.Player[j].ProfileID = -1; CGame.Players[j].ProfileID = -1;
} }
} }
} }
+16 -40
View File
@@ -70,21 +70,9 @@ namespace Vocaluxe.Base
} }
#region Highscores #region Highscores
public static int AddScore(string playerName, int score, int lineNr, long date, int medley, int duet, int shortSong, int diff, public static int AddScore(string playerName, int score, int lineNr, long date, int medley, int duet, int shortSong, int difficulty,
string artist, string title, int numPlayed, string filePath) string artist, string title, int numPlayed, string filePath)
{ {
SPlayer player = new SPlayer
{
Name = playerName,
Points = score,
LineNr = lineNr,
DateTicks = date,
Medley = medley == 1,
Duet = duet == 1,
ShortSong = shortSong == 1,
Difficulty = (EGameDifficulty)diff
};
using (SQLiteConnection connection = new SQLiteConnection()) using (SQLiteConnection connection = new SQLiteConnection())
{ {
connection.ConnectionString = "Data Source=" + filePath; connection.ConnectionString = "Data Source=" + filePath;
@@ -101,7 +89,7 @@ namespace Vocaluxe.Base
using (SQLiteCommand command = new SQLiteCommand(connection)) using (SQLiteCommand command = new SQLiteCommand(connection))
{ {
int dataBaseSongID = _GetDataBaseSongID(artist, title, numPlayed, command); int dataBaseSongID = _GetDataBaseSongID(artist, title, numPlayed, command);
int result = _AddScore(player, command, dataBaseSongID); int result = _AddScore(playerName, score, lineNr, date, medley, duet, shortSong, difficulty, dataBaseSongID, command);
return result; return result;
} }
} }
@@ -125,42 +113,30 @@ namespace Vocaluxe.Base
using (SQLiteCommand command = new SQLiteCommand(connection)) using (SQLiteCommand command = new SQLiteCommand(connection))
{ {
int dataBaseSongID = _GetDataBaseSongID(player, command); int dataBaseSongID = _GetDataBaseSongID(player, command);
int result = _AddScore(player, command, dataBaseSongID); return _AddScore(CProfiles.GetPlayerName(player.ProfileID), (int)Math.Round(player.Points), player.LineNr, player.DateTicks, player.Medley ? 1 : 0,
player.Duet ? 1 : 0, player.ShortSong ? 1 : 0, (int)CProfiles.GetDifficulty(player.ProfileID), dataBaseSongID, command);
return result;
} }
} }
} }
private static int _AddScore(SPlayer player, SQLiteCommand command, int dataBaseSongID) private static int _AddScore(string playerName, int score, int lineNr, long date, int medley, int duet, int shortSong, int difficulty,
int dataBaseSongID, SQLiteCommand command)
{ {
int lastInsertID = -1; int lastInsertID = -1;
if (dataBaseSongID >= 0) if (dataBaseSongID >= 0)
{ {
int medley = 0;
if (player.Medley)
medley = 1;
int duet = 0;
if (player.Duet)
duet = 1;
int shortSong = 0;
if (player.ShortSong)
shortSong = 1;
command.CommandText = "SELECT id FROM Scores WHERE SongID = @SongID AND PlayerName = @PlayerName AND Score = @Score AND " + command.CommandText = "SELECT id FROM Scores WHERE SongID = @SongID AND PlayerName = @PlayerName AND Score = @Score AND " +
"LineNr = @LineNr AND Date = @Date AND Medley = @Medley AND Duet = @Duet AND ShortSong = @ShortSong AND Difficulty = @Difficulty"; "LineNr = @LineNr AND Date = @Date AND Medley = @Medley AND Duet = @Duet AND ShortSong = @ShortSong AND Difficulty = @Difficulty";
command.Parameters.Add("@SongID", DbType.Int32, 0).Value = dataBaseSongID; command.Parameters.Add("@SongID", DbType.Int32, 0).Value = dataBaseSongID;
command.Parameters.Add("@PlayerName", DbType.String, 0).Value = player.Name; command.Parameters.Add("@PlayerName", DbType.String, 0).Value = playerName;
command.Parameters.Add("@Score", DbType.Int32, 0).Value = (int)Math.Round(player.Points); command.Parameters.Add("@Score", DbType.Int32, 0).Value = score;
command.Parameters.Add("@LineNr", DbType.Int32, 0).Value = player.LineNr; command.Parameters.Add("@LineNr", DbType.Int32, 0).Value = lineNr;
command.Parameters.Add("@Date", DbType.Int64, 0).Value = player.DateTicks; command.Parameters.Add("@Date", DbType.Int64, 0).Value = date;
command.Parameters.Add("@Medley", DbType.Int32, 0).Value = medley; command.Parameters.Add("@Medley", DbType.Int32, 0).Value = medley;
command.Parameters.Add("@Duet", DbType.Int32, 0).Value = duet; command.Parameters.Add("@Duet", DbType.Int32, 0).Value = duet;
command.Parameters.Add("@ShortSong", DbType.Int32, 0).Value = shortSong; command.Parameters.Add("@ShortSong", DbType.Int32, 0).Value = shortSong;
command.Parameters.Add("@Difficulty", DbType.Int32, 0).Value = (int)player.Difficulty; command.Parameters.Add("@Difficulty", DbType.Int32, 0).Value = difficulty;
SQLiteDataReader reader = null; SQLiteDataReader reader = null;
try try
@@ -181,14 +157,14 @@ namespace Vocaluxe.Base
command.CommandText = "INSERT INTO Scores (SongID, PlayerName, Score, LineNr, Date, Medley, Duet, ShortSong, Difficulty) " + command.CommandText = "INSERT INTO Scores (SongID, PlayerName, Score, LineNr, Date, Medley, Duet, ShortSong, Difficulty) " +
"VALUES (@SongID, @PlayerName, @Score, @LineNr, @Date, @Medley, @Duet, @ShortSong, @Difficulty)"; "VALUES (@SongID, @PlayerName, @Score, @LineNr, @Date, @Medley, @Duet, @ShortSong, @Difficulty)";
command.Parameters.Add("@SongID", DbType.Int32, 0).Value = dataBaseSongID; command.Parameters.Add("@SongID", DbType.Int32, 0).Value = dataBaseSongID;
command.Parameters.Add("@PlayerName", DbType.String, 0).Value = player.Name; command.Parameters.Add("@PlayerName", DbType.String, 0).Value = playerName;
command.Parameters.Add("@Score", DbType.Int32, 0).Value = (int)Math.Round(player.Points); command.Parameters.Add("@Score", DbType.Int32, 0).Value = score;
command.Parameters.Add("@LineNr", DbType.Int32, 0).Value = player.LineNr; command.Parameters.Add("@LineNr", DbType.Int32, 0).Value = lineNr;
command.Parameters.Add("@Date", DbType.Int64, 0).Value = player.DateTicks; command.Parameters.Add("@Date", DbType.Int64, 0).Value = date;
command.Parameters.Add("@Medley", DbType.Int32, 0).Value = medley; command.Parameters.Add("@Medley", DbType.Int32, 0).Value = medley;
command.Parameters.Add("@Duet", DbType.Int32, 0).Value = duet; command.Parameters.Add("@Duet", DbType.Int32, 0).Value = duet;
command.Parameters.Add("@ShortSong", DbType.Int32, 0).Value = shortSong; command.Parameters.Add("@ShortSong", DbType.Int32, 0).Value = shortSong;
command.Parameters.Add("@Difficulty", DbType.Int32, 0).Value = (int)player.Difficulty; command.Parameters.Add("@Difficulty", DbType.Int32, 0).Value = difficulty;
command.ExecuteNonQuery(); command.ExecuteNonQuery();
//Read last insert line //Read last insert line
+49 -49
View File
@@ -60,13 +60,13 @@ namespace Vocaluxe.Base
public static int ActBeatD { get; private set; } public static int ActBeatD { get; private set; }
public static SPlayer[] Player { get; private set; } public static SPlayer[] Players { get; private set; }
public static void Init() public static void Init()
{ {
_GameMode = new CGameModeNormal(); _GameMode = new CGameModeNormal();
_GameMode.Init(); _GameMode.Init();
Player = new SPlayer[CSettings.MaxNumPlayer]; Players = new SPlayer[CSettings.MaxNumPlayer];
ResetPlayer(); ResetPlayer();
CConfig.UsePlayers(); CConfig.UsePlayers();
@@ -115,12 +115,12 @@ namespace Vocaluxe.Base
public static void Start() public static void Start()
{ {
_GameMode.Start(Player); _GameMode.Start(Players);
} }
public static void NextRound() public static void NextRound()
{ {
_GameMode.NextRound(Player); _GameMode.NextRound(Players);
} }
public static bool IsFinished() public static bool IsFinished()
@@ -175,22 +175,22 @@ namespace Vocaluxe.Base
public static void ResetPlayer() public static void ResetPlayer()
{ {
for (int i = 0; i < Player.Length; i++) for (int i = 0; i < Players.Length; i++)
{ {
Player[i].Points = 0f; Players[i].Points = 0f;
Player[i].PointsLineBonus = 0f; Players[i].PointsLineBonus = 0f;
Player[i].PointsGoldenNotes = 0f; Players[i].PointsGoldenNotes = 0f;
Player[i].LineNr = 0; Players[i].LineNr = 0;
Player[i].NoteDiff = 0; Players[i].NoteDiff = 0;
Player[i].SingLine = new List<CLine>(); Players[i].SingLine = new List<CLine>();
Player[i].CurrentLine = -1; Players[i].CurrentLine = -1;
Player[i].CurrentNote = -1; Players[i].CurrentNote = -1;
Player[i].SongID = -1; Players[i].SongID = -1;
Player[i].Medley = false; Players[i].Medley = false;
Player[i].Duet = false; Players[i].Duet = false;
Player[i].ShortSong = false; Players[i].ShortSong = false;
Player[i].DateTicks = DateTime.Now.Ticks; Players[i].DateTicks = DateTime.Now.Ticks;
Player[i].SongFinished = false; Players[i].SongFinished = false;
} }
_OldBeatD = -100; _OldBeatD = -100;
Beat = -100; Beat = -100;
@@ -227,9 +227,9 @@ namespace Vocaluxe.Base
{ {
if ((_GameMode.GetCurrentGameMode() == EGameMode.TR_GAMEMODE_MEDLEY && song.Medley.EndBeat == beat) || if ((_GameMode.GetCurrentGameMode() == EGameMode.TR_GAMEMODE_MEDLEY && song.Medley.EndBeat == beat) ||
(_GameMode.GetCurrentGameMode() == EGameMode.TR_GAMEMODE_SHORTSONG && song.ShortEnd == beat)) (_GameMode.GetCurrentGameMode() == EGameMode.TR_GAMEMODE_SHORTSONG && song.ShortEnd == beat))
Player[p].SongFinished = true; Players[p].SongFinished = true;
CLine[] lines = song.Notes.GetLines(Player[p].LineNr).Line; CLine[] lines = song.Notes.GetLines(Players[p].LineNr).Line;
int line = -1; int line = -1;
for (int j = 0; j < lines.Length; j++) for (int j = 0; j < lines.Length; j++)
@@ -243,13 +243,13 @@ namespace Vocaluxe.Base
if (line < 0) if (line < 0)
continue; continue;
if (line != Player[p].CurrentLine) if (line != Players[p].CurrentLine)
Player[p].CurrentNote = -1; Players[p].CurrentNote = -1;
Player[p].CurrentLine = line; Players[p].CurrentLine = line;
while (Player[p].SingLine.Count <= line) while (Players[p].SingLine.Count <= line)
Player[p].SingLine.Add(new CLine()); Players[p].SingLine.Add(new CLine());
CNote[] notes = lines[line].Notes; CNote[] notes = lines[line].Notes;
int note = -1; int note = -1;
@@ -264,14 +264,14 @@ namespace Vocaluxe.Base
if (note >= 0) if (note >= 0)
{ {
Player[p].CurrentNote = note; Players[p].CurrentNote = note;
if (line == lines.Length - 1) if (line == lines.Length - 1)
{ {
if (note == lines[line].NoteCount - 1) if (note == lines[line].NoteCount - 1)
{ {
if (notes[note].EndBeat == beat) if (notes[note].EndBeat == beat)
Player[p].SongFinished = true; Players[p].SongFinished = true;
} }
} }
@@ -286,56 +286,56 @@ namespace Vocaluxe.Base
while (tonePlayer - tone < -6) while (tonePlayer - tone < -6)
tonePlayer += 12; tonePlayer += 12;
Player[p].NoteDiff = Math.Abs(tone - tonePlayer); Players[p].NoteDiff = Math.Abs(tone - tonePlayer);
bool hit = Player[p].NoteDiff <= (2 - (int)Player[p].Difficulty); bool hit = Players[p].NoteDiff <= (2 - (int)CProfiles.GetDifficulty(Players[p].ProfileID));
if (hit) if (hit)
{ {
// valid // valid
//CSound.RecordSetTone(p, Tone); //CSound.RecordSetTone(p, Tone);
double points = (CSettings.MaxScore - CSettings.LinebonusScore) * (double)notes[note].PointsForBeat / double points = (CSettings.MaxScore - CSettings.LinebonusScore) * (double)notes[note].PointsForBeat /
song.Notes.GetLines(Player[p].LineNr).Points; song.Notes.GetLines(Players[p].LineNr).Points;
if (notes[note].NoteType == ENoteType.Golden) if (notes[note].NoteType == ENoteType.Golden)
Player[p].PointsGoldenNotes += points; Players[p].PointsGoldenNotes += points;
Player[p].Points += points; Players[p].Points += points;
// update player notes (sung notes) // update player notes (sung notes)
if (Player[p].SingLine[line].NoteCount > 0) if (Players[p].SingLine[line].NoteCount > 0)
{ {
CNote nt = Player[p].SingLine[line].LastNote; CNote nt = Players[p].SingLine[line].LastNote;
if (notes[note].StartBeat == beat || nt.EndBeat + 1 != beat || nt.Tone != tone || !nt.Hit) if (notes[note].StartBeat == beat || nt.EndBeat + 1 != beat || nt.Tone != tone || !nt.Hit)
Player[p].SingLine[line].AddNote(new CNote(beat, 1, tone, String.Empty, true, notes[note].NoteType)); Players[p].SingLine[line].AddNote(new CNote(beat, 1, tone, String.Empty, true, notes[note].NoteType));
else else
Player[p].SingLine[line].IncLastNoteLength(); Players[p].SingLine[line].IncLastNoteLength();
} }
else else
Player[p].SingLine[line].AddNote(new CNote(beat, 1, tone, String.Empty, true, notes[note].NoteType)); Players[p].SingLine[line].AddNote(new CNote(beat, 1, tone, String.Empty, true, notes[note].NoteType));
Player[p].SingLine[line].LastNote.IsPerfect(notes[note]); Players[p].SingLine[line].LastNote.IsPerfect(notes[note]);
Player[p].SingLine[line].IsPerfect(lines[line]); Players[p].SingLine[line].IsPerfect(lines[line]);
} }
else else
{ {
if (Player[p].SingLine[line].NoteCount > 0) if (Players[p].SingLine[line].NoteCount > 0)
{ {
CNote nt = Player[p].SingLine[line].LastNote; CNote nt = Players[p].SingLine[line].LastNote;
if (nt.Tone == tonePlayer && nt.EndBeat + 1 == beat && !nt.Hit) if (nt.Tone == tonePlayer && nt.EndBeat + 1 == beat && !nt.Hit)
Player[p].SingLine[line].IncLastNoteLength(); Players[p].SingLine[line].IncLastNoteLength();
else else
Player[p].SingLine[line].AddNote(new CNote(beat, 1, tonePlayer, String.Empty, false, ENoteType.Freestyle)); Players[p].SingLine[line].AddNote(new CNote(beat, 1, tonePlayer, String.Empty, false, ENoteType.Freestyle));
} }
else else
Player[p].SingLine[line].AddNote(new CNote(beat, 1, tonePlayer, String.Empty, false, ENoteType.Freestyle)); Players[p].SingLine[line].AddNote(new CNote(beat, 1, tonePlayer, String.Empty, false, ENoteType.Freestyle));
} }
} }
// Line Bonus // Line Bonus
int numLinesWithPoints = song.Notes.GetNumLinesWithPoints(Player[p].LineNr); int numLinesWithPoints = song.Notes.GetNumLinesWithPoints(Players[p].LineNr);
if (note == lines[line].NoteCount - 1 && numLinesWithPoints > 0) if (note == lines[line].NoteCount - 1 && numLinesWithPoints > 0)
{ {
if (notes[note].EndBeat == beat && lines[line].Points > 0f) if (notes[note].EndBeat == beat && lines[line].Points > 0f)
{ {
double factor = Player[p].SingLine[line].Points / (double)lines[line].Points; double factor = Players[p].SingLine[line].Points / (double)lines[line].Points;
if (factor < 0.4) if (factor < 0.4)
factor = 0.0; factor = 0.0;
else if (factor > 0.9) else if (factor > 0.9)
@@ -348,8 +348,8 @@ namespace Vocaluxe.Base
} }
double points = CSettings.LinebonusScore * factor * 1f / numLinesWithPoints; double points = CSettings.LinebonusScore * factor * 1f / numLinesWithPoints;
Player[p].Points += points; Players[p].Points += points;
Player[p].PointsLineBonus += points; Players[p].PointsLineBonus += points;
} }
} }
} }
+12 -2
View File
@@ -478,9 +478,9 @@ namespace Vocaluxe.Base
CGame.NumPlayer = numPlayer; CGame.NumPlayer = numPlayer;
} }
public SPlayer[] GetPlayer() public SPlayer[] GetPlayers()
{ {
return CGame.Player; return CGame.Players;
} }
public CPoints GetPoints() public CPoints GetPoints()
@@ -540,6 +540,16 @@ namespace Vocaluxe.Base
{ {
return CProfiles.Profiles; return CProfiles.Profiles;
} }
public EGameDifficulty GetDifficulty(int profileID)
{
return CProfiles.GetDifficulty(profileID);
}
public string GetPlayerName(int profileID, int playerNum = 0)
{
return CProfiles.GetPlayerName(profileID, playerNum);
}
} }
class CBrecord : IRecording class CBrecord : IRecording
+62 -67
View File
@@ -62,12 +62,14 @@ namespace Vocaluxe.Base
LoadProfiles(); LoadProfiles();
} }
public static int NewProfile() public static string GetPlayerName(int profileID, int playerNum = 0)
{ {
return NewProfile(String.Empty); if (IsProfileIDValid(profileID))
return _Profiles[profileID].PlayerName;
return (playerNum > 0) ? "Player " + playerNum : "Player";
} }
public static int NewProfile(string fileName) public static int NewProfile(string fileName = "")
{ {
SProfile profile = new SProfile SProfile profile = new SProfile
{ {
@@ -132,125 +134,119 @@ namespace Vocaluxe.Base
} }
} }
public static string AddGetPlayerName(int profileNr, char chr) public static string AddGetPlayerName(int profileID, char chr)
{ {
if (profileNr < 0 || profileNr >= _Profiles.Count) if (IsProfileIDValid(profileID))
return String.Empty; return String.Empty;
SProfile profile = _Profiles[profileNr]; SProfile profile = _Profiles[profileID];
profile.PlayerName += chr; profile.PlayerName += chr;
_Profiles[profileNr] = profile; _Profiles[profileID] = profile;
return profile.PlayerName; return profile.PlayerName;
} }
public static string GetPlayerName(int profileNr) public static string GetDeleteCharInPlayerName(int profileID)
{ {
if (profileNr < 0 || profileNr >= _Profiles.Count) if (IsProfileIDValid(profileID))
return String.Empty; return String.Empty;
return _Profiles[profileNr].PlayerName; SProfile profile = _Profiles[profileID];
}
public static string GetDeleteCharInPlayerName(int profileNr)
{
if (profileNr < 0 || profileNr >= _Profiles.Count)
return String.Empty;
SProfile profile = _Profiles[profileNr];
if (profile.PlayerName != "") if (profile.PlayerName != "")
profile.PlayerName = profile.PlayerName.Remove(profile.PlayerName.Length - 1); profile.PlayerName = profile.PlayerName.Remove(profile.PlayerName.Length - 1);
_Profiles[profileNr] = profile; _Profiles[profileID] = profile;
return profile.PlayerName; return profile.PlayerName;
} }
public static EGameDifficulty GetDifficulty(int profileNr) public static bool IsProfileIDValid(int profileID)
{ {
if (profileNr < 0 || profileNr >= _Profiles.Count) return profileID < 0 || profileID >= _Profiles.Count;
return EGameDifficulty.TR_CONFIG_NORMAL;
return _Profiles[profileNr].Difficulty;
} }
public static void SetDifficulty(int profileNr, EGameDifficulty difficulty) public static EGameDifficulty GetDifficulty(int profileID)
{ {
if (profileNr < 0 || profileNr >= _Profiles.Count) return IsProfileIDValid(profileID) ? EGameDifficulty.TR_CONFIG_NORMAL : _Profiles[profileID].Difficulty;
}
public static void SetDifficulty(int profileID, EGameDifficulty difficulty)
{
if (IsProfileIDValid(profileID))
return; return;
SProfile profile = _Profiles[profileNr]; SProfile profile = _Profiles[profileID];
profile.Difficulty = difficulty; profile.Difficulty = difficulty;
_Profiles[profileNr] = profile; _Profiles[profileID] = profile;
} }
public static EOffOn GetGuestProfile(int profileNr) public static EOffOn GetGuestProfile(int profileID)
{ {
if (profileNr < 0 || profileNr >= _Profiles.Count) if (IsProfileIDValid(profileID))
return EOffOn.TR_CONFIG_OFF; return EOffOn.TR_CONFIG_OFF;
return _Profiles[profileNr].GuestProfile; return _Profiles[profileID].GuestProfile;
} }
public static EOffOn GetActive(int profileNr) public static EOffOn GetActive(int profileID)
{ {
if (profileNr < 0 || profileNr >= _Profiles.Count) if (IsProfileIDValid(profileID))
return EOffOn.TR_CONFIG_OFF; return EOffOn.TR_CONFIG_OFF;
return _Profiles[profileNr].Active; return _Profiles[profileID].Active;
} }
public static void SetGuestProfile(int profileNr, EOffOn option) public static void SetGuestProfile(int profileID, EOffOn option)
{ {
if (profileNr < 0 || profileNr >= _Profiles.Count) if (IsProfileIDValid(profileID))
return; return;
SProfile profile = _Profiles[profileNr]; SProfile profile = _Profiles[profileID];
profile.GuestProfile = option; profile.GuestProfile = option;
_Profiles[profileNr] = profile; _Profiles[profileID] = profile;
} }
public static void SetActive(int profileNr, EOffOn option) public static void SetActive(int profileID, EOffOn option)
{ {
if (profileNr < 0 || profileNr >= _Profiles.Count) if (IsProfileIDValid(profileID))
return; return;
SProfile profile = _Profiles[profileNr]; SProfile profile = _Profiles[profileID];
profile.Active = option; profile.Active = option;
_Profiles[profileNr] = profile; _Profiles[profileID] = profile;
} }
public static bool IsGuestProfile(int profileNr) public static bool IsGuestProfile(int profileID)
{ {
if (profileNr < 0 || profileNr >= _Profiles.Count) if (IsProfileIDValid(profileID))
return true; // this will prevent from saving dummy profiles to highscore db return true; // this will prevent from saving dummy profiles to highscore db
return _Profiles[profileNr].GuestProfile == EOffOn.TR_CONFIG_ON; return _Profiles[profileID].GuestProfile == EOffOn.TR_CONFIG_ON;
} }
public static bool IsActive(int profileNr) public static bool IsActive(int profileID)
{ {
if (profileNr < 0 || profileNr >= _Profiles.Count) if (IsProfileIDValid(profileID))
return false; return false;
return _Profiles[profileNr].Active == EOffOn.TR_CONFIG_ON; return _Profiles[profileID].Active == EOffOn.TR_CONFIG_ON;
} }
public static void SetAvatar(int profileNr, int avatarNr) public static void SetAvatar(int profileID, int avatarNr)
{ {
if (profileNr < 0 || profileNr >= _Profiles.Count || avatarNr < 0 || avatarNr >= _Avatars.Count) if (IsProfileIDValid(profileID) || avatarNr < 0 || avatarNr >= _Avatars.Count)
return; return;
SProfile profile = _Profiles[profileNr]; SProfile profile = _Profiles[profileID];
profile.Avatar = _Avatars[avatarNr]; profile.Avatar = _Avatars[avatarNr];
_Profiles[profileNr] = profile; _Profiles[profileID] = profile;
} }
public static int GetAvatarNr(int profileNr) public static int GetAvatarNr(int profileID)
{ {
if (profileNr < 0 || profileNr >= _Profiles.Count) if (IsProfileIDValid(profileID))
return 0; return 0;
for (int i = 0; i < _Avatars.Count; i++) for (int i = 0; i < _Avatars.Count; i++)
{ {
if (_Profiles[profileNr].Avatar.FileName == _Avatars[i].FileName) if (_Profiles[profileID].Avatar.FileName == _Avatars[i].FileName)
return i; return i;
} }
@@ -259,19 +255,18 @@ namespace Vocaluxe.Base
public static void DeleteProfile(int profileID) public static void DeleteProfile(int profileID)
{ {
if (profileID < 0 || profileID >= _Profiles.Count) if (IsProfileIDValid(profileID))
return; return;
if (_Profiles[profileID].ProfileFile != "") if (_Profiles[profileID].ProfileFile == "")
return;
try
{ {
try File.Delete(_Profiles[profileID].ProfileFile);
{ _Profiles.RemoveAt(profileID);
File.Delete(_Profiles[profileID].ProfileFile); }
_Profiles.RemoveAt(profileID); catch (Exception)
} {
catch (Exception) CLog.LogError("Can't delete Profile File " + _Profiles[profileID].ProfileFile + ".xml");
{
CLog.LogError("Can't delete Profile File " + _Profiles[profileID].ProfileFile + ".xml");
}
} }
} }
@@ -298,7 +293,7 @@ namespace Vocaluxe.Base
private static void _SaveProfile(int profileID) private static void _SaveProfile(int profileID)
{ {
if (profileID < 0 || profileID >= _Profiles.Count) if (IsProfileIDValid(profileID))
return; return;
if (_Profiles[profileID].ProfileFile == "") if (_Profiles[profileID].ProfileFile == "")
+1 -1
View File
@@ -258,7 +258,7 @@ namespace Vocaluxe
#endif #endif
#if ARCH_X64 #if ARCH_X64
string path="x64"; string path = "x64";
#endif #endif
path = Path.Combine(path, arr[0] + ".dll"); path = Path.Combine(path, arr[0] + ".dll");
try try
+31 -61
View File
@@ -55,7 +55,6 @@ namespace Vocaluxe.Screens
{"SelectSlideDuetPlayer1", "SelectSlideDuetPlayer2", "SelectSlideDuetPlayer3", "SelectSlideDuetPlayer4", "SelectSlideDuetPlayer5", "SelectSlideDuetPlayer6"}; {"SelectSlideDuetPlayer1", "SelectSlideDuetPlayer2", "SelectSlideDuetPlayer3", "SelectSlideDuetPlayer4", "SelectSlideDuetPlayer5", "SelectSlideDuetPlayer6"};
private readonly STexture[] _OriginalPlayerAvatarTextures = new STexture[CSettings.MaxNumPlayer]; private readonly STexture[] _OriginalPlayerAvatarTextures = new STexture[CSettings.MaxNumPlayer];
private bool _SelectingMouseActive;
private bool _SelectingKeyboardActive; private bool _SelectingKeyboardActive;
private bool _SelectingKeyboardUnendless; private bool _SelectingKeyboardUnendless;
private int _SelectingKeyboardPlayerNr; private int _SelectingKeyboardPlayerNr;
@@ -173,9 +172,7 @@ namespace Vocaluxe.Screens
{ {
_SelectedPlayerNr = _NameSelections[_NameSelection].Selection; _SelectedPlayerNr = _NameSelections[_NameSelection].Selection;
//Update Game-infos with new player //Update Game-infos with new player
CGame.Player[_SelectingKeyboardPlayerNr - 1].Name = CProfiles.Profiles[_SelectedPlayerNr].PlayerName; CGame.Players[_SelectingKeyboardPlayerNr - 1].ProfileID = _SelectedPlayerNr;
CGame.Player[_SelectingKeyboardPlayerNr - 1].Difficulty = CProfiles.Profiles[_SelectedPlayerNr].Difficulty;
CGame.Player[_SelectingKeyboardPlayerNr - 1].ProfileID = _SelectedPlayerNr;
//Update config for default players. //Update config for default players.
CConfig.Players[_SelectingKeyboardPlayerNr - 1] = CProfiles.Profiles[_SelectedPlayerNr].ProfileFile; CConfig.Players[_SelectingKeyboardPlayerNr - 1] = CProfiles.Profiles[_SelectedPlayerNr].ProfileFile;
CConfig.SaveConfig(); CConfig.SaveConfig();
@@ -320,9 +317,7 @@ namespace Vocaluxe.Screens
case Keys.Delete: case Keys.Delete:
//Delete profile-selection //Delete profile-selection
CGame.Player[_SelectingKeyboardPlayerNr - 1].ProfileID = -1; CGame.Players[_SelectingKeyboardPlayerNr - 1].ProfileID = -1;
CGame.Player[_SelectingKeyboardPlayerNr - 1].Name = String.Empty;
CGame.Player[_SelectingKeyboardPlayerNr - 1].Difficulty = EGameDifficulty.TR_CONFIG_EASY;
//Update config for default players. //Update config for default players.
CConfig.Players[_SelectingKeyboardPlayerNr - 1] = String.Empty; CConfig.Players[_SelectingKeyboardPlayerNr - 1] = String.Empty;
CConfig.SaveConfig(); CConfig.SaveConfig();
@@ -432,7 +427,7 @@ namespace Vocaluxe.Screens
base.HandleMouse(mouseEvent); base.HandleMouse(mouseEvent);
//Check if LeftButton is hold and Select-Mode inactive //Check if LeftButton is hold and Select-Mode inactive
if (mouseEvent.LBH && !_SelectingMouseActive) if (mouseEvent.LBH && _SelectedPlayerNr < 0)
{ {
//Save mouse-coords //Save mouse-coords
_OldMouseX = mouseEvent.X; _OldMouseX = mouseEvent.X;
@@ -444,9 +439,6 @@ namespace Vocaluxe.Screens
_SelectedPlayerNr = _NameSelections[_NameSelection].TilePlayerNr(mouseEvent); _SelectedPlayerNr = _NameSelections[_NameSelection].TilePlayerNr(mouseEvent);
if (_SelectedPlayerNr != -1) if (_SelectedPlayerNr != -1)
{ {
//Activate mouse-selecting
_SelectingMouseActive = true;
//Update of Drag/Drop-Texture //Update of Drag/Drop-Texture
CStatic selectedPlayer = _NameSelections[_NameSelection].TilePlayerAvatar(mouseEvent); CStatic selectedPlayer = _NameSelections[_NameSelection].TilePlayerAvatar(mouseEvent);
_ChooseAvatarStatic.Visible = true; _ChooseAvatarStatic.Visible = true;
@@ -459,7 +451,7 @@ namespace Vocaluxe.Screens
} }
//Check if LeftButton is hold and Select-Mode active //Check if LeftButton is hold and Select-Mode active
if (mouseEvent.LBH && _SelectingMouseActive) if (mouseEvent.LBH && _SelectedPlayerNr >= 0)
{ {
//Update coords for Drag/Drop-Texture //Update coords for Drag/Drop-Texture
_ChooseAvatarStatic.Rect.X += mouseEvent.X - _OldMouseX; _ChooseAvatarStatic.Rect.X += mouseEvent.X - _OldMouseX;
@@ -468,41 +460,33 @@ namespace Vocaluxe.Screens
_OldMouseY = mouseEvent.Y; _OldMouseY = mouseEvent.Y;
} }
// LeftButton isn't hold anymore, but Selec-Mode is still active -> "Drop" of Avatar // LeftButton isn't hold anymore, but Selec-Mode is still active -> "Drop" of Avatar
else if (_SelectingMouseActive) else if (_SelectedPlayerNr >= 0)
{ {
//Check if really a player was selected //Foreach Drop-Area
if (_SelectedPlayerNr != -1) for (int i = 0; i < _StaticPlayer.Length; i++)
{ {
//Foreach Drop-Area //Check first, if area is "Active"
for (int i = 0; i < _StaticPlayer.Length; i++) if (!_Statics[_StaticPlayer[i]].Visible)
continue;
//Check if Mouse is in area
if (CHelper.IsInBounds(_Statics[_StaticPlayer[i]].Rect, mouseEvent))
{ {
//Check first, if area is "Active" //Update Game-infos with new player
if (_Statics[_StaticPlayer[i]].Visible) CGame.Players[i].ProfileID = _SelectedPlayerNr;
{ //Update config for default players.
//Check if Mouse is in area CConfig.Players[i] = CProfiles.Profiles[_SelectedPlayerNr].ProfileFile;
if (CHelper.IsInBounds(_Statics[_StaticPlayer[i]].Rect, mouseEvent)) CConfig.SaveConfig();
{ //Update texture and name
//Update Game-infos with new player _Statics[_StaticPlayerAvatar[i]].Texture = _ChooseAvatarStatic.Texture;
CGame.Player[i].Name = CProfiles.Profiles[_SelectedPlayerNr].PlayerName; _Texts[_TextPlayer[i]].Text = CProfiles.Profiles[_SelectedPlayerNr].PlayerName;
CGame.Player[i].Difficulty = CProfiles.Profiles[_SelectedPlayerNr].Difficulty; //Update profile-warning
CGame.Player[i].ProfileID = _SelectedPlayerNr; _CheckPlayers();
//Update config for default players. //Update Tiles-List
CConfig.Players[i] = CProfiles.Profiles[_SelectedPlayerNr].ProfileFile; _NameSelections[_NameSelection].UpdateList();
CConfig.SaveConfig();
//Update texture and name
_Statics[_StaticPlayerAvatar[i]].Texture = _ChooseAvatarStatic.Texture;
_Texts[_TextPlayer[i]].Text = CProfiles.Profiles[_SelectedPlayerNr].PlayerName;
//Update profile-warning
_CheckPlayers();
//Update Tiles-List
_NameSelections[_NameSelection].UpdateList();
}
}
} }
_SelectedPlayerNr = -1;
} }
_SelectedPlayerNr = -1;
//Reset variables //Reset variables
_SelectingMouseActive = false;
_ChooseAvatarStatic.Visible = false; _ChooseAvatarStatic.Visible = false;
} }
@@ -528,9 +512,7 @@ namespace Vocaluxe.Screens
{ {
if (CHelper.IsInBounds(_Statics[_StaticPlayer[i]].Rect, mouseEvent)) if (CHelper.IsInBounds(_Statics[_StaticPlayer[i]].Rect, mouseEvent))
{ {
CGame.Player[i].ProfileID = -1; CGame.Players[i].ProfileID = -1;
CGame.Player[i].Name = String.Empty;
CGame.Player[i].Difficulty = EGameDifficulty.TR_CONFIG_EASY;
//Update config for default players. //Update config for default players.
CConfig.Players[i] = String.Empty; CConfig.Players[i] = String.Empty;
CConfig.SaveConfig(); CConfig.SaveConfig();
@@ -587,10 +569,10 @@ namespace Vocaluxe.Screens
//Update texture and name //Update texture and name
if (CConfig.Players[i] != "") if (CConfig.Players[i] != "")
{ {
if (CGame.Player[i].ProfileID > -1 && CProfiles.NumProfiles > CGame.Player[i].ProfileID) if (CProfiles.IsProfileIDValid(CGame.Players[i].ProfileID))
{ {
_Statics[_StaticPlayerAvatar[i]].Texture = CProfiles.Profiles[CGame.Player[i].ProfileID].Avatar.Texture; _Statics[_StaticPlayerAvatar[i]].Texture = CProfiles.Profiles[CGame.Players[i].ProfileID].Avatar.Texture;
_Texts[_TextPlayer[i]].Text = CProfiles.Profiles[CGame.Player[i].ProfileID].PlayerName; _Texts[_TextPlayer[i]].Text = CProfiles.GetPlayerName(CGame.Players[i].ProfileID);
} }
} }
if (CGame.GetNumSongs() == 1 && CGame.GetSong(1).IsDuet) if (CGame.GetNumSongs() == 1 && CGame.GetSong(1).IsDuet)
@@ -629,20 +611,8 @@ namespace Vocaluxe.Screens
{ {
for (int i = 0; i < CGame.NumPlayer; i++) for (int i = 0; i < CGame.NumPlayer; i++)
{ {
if (CGame.Player[i].ProfileID < 0)
{
CGame.Player[i].Name = "Player " + (i + 1);
CGame.Player[i].Difficulty = EGameDifficulty.TR_CONFIG_EASY;
CGame.Player[i].ProfileID = -1;
}
else
{
//Just a work-around for not crashing the game
if (CGame.Player[i].Name == null)
CGame.Player[i].Name = "";
}
if (CGame.GetNumSongs() == 1 && CGame.GetSong(1).IsDuet) if (CGame.GetNumSongs() == 1 && CGame.GetSong(1).IsDuet)
CGame.Player[i].LineNr = _SelectSlides[_SelectSlideDuetPlayer[i]].Selection; CGame.Players[i].LineNr = _SelectSlides[_SelectSlideDuetPlayer[i]].Selection;
} }
CGraphics.FadeTo(EScreens.ScreenSing); CGraphics.FadeTo(EScreens.ScreenSing);
@@ -730,7 +700,7 @@ namespace Vocaluxe.Screens
List<int> playerWithoutProfile = new List<int>(); List<int> playerWithoutProfile = new List<int>();
for (int player = 0; player < CConfig.NumPlayer; player++) for (int player = 0; player < CConfig.NumPlayer; player++)
{ {
if (CGame.Player[player].ProfileID < 0) if (CGame.Players[player].ProfileID < 0)
playerWithoutProfile.Add(player + 1); playerWithoutProfile.Add(player + 1);
} }
+2 -6
View File
@@ -198,12 +198,8 @@ namespace Vocaluxe.Screens
if (CConfig.GetMaxNumMics() == 0) if (CConfig.GetMaxNumMics() == 0)
return; //TODO: Add message! return; //TODO: Add message!
if (_PartyModeInfos[index].Playable) CParty.SetPartyMode(_PartyModeInfos[index].PartyModeID);
{ CGraphics.FadeTo(EScreens.ScreenPartyDummy);
CParty.SetPartyMode(_PartyModeInfos[index].PartyModeID);
CGraphics.FadeTo(EScreens.ScreenPartyDummy);
}
//TODO: else Message!
} }
} }
} }
+9 -17
View File
@@ -281,11 +281,7 @@ namespace Vocaluxe.Screens
for (int p = 0; p < player.Length; p++) for (int p = 0; p < player.Length; p++)
{ {
if (i < 1) if (i < 1)
{
player[p].ProfileID = points[p].ProfileID; player[p].ProfileID = points[p].ProfileID;
player[p].Name = points[p].Name;
player[p].Difficulty = points[p].Difficulty;
}
player[p].Points += points[p].Points; player[p].Points += points[p].Points;
} }
} }
@@ -295,19 +291,15 @@ namespace Vocaluxe.Screens
for (int p = 0; p < player.Length; p++) for (int p = 0; p < player.Length; p++)
{ {
if (song != null) string name = CProfiles.GetPlayerName(player[p].ProfileID, p);
if (song != null && song.IsDuet)
{ {
if (!song.IsDuet) if (player[p].LineNr == 0 && song.DuetPart1 != "Part 1")
_Texts[_TextNames[p, CGame.NumPlayer - 1]].Text = player[p].Name; name += " (" + song.DuetPart1 + ")";
else if (player[p].LineNr == 0 && song.DuetPart1 != "Part 1")
_Texts[_TextNames[p, CGame.NumPlayer - 1]].Text = player[p].Name + " (" + song.DuetPart1 + ")";
else if (player[p].LineNr == 1 && song.DuetPart2 != "Part 2") else if (player[p].LineNr == 1 && song.DuetPart2 != "Part 2")
_Texts[_TextNames[p, CGame.NumPlayer - 1]].Text = player[p].Name + " (" + song.DuetPart2 + ")"; name += " (" + song.DuetPart2 + ")";
else
_Texts[_TextNames[p, CGame.NumPlayer - 1]].Text = player[p].Name;
} }
else _Texts[_TextNames[p, CGame.NumPlayer - 1]].Text = name;
_Texts[_TextNames[p, CGame.NumPlayer - 1]].Text = player[p].Name;
if (CGame.NumPlayer < (int)_ScreenSettings[_ScreenSettingShortScore].GetValue()) if (CGame.NumPlayer < (int)_ScreenSettings[_ScreenSettingShortScore].GetValue())
_Texts[_TextScores[p, CGame.NumPlayer - 1]].Text = ((int)Math.Round(player[p].Points)).ToString("0000") + " " + CLanguage.Translate("TR_SCREENSCORE_POINTS"); _Texts[_TextScores[p, CGame.NumPlayer - 1]].Text = ((int)Math.Round(player[p].Points)).ToString("0000") + " " + CLanguage.Translate("TR_SCREENSCORE_POINTS");
@@ -316,10 +308,10 @@ namespace Vocaluxe.Screens
if (CGame.NumPlayer < (int)_ScreenSettings[_ScreenSettingShortDifficulty].GetValue()) if (CGame.NumPlayer < (int)_ScreenSettings[_ScreenSettingShortDifficulty].GetValue())
{ {
_Texts[_TextDifficulty[p, CGame.NumPlayer - 1]].Text = CLanguage.Translate("TR_SCREENSCORE_GAMEDIFFICULTY") + ": " + _Texts[_TextDifficulty[p, CGame.NumPlayer - 1]].Text = CLanguage.Translate("TR_SCREENSCORE_GAMEDIFFICULTY") + ": " +
CLanguage.Translate(player[p].Difficulty.ToString()); CLanguage.Translate(CProfiles.GetDifficulty(player[p].ProfileID).ToString());
} }
else else
_Texts[_TextDifficulty[p, CGame.NumPlayer - 1]].Text = CLanguage.Translate(player[p].Difficulty.ToString()); _Texts[_TextDifficulty[p, CGame.NumPlayer - 1]].Text = CLanguage.Translate(CProfiles.GetDifficulty(player[p].ProfileID).ToString());
if (CGame.NumPlayer < (int)_ScreenSettings[_ScreenSettingShortRating].GetValue()) if (CGame.NumPlayer < (int)_ScreenSettings[_ScreenSettingShortRating].GetValue())
{ {
_Texts[_TextRatings[p, CGame.NumPlayer - 1]].Text = CLanguage.Translate("TR_SCREENSCORE_RATING") + ": " + _Texts[_TextRatings[p, CGame.NumPlayer - 1]].Text = CLanguage.Translate("TR_SCREENSCORE_RATING") + ": " +
@@ -339,7 +331,7 @@ namespace Vocaluxe.Screens
_Statics[_StaticPointsBarBG[p, CGame.NumPlayer - 1]].Rect.Y - _Statics[_StaticPointsBarBG[p, CGame.NumPlayer - 1]].Rect.Y -
_Statics[_StaticPointsBar[p, CGame.NumPlayer - 1]].Rect.H; _Statics[_StaticPointsBar[p, CGame.NumPlayer - 1]].Rect.H;
} }
if (player[p].ProfileID >= 0 && player[p].ProfileID < CProfiles.NumProfiles) if (CProfiles.IsProfileIDValid(player[p].ProfileID))
_Statics[_StaticAvatar[p, CGame.NumPlayer - 1]].Texture = CProfiles.Profiles[player[p].ProfileID].Avatar.Texture; _Statics[_StaticAvatar[p, CGame.NumPlayer - 1]].Texture = CProfiles.Profiles[player[p].ProfileID].Avatar.Texture;
} }
+19 -19
View File
@@ -347,18 +347,18 @@ namespace Vocaluxe.Screens
for (int p = 0; p < CGame.NumPlayer; p++) for (int p = 0; p < CGame.NumPlayer; p++)
{ {
_SingNotes[_SingBars].SetAlpha(_NoteLines[p], alpha[CGame.Player[p].LineNr * 2]); _SingNotes[_SingBars].SetAlpha(_NoteLines[p], alpha[CGame.Players[p].LineNr * 2]);
if (CConfig.FadePlayerInfo == EFadePlayerInfo.TR_CONFIG_FADEPLAYERINFO_INFO || CConfig.FadePlayerInfo == EFadePlayerInfo.TR_CONFIG_FADEPLAYERINFO_ALL) if (CConfig.FadePlayerInfo == EFadePlayerInfo.TR_CONFIG_FADEPLAYERINFO_INFO || CConfig.FadePlayerInfo == EFadePlayerInfo.TR_CONFIG_FADEPLAYERINFO_ALL)
{ {
_Statics[_StaticAvatars[p, CGame.NumPlayer - 1]].Alpha = alpha[CGame.Player[p].LineNr * 2]; _Statics[_StaticAvatars[p, CGame.NumPlayer - 1]].Alpha = alpha[CGame.Players[p].LineNr * 2];
_Texts[_TextNames[p, CGame.NumPlayer - 1]].Alpha = alpha[CGame.Player[p].LineNr * 2]; _Texts[_TextNames[p, CGame.NumPlayer - 1]].Alpha = alpha[CGame.Players[p].LineNr * 2];
} }
if (CConfig.FadePlayerInfo == EFadePlayerInfo.TR_CONFIG_FADEPLAYERINFO_ALL) if (CConfig.FadePlayerInfo == EFadePlayerInfo.TR_CONFIG_FADEPLAYERINFO_ALL)
{ {
_Statics[_StaticScores[p, CGame.NumPlayer - 1]].Alpha = alpha[CGame.Player[p].LineNr * 2]; _Statics[_StaticScores[p, CGame.NumPlayer - 1]].Alpha = alpha[CGame.Players[p].LineNr * 2];
_Statics[_StaticAvatars[p, CGame.NumPlayer - 1]].Alpha = alpha[CGame.Player[p].LineNr * 2]; _Statics[_StaticAvatars[p, CGame.NumPlayer - 1]].Alpha = alpha[CGame.Players[p].LineNr * 2];
_Texts[_TextNames[p, CGame.NumPlayer - 1]].Alpha = alpha[CGame.Player[p].LineNr * 2]; _Texts[_TextNames[p, CGame.NumPlayer - 1]].Alpha = alpha[CGame.Players[p].LineNr * 2];
_Texts[_TextScores[p, CGame.NumPlayer - 1]].Alpha = alpha[CGame.Player[p].LineNr * 2]; _Texts[_TextScores[p, CGame.NumPlayer - 1]].Alpha = alpha[CGame.Players[p].LineNr * 2];
} }
} }
@@ -381,10 +381,10 @@ namespace Vocaluxe.Screens
for (int p = 0; p < CGame.NumPlayer; p++) for (int p = 0; p < CGame.NumPlayer; p++)
{ {
if (CGame.Player[p].Points < 10000) if (CGame.Players[p].Points < 10000)
_Texts[_TextScores[p, CGame.NumPlayer - 1]].Text = CGame.Player[p].Points.ToString("0000"); _Texts[_TextScores[p, CGame.NumPlayer - 1]].Text = CGame.Players[p].Points.ToString("0000");
else else
_Texts[_TextScores[p, CGame.NumPlayer - 1]].Text = CGame.Player[p].Points.ToString("00000"); _Texts[_TextScores[p, CGame.NumPlayer - 1]].Text = CGame.Players[p].Points.ToString("00000");
} }
if (_CurrentVideo != -1 && !_FadeOut && CConfig.VideosInSongs == EOffOn.TR_CONFIG_ON) if (_CurrentVideo != -1 && !_FadeOut && CConfig.VideosInSongs == EOffOn.TR_CONFIG_ON)
@@ -508,7 +508,7 @@ namespace Vocaluxe.Screens
for (int i = 0; i < CGame.NumPlayer; i++) for (int i = 0; i < CGame.NumPlayer; i++)
_SingNotes[_SingBars].Draw(_NoteLines[i], CGame.Player[i].SingLine, i); _SingNotes[_SingBars].Draw(_NoteLines[i], CGame.Players[i].SingLine, i);
_DrawLyricHelper(); _DrawLyricHelper();
@@ -602,7 +602,7 @@ namespace Vocaluxe.Screens
{ {
//Save duet-assignment before resetting //Save duet-assignment before resetting
for (int i = 0; i < duetPlayer.Length; i++) for (int i = 0; i < duetPlayer.Length; i++)
duetPlayer[i] = CGame.Player[i].LineNr; duetPlayer[i] = CGame.Players[i].LineNr;
} }
CGame.ResetPlayer(); CGame.ResetPlayer();
@@ -631,12 +631,12 @@ namespace Vocaluxe.Screens
if (CGame.GetNumSongs() > 1) if (CGame.GetNumSongs() > 1)
{ {
for (int i = 0; i < CGame.NumPlayer; i++) for (int i = 0; i < CGame.NumPlayer; i++)
CGame.Player[i].LineNr = (i + 1) % 2; CGame.Players[i].LineNr = (i + 1) % 2;
} }
else else
{ {
for (int i = 0; i < CGame.NumPlayer; i++) for (int i = 0; i < CGame.NumPlayer; i++)
CGame.Player[i].LineNr = duetPlayer[i]; CGame.Players[i].LineNr = duetPlayer[i];
} }
} }
_SetDuetLyricsVisibility(song.IsDuet); _SetDuetLyricsVisibility(song.IsDuet);
@@ -764,7 +764,7 @@ namespace Vocaluxe.Screens
{ {
for (int j = 0; j < CGame.NumPlayer; j++) for (int j = 0; j < CGame.NumPlayer; j++)
{ {
if (CGame.Player[j].LineNr == i) if (CGame.Players[j].LineNr == i)
_SingNotes[_SingBars].AddLine(_NoteLines[j], line, nr); _SingNotes[_SingBars].AddLine(_NoteLines[j], line, nr);
} }
@@ -1336,8 +1336,8 @@ namespace Vocaluxe.Screens
{ {
for (int i = 0; i < CGame.NumPlayer; i++) for (int i = 0; i < CGame.NumPlayer; i++)
{ {
if (CGame.Player[i].ProfileID > -1 && CProfiles.NumProfiles > CGame.Player[i].ProfileID) if (CProfiles.IsProfileIDValid(CGame.Players[i].ProfileID))
_Statics[_StaticAvatars[i, CGame.NumPlayer - 1]].Texture = CProfiles.Profiles[CGame.Player[i].ProfileID].Avatar.Texture; _Statics[_StaticAvatars[i, CGame.NumPlayer - 1]].Texture = CProfiles.Profiles[CGame.Players[i].ProfileID].Avatar.Texture;
else else
_Statics[_StaticAvatars[i, CGame.NumPlayer - 1]].Visible = false; _Statics[_StaticAvatars[i, CGame.NumPlayer - 1]].Visible = false;
} }
@@ -1347,8 +1347,8 @@ namespace Vocaluxe.Screens
{ {
for (int i = 0; i < CGame.NumPlayer; i++) for (int i = 0; i < CGame.NumPlayer; i++)
{ {
if (CGame.Player[i].ProfileID > -1 && CProfiles.NumProfiles > CGame.Player[i].ProfileID) if (CProfiles.IsProfileIDValid(CGame.Players[i].ProfileID))
_Texts[_TextNames[i, CGame.NumPlayer - 1]].Text = CProfiles.Profiles[CGame.Player[i].ProfileID].PlayerName; _Texts[_TextNames[i, CGame.NumPlayer - 1]].Text = CProfiles.Profiles[CGame.Players[i].ProfileID].PlayerName;
else else
_Texts[_TextNames[i, CGame.NumPlayer - 1]].Visible = false; _Texts[_TextNames[i, CGame.NumPlayer - 1]].Visible = false;
} }
+8 -5
View File
@@ -484,12 +484,15 @@ namespace VocaluxeLib.Menu
for (int i = 0; i < CBase.Profiles.GetProfiles().Length; i++) for (int i = 0; i < CBase.Profiles.GetProfiles().Length; i++)
{ {
bool visible = CBase.Profiles.GetProfiles()[i].Active == EOffOn.TR_CONFIG_ON; bool visible = CBase.Profiles.GetProfiles()[i].Active == EOffOn.TR_CONFIG_ON;
//Show profile only if active if (visible)
for (int p = 0; p < CBase.Game.GetNumPlayer(); p++)
{ {
//Don't show profile if is selected, but if selected and guest //Show profile only if active
if (CBase.Game.GetPlayer()[p].ProfileID == i && CBase.Profiles.GetProfiles()[i].GuestProfile == EOffOn.TR_CONFIG_OFF) for (int p = 0; p < CBase.Game.GetNumPlayer(); p++)
visible = false; {
//Don't show profile if is selected, but if selected and guest
if (CBase.Game.GetPlayers()[p].ProfileID == i)
visible = false;
}
} }
if (visible) if (visible)
_VisibleProfiles.Add(i); _VisibleProfiles.Add(i);
-4
View File
@@ -34,8 +34,6 @@ namespace VocaluxeLib.Menu
for (int player = 0; player < players.Length; player++) for (int player = 0; player < players.Length; player++)
{ {
_Rounds[round, player].ProfileID = players[player].ProfileID; _Rounds[round, player].ProfileID = players[player].ProfileID;
_Rounds[round, player].Name = players[player].Name;
_Rounds[round, player].Difficulty = players[player].Difficulty;
_Rounds[round, player].Points = 0f; _Rounds[round, player].Points = 0f;
_Rounds[round, player].PointsGoldenNotes = 0f; _Rounds[round, player].PointsGoldenNotes = 0f;
_Rounds[round, player].PointsLineBonus = 0f; _Rounds[round, player].PointsLineBonus = 0f;
@@ -86,13 +84,11 @@ namespace VocaluxeLib.Menu
for (int p = 0; p < player.Length; p++) for (int p = 0; p < player.Length; p++)
{ {
player[p].Name = _Rounds[round, p].Name;
player[p].Points = _Rounds[round, p].Points; player[p].Points = _Rounds[round, p].Points;
player[p].PointsGoldenNotes = _Rounds[round, p].PointsGoldenNotes; player[p].PointsGoldenNotes = _Rounds[round, p].PointsGoldenNotes;
player[p].PointsLineBonus = _Rounds[round, p].PointsLineBonus; player[p].PointsLineBonus = _Rounds[round, p].PointsLineBonus;
player[p].SongID = _Rounds[round, p].SongID; player[p].SongID = _Rounds[round, p].SongID;
player[p].LineNr = _Rounds[round, p].LineNr; player[p].LineNr = _Rounds[round, p].LineNr;
player[p].Difficulty = _Rounds[round, p].Difficulty;
player[p].Medley = _Rounds[round, p].Medley; player[p].Medley = _Rounds[round, p].Medley;
player[p].Duet = _Rounds[round, p].Duet; player[p].Duet = _Rounds[round, p].Duet;
player[p].ShortSong = _Rounds[round, p].ShortSong; player[p].ShortSong = _Rounds[round, p].ShortSong;
+3 -1
View File
@@ -209,7 +209,7 @@ namespace VocaluxeLib.Menu
{ {
int GetNumPlayer(); int GetNumPlayer();
void SetNumPlayer(int numPlayer); void SetNumPlayer(int numPlayer);
SPlayer[] GetPlayer(); SPlayer[] GetPlayers();
CPoints GetPoints(); CPoints GetPoints();
float GetMidBeatD(); float GetMidBeatD();
int GetCurrentBeatD(); int GetCurrentBeatD();
@@ -233,6 +233,8 @@ namespace VocaluxeLib.Menu
public interface IProfiles public interface IProfiles
{ {
SProfile[] GetProfiles(); SProfile[] GetProfiles();
EGameDifficulty GetDifficulty(int profileID);
string GetPlayerName(int profileID, int playerNum = 0);
} }
public interface ISongs public interface ISongs
+7 -6
View File
@@ -301,7 +301,8 @@ namespace VocaluxeLib.Menu.SingNotes
float w = _PlayerNotes[n].Rect.W; float w = _PlayerNotes[n].Rect.W;
float h = _PlayerNotes[n].Rect.H; float h = _PlayerNotes[n].Rect.H;
float dh = h / CBase.Settings.GetNumNoteLines() * (2f - (int)CBase.Game.GetPlayer()[_PlayerNotes[n].PlayerNr].Difficulty) / 4f; int profileID = CBase.Game.GetPlayers()[_PlayerNotes[n].PlayerNr].ProfileID;
float dh = h / CBase.Settings.GetNumNoteLines() * (2f - (int)CBase.Profiles.GetDifficulty(profileID)) / 4f;
float beats = line.LastNoteBeat - line.FirstNoteBeat + 1; float beats = line.LastNoteBeat - line.FirstNoteBeat + 1;
@@ -356,7 +357,7 @@ namespace VocaluxeLib.Menu.SingNotes
foreach (CParticleEffect perfline in _PlayerNotes[n].PerfectLineTwinkle) foreach (CParticleEffect perfline in _PlayerNotes[n].PerfectLineTwinkle)
perfline.Draw(); perfline.Draw();
if (singLine == null || singLine.Count == 0 || CBase.Game.GetPlayer()[player].CurrentLine == -1 || singLine.Count <= CBase.Game.GetPlayer()[player].CurrentLine) if (singLine == null || singLine.Count == 0 || CBase.Game.GetPlayers()[player].CurrentLine == -1 || singLine.Count <= CBase.Game.GetPlayers()[player].CurrentLine)
{ {
foreach (CParticleEffect stars in _PlayerNotes[n].GoldenStars) foreach (CParticleEffect stars in _PlayerNotes[n].GoldenStars)
{ {
@@ -366,7 +367,7 @@ namespace VocaluxeLib.Menu.SingNotes
return; return;
} }
foreach (CNote note in singLine[CBase.Game.GetPlayer()[player].CurrentLine].Notes) foreach (CNote note in singLine[CBase.Game.GetPlayers()[player].CurrentLine].Notes)
{ {
if (note.StartBeat >= line.FirstNoteBeat && note.EndBeat <= line.LastNoteBeat) if (note.StartBeat >= line.FirstNoteBeat && note.EndBeat <= line.LastNoteBeat)
{ {
@@ -403,13 +404,13 @@ namespace VocaluxeLib.Menu.SingNotes
} }
} }
int currentLine = CBase.Game.GetPlayer()[player].SingLine.Count - 1; int currentLine = CBase.Game.GetPlayers()[player].SingLine.Count - 1;
if (currentLine > 0) if (currentLine > 0)
{ {
if (CBase.Game.GetPlayer()[player].SingLine[currentLine - 1].PerfectLine) if (CBase.Game.GetPlayers()[player].SingLine[currentLine - 1].PerfectLine)
{ {
_AddPerfectLine(n); _AddPerfectLine(n);
CBase.Game.GetPlayer()[player].SingLine[currentLine - 1].PerfectLine = false; CBase.Game.GetPlayers()[player].SingLine[currentLine - 1].PerfectLine = false;
} }
} }
-2
View File
@@ -242,8 +242,6 @@ namespace VocaluxeLib.Menu
public struct SPlayer public struct SPlayer
{ {
public int ProfileID; public int ProfileID;
public string Name;
public EGameDifficulty Difficulty;
public double Points; public double Points;
public double PointsLineBonus; public double PointsLineBonus;
public double PointsGoldenNotes; public double PointsGoldenNotes;