Skip to content

Commit

Permalink
Merge branch 'master' into release
Browse files Browse the repository at this point in the history
  • Loading branch information
leezer3 committed May 12, 2017
2 parents 0ac390e + 52a17d5 commit d4aa95b
Show file tree
Hide file tree
Showing 8 changed files with 405 additions and 255 deletions.
371 changes: 186 additions & 185 deletions assets/Languages/ja-JP.cfg

Large diffs are not rendered by default.

36 changes: 35 additions & 1 deletion source/OpenBVE/OldCode/ObjectManager.cs
Expand Up @@ -1170,7 +1170,41 @@ internal enum ObjectLoadMode { Normal, DontAllowUnloadOfTextures }
}
}
UnifiedObject Result;
switch (System.IO.Path.GetExtension(FileName).ToLowerInvariant()) {
TextEncoding.Encoding newEncoding = TextEncoding.GetEncodingFromFile(FileName);
if (newEncoding != TextEncoding.Encoding.Unknown)
{
switch (newEncoding)
{
case TextEncoding.Encoding.Utf7:
Encoding = System.Text.Encoding.UTF7;
break;
case TextEncoding.Encoding.Utf8:
Encoding = System.Text.Encoding.UTF8;
break;
case TextEncoding.Encoding.Utf16Le:
Encoding = System.Text.Encoding.Unicode;
break;
case TextEncoding.Encoding.Utf16Be:
Encoding = System.Text.Encoding.BigEndianUnicode;
break;
case TextEncoding.Encoding.Utf32Le:
Encoding = System.Text.Encoding.UTF32;
break;
case TextEncoding.Encoding.Utf32Be:
Encoding = System.Text.Encoding.GetEncoding(12001);
break;
case TextEncoding.Encoding.Shift_JIS:
Encoding = System.Text.Encoding.GetEncoding(932);
break;
case TextEncoding.Encoding.Windows1252:
Encoding = System.Text.Encoding.GetEncoding(1252);
break;
case TextEncoding.Encoding.Big5:
Encoding = System.Text.Encoding.GetEncoding(950);
break;
}
}
switch (System.IO.Path.GetExtension(FileName).ToLowerInvariant()) {
case ".csv":
case ".b3d":
Result = CsvB3dObjectParser.ReadObject(FileName, Encoding, LoadMode, ForceTextureRepeatX, ForceTextureRepeatY);
Expand Down
5 changes: 5 additions & 0 deletions source/OpenBVE/OldCode/TrackManager.cs
Expand Up @@ -510,6 +510,11 @@ internal class SoundEvent : GeneralEvent {
if (TriggerType == EventTriggerType.FrontCarFrontAxle | TriggerType == EventTriggerType.OtherCarFrontAxle) {
if (Train.Specs.CurrentAverageSpeed <= 0.0) return;
int bufferIndex = Train.Cars[CarIndex].Sounds.FrontAxleRunIndex;
if (Train.Cars[CarIndex].Sounds.PointFrontAxle == null || Train.Cars[CarIndex].Sounds.PointFrontAxle.Length == 0)
{
//No point sounds defined at all
return;
}
if (bufferIndex > Train.Cars[CarIndex].Sounds.PointFrontAxle.Length -1 || Train.Cars[CarIndex].Sounds.PointFrontAxle[bufferIndex].Buffer == null)
{
//If the switch sound does not exist, return zero
Expand Down
31 changes: 25 additions & 6 deletions source/OpenBVE/OldParsers/BveRouteParser/CsvRwRouteParser.cs
Expand Up @@ -5089,6 +5089,11 @@ private struct PositionedExpression {
if (!PreviewOnly) {
if (Data.FogTransitionMode) {
if (Data.Blocks[i].FogDefined) {
if (i == 0 && StartingDistance == 0)
{
//Fog starts at zero position
PreviousFog = Data.Blocks[i].Fog;
}
Data.Blocks[i].Fog.TrackPosition = StartingDistance;
int m = TrackManager.CurrentTrack.Elements[n].Events.Length;
Array.Resize<TrackManager.GeneralEvent>(ref TrackManager.CurrentTrack.Elements[n].Events, m + 1);
Expand All @@ -5106,12 +5111,26 @@ private struct PositionedExpression {
PreviousFogEvent = m;
}
} else {
Data.Blocks[i].Fog.TrackPosition = StartingDistance + Data.BlockInterval;
int m = TrackManager.CurrentTrack.Elements[n].Events.Length;
Array.Resize<TrackManager.GeneralEvent>(ref TrackManager.CurrentTrack.Elements[n].Events, m + 1);
TrackManager.CurrentTrack.Elements[n].Events[m] = new TrackManager.FogChangeEvent(0.0, PreviousFog, CurrentFog, Data.Blocks[i].Fog);
PreviousFog = CurrentFog;
CurrentFog = Data.Blocks[i].Fog;
if (i == 0 && StartingDistance == 0)
{
//Fog starts at zero position
CurrentFog = Data.Blocks[i].Fog;
PreviousFog = CurrentFog;
Game.PreviousFog = CurrentFog;
Game.CurrentFog = CurrentFog;
Game.NextFog = CurrentFog;


}
else
{
Data.Blocks[i].Fog.TrackPosition = StartingDistance + Data.BlockInterval;
int m = TrackManager.CurrentTrack.Elements[n].Events.Length;
Array.Resize<TrackManager.GeneralEvent>(ref TrackManager.CurrentTrack.Elements[n].Events, m + 1);
TrackManager.CurrentTrack.Elements[n].Events[m] = new TrackManager.FogChangeEvent(0.0, PreviousFog, CurrentFog, Data.Blocks[i].Fog);
PreviousFog = CurrentFog;
CurrentFog = Data.Blocks[i].Fog;
}
}
}
// rail sounds
Expand Down
12 changes: 12 additions & 0 deletions source/OpenBVE/System/Functions/TextEncoding.cs
Expand Up @@ -31,6 +31,10 @@ internal enum Encoding
Utf32Be = 6,
/// <summary>SHIFT_JIS</summary>
Shift_JIS = 7,
/// <summary>Windows-1252 (Legacy Microsoft)</summary>
Windows1252,
/// <summary>BIG5</summary>
Big5
}

/// <summary>Gets the character endcoding of a file</summary>
Expand Down Expand Up @@ -91,6 +95,14 @@ internal static Encoding GetEncodingFromFile(string File)
{
case "SHIFT_JIS":
return Encoding.Shift_JIS;
case "UTF-8":
return Encoding.Utf8;
case "UTF-7":
return Encoding.Utf7;
case "WINDOWS-1252":
return Encoding.Windows1252;
case "BIG5":
return Encoding.Big5;
}
Det.Reset();
return Encoding.Unknown;
Expand Down
12 changes: 12 additions & 0 deletions source/OpenBVE/System/Program/CommandLine.cs
Expand Up @@ -49,6 +49,12 @@ internal static void ParseArguments(string[] Arguments, ref formMain.MainDialogR
case TextEncoding.Encoding.Shift_JIS:
Result.RouteEncoding = System.Text.Encoding.GetEncoding(932);
break;
case TextEncoding.Encoding.Windows1252:
Result.RouteEncoding = System.Text.Encoding.GetEncoding(1252);
break;
case TextEncoding.Encoding.Big5:
Result.RouteEncoding = System.Text.Encoding.GetEncoding(950);
break;
default:
Result.RouteEncoding = Encoding.Default;
break;
Expand Down Expand Up @@ -76,6 +82,12 @@ internal static void ParseArguments(string[] Arguments, ref formMain.MainDialogR
case TextEncoding.Encoding.Shift_JIS:
Result.TrainEncoding = System.Text.Encoding.GetEncoding(932);
break;
case TextEncoding.Encoding.Windows1252:
Result.TrainEncoding = System.Text.Encoding.GetEncoding(1252);
break;
case TextEncoding.Encoding.Big5:
Result.TrainEncoding = System.Text.Encoding.GetEncoding(950);
break;
default:
Result.TrainEncoding = Encoding.Default;
break;
Expand Down
163 changes: 102 additions & 61 deletions source/OpenBVE/UserInterface/formMain.Packages.cs
Expand Up @@ -533,21 +533,27 @@ internal void UninstallPackage(Package packageToUninstall, ref List<Package> Pac
internal void AddDependendsReccomends(Package packageToAdd, ref List<Package> DependsReccomendsList,
bool recommendsOnly)
{
var row = dataGridViewPackages2.SelectedRows[0].Index;
var key = dataGridViewPackages2.Rows[row].Cells[dataGridViewPackages2.ColumnCount - 1].Value.ToString();
selectedDependacies.Add(key);
dataGridViewPackages2.Rows.RemoveAt(row);
if (DependsReccomendsList == null)
{
DependsReccomendsList = new List<Package>();
}
packageToAdd.PackageVersion = null;
DependsReccomendsList.Add(packageToAdd);
dataGridViewPackages2.ClearSelection();
if (currentPackage.Dependancies != null)
PopulatePackageList(currentPackage.Dependancies, dataGridViewPackages3, false, true, false);
if (currentPackage.Reccomendations != null)
PopulatePackageList(currentPackage.Reccomendations, dataGridViewPackages3, false, false, true);
try
{
var row = dataGridViewPackages2.SelectedRows[0].Index;
var key = dataGridViewPackages2.Rows[row].Cells[dataGridViewPackages2.ColumnCount - 1].Value.ToString();
selectedDependacies.Add(key);
dataGridViewPackages2.Rows.RemoveAt(row);
if (DependsReccomendsList == null)
{
DependsReccomendsList = new List<Package>();
}
packageToAdd.PackageVersion = null;
DependsReccomendsList.Add(packageToAdd);
dataGridViewPackages2.ClearSelection();
if (currentPackage.Dependancies != null)
PopulatePackageList(currentPackage.Dependancies, dataGridViewPackages3, false, true, false);
if (currentPackage.Reccomendations != null)
PopulatePackageList(currentPackage.Reccomendations, dataGridViewPackages3, false, false, true);
}
catch
{
}
}


Expand All @@ -560,19 +566,27 @@ private void dataGridViewPackages_SelectionChanged(object sender, EventArgs e)
currentPackage = null;
return;
}
var row = dataGridViewPackages.SelectedRows[0].Index;
var key = dataGridViewPackages.Rows[row].Cells[dataGridViewPackages.ColumnCount - 1].Value.ToString();
switch (comboBoxPackageType.SelectedIndex)
try
{
case 0:
currentPackage = Database.currentDatabase.InstalledRoutes.FirstOrDefault(x => x.GUID == key);
break;
case 1:
currentPackage = Database.currentDatabase.InstalledTrains.FirstOrDefault(x => x.GUID == key);
break;
case 2:
currentPackage = Database.currentDatabase.InstalledOther.FirstOrDefault(x => x.GUID == key);
break;
var row = dataGridViewPackages.SelectedRows[0].Index;
var key = dataGridViewPackages.Rows[row].Cells[dataGridViewPackages.ColumnCount - 1].Value.ToString();

switch (comboBoxPackageType.SelectedIndex)
{
case 0:
currentPackage = Database.currentDatabase.InstalledRoutes.FirstOrDefault(x => x.GUID == key);
break;
case 1:
currentPackage = Database.currentDatabase.InstalledTrains.FirstOrDefault(x => x.GUID == key);
break;
case 2:
currentPackage = Database.currentDatabase.InstalledOther.FirstOrDefault(x => x.GUID == key);
break;
}
}
catch
{
currentPackage = null;
}
}

Expand Down Expand Up @@ -713,18 +727,27 @@ private void dataGridViewPackages2_SelectionChanged(object sender, EventArgs e)
buttonDepends.Enabled = true;
buttonReccomends.Enabled = true;
var row = dataGridViewPackages2.SelectedRows[0].Index;
var key = dataGridViewPackages2.Rows[row].Cells[dataGridViewPackages2.ColumnCount - 1].Value.ToString();
switch (comboBoxDependancyType.SelectedIndex)
try
{
case 0:
dependantPackage = new Package(Database.currentDatabase.InstalledRoutes.FirstOrDefault(x => x.GUID == key), true);
break;
case 1:
dependantPackage = new Package(Database.currentDatabase.InstalledTrains.FirstOrDefault(x => x.GUID == key), true);
break;
case 2:
dependantPackage = new Package(Database.currentDatabase.InstalledOther.FirstOrDefault(x => x.GUID == key), true);
break;
var key = dataGridViewPackages2.Rows[row].Cells[dataGridViewPackages2.ColumnCount - 1].Value.ToString();
switch (comboBoxDependancyType.SelectedIndex)
{
case 0:
dependantPackage = new Package(Database.currentDatabase.InstalledRoutes.FirstOrDefault(x => x.GUID == key), true);
break;
case 1:
dependantPackage = new Package(Database.currentDatabase.InstalledTrains.FirstOrDefault(x => x.GUID == key), true);
break;
case 2:
dependantPackage = new Package(Database.currentDatabase.InstalledOther.FirstOrDefault(x => x.GUID == key), true);
break;
}
}
catch
{
buttonDepends.Enabled = false;
buttonReccomends.Enabled = false;
dependantPackage = null;
}
}

Expand All @@ -740,31 +763,37 @@ private void dataGridViewPackages3_SelectionChanged(object sender, EventArgs e)

private void buttonRemove_Click(object sender, EventArgs e)
{
var row = dataGridViewPackages3.SelectedRows[0].Index;
var key = dataGridViewPackages3.Rows[row].Cells[dataGridViewPackages3.ColumnCount - 1].Value.ToString();
selectedDependacies.Remove(key);

if (dataGridViewPackages3.Rows[row].Cells[dataGridViewPackages3.ColumnCount - 2].Value.ToString() == Interface.GetInterfaceString("packages_dependancy"))
{
currentPackage.Dependancies.Remove(currentPackage.Dependancies.FirstOrDefault(x => x.GUID == key));
}
else
try
{
currentPackage.Reccomendations.Remove(currentPackage.Reccomendations.FirstOrDefault(x => x.GUID == key));
var row = dataGridViewPackages3.SelectedRows[0].Index;
var key = dataGridViewPackages3.Rows[row].Cells[dataGridViewPackages3.ColumnCount - 1].Value.ToString();
selectedDependacies.Remove(key);

if (dataGridViewPackages3.Rows[row].Cells[dataGridViewPackages3.ColumnCount - 2].Value.ToString() == Interface.GetInterfaceString("packages_dependancy"))
{
currentPackage.Dependancies.Remove(currentPackage.Dependancies.FirstOrDefault(x => x.GUID == key));
}
else
{
currentPackage.Reccomendations.Remove(currentPackage.Reccomendations.FirstOrDefault(x => x.GUID == key));
}
dataGridViewPackages3.Rows.RemoveAt(row);
dataGridViewPackages3.ClearSelection();
switch (comboBoxDependancyType.SelectedIndex)
{
case 0:
PopulatePackageList(Database.currentDatabase.InstalledRoutes, dataGridViewPackages2, true, false, false);
break;
case 1:
PopulatePackageList(Database.currentDatabase.InstalledTrains, dataGridViewPackages2, true, false, false);
break;
case 2:
PopulatePackageList(Database.currentDatabase.InstalledOther, dataGridViewPackages2, true, false, false);
break;
}
}
dataGridViewPackages3.Rows.RemoveAt(row);
dataGridViewPackages3.ClearSelection();
switch (comboBoxDependancyType.SelectedIndex)
catch
{
case 0:
PopulatePackageList(Database.currentDatabase.InstalledRoutes, dataGridViewPackages2, true, false, false);
break;
case 1:
PopulatePackageList(Database.currentDatabase.InstalledTrains, dataGridViewPackages2, true, false, false);
break;
case 2:
PopulatePackageList(Database.currentDatabase.InstalledOther, dataGridViewPackages2, true, false, false);
break;
}
}

Expand Down Expand Up @@ -1068,7 +1097,19 @@ private void dataGridViewReplacePackage_SelectionChanged(object sender, EventArg
{
replacePackageButton.Enabled = true;
var row = dataGridViewReplacePackage.SelectedRows[0].Index;
var key = dataGridViewReplacePackage.Rows[row].Cells[dataGridViewReplacePackage.ColumnCount - 1].Value.ToString();
string key;
try
{
//BUG:
//Mono seems to have some sort of race condition, meaning that the update function is called before the datagrid is populated
//This masks the underlying issue, but it's not a good thing if the key is invalid in the first place either.....
key = dataGridViewReplacePackage.Rows[row].Cells[dataGridViewReplacePackage.ColumnCount - 1].Value.ToString();
}
catch
{
return;
}

switch (newPackageType)
{
case PackageType.Route:
Expand Down

0 comments on commit d4aa95b

Please sign in to comment.