Merge branch 'develop' of git://github.com/flokuep/Vocaluxe into develop

This commit is contained in:
Alexander Eckart committed 2012-12-17 22:07:57 +01:00
commit cc66cf1dcd
5 files changed
+72 -17

No files matched your search

+57 -14
View File
@@ -53,7 +53,7 @@ namespace Vocaluxe.Base
} }
#region Highscores #region Highscores
public static int AddScore(string PlayerName, int Score, int LineNr, long Date, int Medley, int Duet, int Diff, public static int AddScore(string PlayerName, int Score, int LineNr, long Date, int Medley, int Duet, int ShortSong, int Diff,
string Artist, string Title, int NumPlayed, string FilePath) string Artist, string Title, int NumPlayed, string FilePath)
{ {
SPlayer player = new SPlayer(); SPlayer player = new SPlayer();
@@ -63,6 +63,7 @@ namespace Vocaluxe.Base
player.DateTicks = Date; player.DateTicks = Date;
player.Medley = (Medley == 1); player.Medley = (Medley == 1);
player.Duet = (Duet == 1); player.Duet = (Duet == 1);
player.ShortSong = (ShortSong == 1);
player.Difficulty = (EGameDifficulty)Diff; player.Difficulty = (EGameDifficulty)Diff;
SQLiteConnection connection = new SQLiteConnection(); SQLiteConnection connection = new SQLiteConnection();
@@ -133,8 +134,12 @@ namespace Vocaluxe.Base
if (player.Duet) if (player.Duet)
Duet = 1; 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 Difficulty = @Difficulty"; "LineNr = @LineNr AND Date = @Date AND Medley = @Medley AND Duet = @Duet AND ShortSong = @ShortSong AND Difficulty = @Difficulty";
command.Parameters.Add("@SongID", System.Data.DbType.Int32, 0).Value = DataBaseSongID; command.Parameters.Add("@SongID", System.Data.DbType.Int32, 0).Value = DataBaseSongID;
command.Parameters.Add("@PlayerName", System.Data.DbType.String, 0).Value = player.Name; command.Parameters.Add("@PlayerName", System.Data.DbType.String, 0).Value = player.Name;
command.Parameters.Add("@Score", System.Data.DbType.Int32, 0).Value = (int)Math.Round(player.Points); command.Parameters.Add("@Score", System.Data.DbType.Int32, 0).Value = (int)Math.Round(player.Points);
@@ -142,6 +147,7 @@ namespace Vocaluxe.Base
command.Parameters.Add("@Date", System.Data.DbType.Int64, 0).Value = player.DateTicks; command.Parameters.Add("@Date", System.Data.DbType.Int64, 0).Value = player.DateTicks;
command.Parameters.Add("@Medley", System.Data.DbType.Int32, 0).Value = Medley; command.Parameters.Add("@Medley", System.Data.DbType.Int32, 0).Value = Medley;
command.Parameters.Add("@Duet", System.Data.DbType.Int32, 0).Value = Duet; command.Parameters.Add("@Duet", System.Data.DbType.Int32, 0).Value = Duet;
command.Parameters.Add("@ShortSong", System.Data.DbType.Int32, 0).Value = ShortSong;
command.Parameters.Add("@Difficulty", System.Data.DbType.Int32, 0).Value = (int)player.Difficulty; command.Parameters.Add("@Difficulty", System.Data.DbType.Int32, 0).Value = (int)player.Difficulty;
SQLiteDataReader reader = null; SQLiteDataReader reader = null;
@@ -164,8 +170,8 @@ namespace Vocaluxe.Base
reader.Close(); reader.Close();
command.CommandText = "INSERT INTO Scores (SongID, PlayerName, Score, LineNr, Date, Medley, Duet, Difficulty) " + command.CommandText = "INSERT INTO Scores (SongID, PlayerName, Score, LineNr, Date, Medley, Duet, ShortSong, Difficulty) " +
"VALUES (@SongID, @PlayerName, @Score, @LineNr, @Date, @Medley, @Duet, @Difficulty)"; "VALUES (@SongID, @PlayerName, @Score, @LineNr, @Date, @Medley, @Duet, @ShortSong, @Difficulty)";
command.Parameters.Add("@SongID", System.Data.DbType.Int32, 0).Value = DataBaseSongID; command.Parameters.Add("@SongID", System.Data.DbType.Int32, 0).Value = DataBaseSongID;
command.Parameters.Add("@PlayerName", System.Data.DbType.String, 0).Value = player.Name; command.Parameters.Add("@PlayerName", System.Data.DbType.String, 0).Value = player.Name;
command.Parameters.Add("@Score", System.Data.DbType.Int32, 0).Value = (int)Math.Round(player.Points); command.Parameters.Add("@Score", System.Data.DbType.Int32, 0).Value = (int)Math.Round(player.Points);
@@ -173,6 +179,7 @@ namespace Vocaluxe.Base
command.Parameters.Add("@Date", System.Data.DbType.Int64, 0).Value = player.DateTicks; command.Parameters.Add("@Date", System.Data.DbType.Int64, 0).Value = player.DateTicks;
command.Parameters.Add("@Medley", System.Data.DbType.Int32, 0).Value = Medley; command.Parameters.Add("@Medley", System.Data.DbType.Int32, 0).Value = Medley;
command.Parameters.Add("@Duet", System.Data.DbType.Int32, 0).Value = Duet; command.Parameters.Add("@Duet", System.Data.DbType.Int32, 0).Value = Duet;
command.Parameters.Add("@ShortSong", System.Data.DbType.Int32, 0).Value = Duet;
command.Parameters.Add("@Difficulty", System.Data.DbType.Int32, 0).Value = (int)player.Difficulty; command.Parameters.Add("@Difficulty", System.Data.DbType.Int32, 0).Value = (int)player.Difficulty;
command.ExecuteNonQuery(); command.ExecuteNonQuery();
@@ -231,15 +238,20 @@ namespace Vocaluxe.Base
if (player.Duet) if (player.Duet)
Duet = 1; Duet = 1;
int ShortSong = 0;
if (player.ShortSong)
ShortSong = 1;
int DataBaseSongID = GetDataBaseSongID(player, command); int DataBaseSongID = GetDataBaseSongID(player, command);
if (DataBaseSongID >= 0) if (DataBaseSongID >= 0)
{ {
command.CommandText = "SELECT PlayerName, Score, Date, Difficulty, LineNr, id FROM Scores " + command.CommandText = "SELECT PlayerName, Score, Date, Difficulty, LineNr, id FROM Scores " +
"WHERE [SongID] = @SongID AND [Medley] = @Medley AND [Duet] = @Duet " + "WHERE [SongID] = @SongID AND [Medley] = @Medley AND [Duet] = @Duet AND [ShortSong] = @ShortSong " +
"ORDER BY [Score] DESC"; "ORDER BY [Score] DESC";
command.Parameters.Add("@SongID", System.Data.DbType.Int32, 0).Value = DataBaseSongID; command.Parameters.Add("@SongID", System.Data.DbType.Int32, 0).Value = DataBaseSongID;
command.Parameters.Add("@Medley", System.Data.DbType.Int32, 0).Value = Medley; command.Parameters.Add("@Medley", System.Data.DbType.Int32, 0).Value = Medley;
command.Parameters.Add("@Duet", System.Data.DbType.Int32, 0).Value = Duet; command.Parameters.Add("@Duet", System.Data.DbType.Int32, 0).Value = Duet;
command.Parameters.Add("@ShortSong", System.Data.DbType.Int32, 0).Value = ShortSong;
SQLiteDataReader reader = null; SQLiteDataReader reader = null;
try try
@@ -494,7 +506,7 @@ namespace Vocaluxe.Base
command.CommandText = "CREATE TABLE IF NOT EXISTS Scores ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, " + command.CommandText = "CREATE TABLE IF NOT EXISTS Scores ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, " +
"SongID INTEGER NOT NULL, PlayerName TEXT NOT NULL, Score INTEGER NOT NULL, LineNr INTEGER NOT NULL, Date BIGINT NOT NULL, " + "SongID INTEGER NOT NULL, PlayerName TEXT NOT NULL, Score INTEGER NOT NULL, LineNr INTEGER NOT NULL, Date BIGINT NOT NULL, " +
"Medley INTEGER NOT NULL, Duet INTEGER NOT NULL, Difficulty INTEGER NOT NULL);"; "Medley INTEGER NOT NULL, Duet INTEGER NOT NULL, ShortSong INTEGER NOT NULL, Difficulty INTEGER NOT NULL);";
command.ExecuteNonQuery(); command.ExecuteNonQuery();
command.Dispose(); command.Dispose();
@@ -549,10 +561,11 @@ namespace Vocaluxe.Base
else else
{ {
reader.Read(); reader.Read();
int CurrentVersion = reader.GetInt32(0);
if (reader.GetInt32(0) < CSettings.iDatabaseHighscoreVersion) if (CurrentVersion < CSettings.iDatabaseHighscoreVersion)
{ {
// update database // update database
UpdateDatabase(CurrentVersion, connection);
} }
} }
@@ -618,7 +631,7 @@ namespace Vocaluxe.Base
command = new SQLiteCommand(connection); command = new SQLiteCommand(connection);
//The USDX database has no column for LineNr, Medley and Duet so just fill 0 in there //The USDX database has no column for LineNr, Medley and Duet so just fill 0 in there
command.CommandText = "INSERT INTO Scores (SongID, PlayerName, Score, LineNr, Date, Medley, Duet, Difficulty) SELECT SongID, Player, Score, '0', Date, '0', '0', Difficulty from US_Scores"; command.CommandText = "INSERT INTO Scores (SongID, PlayerName, Score, LineNr, Date, Medley, Duet, ShortSong, Difficulty) SELECT SongID, Player, Score, '0', Date, '0', '0', '0', Difficulty from US_Scores";
command.ExecuteNonQuery(); command.ExecuteNonQuery();
command.CommandText = "INSERT INTO Songs SELECT ID, Artist, Title, TimesPlayed from US_Songs"; command.CommandText = "INSERT INTO Songs SELECT ID, Artist, Title, TimesPlayed from US_Songs";
@@ -766,9 +779,9 @@ namespace Vocaluxe.Base
//This is a USDX 1.01 DB //This is a USDX 1.01 DB
if (!dateExists) if (!dateExists)
command.CommandText = "INSERT INTO Scores (SongID, PlayerName, Score, LineNr, Date, Medley, Duet, Difficulty) SELECT SongID, Player, Score, '0', '0', '0', '0', Difficulty from US_Scores"; command.CommandText = "INSERT INTO Scores (SongID, PlayerName, Score, LineNr, Date, Medley, Duet, ShortSong, Difficulty) SELECT SongID, Player, Score, '0', '0', '0', '0', '0', Difficulty from US_Scores";
else // This is a CMD 1.01 DB else // This is a CMD 1.01 DB
command.CommandText = "INSERT INTO Scores (SongID, PlayerName, Score, LineNr, Date, Medley, Duet, Difficulty) SELECT SongID, Player, Score, '0', Date, '0', '0', Difficulty from US_Scores"; command.CommandText = "INSERT INTO Scores (SongID, PlayerName, Score, LineNr, Date, Medley, Duet, ShortSong, Difficulty) SELECT SongID, Player, Score, '0', Date, '0', '0', '0', Difficulty from US_Scores";
command.ExecuteNonQuery(); command.ExecuteNonQuery();
command.CommandText = "INSERT INTO Songs SELECT ID, Artist, Title, TimesPlayed from US_Songs"; command.CommandText = "INSERT INTO Songs SELECT ID, Artist, Title, TimesPlayed from US_Songs";
@@ -905,6 +918,35 @@ namespace Vocaluxe.Base
return true; return true;
} }
private static bool UpdateDatabase(int CurrentVersion, SQLiteConnection connection)
{
bool updated = true;
if (CurrentVersion < 2)
{
updated &= ConvertV1toV2(connection);
}
return updated;
}
private static bool ConvertV1toV2(SQLiteConnection connection)
{
SQLiteCommand command;
command = new SQLiteCommand(connection);
command.CommandText = "ALTER TABLE Scores ADD ShortSong INTEGER";
command.ExecuteNonQuery();
command.CommandText = "UPDATE Scores SET [ShortSong] = @ShortSong";
command.Parameters.Add("@ShortSong", System.Data.DbType.Int32, 0).Value = 0;
command.ExecuteNonQuery();
command.CommandText = "UPDATE Version SET [Value] = @version";
command.Parameters.Add("@version", System.Data.DbType.Int32, 0).Value = 2;
command.ExecuteNonQuery();
command.Dispose();
return true;
}
private static bool ImportData(string SourceDBPath, string DestinationDBPath) private static bool ImportData(string SourceDBPath, string DestinationDBPath)
{ {
#region open db #region open db
@@ -926,7 +968,7 @@ namespace Vocaluxe.Base
SQLiteDataReader rSource; SQLiteDataReader rSource;
#region import table scores #region import table scores
cmdSource.CommandText = "SELECT SongID, PlayerName, Score, LineNr, Date, Medley, Duet, Difficulty FROM Scores"; cmdSource.CommandText = "SELECT SongID, PlayerName, Score, LineNr, Date, Medley, Duet, ShortSong, Difficulty FROM Scores";
rSource = cmdSource.ExecuteReader(); rSource = cmdSource.ExecuteReader();
if (rSource == null) if (rSource == null)
{ {
@@ -952,13 +994,14 @@ namespace Vocaluxe.Base
long date = rSource.GetInt64(4); long date = rSource.GetInt64(4);
int medley = rSource.GetInt32(5); int medley = rSource.GetInt32(5);
int duet = rSource.GetInt32(6); int duet = rSource.GetInt32(6);
int diff = rSource.GetInt32(7); int shortsong = rSource.GetInt32(7);
int diff = rSource.GetInt32(8);
string artist, title; string artist, title;
int numplayed; int numplayed;
if (GetDataBaseSongInfos(songid, out artist, out title, out numplayed, SourceDBPath)) if (GetDataBaseSongInfos(songid, out artist, out title, out numplayed, SourceDBPath))
{ {
AddScore(player, score, linenr, date, medley, duet, diff, artist, title, numplayed, _HighscoreFilePath); AddScore(player, score, linenr, date, medley, duet, shortsong, diff, artist, title, numplayed, _HighscoreFilePath);
} }
} }
#endregion import table scores #endregion import table scores
+1 -1
View File
@@ -49,7 +49,7 @@ namespace Vocaluxe.Base
public const int iBuild = 70; // Increase on every published version! Never Reset! public const int iBuild = 70; // Increase on every published version! Never Reset!
public const int iDatabaseHighscoreVersion = 1; public const int iDatabaseHighscoreVersion = 2;
public const int iDatabaseCoverVersion = 1; public const int iDatabaseCoverVersion = 1;
public const int iDatabaseCreditsRessourcesVersion = 1; public const int iDatabaseCreditsRessourcesVersion = 1;
+7
View File
@@ -179,6 +179,13 @@ namespace Vocaluxe.Screens
Texts[htTexts(TextScore[p])].Style = EStyle.BoldItalic; Texts[htTexts(TextScore[p])].Style = EStyle.BoldItalic;
Texts[htTexts(TextDate[p])].Style = EStyle.BoldItalic; Texts[htTexts(TextDate[p])].Style = EStyle.BoldItalic;
} }
else
{
Texts[htTexts(TextNumber[p])].Style = EStyle.Bold;
Texts[htTexts(TextName[p])].Style = EStyle.Bold;
Texts[htTexts(TextScore[p])].Style = EStyle.Bold;
Texts[htTexts(TextDate[p])].Style = EStyle.Bold;
}
} }
else else
{ {
+5 -2
View File
@@ -645,9 +645,12 @@ namespace Vocaluxe.Screens
//Otherwise, this is done by CScreenNames //Otherwise, this is done by CScreenNames
if (CGame.GetNumSongs() > 1) if (CGame.GetNumSongs() > 1)
{ {
for (int i = 1; i <= CGame.NumPlayer; i = i + 2) for (int i = 0; i < CGame.NumPlayer; i++)
{ {
CGame.Player[i].LineNr = 1; if ((i % 2) == 0)
CGame.Player[i].LineNr = 1;
else
CGame.Player[i].LineNr = 0;
} }
} }
else else
+2
View File
@@ -411,6 +411,7 @@ namespace Vocaluxe.Screens
{ {
if (CSongs.NumVisibleSongs > 0 && SongMenus[htSongMenus(SongMenu)].GetActualSelection() != -1) if (CSongs.NumVisibleSongs > 0 && SongMenus[htSongMenus(SongMenu)].GetActualSelection() != -1)
{ {
ToggleSongOptions(ESongOptionsView.None);
StartVisibleSong(SongMenus[htSongMenus(SongMenu)].GetActualSelection()); StartVisibleSong(SongMenus[htSongMenus(SongMenu)].GetActualSelection());
return true; return true;
} }
@@ -690,6 +691,7 @@ namespace Vocaluxe.Screens
EGameMode gm = EGameMode.TR_GAMEMODE_NORMAL; EGameMode gm = EGameMode.TR_GAMEMODE_NORMAL;
if (CSongs.AllSongs[SongNr].IsDuet) if (CSongs.AllSongs[SongNr].IsDuet)
gm = EGameMode.TR_GAMEMODE_DUET; gm = EGameMode.TR_GAMEMODE_DUET;
CGame.AddSong(SongNr, gm); CGame.AddSong(SongNr, gm);
IDs.Remove(SongNr); IDs.Remove(SongNr);