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 Dec 15, 2023
2 parents dec81fd + a4ae983 commit eb1da9a
Show file tree
Hide file tree
Showing 105 changed files with 2,484 additions and 1,487 deletions.
51 changes: 28 additions & 23 deletions Readme.md
Expand Up @@ -4,11 +4,11 @@

## OpenBVE Source Code - Readme

This source code started out life as a port of OpenBVE to the OpenTK framework, but now has begun major development work to improve the sim and the possibilities it presents.
This repository contains the source code for the Train Simulator OpenBVE, a 3D cab based simulator.

### Compatibility Changes
The simulator supports both native CSV / RW routes, and routes built for the legacy DOS based simulator Mechanik.

A general overview of compatibility changes, including to the OpenBveApi, and animated objects are described fully [here](https://github.com/leezer3/OpenBVE/wiki/Compatibility-Notes).
OpenBVE is built in OpenGL, using the OpenTK framework for windowing.

### Fixed Errata

Expand All @@ -19,8 +19,7 @@ These are described fully [here](https://github.com/leezer3/OpenBVE/wiki/Errata)
Automatically generated daily builds are available [here](http://vps.bvecornwall.co.uk/OpenBVE/Builds/).

### Developer Documentation

Documentation for development of add-ons (update version of docs originally written by _michelle_) can be found [here](https://github.com/leezer3/OpenBVE/tree/master/Documentation).
Documentation for development of add-ons (update version of docs originally written by _michelle_) can be found [here](https://openbve-project.net/documentation_hugo/en/).

### Packages

Expand All @@ -46,32 +45,38 @@ Project Source Code on GitHub: https://github.com/leezer3/OpenBVE
**Discussion Boards**:

- [BVE Worldwide](http://bveworldwide.forumotion.com)
- [BVE-Terminus](http://www.bve-terminus.org/forum)
- [UKTrainsim](http://forums.uktrainsim.com/viewforum.php?f=66)

**Official Project Forum:**

http://bveworldwide.forumotion.com/f14-the-sim-in-time-general-discussion

### License

Michelle intended for this program to be placed in the public domain. This means that you can make any modifications to it you like and share your modifications with others.
The original founder of this project, Michelle intended for this program to be placed in the public domain.
In practice over the last 10 years I've been maintaining this, we've found that whilst public domain was a noble idea, having no recognised licence and attempting to disclaim copyright tends to produce many of it's own challenges.

As a result, all new code is licenced under BSD-2 or a similar permissive licence (as appropriate)- Please see the source headers.

It is our belief that BSD-2 on **new** code keeps most of original philosophical aims intact, whilst at the same time giving the benfits of a recognised licence.
At some point, the project will probably have to re-licence entirely, but that is somewhere in the future.

In practical terms, what this means is that you can make any modifications to the source like and share your modifications with others.
Please also see the following issue for further discussion on the topic: https://github.com/leezer3/OpenBVE/issues/305

**Third-Party Libraries**

- OpenBVE uses the [**CoreFX**](https://github.com/dotnet/corefx). This is licensed under the _MIT License_, which may be found in [here](licenses/CoreFX.txt).
- OpenBVE uses the [**CS Script**](https://github.com/oleg-shilo/cs-script) for animation scripting. This is licensed under the _MIT License_, which may be found in [here](licenses/CS-Script.txt).
- OpenBVE uses the [**DotNetZip**](https://github.com/haf/DotNetZip.Semverd) for loading compressed DirectX file. This is licensed under the *Microsoft Public License*, which may be found in [here](licenses/DotNetZip.txt).
- OpenBVE uses the [**NAudio**](https://github.com/naudio/NAudio) for decoding sound file. This is licensed under the *Microsoft Public License*, which may be found in [here](licenses/NAudio.txt).
- OpenBVE uses the [**NAudio.Vorbis**](https://github.com/naudio/Vorbis) for decoding Vorbis file. This is licensed under the *Microsoft Public License*, which may be found in [here](licenses/NAudio.Vorbis.txt).
- OpenBVE uses the [**NLayer**](https://github.com/naudio/NLayer) for decoding MP3 file. This is licensed under the *MIT License*, which may be found in [here](licenses/NLayer.txt).
- OpenBVE uses the [**NVorbis**](https://github.com/NVorbis/NVorbis) for decoding Vorbis file. This is licensed under the *Microsoft Public License*, which may be found in [here](licenses/NVorbis.txt).
- OpenBVE uses the [**OpenTK**](https://github.com/opentk/opentk) library for windowing and input handling. This is licensed under the _Open Toolkit Library License_, which may be found in [here](licenses/OpenTK.txt).
- OpenBVE uses the [**Prism**](https://github.com/PrismLibrary/Prism). This is licensed under the *MIT License*, which may be found in [here](licenses/Prism.txt).
- OpenBVE uses the [**ReactiveProperty**](https://github.com/runceel/ReactiveProperty) This is licensed under the *MIT License*, which may be found in [here](licenses/ReactiveProperty.txt).
- OpenBVE uses the [**SharpCompress**](https://github.com/adamhathcock/sharpcompress) for archive handling. This is licensed under the _MIT License_, which may be found in [here](licenses/SharpCompress.txt).
- OpenBVE uses the [**Reactive Extensions**](https://github.com/dotnet/reactive) This is licensed under the *Apache License, Version 2.0*, which may be found in [here](licenses/ReactiveExtensions.txt).
- OpenBVE uses the [**Ude**](https://github.com/yinyue200/ude) for character set detection. This is tri-licensed under the _Mozilla Public License v1.1_, _GPL 2.0_ and _LGPL 2.0_, which may be found in [here](licenses/Ude.txt).
- OpenBVE uses the [**XamlBehaviors for WPF**](https://github.com/microsoft/XamlBehaviorsWpf) This is licensed under the *MIT License*, which may be found in [here](licenses/XamlBehaviorsForWPF.txt).
- OpenBVE uses the [**TOLK**] (https://github.com/dkager/tolk) library for screen reader API access. This is licenced under the *LGPL V3* which may be found in [here](licences/TOLK.txt)
- OpenBVE uses [**CoreFX**](https://github.com/dotnet/corefx). This is licensed under the _MIT License_, which may be found in [here](licenses/CoreFX.txt).
- OpenBVE uses [**CS Script**](https://github.com/oleg-shilo/cs-script) for animation scripting. This is licensed under the _MIT License_, which may be found in [here](licenses/CS-Script.txt).
- OpenBVE uses [**DotNetZip**](https://github.com/haf/DotNetZip.Semverd) for loading compressed DirectX file. This is licensed under the *Microsoft Public License*, which may be found in [here](licenses/DotNetZip.txt).
- OpenBVE uses [**NAudio**](https://github.com/naudio/NAudio) for decoding sound file. This is licensed under the *Microsoft Public License*, which may be found in [here](licenses/NAudio.txt).
- OpenBVE uses [**NAudio.Vorbis**](https://github.com/naudio/Vorbis) for decoding Vorbis file. This is licensed under the *Microsoft Public License*, which may be found in [here](licenses/NAudio.Vorbis.txt).
- OpenBVE uses [**NLayer**](https://github.com/naudio/NLayer) for decoding MP3 file. This is licensed under the *MIT License*, which may be found in [here](licenses/NLayer.txt).
- OpenBVE uses [**NVorbis**](https://github.com/NVorbis/NVorbis) for decoding Vorbis file. This is licensed under the *Microsoft Public License*, which may be found in [here](licenses/NVorbis.txt).
- OpenBVE uses [**OpenTK**](https://github.com/opentk/opentk) library for windowing and input handling. This is licensed under the _Open Toolkit Library License_, which may be found in [here](licenses/OpenTK.txt).
- OpenBVE uses [**Prism**](https://github.com/PrismLibrary/Prism). This is licensed under the *MIT License*, which may be found in [here](licenses/Prism.txt).
- OpenBVE uses [**ReactiveProperty**](https://github.com/runceel/ReactiveProperty) This is licensed under the *MIT License*, which may be found in [here](licenses/ReactiveProperty.txt).
- OpenBVE uses [**SharpCompress**](https://github.com/adamhathcock/sharpcompress) for archive handling. This is licensed under the _MIT License_, which may be found in [here](licenses/SharpCompress.txt).
- OpenBVE uses [**Reactive Extensions**](https://github.com/dotnet/reactive) This is licensed under the *Apache License, Version 2.0*, which may be found in [here](licenses/ReactiveExtensions.txt).
- OpenBVE uses [**Ude**](https://github.com/yinyue200/ude) for character set detection. This is tri-licensed under the _Mozilla Public License v1.1_, _GPL 2.0_ and _LGPL 2.0_, which may be found in [here](licenses/Ude.txt).
- OpenBVE uses [**XamlBehaviors for WPF**](https://github.com/microsoft/XamlBehaviorsWpf) This is licensed under the *MIT License*, which may be found in [here](licenses/XamlBehaviorsForWPF.txt).
- OpenBVE uses [**TOLK**](https://github.com/dkager/tolk) for screen reader API access. This is licenced under the *LGPL V3* which may be found in [here](licences/TOLK.txt)
5 changes: 5 additions & 0 deletions assets/Compatibility/RoutePatches/Germany.xml
Expand Up @@ -48,5 +48,10 @@
<ReducedColorTransparency>true</ReducedColorTransparency>
<AccurateObjectDisposal>true</AccurateObjectDisposal>
</Patch>
<Patch>
<Hash>F67912DAEAE1B1013513F5E3196762E7D39C689DD0D3477118717CF051DCFA06</Hash>
<FileName>S8.csv</FileName>
<SignalSet>DB_New.xml</SignalSet>
</Patch>
</RoutePatches>
</openBVE>
76 changes: 76 additions & 0 deletions assets/Compatibility/RoutePatches/Misc.xml
Expand Up @@ -146,5 +146,81 @@
<Incompatible>true</Incompatible>
<LogMessage>Ground and rail transformations are broken, due to excessive gradients.</LogMessage>
</Patch>
<!-- Sanford Mace again, variable gauge demo thing -->
<!-- 3 Foot -->
<Patch>
<Hash>E8F10B550A664B576009F2B68DDA9314483DED361CD6E8DCD4482F97C7416927</Hash>
<FileName>Inbound Main.csv</FileName>
<AccurateObjectDisposal>true</AccurateObjectDisposal>
<ReducedColorTransparency>true</ReducedColorTransparency>
</Patch>
<Patch>
<Hash>B6603F8DC487AA5CE92CA4B7CA8D4C1AE8739083C89447C79BDFBA19704AF650</Hash>
<FileName>Inbound Tram.csv</FileName>
<AccurateObjectDisposal>true</AccurateObjectDisposal>
<ReducedColorTransparency>true</ReducedColorTransparency>
</Patch>
<Patch>
<Hash>520D7B846402BEA052BED85795F834CFEF8228AD4D356DA7597856866897EF7C</Hash>
<FileName>Outbound Main.csv</FileName>
<AccurateObjectDisposal>true</AccurateObjectDisposal>
<ReducedColorTransparency>true</ReducedColorTransparency>
</Patch>
<Patch>
<Hash>4CB7740CFE8CF22359597B2DDFA915CFF14440C3A9C1520F2E946F96ED2AB607</Hash>
<FileName>Outbound Tram.csv</FileName>
<AccurateObjectDisposal>true</AccurateObjectDisposal>
<ReducedColorTransparency>true</ReducedColorTransparency>
</Patch>
<!-- 2 Foot -->
<Patch>
<Hash>F08FB9B9E31CBD155DA212192F626AA56F3DBC6DE6F60B7E48C9AF739CCF9EB2</Hash>
<FileName>Inbound Main.csv</FileName>
<AccurateObjectDisposal>true</AccurateObjectDisposal>
<ReducedColorTransparency>true</ReducedColorTransparency>
</Patch>
<Patch>
<Hash>E5DC20166FDA9865CDB465DCD37CD09230BA44FAD1FB5B76F49A260C788EBCCC</Hash>
<FileName>Inbound Tram.csv</FileName>
<AccurateObjectDisposal>true</AccurateObjectDisposal>
<ReducedColorTransparency>true</ReducedColorTransparency>
</Patch>
<Patch>
<Hash>3CD04B26B65F34470B704E4E957F5213F4C267C03A17D12041A7F5842E6938F2</Hash>
<FileName>Outbound Main.csv</FileName>
<AccurateObjectDisposal>true</AccurateObjectDisposal>
<ReducedColorTransparency>true</ReducedColorTransparency>
</Patch>
<Patch>
<Hash>A0473B53E604E275F6B7C7B6B63016678124094279330F4A234AEEB5F3D57D77</Hash>
<FileName>Outbound Tram.csv</FileName>
<AccurateObjectDisposal>true</AccurateObjectDisposal>
<ReducedColorTransparency>true</ReducedColorTransparency>
</Patch>
<!-- 1 Foot -->
<Patch>
<Hash>247568CAD5D7A02B64BF1B05099E969E43EEDEE69C0A94BDCAF6764985AF8DF7</Hash>
<FileName>Inbound Main.csv</FileName>
<AccurateObjectDisposal>true</AccurateObjectDisposal>
<ReducedColorTransparency>true</ReducedColorTransparency>
</Patch>
<Patch>
<Hash>95599333BDC728AF7D8A7DE33C0D6FBB7F22DCE7EA88360D3FE4108F340012A1</Hash>
<FileName>Inbound Tram.csv</FileName>
<AccurateObjectDisposal>true</AccurateObjectDisposal>
<ReducedColorTransparency>true</ReducedColorTransparency>
</Patch>
<Patch>
<Hash>CCF7B10DD6F949805E9CF44A0653D499A8CDA5B6A2D77E8ABBD069F0787F3BEA</Hash>
<FileName>Outbound Main.csv</FileName>
<AccurateObjectDisposal>true</AccurateObjectDisposal>
<ReducedColorTransparency>true</ReducedColorTransparency>
</Patch>
<Patch>
<Hash>B7517EA13218FCC09ECC487F32B39A003D02C6A3492DD067B7B0934FAD9AB078</Hash>
<FileName>Outbound Tram.csv</FileName>
<AccurateObjectDisposal>true</AccurateObjectDisposal>
<ReducedColorTransparency>true</ReducedColorTransparency>
</Patch>
</RoutePatches>
</openBVE>
2 changes: 2 additions & 0 deletions assets/Controls/Default.controls
Expand Up @@ -11,6 +11,8 @@ BRAKE_EMERGENCY, keyboard, Slash, 0
SINGLE_POWER, keyboard, Z, 0
SINGLE_NEUTRAL, keyboard, A, 0
SINGLE_BRAKE, keyboard, Q, 0
LOCOBRAKE_INCREASE, Keyboard, RBracket, 0, 0
LOCOBRAKE_DECREASE, Keyboard, BracketLeft, 0, 0
SINGLE_EMERGENCY, keyboard, Number1, 0
REVERSER_FORWARD, keyboard, F, 0
REVERSER_BACKWARD, keyboard, V, 0
Expand Down
16 changes: 7 additions & 9 deletions assets/Languages/ca-ES.xlf
Expand Up @@ -2228,7 +2228,7 @@
<target>Palanca de control</target>
</trans-unit>
<trans-unit id="joystick_notavailable">
<source>N/A</source>
<source>Joystick (Not currently connected)</source>
<target>N/D</target>
</trans-unit>
<trans-unit id="joystickdirection_positive">
Expand Down Expand Up @@ -2395,12 +2395,10 @@
<target>Incrementa el fre una posició en els trens amb dues manetes.</target>
</trans-unit>
<trans-unit id="locobrake_decrease">
<source>N/A</source>
<target>N/D</target>
<source>Decreases the locomotive brake by one notch</source>
</trans-unit>
<trans-unit id="locobrake_increase">
<source>N/A</source>
<target>N/D</target>
<source>Increases the locomotive brake by one notch</source>
</trans-unit>
<trans-unit id="brake_halfaxis">
<source>Controls brake for trains with two handles on half of a joystick axis</source>
Expand Down Expand Up @@ -2563,19 +2561,19 @@
<target>Funció L del sistema de seguretat.</target>
</trans-unit>
<trans-unit id="security_m">
<source>N/A</source>
<source>The M function of the security system</source>
<target>Funció M del sistema de seguretat.</target>
</trans-unit>
<trans-unit id="security_n">
<source>N/A</source>
<source>The N function of the security system</source>
<target>Funció N del sistema de seguretat.</target>
</trans-unit>
<trans-unit id="security_o">
<source>N/A</source>
<source>The O function of the security system</source>
<target>Funció O del sistema de seguretat.</target>
</trans-unit>
<trans-unit id="security_p">
<source>N/A</source>
<source>The P function of the security system</source>
<target>Funció P del sistema de seguretat.</target>
</trans-unit>
<trans-unit id="camera_interior">
Expand Down
22 changes: 10 additions & 12 deletions assets/Languages/cs-CZ.xlf
Expand Up @@ -2377,12 +2377,10 @@
<target>Zvýšení brzdného účinku o jeden stupeň u vlaku s oddělenými kontroléry</target>
</trans-unit>
<trans-unit id="locobrake_decrease">
<source>N/A</source>
<target>N/A</target>
<source>Decreases the locomotive brake by one notch</source>
</trans-unit>
<trans-unit id="locobrake_increase">
<source>N/A</source>
<target>N/A</target>
<source>Increases the locomotive brake by one notch</source>
</trans-unit>
<trans-unit id="brake_halfaxis">
<source>Controls brake for trains with two handles on half of a joystick axis</source>
Expand Down Expand Up @@ -2545,20 +2543,20 @@
<target>L funkce zabezpečovacího systému</target>
</trans-unit>
<trans-unit id="security_m">
<source>N/A</source>
<target>N/A</target>
<source>The M function of the security system</source>
<target>M funkce zabezpečovacího systému</target>
</trans-unit>
<trans-unit id="security_n">
<source>N/A</source>
<target>N/A</target>
<source>The N function of the security system</source>
<target>N funkce zabezpečovacího systému</target>
</trans-unit>
<trans-unit id="security_o">
<source>N/A</source>
<target>N/A</target>
<source>The O function of the security system</source>
<target>O funkce zabezpečovacího systému</target>
</trans-unit>
<trans-unit id="security_p">
<source>N/A</source>
<target>N/A</target>
<source>The P function of the security system</source>
<target>P funkce zabezpečovacího systému</target>
</trans-unit>
<trans-unit id="camera_interior">
<source>Switches to the train's interior view</source>
Expand Down
22 changes: 10 additions & 12 deletions assets/Languages/de-CH.xlf
Expand Up @@ -2374,12 +2374,10 @@
<target>Schaltet für Züge mit getrennter Steuerung eine Bremsstufe hoch</target>
</trans-unit>
<trans-unit id="locobrake_decrease">
<source>N/A</source>
<target>N/A</target>
<source>Decreases the locomotive brake by one notch</source>
</trans-unit>
<trans-unit id="locobrake_increase">
<source>N/A</source>
<target>N/A</target>
<source>Increases the locomotive brake by one notch</source>
</trans-unit>
<trans-unit id="brake_halfaxis">
<source>Controls brake for trains with two handles on half of a joystick axis</source>
Expand Down Expand Up @@ -2542,20 +2540,20 @@
<target>Die L-Funktion des Zugsicherungssystem</target>
</trans-unit>
<trans-unit id="security_m">
<source>N/A</source>
<target>N/A</target>
<source>The M function of the security system</source>
<target>Die M-Funktion des Zugsicherungssystem</target>
</trans-unit>
<trans-unit id="security_n">
<source>N/A</source>
<target>N/A</target>
<source>The N function of the security system</source>
<target>Die N-Funktion des Zugsicherungssystem</target>
</trans-unit>
<trans-unit id="security_o">
<source>N/A</source>
<target>N/A</target>
<source>The O function of the security system</source>
<target>Die O-Funktion des Zugsicherungssystem</target>
</trans-unit>
<trans-unit id="security_p">
<source>N/A</source>
<target>N/A</target>
<source>The P function of the security system</source>
<target>Die P-Funktion des Zugsicherungssystem</target>
</trans-unit>
<trans-unit id="camera_interior">
<source>Switches to the train's interior view</source>
Expand Down
22 changes: 10 additions & 12 deletions assets/Languages/de-DE.xlf
Expand Up @@ -2377,12 +2377,10 @@
<target>Schaltet für Züge mit getrennter Steuerung eine Bremsstufe hoch</target>
</trans-unit>
<trans-unit id="locobrake_decrease">
<source>N/A</source>
<target>N/A</target>
<source>Decreases the locomotive brake by one notch</source>
</trans-unit>
<trans-unit id="locobrake_increase">
<source>N/A</source>
<target>N/A</target>
<source>Increases the locomotive brake by one notch</source>
</trans-unit>
<trans-unit id="brake_halfaxis">
<source>Controls brake for trains with two handles on half of a joystick axis</source>
Expand Down Expand Up @@ -2545,20 +2543,20 @@
<target>Die L-Funktion des Zugsicherungssystem</target>
</trans-unit>
<trans-unit id="security_m">
<source>N/A</source>
<target>N/A</target>
<source>The M function of the security system</source>
<target>Die M-Funktion des Zugsicherungssystem</target>
</trans-unit>
<trans-unit id="security_n">
<source>N/A</source>
<target>N/A</target>
<source>The N function of the security system</source>
<target>Die N-Funktion des Zugsicherungssystem</target>
</trans-unit>
<trans-unit id="security_o">
<source>N/A</source>
<target>N/A</target>
<source>The O function of the security system</source>
<target>Die O-Funktion des Zugsicherungssystem</target>
</trans-unit>
<trans-unit id="security_p">
<source>N/A</source>
<target>N/A</target>
<source>The P function of the security system</source>
<target>Die P-Funktion des Zugsicherungssystem</target>
</trans-unit>
<trans-unit id="camera_interior">
<source>Switches to the train's interior view</source>
Expand Down

0 comments on commit eb1da9a

Please sign in to comment.