debian/0000755000000000000000000000000011716530165007173 5ustar debian/changelog0000644000000000000000000002566511716530142011056 0ustar openbve (1.4.0.9-1) unstable; urgency=low * New upstream stable release (1.4.0.9) -- Paul Sladen Wed, 08 Feb 2012 22:44:00 +0000 openbve (1.4.0.7-2) unstable; urgency=low * debian/openbve.desktop: Add generic name, and [de] name (Closes: #657599) * debian/openbve.desktop: Disable StartupNotify=false (Closes: #657599) (Thanks to Ronny Standtke) -- Paul Sladen Sat, 04 Feb 2012 17:17:17 +0000 openbve (1.4.0.7-1) unstable; urgency=low * New upstream stable release (1.4.0.7) * Delete extranous 'licence-background.txt' previously merged into debian/copyright in commit 9ae7ec26. * routes-and-trains.txt: refresh/cull list of third-party content websites -- Paul Sladen Sat, 04 Feb 2012 16:16:16 +0000 openbve (1.4.0.5-1) unstable; urgency=low * Openbve ITP (Closes: #522854) * New upstream stable release (1.4.0.5) -- Paul Sladen Sat, 21 Jan 2012 21:00:00 +0100 openbve (1.4.0.0-2) UNRELEASED; urgency=low [Paul Sladen] * Openbve ITP (Closes: #522854) * debian/filesystem.cfg: use 'SpecialFolder.LocalApplicationData' + emulate behaviour until upstream allows LocalApplicationData * debian/README.source: document 'mask.bin' * debian/rules+control: convert to minimal debhelper 7 + bumps build-dep * debian/rules: use --with=cli + restore '--exclude-moduleref=AtsPluginProxy.dll' (removed >= 1.2.10.0-0ubuntu2) to stop errors * Provide more context for licensing discussions with upstream * Drop lynx dependency now that 'dh_installchangelogs' is used * Merge 'known-issues.txt' into main 'README.Debian' -- Paul Sladen Fri, 13 Jan 2012 23:00:00 +0100 openbve (1.4.0.0-1) experimental; urgency=low * Initial Debian upload * New upstream stable release (1.4.0.0) + update upstream URL to 'trainsimframework.org/*' + credits file as part of docs too + update 'changelog.html' and 'credits.html' + install new modular plugins to '/usr/lib/openbve/Plugins' + bump openbve-data (>= 1.4.0.0) hard dependency * debian/changelog: DEP5 and bump copyright to latest upstream wording * debian/source/format: '3.0 (quilt)' * debian/source/options: single-debian-patch -- Iain Lane Wed, 11 Jan 2012 23:00:00 +0100 openbve (1.2.10.0-0ubuntu3) precise; urgency=low * debian/control: Add missing dependency (libmono-i18n4.0-all) and remove dependency on libmono-i18n4.0-cil as the latter is a dependency of the first. Thanks to Paul Childs for the fix and to Paul Sladen for finding a dependency simplification. (LP: #877776) Adding also ${misc:Depends} to the Depends field and bumping the Standards-Version to 3.9.2 (current version). * debian/rules: Add build-arch and build-indep recommended targets. -- Alessandro Menti Sat, 29 Oct 2011 19:40:10 +0200 openbve (1.2.10.0-0ubuntu2) oneiric; urgency=low * debian/rules: Skip AtsPluginProxy.dll modulrefs, these are Win32 only. * openBVE/OpenBveApi/OpenBveApi.csproj, openBVE/OpenBve/OpenBve.csproj: set TargetFrameworkVersion to v4.0. * debian/control: Tweak dependencies and build-dependencies for 4.0. -- Jo Shields Sat, 02 Jul 2011 22:11:00 +0100 openbve (1.2.10.0-0ubuntu1) natty; urgency=low * New upstream stable version (1.2.10.0) -- Paul Sladen Tue, 28 Dec 2010 04:12:00 +0000 openbve (1.2.7.3-0ubuntu3) natty; urgency=low * debian/control: Fixed typo in first line of third paragraph of the package description-missing 's' in 'based' (LP: #628758) -- Arvind S Raj Fri, 24 Dec 2010 07:46:07 +0530 openbve (1.2.7.3-0ubuntu2) maverick; urgency=low * debian/control: fix minor spelling mistakes (LP: #628758) -- Paul Sladen Sat, 9 Oct 2010 02:29:00 +0100 openbve (1.2.7.3-0ubuntu1) maverick; urgency=low * New upstream stable version (1.2.7.3) -- Paul Sladen Wed, 11 Aug 2010 23:07:00 +0100 openbve (1.2.7.0-0ubuntu1) UNRELEASED; urgency=low * New upstream stable version (1.2.7.0) -- Paul Sladen Sun, 11 Jul 2010 11:49:00 +0100 openbve (1.2.6.106-0ubuntu1) UNRELEASED; urgency=low * New upstream development version (1.2.6.106) -- Paul Sladen Tue, 6 Jul 2010 02:45:00 +0100 openbve (1.2.6.105-0ubuntu1) UNRELEASED; urgency=low * New upstream development version (1.2.6.105) -- Paul Sladen Sun, 4 Jul 2010 15:05:00 +0100 openbve (1.2.6.3-0ubuntu1) maverick; urgency=low * New upstream stable version (1.2.6.3) -- Paul Sladen Wed, 5 May 2010 11:20:00 +0100 openbve (1.2.5.2-0ubuntu1) lucid; urgency=low * New upstream stable version (1.2.5.2) * Tweak build-deps to use newer tao*-cil-dev packages -- Paul Sladen Tue, 16 Feb 2010 14:03:00 +0000 openbve (1.2.5.1-0ubuntu1) lucid; urgency=low * New upstream stable version (1.2.5.1) fixes (LP: #505299) * changelog.html: update (1.2.5.1) * rules: explicitly pass 'OpenBve.csproj' to xbuild * rules: use xbuild /t:Clean target now that it works -- Paul Sladen Mon, 15 Feb 2010 18:28:00 +0000 openbve (1.2.4.5-0ubuntu1) unreleased; urgency=low * New upstream development version (1.2.4.5) -- Paul Sladen Sat, 9 Jan 2010 02:03:00 +0000 openbve (1.2.4.4-0ubuntu1) lucid; urgency=low * New upstream development version (1.2.4.4) + fixes autoscaling (LP: #503913) -- Paul Sladen Thu, 7 Jan 2010 15:18:00 +0000 openbve (1.2.4.1-0ubuntu1) lucid; urgency=low * New upstream development version (1.2.4.1) (LP: #444934) fixes (LP: #419523) (LP: #419525) (LP: #419530) (LP: #444462) * changelog.html: update (1.2.3.3) -- Paul Sladen Wed, 6 Jan 2010 07:58:00 +0000 openbve (1.2.2.0-0ubuntu1) unreleased; urgency=low * New upstream stable version (1.2.2.0) (LP: #444934) * changelog.html: update (1.2.2.0) * releasenotes.html: update (1.2.1.3) * Add NEWS.Debian to docs -- Paul Sladen Tue, 1 Sep 2009 00:11:00 +0100 openbve (1.2.0.3-0ubuntu1) karmic; urgency=low * New upstream stable version (1.2.0.3) * debian/copyright: update to reflect minor wording changes * debian/rules: "./rules fetch-html" for {changelog,releasenotes}.html * changelog.html: update (1.2.0.3) * releasenotes.html: update (1.2.0.0) * debian/rules: DEBUG_CONFIGURATION=Release to switch codepaths used * debian/control: openbve-data (>= 1.2.0.3+dfsg) -- Paul Sladen Thu, 6 Aug 2009 02:05:00 +0100 openbve (1.1.1.0-0ubuntu1) unreleased; urgency=low * New upstream development version (1.1.1.0) * debian/control: rev 'openbve-data' dependency (new strings) -- Paul Sladen Sun, 05 Jul 2009 21:10:00 +0000 openbve (1.0.7.2-0ubuntu1) karmic; urgency=low * New upstream version (1.0.7.2) * Update changelog.html (1.0.7.2) -- Paul Sladen Tue, 23 Jun 2009 20:20:00 +0000 openbve (1.0.6.7-0ubuntu1) unreleased; urgency=low * Add WatchdogExit() to take care of deadlocks in library shutdown * New upstream version (1.0.6.7) -- Paul Sladen Sun, 7 Jun 2009 02:54:00 +0000 openbve (1.0.6.2-0ubuntu1) unreleased; urgency=low * New upstream version (1.0.6.2) * Update 'debian/known-issues.txt' * Update 'openbve-data' Depends: >= 1.0.6.0+dfsg * Drop try..catch around saving of logs (should be handled by separate patch applied by upstream. * Update changelog.html (1.0.6.2) -- Paul Sladen Fri, 29 May 2009 15:12:03 +0000 openbve (1.0.6.0-0ubuntu1) unreleased; urgency=low * New upstream version (1.0.6.0) * Make dropping out of full-screen *very* first priority * Update changelog.html (1.0.6.0) and releasenotes.html (1.0.5.0) * Update known-issues.txt -- Paul Sladen Thu, 28 May 2009 06:53:10 +0000 openbve (1.0.2.0-0ubuntu2) jaunty; urgency=low * Explicitly depend on 'libmono-i18n2.0-cil' (LP: #356487) * Backport homepage update to 'http://openbve.trainsimcentral.co.uk/' + and fix packaging to reflect * Expand debian/copyright based on feedback for acceptance into Debian -- Paul Sladen Wed, 15 Apr 2009 02:56:20 +0000 openbve (1.0.2.0-0ubuntu1) jaunty; urgency=low * New upstream version (bugfix release) (LP: #356344) * debian/rules: tweak to allow easy building of Debug or Release target * pass '/fhs' from the mono wrapper instead of hardcoding * overload GetSettingsFolder() to create the config directory before return it * Load first-use Keyboard mapping from GetDataFolder("Controls") not ~/ * Default first-use game data from /usr/share/games/bve/{Railway/Route,Train} * Update 'openbve-data' Depends: >= 1.0.2.0+dfsg * Load timetables relative to route directory, not trainpath + disable spurious Train folder warning, as existance is not required later * Don't display hidden .files and .folders in ListViews * Include 'changelog.html' and 'releasenotes.html' downloaded from the website * Fix case in manpage documentation for '~/.config/OpenBve/' * Add README.Debian covering Debian-centric patches * Update 'known-issues.txt' * Print + try...except{} around path used in LoadOptions() (debugging) * Pacify lintian checker * Leave fullscreen before deinitialisation to reduce risk of leaving a mess -- Paul Sladen Sun, 05 Apr 2009 12:33:10 +0000 openbve (0.9.5.5-0ubuntu3) unreleased; urgency=low * Tweak manpage -- Paul Sladen Thu, 23 Feb 2009 12:48:27 +0000 openbve (0.9.5.5-0ubuntu2) jaunty; urgency=low * Fix FTBFS: 'libtaoframework-openal1.1-cil' and 'libmono-winforms2.0-cil' plus move 'mono-xbuild' from -Indep (for clean target). * Use optimised compiler target (Release, instead of Debug) * Use '/usr/share/games/bve/' as default train/route location * Only whinge about plugins not being available if 'ats.cfg' exists * Don't display hidden .files and .folders in ListViews * Update manpage with initial tab options * Disable spurious Train folder warning message, as existance is not required later * Handle ll-CC default langauge selection and fall back to just ll. * Use Sdl_WM_SetIcon() on all platforms * Bump openbve-data (>= 0.9.5.5+dfsg-0ubuntu3) dependency * Load timetables relative to route directory, not trainpath -- Paul Sladen Thu, 19 Feb 2009 18:49:21 +0000 openbve (0.9.5.5-0ubuntu1) jaunty; urgency=low * New upstream release 0.9.5.5, dated 20090217-2228 * Initial release (LP: #331188) -- Paul Sladen Wed, 18 Feb 2009 23:23:30 +0200 openbve (0.9.5.0-0ubuntu1) unreleased; urgency=low * import 0.9.5.0, dated 20090201-1953 -- Paul Sladen Fri, 15 Feb 2009 11:51:30 +0100 debian/compat0000644000000000000000000000000211716530142010364 0ustar 7 debian/openbve.60000644000000000000000000001123711716530142010717 0ustar .\" Hey, EMACS: -*- nroff -*- .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) .TH OPENBVE 6 "5 April 2009" OpenBVE .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: .\" .nh disable hyphenation .\" .hy enable hyphenation .\" .ad l left justify .\" .ad b justify to both left and right margins .\" .nf disable filling .\" .fi enable filling .\" .br insert line break .\" .sp insert n+1 empty lines .\" for manpage-specific macros, see man(7) .SH "NAME" OpenBVE \- train/railway simulator and game .SH "SYNOPSIS" \fBopenbve\fR [\fB/route=\fIroute.csv\fR] [\fB/train=\fIdirectory\fR] [\fB/controls\fR|\fB/newgame\fR|\fB/options\fR|\fB/review\fR] .br .SH "DESCRIPTION" OpenBVE is a realistic rail simulator. The driving simulation is restricted to following a pre-determined loaded route, with the focus being on the realism of the train driving experience. OpenBVE also has an \fIArcade\fR mode where driving style and timetable-keeping affect a running score. The simulator is backwards compatible with existing 'BVE Trainsim' route and train datafiles, which are readily available for no cost. It is cross-platform using CLI and Mono. .br .SH "GETTING STARTED" To move the train, you need to do the following (with the default keyboard settings): \fBf\fR Move the \fIreverser\fR to the forwards position. (Opposite is \fBv\fR). .br \fB,\fR Release the \fIbrake\fR one notch; will be required 4-8 times before movement. (Opposite is \fB.\fR). .br \fBz\fR Increase the \fIregulator\fR (power) one notch; may be required 1-2 times before movement. (Opposite is \fBq\fR). The major controls keys are arranged closely together \fBq\fR-\fBa\fR-\fBz\fR for power control; \fB,\fR-\fB.\fR (comma and full-stop) for braking and \fBf\fR-\fBv\fR for forwards/backwards direction. Some electric trains have a combined accelerator+brake with a coast (neutral) in the centre. This is controlled with just the \fBq\fR-\fBa\fR-\fBz\fR combination (and forwards/backwards). Pressing the \fBa\fR key moves the controller one notch closer to the coast/idle positioh, regardless of whether in power or braking mode. \fBReturn\fR/\fBShift-Return\fR operate the horn. Keys \fBF1\fR-\fBF5\fR select alternative camera angles. \fBC-r\fR unlocks the camera to allow free movement (\fBr\fR to reset). A large number of other keys exist for interacting with complex signalling systems and operating the passenger doors whilst in a station. Most routes have a supplied timetable that can be displayed by pressing \fBC-t\fR. .SH "LAPTOPS" For laptops/notebooks, there is an alternate keyboard mapping (called "Default keyboard assignment for Notebooks.controls"), which can be imported via the \fICustomise Controls\fR tab. The basic keys are the same, but camera controls are moved off the numeric keypad. .br .SH "OPTIONS" .TP \fB/controls\fR Show Customise Controls screen; keyboard/mouse/joystick selection. .TP \fB/newgame\fR Show Filemanager/route selector screen; choose activity (default). .TP \fB/options\fR Show Options screen; display and quality settings. .TP \fB/review\fR Show Review performance; score and incident log from previous activity. .TP \fB/route=\fIsomeroute.csv\fR Path to the file with the route file ending \fI.csv\fR or \fI.rw\fR which describes the track, scenery and time-table. .TP \fB/train=\fItrain.dat\fR A train/cab. This should be a path to the directory, which contains the \fItrain.dat\fR description for the locomotive, train or cab. .SH "DATAFILES" Two elements are required, a route, and a train (often just a cab view and performance metrics). These can be selected using the filemanager after OpenBVE is started. Most routes have a corresponding recommended train (for instance a particular model of Tube train on the London Underground); if this train is located it will be selected by default. .br .SH "FILES" .TP \&~/.config/OpenBve/ Saved keyboard configuration, display settings and score log. .TP /usr/share/games/bve/\fBTrain/\fR Default location for packaged train directories (containing \fItrain.dat\fR). .TP /usr/share/games/bve/\fBRailway/Route/\fR Default location for packaged railway route \fI.csv\fR files. .TP /usr/shares/games/openbve/data/ Data used by OpenBVE to start up. .br .SH "AUTHOR" .TP OpenBVE was written by Michelle Boucquemont and placed in the public domain. .TP This manual page was written for Debian/Ubuntu by Paul Sladen .br .SH "SEE ALSO" Website: .BR http://trainsimframework.org/ .br debian/source/0000755000000000000000000000000011716530142010466 5ustar debian/source/format0000644000000000000000000000001411716530142011674 0ustar 3.0 (quilt) debian/source/patch-header0000644000000000000000000000006011716530142012732 0ustar Debian packaging patches are maintained in Git. debian/source/options0000644000000000000000000000002411716530142012100 0ustar single-debian-patch debian/credits.html0000644000000000000000000001321711716530142011515 0ustar Credits
Banner

Credits

This is a list of credits intended to include everyone who made significant contributions to this project.

Programming

michelle Forum profile Lead programming
Jens Rügenhagen (odakyufan) Forum profilePersonal homepage Additional programming, feedback and testing
Anthony Bowden (Anthony_B) Forum profilePersonal homepage Additional programming, feedback and testing

Homepage

michelle Forum profile Homepage content
Anthony Bowden (Anthony_B) Forum profilePersonal homepage Current hosting solution
Steve Green (wumpty) Forum profilePersonal homepagePersonal homepage Former hosting solution

Packagers

Paul Sladen (sladen) Forum profileE-mail Ubuntu package maintainer, portability improvements

Translators

Marc Riera Irigoyen (Markitus95) Forum profilePersonal homepageE-mail Catalan
Jan Henning (Jan) Forum profile German
phontanka Forum profilePersonal homepagePersonal homepageE-mail Hungarian
Dirk-Jan Breunissen (DJB) Forum profile Dutch
黃皓俊 Alvin Wong (alvinwong) Forum profile Chinese (Simplified)
and others...
debian/NEWS.Debian0000644000000000000000000000564211716530142011055 0ustar openbve (1.4.0.5-1) unstable; urgency=low Openbve stable release 1.4.0.0 introduces the upstream content-manager for downloading external routes directly from within the program. This simplifies the installation procedure for additional third-party content (Routes and Trains) and allows meaningful use of Openbve without having the bve-{route,train}-* packages installed first. -- Paul Sladen Tue, 24 Jan 2012 00:00:00 +0100 openbve (1.2.10.0-0ubuntu1) natty; urgency=low Openbve has gained has gained a new Train plugin API ("OpenBveApi"), for plugins written in CLR-based languages such as C#. These plugins should be fully portable in source-form and are intended also to be portable in binary/compiled form too. Previously the plugin API was based on that used in BVE Trainsim 4 and was limited to Win32-i386-COFF .dlls. An example plugin written against the new OpenBveApi and in C# is "UkTrainSys" by Anthony Bowden. This plugin is to some extent a drop-in replacement for several previous generations of the plugins 'OS_Ats1.dll' and UkMut.dll', commonly distributed across many trains. Plugins are activated by putting the plugin filename in 'ats.cfg' in a corresponding Train/.../ directory. -- Paul Sladen Tue, 28 Dec 2010 02:49:00 +0000 openbve (1.2.4.1-0ubuntu1) lucid; urgency=low Openbve now uses a home-grown .wav parser for loading audio files. The older SDL/Alut sound loader would transparently load Ogg Vorbis; as a consequence of this no longer working the default train and route data packages have been rebuilt without a Vorbis recompression stage and so are now larger in download size. -- Paul Sladen Wed, 6 Jan 2009 07:58:00 +0000 openbve (1.2.1.3-0ubuntu1) unreleased; urgency=low A marker at the front of first car is now used for signalling/platform positioning, rather than first axle or "beacon receiver" offset. this should allow the removal of workarounds in route/train models. The "defaultexterior" configuration option has been removed by upstream. It is now always true and a version of the basic "model" from 'Data/Compatibility/exterior.csv' is used as the default 3D representation for the train in semi-invisible train front (the "pre-train")---this model is expected to be a unit cube, that is then scaled to the anticipated train height/width/length. The default (unspecified) train data has been adjusted: + CarHeight 3.2 metres -> 3.6 metres + AerodynamicDragCoefficient 1.2 -> 1.1 + CenterOfGravityHeight 1.5 metres -> 1.6 metres Others: * Boolean 'World.MouseGrabIgnoreOnce' used for working around Sdl.SDL_WM_GrabInput() bug. * Huge churn from renaming "SecuritySystem" to "SafetySystem". * debugCheckError() renamed to CheckForOpenGlError(). -- Paul Sladen Tue, 1 Sep 2009 14:40:00 +0100 debian/openbve.wrapper0000644000000000000000000000014611716530142012227 0ustar #!/bin/sh exec /usr/bin/cli /usr/lib/openbve/OpenBve.exe /filesystem=/etc/openbve/filesystem.cfg "$@" debian/openbve.docs0000644000000000000000000000016211716530142011475 0ustar debian/routes-and-trains.txt debian/releasenotes.html debian/credits.html debian/README.Debian debian/NEWS.Debian debian/openbve.menu0000644000000000000000000000015211716530142011510 0ustar ?package(openbve):needs="X11" section="Games/Simulation"\ title="OpenBVE" command="/usr/games/openbve" debian/openbve.manpages0000644000000000000000000000002211716530142012333 0ustar debian/openbve.6 debian/filesystem.cfg0000644000000000000000000000101411716530142012027 0ustar Data = $[CommonApplicationData]/games/openbve/Data # Replace with Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) when Openbve supports that ManagedContent = $[Personal]/.local/share/OpenBve/ManagedContent Settings = $[ApplicationData]/OpenBve/Settings InitialRoute = $[CommonApplicationData]/games/bve/Railway/Route/Birmingham_Cross-City_South InitialTrain = $[CommonApplicationData]/games/bve/Train/ RestartProcess = /usr/games/openbve #RestartArguments = /filesystem=/etc/openbve/filesystem.cfg debian/routes-and-trains.txt0000644000000000000000000001003711716530142013307 0ustar Expansion routes and trains =========================== The BVE route-designing community is quite extensive, as the original Japanese (free as in beer) "BVE Trainsim" has been around since the 1990s. The basic route text-based file format has been flexible to allow adding extra detail (models and textures) in line with computing power increases. BVE (and OpenBVE) are particularly popular in Britain and Japan; therefore the highest-quality BVE routes tend to features real or fictional locations in these two countries. Via the web =========== There are several main issues with finding expansion routes/trains: 1. Virtually all BVE routes are free-as-in-beer; but come with restrictions preventing distribution, except via the original authors' homepage. 2. There is no consistent/central download location. When you do find a forum this may require registering and a new login to get the link. 3. The downloads are not consistently formatted; They can be '.zip', self-extracting '.exe', MS Windows Installer '.msi' or '.7z'... .msi files can normally be unpacked using Wine's 'msiexec' and then copying the files from ~/.wine/drive_c/somewhere. 4. Most routes were created on MS Windows, which has case-insensitive filenames. It may be necessary to rename them to lowercase. Websites ======== These websites may be a good starting point for locating additional files: http://www.uktrainsim.com/ http://www.trainsimcentral.co.uk/ (Birmingham "Cross-City") http://www.trainsimstuff.org/ (Network West Midlands, Nothern Line) http://www.eezypeazy.co.uk (Tyne Valley) This beautiful Italian route is designed for OpenBVE: http://fevf.altervista.org/ There are excellent Japanese routes available at: http://gri.s60.xrea.com (Joetsu Line) http://ec207.tea-nifty.com/blog/2008/07/atssnp_275b.html (ATS-Sn/P Test Route) Extracting ========== Once you have succeded in finding the promise of a route, or train and managed to unpack it sufficiently to get at the actual files. What you need to look for are the directories: (a) For railway routes: .../Railway/Route/my-first-route.csv This will often refer to 'Object/...' stored in directory above, or textures/models assumed to be available with the original 'BVE' program's default route. As such you will need to keep this directory structure intact. BTW, you can open the '.csv' file with a text-editor or spreadshet; See below. (b) For cab and train descriptions; For an ABC locomotive, this might be: .../Train/Abc123/train.dat Where 'Abc123' is the directory that is loaded with OpenBVE. The required files should be all inside this directory. Format ====== The route file format can only follow a pre-defined journey. This is defined in the '.csv' (Comma Separated Value) file. Each point of interest (model) or change in the track is measured in metres relative to the starting point. The first column is the distance, and remaining columns change what happens, or begins or ends at that point. Multiple parallel tracks are very easily designed in BVE format as they are simply defined as a horizontal/vertical offset compared to the first track that the train is taking. Points are modelled (although cannot be taken) by moving a parallel track closer the the main track and then stopping it. If the train is required to "cross over" to the "other line", the track the train is on is actually slewed across, with a new empty line started straight ahead and an old empty line stopped when train's route has moved across. In addition to the source code, full reverse-engineered documentation from analysising the original free-as-in-beer BVE Trainsim program is available in English at: http://trainsimframework.org/develop/ Some documentation of the formats is available in Japanese at: http://mackoy.cool.ne.jp/index4.html Author ====== This text document written by Paul Sladen for Debian/Ubuntu and released into the Public Domain. List of suggested download addresses contributed by Anthony Bowden . debian/rules0000755000000000000000000000555211716530142010255 0ustar #!/usr/bin/make -f export DH_VERBOSE=1 BUILDDIRS = openBVE/OpenBve openBVE/OpenBveApi \ openBVE/OpenBveAts \ openBVE/Sound.Flac openBVE/Sound.RiffWave \ openBVE/Texture.Ace openBVE/Texture.BmpGifJpegPngTiff TARGET = $(CURDIR)/debian/openbve EXEC_TARGET = $(TARGET)/usr/lib/openbve EXEC_PLUGIN_TARGET = $(EXEC_TARGET)/Plugins #DEBUG_CONFIGURATION=Debug DEBUG_CONFIGURATION=Release %: dh $@ --with=cli override_dh_clideps: dh_clideps --exclude-moduleref=AtsPluginProxy --exclude-moduleref=AtsPluginProxy.dll override_dh_auto_build: for builddir in $(BUILDDIRS); do \ (cd $$builddir && xbuild /p:Configuration=$(DEBUG_CONFIGURATION) *.csproj) || exit 1; \ done override_dh_clean: dh_clean rm -rf $(TARGET) for builddir in $(BUILDDIRS); do \ (cd $$builddir && xbuild /t:Clean *.csproj); \ rm -rf $$builddir/bin $$builddir/obj; \ done override_dh_install: dh_install # The wrapped is installed are here because the permissions need to be set install -D -m 755 -T $(CURDIR)/debian/openbve.wrapper $(TARGET)/usr/games/openbve # Moved creation from 'debian/dirs' to 'debian/rules' per sponsorship feedback install -d $(EXEC_TARGET) $(EXEC_PLUGIN_TARGET) # NOTE: these are here, rather than in debian/*.install because it is not # possible to switch between the setting of \$(DEBUG_CONFIGURATION) otherwise install -m 755 $(CURDIR)/openBVE/OpenBve/bin/$(DEBUG_CONFIGURATION)/OpenBve.exe $(EXEC_TARGET) #install -m 644 $(CURDIR)/openBVE/OpenBve/bin/$(DEBUG_CONFIGURATION)/OpenBve.exe.mdb $(EXEC_TARGET) install -m 755 $(CURDIR)/openBVE/OpenBveApi/bin/$(DEBUG_CONFIGURATION)/OpenBveApi.dll $(EXEC_TARGET) install -m 644 $(CURDIR)/openBVE/OpenBveApi/bin/$(DEBUG_CONFIGURATION)/OpenBveApi.dll.mdb $(EXEC_TARGET) install -m 755 $(CURDIR)/openBVE/OpenBveAts/bin/$(DEBUG_CONFIGURATION)/OpenBveAts.dll $(EXEC_PLUGIN_TARGET) install -m 755 $(CURDIR)/openBVE/Sound.Flac/bin/$(DEBUG_CONFIGURATION)/Sound.Flac.dll $(EXEC_PLUGIN_TARGET) install -m 755 $(CURDIR)/openBVE/Sound.RiffWave/bin/$(DEBUG_CONFIGURATION)/Sound.RiffWave.dll $(EXEC_PLUGIN_TARGET) install -m 755 $(CURDIR)/openBVE/Texture.Ace/bin/$(DEBUG_CONFIGURATION)/Texture.Ace.dll $(EXEC_PLUGIN_TARGET) install -m 755 $(CURDIR)/openBVE/Texture.BmpGifJpegPngTiff/bin/$(DEBUG_CONFIGURATION)/Texture.BmpGifJpegPngTiff.dll $(EXEC_PLUGIN_TARGET) dh_installchangelogs debian/changelog.html # For running manually fetch-html: # The wget is two-step; the mv will only occur if wget succeeded and exited cleanly # One could use 'wget -O' but if the website is down or the transfer interrupted then # the existing copy is corrupted. This happened and lead to the current method wget http://trainsimframework.org/changelog.html && mv changelog.html.1 changelog.html #wget http://trainsimframework.org/releasenotes.html && mv releasenotes.html.1 releasenotes.html wget http://trainsimframework.org/credits.html && mv credits.html.1 credits.html debian/README.source0000644000000000000000000001461511716530142011354 0ustar Braindump, Paul Sladen 2012-01-10 Licensing: The 'debian/copyright' contains both the short 'public domain' licence from upstream, and associated context and discussion that demonstrate the wider intent of the upstream licensing. This has been combined and included all together per the advice recieved on #debian-ftp about public domain licences being acceptable, but ideally with supporting context. Data files: Content data (Routes and Trains) can be downloaded directly from inside Openbve 1.4.0.0 and above, or from those packaged in Debian. Openbve has been maintained in Ubuntu for a few years; originally the only free data-files enabled are the following ones specially cleaned and prepared from Anthony Bowden and which install into /usr/share/games/bve/* http://packages.ubuntu.com/oneiric/bve-route-cross-city-south http://packages.ubuntu.com/oneiric/bve-train-br-class-323 http://packages.ubuntu.com/oneiric/bve-train-br-class-323-3dcab The directory mirrors the _format_ of the files (BVE Train Sim files) rather than the _name_ of the libre simulator engine (Openbve). As of Openbve version 1.4.0.0, Openbve contains an in-program content-management system allowing test content to be downloaded directly. This content can now be used for testing, without needing the above bve-{route,train}*.debs. Preparing new upstream source: http://trainsimframework.org/downloads.html Latest Version number N.N.N.N is displayed on that page. The version number is not copied into the .zip paths. The .zip links do not change and so are to unversioned .zips. Unfortunately it's not possible to write a 'watch' rule for this particular arrangemet[1]. Note: http://trainsimframework.org/common/openbve_stable_source.zip (-> openbve_*.orig.tar.gz) http://trainsimframework.org/common/openbve_stable.zip (-> openbve-data_*+dfsg.orig.tar.gz) (ie, they 'appear' to be wrong way around. The reason for this is that the data files and icons are only distributed in the precompiled distribution, and not also in the source bundle. However, sometimes this is to our advantage as the data files (eg. translations) rev at a different rate to the main program. Both downloads are always rebuilt, but you may find after unpacking that one or the other is zero-change, and so it's possible to skip re-uploading to the archive). Rarely does a bump of the program itself introduce a hard Depends: break upon the data, but do check, and bump up if it actually breaks. Changelogs The Upstream is not distributed in the source package, but needs to be pulled from the website. Since the website might not be up at the point of rebuliding the package, this is achieved manually: cd debian/ ./rules fetch-html and then this change is committed to revision control as part of the Debian patch for later use and reliable rebuilding. DFSGifyng: The 'openbve_stable.zip' contains pre-compiled '.exe', '.dll' and debugging maps that need deleting before creating the upstream tarball (for the 'openbve-data' package). find -name \*.exe -o -name \*.dll -o -name \*.mdb | xargs rm Check using 'git status' that you haven't introduced anything non-DFSG into the 'upstream' branch when unpacking. Extra Note: the zip files are created manually by upstream (michelle) and sometimes have included off-by-one errors in the pathnames levels. Use 'git status' or similar and if there is an obvious typo don't use it and it'll just cause churn in the diffs, instead email michelle and get it fixed in the upstream tarball (this will help other people too, not just yourself when packaging). Mask file 'Data/mask.bin' is a raw bitmask used along with 'Data/icon.bmp' for the Window Manager icon setting: Sdl.SDL_WM_SetIcon(bitmap, mask) The file is (128 bytes) == (1024 bits) == (32 x 32 bits), in the raw bitmask/ bitarray form designed for sending straight to: http://www.libsdl.org/cgi/docwiki.cgi/SDL_WM_SetIcon "points to a bitmap with bits set where the corresponding pixel should be visible. The format of the bitmap is as follows: Scanlines come in the usual top-down order. Each scanline consists of (width / 8) bytes, rounded up." The following Python can be used to print the contents in ASCII-art form: python -c "import struct; \ print ''.join(map(bin,struct.unpack('32I',open('Data/mask.bin') \ .read(128)))).replace('0b','\n').replace('0',' ').replace('1','**')" Debug/Release configuration The Mono xbuild system has a figured arrangement of directories, which are different for release and debug builds. In testing it may be necessary to swap between the configurations to add with debugging and follow-up with upstream. This is changable at the top of 'debian/rules': #DEBUG_CONFIGURATION=Debug DEBUG_CONFIGURATION=Release Note that because of the change in directory structure, the resulting output files are installed further down the debian/rules file, rather than from debian/*.install which does not have the necessary flexibility. Commit changelog: git checkout -f upstream git commit --author michelle import openbve_stable.zip N.N.N.N+dfsg (YYYY-mm-dd) Main commit message comes from a nicely wordwrapped/plain-text version of the upstream changelog at: http://trainsimframework.org/changelog.html this is linked from the site top-level of the site (not downloads). Debian changelog UNRELEASED entries: Openbve upstream releases tend to come in bunches of activity. Quite often a second, or third upstream release may become available whilst the Debian packaging of the previous version is still under test and has not yet been uploaded. This accounts for a number of the UNRELEASED entries in 'debian/changelog'. It's very useful to keep these as it makes bisecting and testing/jumping between revisions much easier, even if those never actually made it to the Debian/Ubuntu archives because they were superseded by the newer version that became available. [1] "watch file syntax, version separate to .zip" (2009-02-17) http://www.mail-archive.com/pkg-devscripts@teams.debian.net/msg02553.html Upstream documentation. The Openbve website includes various pieces of documentation only in HTML format that are not included in the source bundles. This are part of the wider project, and so some of them (Credits, Changelog, Release information) have been documented and added to resulting binary .deb distribution. Where possible, subsets of this HTML information have been manually included in files such as 'debian/copyright'. debian/README.Debian0000644000000000000000000002116311716530142011232 0ustar OpenBve is in theory cross-platform in both Source, and Binary (compiled) form because it uses CLI/CLR (".Net"/Mono). This version for Debian/Ubuntu is compiled from source-code and includes additional small changes; mainly to add Unix-specific (and Debian/Ubuntu packaging-specific) file paths. OpenBve itself is fairly well designed and abstracts most of the file-handling, including functions for case-insensitive filename resolution, but out-of-the-box does not provide suitable default save/load locations for Unix. Most of these necessary alternate paths have been incorporated by upstream and enabled by the "/fhs" switch. The rest are explicitly patched on top as part of the Debian packaging process. The source is also patched to remove the artificial restriction of the Train/ and Railway/ directories needing to be in the same place. Removing this pseudo-requirement allows testing out newly-downloaded routes saved in your home-directory with a fully packaged route located under /usr/share/games/bve/ --- or vice-versa. Have fun, and try not to crash! Known bugs/issues with running OpenBVE on Linux/Ubuntu/Debian. ============================================================== This list was originally held in 'known-issues.txt'. Fixed and merged by upstream: ----------------------------- 2. If you have texture flashing issues; this is because the C-based OpenGL code was receiving pointers to single integers from the OpenBVE. Fixed by passing a array. Fixed upstream by passing components separately. 3. Crashes out whilst trying to promisicously read non-accessible directories (eg. '/lost+found' or '~/.dbus'). It is hunting for directories containing a valid 'train.dat' description file. Kludged for the moment with try{}catch{} to not die. 15. Window manager icon loading was not handled. 5. Non-existant audio; sound should work the first time, but after quitting OpenAL complains about uncleaned-up buffers. You will likely need to 'kill -9 pulseaudio', although this may not recover the situation. Something in OpenAL/SDL isn't being cleanly shutdown. You may get the occasional sound afterwards on second/third attempts but not the full multi-channel surround experience. 6. Captialisation. The routes have a combination of UPPER, lower, and MiXeD cAsE filenames which is a problem on Unix. The file-loading routinues need modifying to search for alterntively cased files if the filename as spelt can't be found. 7. The London Undergrond cab 'LT_C69_77' appears in the centre of the screen in OpenBVE, meaning that you can't see where you're going. As a work-around, you may able to unlock the cam and move yourself up a bit to look over the top of the console. Sort-of-fixed in 0.9.5.5. (Though you will need to unlock the camera and zoom out to see any of the panel). This is to do with the camera-restriction box algorithm used in OpenBVE. 8. The sprites Gauges in cabs displayed are not displayed correctly, instead showing a different/stretched part of the overlay with blue tinting from the edges of the alpha mask. Clipping/position broken. You will have to rely on the small rectangle OpenBVE overlays ('EMG/B3/B2/B1/N/P1/P2/P3') instead. 21. 'Security system warning', this refers to signalling system, not to the program trying to perform anything naughty! As extension DLLs are not being available on Linux. Patched to only display a warning *if* an 'ats.cfg' was present . This avoids the Issues dialogue on an otherwise error-free route/train. 22. Hidden dot files/folders (those starting with '.') are clutter the filemanager. Patched to skip listing dot-files; you can still type the full name in. May be worth restricting to only !Platform.Windows. 26. British English and flag should be en-GB/GB (not 'en-UK/UK'). 21. In full-screen on Linux, the mouse-cursor (pointer) remains visible in the centre of the screen. 18. ExitToMainMenu causes a fork() and return (leaving the user at the command prompt and daemonising the second instance into the background) rather than using exec() or restarting itself. This crashes OpenBVE. It needs openbve to pass "/fhs" back to itself if it was handed it. 4. Trying to write the directory the executable is in; On Unix this is likely to be owned by route. Modified to use the CLR SpecialFolder functions and save configuration data in the right places. 16. After selecting an exterior camera view and then switching back to the interior camera; the cab/panel overlay appears in a different position. 12. Language Locale not automatically set by default; patched to use System.Globalization.CultureInfo.CurrentCulture.Name as default, but needs refining to cope with 'll_CC' not just 'll' language codes. This is done on first-load but then forcifully saved in the options even if the user has not manually selected a language (prevents future automatic language selection working). 20. No way reset the Train (and camera) to be upright after a crash. You should drive more carefully next time! 29. When running on non-Win32 systems where Win32 plugin loading is not attempted, the message given may be the current one. Repeated patches sent to upstream to fix the ordering, but not yet applied. 30. When jumping to a station, the position will overrun by the z-offset of the cab in the '#COCKPIT' section of 'train.dat'. 31. When running the 'HighDetail_323_Summer_2002_0931_Rain_Overcast.csv' diagram of the Cross City-South route under the AI, the AI will get stuck at 2.5 metres before "Station 4" (a signalling-onlynon-station after Northfield). The AI stops outside the allowed tolerance and so the signal does not clear and the AI does not attempt to progress any closer. (1.2.1.1 onwards). 32. If mouse-look is in use (click the right mouse button once) and Ctrl-f is pressed to switch between windowed and fullscreen, then the viewport direction will randomly move; leaving the camera in a number of strange directions (eg. upside down, sideways or looking backwards). More pronounced with the cab camera restriction disabled (Ctrl-r). Fixed with outstanding patches: ------------------------------- 14. Loading fails if 'Train/' and 'Railway/' do not share a common parent directory at some point. # Disabled the check for 'Train/' as it is not actually used later (loading works fine when a Train/ and Railway/ are in separate locations. 26. On closing, it may go into an infinite loop waiting on a futex (100% CPU). Currently worked around by adding a Watchdog that will force the program to exit. Remaining: ---------- 1. The binary 'OpenBve.exe' binary compiled by Michelle for MS Windows may crash out of the box; hopefully this patched recompile doesn't! (Whether this is true depends on the particular release!)... 9. The preview images for trains and route in the file-manager screen display random binary data if the preview image isn't found (normally from being the incorrect case). This also applies to flag icons. 10. Crashes if you provide correct openbve /train=... /route=... 11. Crashes if you provide incorrect openbve /train=... /route=... 13. Pressing "Show issues" during a route with loads of reported issues causes 100% CPU. 17. CPU load goes up to 100% is OpenBVE is obscured from view (eg. Alt-tab to another program). 19. The program may sometimes display "route not found" or "train not found" even when the correct files do exist. clicking on another route/directory and then clicking back works around it, so this is probably a race condition. 22. Excessive re-drawing of the listview boxes causes the interface to lag (particularly noticeable when typing in the route selection path box. 23. If the Train/ and Railway/ do not share and immediate common parent directory, the external view (may) not be loaded. 24. Route-specific Timetable overlays try to be loaded from Train/somewhere/../../Railway/Object/... rather than directly from Railway/Object/... nb. "Not a bug", according to upstream, but timetables when driving alternative trains (as suggested/encouraged by the documentation/user interface) do not work otherwise... 25. After a route is selected in the listview, the circular "busy" mouse pointer may stay busy even after loading is completely. As a workaround, move the mouse-pointer out of the listview rectangle and back in again. 27. First noticed in 1.0.2.0; alpha shading under bridges and lampposts will flicker and may be yellow instead of gray. Other people have noticed similar issues since at least 0.9.3.3: http://openbve.freeforums.org/texture-colouration-in-xcs-t445.html 28. First noticed in 1.0.2.0; the formLoading dialogue is not getting Diposed() (closed/destroyed) when the main Game Window opens and hangs around in the background without being redrawn. In-progress: ------------ debian/releasenotes.html0000644000000000000000000001651311716530142012553 0ustar  Release notes
Logo About  Screenshots  Using  Developing  Blog  Forum  Download
Release notes (v1.2.7) 

Here you can find a summary of changes since the previous 1.2.6 series. If you want to comment on this version of openBVE and the changes that came along with it, please head over to this thread on the forum.

 Superelevation (cant) 
In previous versions of openBVE, superelevation on curves, also known as cant, was simulated in a rather cheap way by making the car body simply roll around its axis. While this provided for the most noticable effect, namely that the train was slanted on curves, it was not quite realistic due to the way most real curves are laid out.

From now on, openBVE assumes that the outer rail on a curve is slightly elevated, hence the term superelevation. This means that the car body does not simply roll around its axis anymore; rather, the outer wheel now actually rises above level. If you observe very closely, you are certainly going to notice this difference.

 Track accuracy 
In previous versions of openBVE, poor accuracy of the track would make the car body undergo horizontal and vertical shifts, while the car body itself would remain entirely level. From now on, the level of track accuracy mainly affects the degree to which the car body bounces on the track. This also produces more noticable flange noises.

 Key and joystick button repeats 
You can now hold down a key or a joystick button, and the event will fire multiple times until the key or button is released again. This makes operating the power and brake levers more comfortably from now on.

 The fly-by camera 
The fly-by camera now always focuses on the front car of a train. In previous versions, the focus would shift from the front car to the rear car on approach of the train. Moreover, the fly-by camera now focuses on the nearest train, not just the player's train. This means that on certain routes, you could stay in a spot and watch multiple trains pass by.

 Translations and Internationalization 
Translations for the Catalan and Romanian languages have been added.

 For add-on developers 
Route developers can now specify outward cant on curves, meaning track that does not slant toward the curve center but away from it. They can now specify cant on straight track, as well. See the documentation for CSV/RW routes for more information, in particular the new Options.CantBehavior and the updated Track.Curve commands.

Train developers can now use the custom timetable bitmaps as set up by CSV/RW routes in animated objects, intended to be used in 3D cabs. See the documentation for animated objects for more information, in particular the new TextureOverride parameter in the [Object] section.

For those who followed the discussion of a potential change of timetable behavior over here, it should be noted that while those changes have been incorporated, they are considered experimental, meaning that there is no guarantee that the changes will stay in future versions unless the remaining issues are addressed. This also means that while you can play around with them, you should not make your add-ons depend on those changes quite yet.
debian/openbve.install0000644000000000000000000000012311716530142012210 0ustar debian/openbve.desktop usr/share/applications debian/filesystem.cfg etc/openbve debian/control0000644000000000000000000000404511716530142010574 0ustar Source: openbve Section: games Priority: optional Maintainer: Debian CLI Applications Team Uploaders: Paul Sladen Build-Depends: debhelper (>= 7.0.50~), mono-xbuild Build-Depends-Indep: cli-common-dev (>= 0.8~), mono-devel (>= 2.10), libtaoframework-openal-cil-dev, libtaoframework-opengl-cil-dev, libtaoframework-sdl-cil-dev Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-cli-apps/packages/openbve.git Vcs-Git: git://git.debian.org/git/pkg-cli-apps/packages/openbve.git Standards-Version: 3.9.2 Homepage: http://trainsimframework.org/ Package: openbve Architecture: all Depends: ${cli:Depends}, libmono-i18n4.0-all, openbve-data (>= 1.4.0.0), ${misc:Depends} Recommends: bve-route, bve-train Provides: bve-engine Description: realistic 3D train/railway simulator (main program) OpenBVE is a railway train-driving simulator with an emphasis on in-cab driving, realistic physics, braking system and train safety system modelling. . Technically, the simulator handles detailed per-car simulation of the brake systems, friction, air resistance, toppling and more. In trains supplied with 3D cabs, the driving experience is augmented with forces that shake the driver's simulated body upon acceleration and braking, as well as through curves. . Compared to other rail-based simulators, OpenBVE has its main focus on realism---not necessarily on user-friendliness. There may be a need to study operational manuals for the routes and trains chosen, rather than merely memorising a few keystrokes. . The simulator is designed to be backwards-compatible with existing 'BVE Trainsim' routes and cab interiors, allowing a wide range of existing scenarios to be loaded by a single-program (BVE1, BVE2, BVE4 and extended OpenBVE route formats). . OpenBVE uses OpenGL for 3D graphics rendering, OpenAL for positional surround sound, and is written in the C# language. Note that binary train extension plugins are not currently supported on Linux/Unix, because these would require Win32 emulation. debian/copyright0000644000000000000000000002233711716530142011130 0ustar Format: http://dep.debian.net/deps/dep5/ Upstream-Name: Openbve Stable source Upstream-Contact: Michelle Boucquemont Source: http://trainsimframework.org/downloads.html (openbve_stable_source.zip) Comment: From http://trainsimframework.org/credits.html Files: * Copyright: 2008-2012 Michelle Boucquemont Anthony Bowden Jens Rügenhagen License: openbve-permissive License: openbve-permissive From 'http://trainsimframework.org/index.html', current: . openBVE is a cross-platform, free-as-in-freedom train simulator placed in the public domain. This means that you can make any modifications to it you like and share your modifications with others. . From 'Readme.txt', current: . This program is placed in the public domain. This means that you can make any modifications to it you like and share your modifications with others. . From 'http://trainsimframework.org/index.html', earlier versions: . Dedication to the public . This program, along with all website content, is dedicated to the public. I do not pose any restrictions or requirements on how this material can be used, and explicitly encourage redistribution and modification for any purpose. . From 'Readme.txt', earlier versions: . Dedication to the public . This program is dedicated to the public. I do not pose any restrictions or requirements on how this material can be used, and explicitly encourage redistribution and modification for any purpose. Comment: Below are some of the accompanying statements that Openbve and the upstream developers have made regarding how the work can be used, this provides greater insight and context into the wishes of upstream, beyond the simple and permissive "public domain" wording. . It's notable that the intent and appreciation for sharing and openness has always present with upstream, as can be seen from the name "Open...". Openbve was itself a reaction to "freeware" but non-distributable, and non-fixable programm "BVE Trainsim" (originally called "Boso View Express", 鉄道運転シミュレーション). . Although the intent has been constant, the PD wording has evolved, attempting to remain short. Upstream have welcomed input where it as been offered on the licence-terminology; as can be seen in the discussion: the upstream preference would be for copyright law to not exist (international treaties dictate otherwise for the moment). . History . In 2008, in preparation for Debian packaging, discussion was started with upstream via the upstream bugtracker/forum, and is copied below for context. (At the time it was the best introduction to the licence and original intent behind the Openbve project). . More information on the thinking behind the "licence-free" intend has been saved here in this 'debian/copyright' file, the essence of which is: . Post by michelle on Sat, 14th Feb 2009, 18:00, UTC . I have been approached by some individuals over the time, including from the GNU project and the Ubuntu Foundation (as it appears at least), and was told that they lack a means of "legal security" for reuse without an explicit license. You can read my above post on details about my attitude regarding this matter, but as a start, I have decided to put the following line on the homepage and will also include it in any later release: . " This program, along with all documentation provided, is dedicated to the public. I do not pose any restrictions on how this material can be used, and explicitly encourage redistribution and modification for any purpose. " . Full thread from which the above is taken: --------------------------------------------------------------------- http://openbve.freeforums.org/licence-t39.html == Licence == . Post by Sacro on Sat, 26th Apr 2008, 16:39, UTC . Just out of curiosity, what licence applies to OpenBVE? It'd be nice to know if it's GPL or BSD or whatever as I'm quite interested in helping out. . Sacro . == Re: Licence == . Post by michelle on Sun, 27th Apr 2008, 07:43, UTC . My attitude differs from so called "free software" licenses. I try to explain: . With proprietary software, the developers usually try to restrict what you are allowed to do with the software to the uttermost extreme that is legally possible. This falls under the category of copyright. . Then there is something that is sometimes called green copyright. So called free software falls in this category. As with proprietary software, a license is used to tell users what they are allowed to do and what not. The difference to proprietary software is that so called free software licenses are usually much more permissive, yet the author decides what you are allowed to do and what not. So called free software is usually attributed to derive from "freedom" instead of "free of charge". Still, if the author employs a license telling other people what they can or cannot do, this inherently cannot have anything to do with freedom. . Then there is something called public domain, which I consider to be an inherently good thing as everyone has eventually the same rights as the author. However, releasing a work into the public domain is not legally meaningful in many countries. Also, releasing a work into the public domain (if possible) depends on the generosity of the author, and this decision is made by the author. . My attitude is even one step further: I am opposed to copyright, thus I marked the game with the legally not meaningful phrase of "anti-copyright". It is legally meaningless, because in every country that has some form of copyright, it would require these laws to be abandoned. Still, why do I have this attitude? . With a license, I would be telling other people what they can or cannot do. I am not such a person. I will not make any silly restrictions on how you can use this program, I will not tell you to put my name on any derived work, I will never ever give "permission" for you modify or redistribute the software, because I don't think that it is up to me telling you what you can or can't do. You should make this decision for yourself. . I hope this briefly explained the situation. . User avatar michelle . == Re: Licence == . Post by michelle on Sat, 14th Feb 2009, 18:00, UTC . I have been approached by some individuals over the time, including from the GNU project and the Ubuntu Foundation (as it appears at least), and was told that they lack a means of "legal security" for reuse without an explicit license. You can read my above post on details about my attitude regarding this matter, but as a start, I have decided to put the following line on the homepage and will also include it in any later release: . " This program, along with all documentation provided, is dedicated to the public. I do not pose any restrictions on how this material can be used, and explicitly encourage redistribution and modification for any purpose. " . michelle . == Re: Licence == . Way to go Michelle! . Good to hear from another lonely soul out there who gets the true meaning of freedom. . BVEColorado --------------------------------------------------------------------- . Managed content . In Openbve=1.4.0.0 in-program managed content was introduced, Openbve has gone out of their way to ensure that anything to be included in the managed content repository is explicitly distributable. Although this does affect Debian/Ubuntu directly, is shows an understanding of the problems that can be present without having explicit statements: . http://trainsimframework.org/develop/managed/licenses.html Managed add-ons - Accepted licenses . All packages that you want to make available under managed content must contain a LICENSE file in the root directory of the package. The LICENSE file must contain either one of the following texts: . ----------------------------------------------------------------- This add-on is placed under the following license: . YOU ARE ALLOWED TO MAKE VERBATIM COPIES OF THIS ADD-ON. . There are no terms and no conditions. This applies worldwide and is unlimited in duration. If additional permissions are granted, they are covered in a separate license. ----------------------------------------------------------------- . ----------------------------------------------------------------- THIS ADD-ON IS PLACED IN THE PUBLIC DOMAIN. . If this is not legally possible, you are given permission to use the add-on in any way you want (including redistribution and modification). There are no terms and no conditions. This applies worldwide and is unlimited in duration. ----------------------------------------------------------------- . This does not affect plugins packaged /in/ Debian, but is what is necessary should a developer wish to make their content available from the new in-program managed content downloading system. Files: debian/* Copyright: 2009-2012 Paul Sladen License: permissive Copying and distribution of this package, with or without modification, are permitted in any medium without royalty. debian/openbve.lintian-overrides0000644000000000000000000000043311716530142014204 0ustar # 'debian/copyright' contains copies of discussion with upstream about # their choice for /not/ using GPL/BSD licences in one of the Comment: # sections. This generates a false-positive when Lintian greps for # the string "GPL" copyright-should-refer-to-common-license-file-for-gpl debian/openbve.desktop0000644000000000000000000000044311716530142012220 0ustar [Desktop Entry] Version=1.0 Type=Application Name=OpenBVE GenericName=Train simulator GenericName[de]=Zugsimulation Categories=Game;Simulation; Comment=Train/railway simulator compatible with 'BVE Trainsim' routes Terminal=false TryExec=openbve Exec=openbve Icon=openbve StartupNotify=false debian/changelog.html0000644000000000000000000017157611716530142012024 0ustar Changelog
Banner

Changelog

The changelog contains a list of changes between openBVE versions. The changelog is aimed at advanced users and add-on developers.
  1. 1.4 series (stable)
  2. 1.3 series (development)
  3. 1.2 series (stable)
  4. 1.1 series (development)
  5. 1.0 series (stable)

1.4 series (stable)

v1.4.0.3 (2012-01-17)

Sound
Adjustments to sound volume balance. Sounds that originate outside the driver's car now have a reduced audible range if the user is in Interior view mode.
Interoperability
Text rendering could produce artifacts on some systems.
Bugfix
Controls could not be assigned to joysticks in the main menu.
Bugfix
Some car sounds would always be played on the first car in the train.

v1.4.0.0 (2012-01-08)

Managed add-ons
If there are multiple servers available for a package, openBVE now tries to download from them in a random order.
Error report
The Windows Forms error report screen is no longer available. All errors are now logged to UserData/Settings/log.txt.

1.3 series (development)

v1.3.4.2 (2011-12-29)

Bugfix
Some fixes regarding handling of textures in the panel.cfg and regarding path concatenation. Also, resized textures have improved quality.

v1.3.4.1 (2011-12-27)

Bugfix
A few things that were temporarily unavailable are back again, including upscaling textures to a power of two, mixing multi-channel audio to mono, and legacy signal glow.
Bugfix
When an add-on did not have a country assigned to it, the main menu would crash trying to display the add-on.

v1.3.3.0 (2011-12-21)

Interface
Added translation support for everything related to managed content.

v1.3.2.15 (2011-12-09)

Bugfix
Removed all threading from the game because some OpenGL/SDL-related calls were made in a non-thread-safe way. As a consequence, asynchronous loading of textures and sounds, as well as loading the route and train in the background will not be available in openBVE again until much later in the 1.x development series.
Bugfix
Clamping certain textures to edge is back again, meaning certain textures should not have borders around them any longer.

v1.3.2.10 (2011-12-04)

Managed content
Added support for long file names in tar archives ($LongLink). This is critical because some add-ons will not be installed correctly otherwise.

v1.3.2.5 (2011-12-02)

Managed content
Some cosmetic changes here and there. In particular, when no keywords are entered in the filter boxes, the country is now always shown in the listboxes, along with its flag.
Interoperability
Depth buffer size has been changed back to 24 bits because other values do not seem to work on Linux.

v1.3.2.0 (2011-11-30)

Managed content
Managed content has been introduced, allowing users to browse and install add-ons from within the game.
Sound
The previous sound model using inner and outer radii has been restored, although is implemented with a different distance attentuation model and thus sounds differently.

v1.3.1.0 (2011-06-12)

API (sounds)
The API for loading sounds has been implemented under the OpenBveApi.Sounds namespace. The WAV sound format is now exposed via the Sound.RiffWave.dll plugin, and the FLAC sound format via the Sound.Flac.dll plugin.
Sound
An experimental and yet incomplete sound model based on sound pressure has been introduced.
Recognizing file formats
All texture and sound plugins now identify the file formats they support solely via file headers and magic numbers - file extensions are no longer checked against.

v1.3.0.0 (2011-04-28)

API (textures)
The API for loading textures has been implemented under the OpenBveApi.Textures namespace. All texture formats supported so far are now loaded via the Texture.BmpGifJpegPngTiff.dll plugin.
API (files and directories)
Methods for combining files and directories platform-independently and case-insensitively have been implemented in the OpenBveApi.Path class. They are intended to supersede System.IO.Path.Combine and are now used throughout the source code. Plugins should use these functions, too, in the future.
Loading screen
The Windows Forms loading screen has been removed in favor of an OpenGL loading screen. For the time being, the error report at the end of loading is unavailable.
Rendering text
New methods for rendering text have been implemented. Previously, the typographic and physical sizes of characters were not distinguished, leading to incorrect spacing between certain characters.

1.2 series (stable)

v1.2.14.0 (2011-12-02)

Bugfix
Language files were not loaded if the main menu was bypassed via /route and /train command-line arguments.
Bugfix
The rear axle of the last car would trigger the SetSignal call when the train was traveling backward. It is now always the front axle of the first car regardless of travel direction.
Bugfix
Beacons that are engaged to the nearest red signal were not reported correctly to plugins, causing some safety systems (for example ATS-P) to not work correctly on some routes.

v1.2.13.0 (2011-05-25)

Interface
The main menu now links to the new homepage. The version checker has been updated accordingly.
Interface
The SDL window should now show the rounded game icon on all platforms.

v1.2.12.10 (2011-04-17)

Bugfix
Removed a debug message that showed up when loading a Win32 plugin.

v1.2.12.6 (2011-04-15)

File system
The program now checks all directories in the configuration file if they are absolute paths. If not, the program will not execute. This should help finding and fixing problems due to malformed configuration files.

v1.2.12.2 (2011-04-06)

Bugfix
The file system configuration did not acknowledge the RestartProcess parameter and just used the currently executing assembly.
Bugfix
Starting the simulation in Arcade mode would produce an instant message about passing a red signal and reduce the score by 100 points.

v1.2.11.16 (2011-03-19)

Developing trains
The train.dat now allows to specify the driver's car via the #CAB section.
Bugfix
The program could crash when pressing the point-of-view keys. Also a few glitches in the OpenBveAts plugin have been fixed.

v1.2.11.10 (2011-03-10)

Simulation
The built-in safety systems ATS and ATC have been outsourced into the OpenBveAts plugin. As a result, the safety systems are a little more realistic than before and can also be individually turned on and off. The CTRL+S key combination has been removed. The new keys are 2 (ATS-SN), 3 (ATS-P) and 4 (ATC).
Bugfix
.NET train plugins could receive incorrect signal aspects in the SetBeacon call if an upcoming signal was kept red by a station.

v1.2.11.5 (2011-01-23)

Bugfix
.NET train plugins could receive incorrect signal aspects in the SetSignal call if an upcoming signal was kept red by a station.
Bugfix
The sound handles reported to .NET train plugins were sometimes not cleared up correctly, leading to the plugin believing a sound was still playing even when it had already stopped.

v1.2.11.0 (2011-01-07)

File system
The organization of files and folders has changed. By default, userdata is no longer stored in the install directory. Customization of the file system is now fully possible. See Using openBVE for the details.
Interface
Stations without a name assigned to them do not appear any longer in the route map, gradient preview nor in the default timetable unless the player's train is expected to stop at such stations.
Developing routes
The Track.Sta and Track.Station commands now allow to flag a station as "change ends". At such stations, once the departure time has been reached, the train automatically jumps to the next station.
Developing routes
The $If/$Else/$EndIf directives have been officially added to the CSV/RW route formats to allow for conditional in-line code.
Developing routes
The $Include directive now allows to offset track positions in the included file.
Bugfix
If a horn was not assigned in the sound.cfg, it could play any random sound when triggered by the user.

v1.2.10.0 (2010-12-19)

This is a summary of what has changed since the last stable version 1.2.8.2.
Simulation
The AI now stops for buffers. Previously, it would happily drive into them and cause the train to derail.
Developing trains
Plugins can now be developed that run on all platforms, including support for the AI and better support for continuous transmission of signal states via SetSignal.
Developing trains
The extensions.cfg now allows to reverse cars in the consist. This makes it unnecessary to create reversed copies of car objects.

v1.2.9.25 (2010-12-07)

Simulation
All simulation-related components are now updated at an average of 75 times per second, but at least 50 times per second, regardless of framerate. This should give a minimum amount of precision for plugins to work with. Previously, if framerates were low, the distance traveled by the train between frames was too great to meaningfully work with.
Plugins
SetSignal is now limited to reporting at most 16 sections. This is intended to prevent a massive amount of data to be generated and transmitted to plugins when there are lots of sections on the route and most of the upcoming sections are clear.
Bugfix
Various bugs related to SetSignal were fixed that would prevent notable routes from working correctly.

v1.2.9.20 (2010-11-28)

Plugins
Backward-incompatible changes have been made to the .NET train plugin API: The SetSignal function is now called for every section that changes aspect until the first red one. All aspects are sent to the plugin in an array instead of making individual calls for each section. SetSignal is also called when changing section boundaries regardless of whether aspects changed.

v1.2.9.15 (2010-11-14)

Plugins
Backward-incompatible changes have been made to the .NET train plugin API: The SetSignal function is now called for both a change in the current section as well as in the upcoming section. The distance to the section can be examined to distinguish between the two. Furthermore, the const speed system is now represented as a simple boolean instead of an enumeration.
Simulation
Minor fine-tuning to get the AI to behave better when approaching a red signal that is just behind a station stop.

v1.2.9.11 (2010-11-07)

Simulation
The AI now stops for buffers. Previously, it would happily drive into them and cause the train to derail.
Developing trains
The extensions.cfg now allows to reverse cars in the consist. This makes it unnecessary to create reversed copies of car objects.
Bugfix
Accessing the data.PluginFolder property in the Load call of .NET plugins would result in a crash.

v1.2.9.10 (2010-10-31)

Plugins
Backward-incompatible changes have been made to the .NET train plugin API in order to implement a new handle-based sound model with ability to change pitch and volume of sounds, to allow to query the distance to and speed of the preceding train, and to complement the built-in AI with plugin-specific driving mechanisms. See the documentation for details.

v1.2.9.2 (2010-10-07)

Bugfix
When negative numbers were used for radii in the Cylinder command in CSV/B3D files in order to omit the respective cap, the wrong cap would be omitted.
Bugfix
When the properties.Sound array was set to a null reference in the Load call in .NET plugins, openBVE would crash with a System.NullReferenceException.

v1.2.9.0 (2010-10-03)

Plugins
Initial support for .NET assembly train plugins has been added. Train plugins can now be developed that run on all platforms. See the documentation for details. Also mind that during the development release, the API might change in backward-incompatible ways.

v1.2.8.2 (2010-10-07)

Bugfix
When negative numbers were used for radii in the Cylinder command in CSV/B3D files in order to omit the respective cap, the wrong cap would be omitted.

v1.2.8.1 (2010-10-04)

Bugfix
Removed an unintended debug message that showed up every once in a while.

v1.2.8.0 (2010-10-03)

Renderer
The renderer should now be a lot faster on most computers. This is due to the fact that all static opaque faces are now optimized using display lists, while all other faces continue to be rendered in immediate mode.
Interface
In the list of problems, critical errors are now shown first, followed by normal errors and warnings.
Bugfix
Plugins could receive beacon types -3 or -2 when passing Track.Pattern commands. This was unintentional. Plugins no longer receive data from this command.

v1.2.7.4 (2010-08-29)

Bugfix
The renderer could crash when trying to render a string with characters outside the BMP (i.e. codepoints between 0x10000 and 0x10FFFF).

v1.2.7.3 (2010-08-07)

Bugfix
The AI should adapt its preferred driving speed depending on earliness or lateness at stations since v1.2.7.2, but did not incorporate its timetable offset (for non-player trains). This would lead to the preceding train to drive slower after every station stop until it matched the player's train's timetable.
Bugfix
The AI would not usually decelerate if overspeeding, but just cruise at its current (over)speed.

v1.2.7.2 (2010-07-31)

Simulation
The AI has been fine-tuned. It should stop gentler at stations now, being less prone to overrun than before. Also, it dynamically adapts its preferred driving speed depending on whether it is early or late at stations. Finally, the AI now stops in front of the preceding train, useful for tram scenarios or other scenarios where multiple trains are allowed to be within the same block.
Simulation
When using the Jump to Station command, any previously derailed train will now be on the tracks again, not just the player's train.
Interface
In the main menu, the train selection box now shows the Browse tab on startup, not the Route default tab.
Interface
The lamps for the built-in ATS and ATC were previously not shown for panel.animated cabs. This was intentional in order to move cab developers to show the lamps as part of the cab itself. However, for consistency reasons, the lamps are now shown for all cabs, regardless of the underlying file format.
Bugfix
Negative track positions in CSV/RW routes could crash the game (and RouteViewer, too). They are now reported as errors.

v1.2.7.0 (2010-07-11)

Simulation
Superelevation is now simulated. In previous versions, the train would simply roll around its z-axis, while now, one wheel is actually elevated on banked curves.
Simulation
The cant interpolation algorithm has been rewritten to make use of monotone cubic interpolation. This makes the train tilt on banked curves much more smoothly than before, when linear interpolation was used.
Simulation
The simulation of track inaccuracy has been overhauled. Aside from the previous horizontal and vertical offsets, cant is now irregular as well and lets the train shake to the sides. If the level of track accuracy changes from one block to the next, interpolation is now used, where before, the axles could make sudden jumps.
Simulation
The fly-by cameras now focus on the front car of the nearest train. Previously, the fly-by cameras would only focus on the player's train and shifted focus from the front car to the rear car on approach.
Simulation
When using the Jump to Station command, a previously derailed player's train will now be on the tracks again.
Simulation
Custom timetables that can be set up by route developers are now available in all trains. Previously, only trains where custom timetables were explicitly enabled could show them. For trains which explicitly support custom timetables, the timetables are shown as part of the 3D scenery (just as before), while for non-supported trains, they are shown as part of the UI overlay (and then can be scrolled using Shift+Up and Shift+Down just as with the default timetables).
Interface
Keys and joystick buttons now employ key repeat, meaning that holding down a key or button will trigger the associated event multiple times until the key or button is released again. The default delay and repetition intervals are 500 and 100 milliseconds, respectively, and can be customized in the options.cfg file.
Developing objects
Animated objects can now show the timetable as set up by CSV/RW routes. See the TextureOverride parameter in the documentation for the [Object] section. This allows to integrate the custom timetable as part of the 3D cab geometry.
Developing routes
The new Options.CantBehavior command allows to change the way cant works in the Track.Curve command. The default behavior is that cant is unsigned, i.e. the sign is ignored and the superelevation is always towards the curve center, and that cant cannot be applied on straight track. The new behavior is that cant is signed, i.e. inward banking or outward banking can explicitly be set up, and that cant can also be applied on straight track.
Developing routes
The Train.Timetable command now accepts files that are relative to the Object folder in addition to the previous model of interpreting files relative to the current train's folder.
Developing trains
The [DigitalGauge] section in the panel2.cfg was previously confined to angles that did not span across the 6 o'clock position, i.e. angles between -180 and 180 degrees. This limitation has been overcome now due to a rewrite of the code that creates the individual triangles that make up the LED square.
Sound
When a train starts from standstill or when the camera is moved in sound range of a train, all run sounds of all cars start playing simultaneously. This leads to an undesired echo effect. To counteract this effect, track positions are assigned at which the run sounds start playing from the start, thus asynchronizing the car run sounds again. This is not done regularly, but only when considered necessary.
Bugfix
Cant was ignored on curves if the CantInMillimeters parameter in Track.Curve was a single character in length.
Bugfix
Some animated objects would stop being updated if jumping backward in time, for example when using the Jump to Station command.
Bugfix
Animated objects were not updated at the beginning of the simulation until RefreshRate seconds had passed.
Translations
Added translations for the Catalan (ca-ES) and Romanian (ro-RO) languages.

v1.2.6.3 (2010-05-02)

Bugfix
The first Track.Brightness command in CSV/RW routes did not work correctly unless it was Track.Brightness(255). This got unnoticed earlier because many routes employ multiple Track.Brightness commands before the starting location.
Bugfix
Selecting a route or train in the main menu could lead to a race condition that caused the user-selected encoding to switch back to UTF-8.

v1.2.6.1 (2010-04-06)

Simulation
Changed the light arrangement of the built-in six aspect Japanese signal to match real installations more closely.
Bugfix
The Options.UnitOfSpeed command in CSV/RW routes could produce erroneous results in some cases.

v1.2.6.0 (2010-03-14)

Simulation
Passengers boarding the train now increase the mass of the train. This means that the performance of the train can slightly vary depending on how crowded the train is. The degree of crowdedness is set primarily by route developers (Track.Sta command), but is also slightly randomized.
Simulation
The cruising and braking behavior of the AI has been revised.
Simulation
The passenger discomfort algorithm has been rewritten. It is now a little less sensitive and better incorporates the degree of crowdedness in the train. Consequently, it does not cause discomfort messages any longer when the train has no passengers on board.
Developing routes
A new option for the departure time has been added to the Track.Sta and Track.Station commands. It allows to set a departure time for terminal stations, intended to allow an otherwise forced red signal to change to green eventually.
Bugfix
When entering the Jump to Station menu, just any station could be highlighted by default. Now, it is always the next station (as originally intended).
Bugfix
The player train's AI would previously depart from a terminal station if the terminal station required the train to not open any doors (e.g. a siding).

v1.2.5.2 (2010-02-16)

Simulation
Made Interior (look ahead) the default view mode for 3D cabs.

v1.2.5.1 (2010-02-14)

Bugfix
When zooming out of a 2D cab with camera restriction enabled, the camera could get stuck, preventing the user from zooming in again or moving around.
Bugfix
On trains with the automatic air brake, the brake.wav or BP Decomp sounds would play when moving from SRV to LAP or from LAP to REL when they should actually play when moving from REL/LAP to SRV/EMG.
Bugfix
Passengers should get stuck between the doors every once in a while - a feature that was introduced in v1.0.5. This feature never worked at all until now.

v1.2.5.0 (2010-01-24)

Sound
The distance attenuation model has been rewritten. Additionally, the dependencies on ALUT and SDL_MIXER have been removed.
Sound
The list of supported sound formats has changed. Most importantly, all sample rates and numbers of channels are supported now. Aside from PCM, Microsoft ADPCM is supported now, too.
Simulation
The player's train now derails when passing the end of the track.
Interface
In the Jump to Station menu, the current station is now the one highlighted by default. Previously, it was always the first station in the list.
Interface
The main menu is now smaller by default in order to accomodate smaller screens or larger fonts. If resized, the size of the main menu is preserved between sessions now.

v1.2.3.3 (2010-01-03)

Performance
During the time the in-game loading screen is showing, time is fast-forwarded until the player train's arrival time. Up to now, animated objects of trains (panel, exterior) were always updated during this time, leading to excessive loading times for very detailed animated objects. Updating those objects is now skipped during the fast-forward stage, leading to faster loading times in those cases.
Bugfix
In some cases, the Track.Rail and Track.RailStart commands in CSV/RW routes could reset the rail type to 0 even when this was not intended.
Bugfix
In some cases, CSV/RW route errors were reported without giving the file name of the route, making debugging the error potentially harder, especially if $Include statements were used.

v1.2.3.2 (2009-12-13)

Bugfix
There was a chance that the program could crash with a NaN in multiple places. While such a crash has not been observed yet, it's probably best to fix this anyway.

v1.2.3.1 (2009-11-29)

Simulation
Point-based turns are now smoothened out by using short curve segments instead of discontinuous straight track pieces.
Miscellaneous
Removed the dependency on specific versions of the Tao.OpenAL, Tao.OpenGL and Tao.SDL libraries, which could cause problems in recent Linux distributions.
Miscellaneous
Due to an apparent glitch in Mono, the loading screen would not show the Save Report button on Mac OS X. An attempt has been made to circumvent this glitch.

v1.2.3.0 (2009-11-15)

Simulation
Minor improvements to the AI. In particular, the AI should not get stuck in front of a stop point on upward gradients any longer.
Developing routes
The $Include command has been added which allows to include other files, optionally one of a set of files with a certain probability.
Developing routes
Added the Train.Velocity command in CSV/RW routes. The command defines the upper speed limit the AI-controlled trains may travel at.
Miscellaneous
Comments in RW routes now span the whole line instead of up to the beginning of the next command.
Miscellaneous
Due to an apparent glitch in Mono, the loading screen would not show the Ignore button on Mac OS X. An attempt has been made to circumvent this glitch.

v1.2.2.0 (2009-09-20)

Developing objects
Added the hasPlugin, acceleration and accelerationMotor variables (among others) for use in animated objects.
Developing trains
Added the acc and motor subjects for use in the panel2.cfg.
Developing routes
Lengths using the colon notation in CSV/RW routes are now well-defined when omitting parameters.
Interface
Some controls in the main menu used a custom background color but a system-specific foreground color, rendering text unreadable with some color schemes.
Bugfix
The delta variable returned incorrect results in animated objects whenever RefreshRate was set to a non-zero value.
Bugfix
Lengths entered without the colon notation were not processed correctly when using Options.UnitOfLength in CSV/RW routes.
Bugfix
Gray fog could show on routes which did not use fog, but only if the viewing distance was below 600 meters.

v1.2.1.3 (2009-08-31)

Bugfix
Value-based sections could crash the program with an Index is outside the bounds of the array message.

v1.2.1.2 (2009-08-30)

Simulation
For trains which do not have exterior objects for their cars, a default object is now shown. In contrast to previous versions, this feature is now not only the default behavior, but also, it cannot be deactivated through conventional means.
Simulation
When resetting the camera view for the fly-by modes, the camera is now placed about 5 seconds ahead of the train for more interesting approaches.
Developing trains
The [Breaker] section is now available in the sound.cfg for compatibility reasons.
Developing routes
The train reference for animated world objects is now the nearest train instead of the player's train. This should allow simulating crossings, station doors, etc. with any train.
Bugfix
When mouse grab was activated and the user toggled to or from fullscreen mode, the viewing angle could abruptly change to arbitrary angles.
Bugfix
When starting the simulation or when using the Jump to feature, the train's first car's front axle lined up with the stopping post instead of the very front of the train.

v1.2.1.1 (2009-08-17)

Bugfix
Plugins were reported the wrong initialization mode of the safety system via the Initialize call. This could lead to some trains not working correctly.

v1.2.0.3 (2009-08-04)

Bugfix
The AI could crash the game with an The index is outside of the bounds of the array error whenever it encountered a station without defined station stops.
Bugfix
The route parser did not process the Route.Change command correctly and could mix up the values. An attempt was made to correct this. (late note: did not work)

v1.2.0.1 (2009-07-29)

Bugfix
The object optimizer could create incorrect geometry when trying to optimize for TRIANGLE_STRIP structures.

v1.2.0.0 (2009-07-26)

Interface
Adjusted the sensitivity of the mouse, the speed of exterior rotation, as well as the forces employed by the body/head model.
Developing routes
All of the Track.Beacon, Track.Tr and Track.Relay commands now have X, Y, Yaw, Pitch and Roll arguments.
Bugfix
Increased the robustness of the route parser to avoid crashes on invalid arguments (e.g. Track.Back, Track.Announce and Track.Doppler).

1.1 series (development)

v1.1.4.0 (2009-07-18)

Simulation
The pseudo-ORP functionality of the built-in ATC safety system has been removed for better, mostly visual compatibility with older routes.
Simulation
The AI now waits at the stopping point of a station if there is a red signal about 150m ahead.
Bugfix
The new damping algorithm would hang whenever the natural frequency was zero (which is not very meaningful, but is encountered with some add-ons).
Bugfix
Option.ObjectVisibility 1 did not work correctly with static objects embedded in ANIMATED object files.

v1.1.3.1 (2009-07-14)

Bugfix
Using the Track.Turn command could mess up the track geometry with v1.1.3.0 when other rails were in use at that track position.
Bugfix
Static objects embedded in ANIMATED object files (i.e. no functions used) did not take auxillary transformations, such as yaw, pitch and roll, which are employed by various route commands, into account.

v1.1.3.0 (2009-07-13)

Developing routes
The Route.RunInterval command (CSV) now allows to create any amount of preceding or following trains. The Route.RunInterval and Track.PreTrain commands can now also be used in conjunction, which was not previously possible.
Developing routes
The .Load suffix is now optional in Train.Timetable(TimetableIndex).Day.Load and Train.Timetable(TimetableIndex).Night.Load in CSV routes.
Developing objects
The ANIMATED object format has been given an [Include] section that just allows to easier integrate other objects without animating them, including other ANIMATED objects.
Renderer
The precision of the z-buffer has been increased from 16 bit to 24 bit. In addition, 3D cabs and scenery now use different settings for the near and far clipping planes so that scenery has more precision in the distance, while 3D cabs have more precision near the camera.
Miscellaneous
The Win32-specific timers have been removed as they could yield erratic results on some multi-core processors. The general SDL timer is now used instead.
Bugfix
The opening and closing times of the doors were supposed to derive directly from their respective sounds. As the sound manager was not yet initialized at the time the duration of the sounds were queried, the internal default values for opening and closing times were used all the time.
Bugfix
An error in the geometric model employed by the CSV/RW route parser has been detected, and attempts have been made to correct the problem. Presently, it has not been fully evaluated if the problem has indeed been fixed.

v1.1.2.0 (2009-07-08)

Developing objects/panels
The mappings of the built-in safety systems in pluginState (animated objects) and atsi (panel2.cfg) has been changed from 0-14 to 256-271. While existing trains using the built-in safety systems are unlikely to use these variables, trains using Windows-only DLL plugins on Linux/Mac will use the built-in safety systems instead. As the variables 0-14 might already be in use by panels/objects (e.g. lamps/wipers/drops) in this case, these elements might be fed non-compatible data. The mapping 256-271 is safe because it cannot be used by existing plugins. This is a non-backward-compatible change since v1.1.0.0.
Interface
Scolling with the mouse has been made more smooth.
Bugfix
Aspects in Track.Section were previously sorted into ascending order, which should not have happened for index-based section behavior. This prevented the safety systems of some trains from working properly on some routes. Example: IIYAMA 2060.
Bugfix
Lighting was still not correct on 2D cabs since v1.1.1.0, which is definately fixed now.

v1.1.1.0 (2009-07-03)

Simulation
In 3D cabs, the driver's head and body are now simulated to parts. This experimental feature reacts to changes in acceleration and to inertia in curves, resulting in pitch and roll of the body or head. Manual camera rotation also makes use of the body/head model.
Simulation
In 3D cabs, an experimental look-ahead view has been introduced. This essentially focuses the view on an upcoming part of the track, thus following curves and pitch changes. This view can be switched on or off by pressing F1 (CAMERA_INTERIOR) multiple times.
Renderer
If no background image is present, a black background is shown. This also works with fog now, which did not show on the background previously in such a case.
Interface
Toggling the mouse grab on or off has been changed from the left mouse button to the right mouse button. This allows to give the window focus with the left mouse button without affecting the mouse grab status, which is more intuitive (at least on Windows).
Bugfix
The damping algorithm has been completely rewritten. Previously, it was unstable with low frame rates, and also did not handle constantly changing angles well. The new algorithm synchronizes updating the target angle with its own natural frequency, and also uses a mathematically correct implementation for calculating derivatives.
Bugfix
The ambient and diffuse lighting conditions in 3D cabs were supposed to be independent from the environmental conditions. However, this lighting model was accidentally applied on the 2D cabs in v1.1.0.0 instead of on the 3D cabs, resulting in wrong lighting conditions for both.

v1.1.0.0 (2009-06-28)

Simulation
Fully 3D cabs are now available (panel.animated) along with mouse-supported camera rotation. Left-click at any time to enable or disable mouse grab.
Options
Vertical synchronization (vsync) can now be enabled or disabled in the Options menu.
Developing objects
A series of new variables has been introduced to the functions of animated objects. The documentation has all changes highlighted.
Developing panels
The atsi subject now also has a meaning with the built-in safety systems. The documentation has all changes highlighted.
Bugfix
Objects mirrored by the Track.Pole command could appear inside-out if GL_QUAD_STRIP structures were generated by the object optimizer. Example: DemoRoute1.

1.0 series (stable)

v1.0.7.3 (2009-07-08)

Bugfix
Objects mirrored by the Track.Pole command could appear inside-out if GL_QUAD_STRIP structures were generated by the object optimizer. Example: DemoRoute1.
Bugfix
Aspects in Track.Section were previously sorted into ascending order, which should not have happened for index-based section behavior. This prevented the safety systems of some trains from working properly on some routes. Example: IIYAMA 2060.
Internationalization
Added translation for the Korean language.

v1.0.7.2 (2009-06-17)

Bugfix
Some objects did not load correctly since 1.0.7.0 and would produce a message about an unexpected error.

v1.0.7.1 (2009-06-14)

Renderer
Rendering is now noticably faster.
Renderer
Minor improvements to reduce artifacts related to depth sorting.
Renderer
Circumvented an OpenGL glitch that could cause erratic polygons to appear whenever fullscreen was toggled on or off.
Interface
For users who experience long loading times, hidden options have been introduced to reduce or disable the object optimization process.
Simulation
Fully rewritten ATS-P results in more realistic brake curves.
Developing routes
New options for ArrivalTime in the Track.Sta and Track.Station commands make it possible for the player to stop at a station, but not the preceding train, or vise versa.
Developing objects
New arguments for AddVertex (CSV) and Vertex (B3D) allow for providing custom normals.
Developing objects
Added the Shear and ShearAll commands to allow for shear mapping (skewing).

v1.0.6.2 (2009-05-28)

Bugfix
Fog did not show the correct color in some cases since 1.0.6.0. The interpolation to a no-fog condition has been made smoother and consistent. The route parser reports fog-related ill-conditions now.
Bugfix
The in-game clock did not wrap after 23:59:59 and showed 24:00:00 instead of the desired 00:00:00, for example.

v1.0.6.0 (2009-05-24)

Renderer
The quality of the Smooth transparency mode has been radically improved at the expence of some performance.
Simulation
The AI now takes a bit less time trying to stop accurately at stations.
Simulation
ATC now works in 200 meter long blocks instead of calculating a brake curve to the preceding train continuously. Previously, the continuous update could create too frequent changes of the allowed speed, leading to a lot of successive ding sounds.
Interface
A command to accelerate time has been added, MISC_TIMEFACTOR, which defaults to CTRL+J.
Interface
A command to mute/resume sound has been added, MISC_MUTE, which defaults to CTRL+M.
Interface
Non-Windows users now get a warning message in a train's description box if that train uses a Windows-only safety system plugin.
Routes
If the $Chr/$Rnd/$Sub preprocessor creates a leading semicolon in an expression, that expression is now considered a comment. Previously, stripping away comments was only done before the preprocessor, which made it impossible to dynamically create comments.
Bugfix
The cab and exterior objects were placed incorrectly if the car had an asymmetric axle setup.
Bugfix
Fog on the background image now produces a consistent look regardless of the viewing distance. Previously, the background image could look differently depending on the viewing distance.

v1.0.5.0 (2009-05-03)

Simulation
Passenger-related door lock is now simulated. This is based on the PassengerRatio parameter in the Track.Sta command, and is more probable to occur on crowded trains.
Simulation
The AI has been fine-tuned. It makes use of cruising, holding speed by selecting a suitable power notch, and can react to wheel slip by restricting use of certain power notches.
Internationalization
Added translation for the Czech language.
Developing routes
Added new options to the Doors parameter in the Track.Sta command.
Bugfix
The route parser could previously accept , and ; as an argument separator for either CSV or RW formats, even though only one of these characters is used by either format. This could seldom lead to parsing problems, but is corrected now anyway.
Bugfix
The background image was not correctly aligned vertically if the Texture.Background(BackgroundTextureIndex).Aspect option was set to 1 (keep aspect ratio) in route files.
Bugfix
Version 1.0.4.0 introduced the peculiar behavior of rolling the external view at startup, which is corrected now.

v1.0.4.0 (2009-04-26)

Developing routes
In route files, commands from namespaces other than Track are now processed first, then the track position is reset to 0, then commands from the Track namespace are processed. This is to increase compatibility with routes which use track positions before using commands from the Track namespace.
Developing routes
Rephrased all error messages in the CSV/RW route parser to match the terminology of the documentation.
Bugfix
All parsers now validate file names, as otherwise, the program could crash when any format referenced a file name which included invalid characters.

v1.0.3.0 (2009-04-12)

Interface
The default camera locations of the exterior and track/fly-by modes are now at the top-left of the rear of first car again.
Interface
Resetting the camera view in the fly-by modes reflects the current speed of the train by placing the camera further away from the train the higher the speed is.
Developing trains
For compatibility reasons, the exponent e in the acceleration section of train.dat versions 1.22 is now clipped at 4 after converting to a 2.0 exponent.
Interface
Updated the URLs used inside the program to point to the new homepage. This has also been done for Train Editor.
Internationalization
Renamed the en-UK language to en-GB. The reason is simply that GB stands for United Kingdom, while UK stands for Ukraine.
Miscellaneous
Renamed OpenBve64.exe to OpenBveAllCpu.exe, which is now compiled against any CPU instead of AMD x64.
Miscellaneous
Some minor Linux-specific things to increase portability.

v1.0.2.0 (2009-04-05)

Developing trains
If a train does not explicitly specify the operating pressure of the brake pipe, it is now assumed to be 490 kPa if applicable.
Bugfix
PNG and GIF textures are now synchronously loaded in order to prevent them from ending up in the alpha rendering list where applicable (which is more expensive to render and can cause visual glitches if too heavily populated due to the use of depth sorting).
Bugfix
The RefreshRate parameter in animated objects was not applied if the animated object was used as a train exterior object.
Bugfix
Beacons which appeared before the starting position were not triggered, causing some trains to operate incorrectly on some routes.

v1.0.1.0 (2009-03-29)

Interface
The stop indicator previously showed in Expert mode, which was not intended. It is now displayed only in Arcade and Normal modes. Additionally, the debug output is now unavailable in Expert mode.
Interface
Camera settings are now preserved when changing interior, exterior and track views. The zoom is reset though when switching the views.
Interface
The scrolling speed inside the cab has been made slightly slower.
Interface
Warning messages are now shown again in openBVE. However, both warning and error messages can now be invidually disabled in the Options menu. Developers are strictly encouraged to leave these settings enabled, though.
Interface
A default set of points of interests is now included for every station if the route does not define any points of interest itself.
Developing routes
Track positions in RW and CSV routes now require to adhere to the Strict number format. Previously, they were interpreted as Loose, which could mess up the route too much if an invalid statement was interpreted as a track position.
Miscellaneous
Some compatibility graphics (needles) have been resaved as 8-bit per channel RGBA in order to appear correctly on Linux.
Miscellaneous
The code that applied transparency to the SDL window icon is now only executed on Windows. It could previously crash the program on Linux.
Miscellaneous
The sound subsystem can now be deactivated in the options.cfg.
Miscellaneous
OpenBve64.exe is now available. It can be used on 64-bit systems that also provide 64-bit versions of the dependencies.
Bugfix
Entering the Jump to station menu previously crashed the program with an Index was outside the bounds of the array when the route did not have any stations. The menu entry is not displayed any longer.
Bugfix
In animated objects, the leftdoorstarget and rightdoorstarget variables could previously crash the program with an Index was outside the bounds of the array message, or these variables simply didn't work correctly.
Bugfix
In animated objects, texture clamping was disabled and could lead to visual artifacts at the edges of some textures.

v1.0.0.0 (2009-03-23)

Interface
Messages about missing support for Windows-only DLL plugins on Linux/Mac are now only generated if the train actually uses a plugin.
Interface
If an exception (runtime error) occurs inside a plugin, openBVE now crashes with the name of the plugin being reported.
Bugfix
The train toppled and derailed to the wrong side when driving backward.
debian/patches/0000755000000000000000000000000011716530165010622 5ustar debian/patches/debian-changes0000664000000000000000000003454611716531534013414 0ustar Debian packaging patches are maintained in Git. --- openbve-1.4.0.9.orig/openBVE/Texture.BmpGifJpegPngTiff/Texture.BmpGifJpegPngTiff.csproj +++ openbve-1.4.0.9/openBVE/Texture.BmpGifJpegPngTiff/Texture.BmpGifJpegPngTiff.csproj @@ -7,7 +7,7 @@ Library Plugin Texture.BmpGifJpegPngTiff - v2.0 + v4.0 Properties C:\Documents and Settings\Administrator\Application Data\ICSharpCode/SharpDevelop3.0\Settings.SourceAnalysis False --- openbve-1.4.0.9.orig/openBVE/Texture.Ace/Texture.Ace.csproj +++ openbve-1.4.0.9/openBVE/Texture.Ace/Texture.Ace.csproj @@ -7,7 +7,7 @@ Library Texture.Ace Texture.Ace - v2.0 + v4.0 Properties C:\Documents and Settings\Administrator\Application Data\ICSharpCode/SharpDevelop3.0\Settings.SourceAnalysis False --- openbve-1.4.0.9.orig/openBVE/OpenBve/OpenBve.csproj +++ openbve-1.4.0.9/openBVE/OpenBve/OpenBve.csproj @@ -1,4 +1,4 @@ - + Debug @@ -21,7 +21,7 @@ False False ..\icon.ico - v2.0 + v4.0 true @@ -34,7 +34,8 @@ 4 - None + true + PdbOnly true x86 bin\Release\ @@ -216,4 +217,4 @@ --> - \ No newline at end of file + --- openbve-1.4.0.9.orig/openBVE/OpenBve/System/Plugins.cs +++ openbve-1.4.0.9/openBVE/OpenBve/System/Plugins.cs @@ -72,6 +72,13 @@ namespace OpenBve { internal static void LoadPlugins() { UnloadPlugins(); string folder = Program.FileSystem.GetDataFolder("Plugins"); + // Executable data (== .dlls) may need to live somewhere else, so such an + // option probably may need adding to 'filesystem.cfg' in the future. -sladen + if(!System.IO.Directory.Exists(folder)) + folder = OpenBveApi.Path.CombineDirectory(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "Plugins"); + // And if that doesn't work, just hard code it. -sladen + //if(!System.IO.Directory.Exists(folder)) + // folder = "/usr/lib/openbve/Plugins"; string[] files = Directory.GetFiles(folder); List list = new List(); foreach (string file in files) { --- openbve-1.4.0.9.orig/openBVE/OpenBve/OldCode/Renderer.cs +++ openbve-1.4.0.9/openBVE/OpenBve/OldCode/Renderer.cs @@ -277,7 +277,7 @@ namespace OpenBve { Gl.glBlendFunc(Gl.GL_SRC_ALPHA, Gl.GL_ONE_MINUS_SRC_ALPHA); Gl.glDisable(Gl.GL_BLEND); BlendEnabled = false; Gl.glEnable(Gl.GL_DEPTH_TEST); - Gl.glDepthMask(Gl.GL_TRUE); + Gl.glDepthMask(true); Gl.glMaterialfv(Gl.GL_FRONT_AND_BACK, Gl.GL_EMISSION, new float[] { 0.0f, 0.0f, 0.0f, 1.0f }); EmissiveEnabled = false; SetAlphaFunc(Gl.GL_GREATER, 0.9f); } @@ -435,7 +435,7 @@ namespace OpenBve { SortPolygons(DynamicAlpha); if (Interface.CurrentOptions.TransparencyMode == TransparencyMode.Performance) { Gl.glEnable(Gl.GL_BLEND); BlendEnabled = true; - Gl.glDepthMask(Gl.GL_FALSE); + Gl.glDepthMask(false); SetAlphaFunc(Gl.GL_GREATER, 0.0f); for (int i = 0; i < DynamicAlpha.FaceCount; i++) { RenderFace(ref DynamicAlpha.Faces[i], cx, cy, cz); @@ -443,7 +443,7 @@ namespace OpenBve { } else { Gl.glDisable(Gl.GL_BLEND); BlendEnabled = false; SetAlphaFunc(Gl.GL_EQUAL, 1.0f); - Gl.glDepthMask(Gl.GL_TRUE); + Gl.glDepthMask(true); for (int i = 0; i < DynamicAlpha.FaceCount; i++) { int r = (int)ObjectManager.Objects[DynamicAlpha.Faces[i].ObjectIndex].Mesh.Faces[DynamicAlpha.Faces[i].FaceIndex].Material; if (ObjectManager.Objects[DynamicAlpha.Faces[i].ObjectIndex].Mesh.Materials[r].BlendMode == World.MeshMaterialBlendMode.Normal & ObjectManager.Objects[DynamicAlpha.Faces[i].ObjectIndex].Mesh.Materials[r].GlowAttenuationData == 0) { @@ -454,7 +454,7 @@ namespace OpenBve { } Gl.glEnable(Gl.GL_BLEND); BlendEnabled = true; SetAlphaFunc(Gl.GL_LESS, 1.0f); - Gl.glDepthMask(Gl.GL_FALSE); + Gl.glDepthMask(false); bool additive = false; for (int i = 0; i < DynamicAlpha.FaceCount; i++) { int r = (int)ObjectManager.Objects[DynamicAlpha.Faces[i].ObjectIndex].Mesh.Faces[DynamicAlpha.Faces[i].FaceIndex].Material; @@ -475,7 +475,7 @@ namespace OpenBve { } // motion blur Gl.glDisable(Gl.GL_DEPTH_TEST); - Gl.glDepthMask(Gl.GL_FALSE); + Gl.glDepthMask(false); SetAlphaFunc(Gl.GL_GREATER, 0.0f); if (Interface.CurrentOptions.MotionBlur != Interface.MotionBlurMode.None) { if (LightingEnabled) { @@ -493,7 +493,7 @@ namespace OpenBve { Glu.gluLookAt(0.0, 0.0, 0.0, dx, dy, dz, ux, uy, uz); if (World.CameraRestriction == World.CameraRestrictionMode.NotAvailable) { // 3d cab - Gl.glDepthMask(Gl.GL_TRUE); + Gl.glDepthMask(true); Gl.glEnable(Gl.GL_DEPTH_TEST); Gl.glClear(Gl.GL_DEPTH_BUFFER_BIT); if (!LightingEnabled) { @@ -511,7 +511,7 @@ namespace OpenBve { SortPolygons(OverlayAlpha); if (Interface.CurrentOptions.TransparencyMode == TransparencyMode.Performance) { Gl.glEnable(Gl.GL_BLEND); BlendEnabled = true; - Gl.glDepthMask(Gl.GL_FALSE); + Gl.glDepthMask(false); SetAlphaFunc(Gl.GL_GREATER, 0.0f); for (int i = 0; i < OverlayAlpha.FaceCount; i++) { RenderFace(ref OverlayAlpha.Faces[i], cx, cy, cz); @@ -519,7 +519,7 @@ namespace OpenBve { } else { Gl.glDisable(Gl.GL_BLEND); BlendEnabled = false; SetAlphaFunc(Gl.GL_EQUAL, 1.0f); - Gl.glDepthMask(Gl.GL_TRUE); + Gl.glDepthMask(true); for (int i = 0; i < OverlayAlpha.FaceCount; i++) { int r = (int)ObjectManager.Objects[OverlayAlpha.Faces[i].ObjectIndex].Mesh.Faces[OverlayAlpha.Faces[i].FaceIndex].Material; if (ObjectManager.Objects[OverlayAlpha.Faces[i].ObjectIndex].Mesh.Materials[r].BlendMode == World.MeshMaterialBlendMode.Normal & ObjectManager.Objects[OverlayAlpha.Faces[i].ObjectIndex].Mesh.Materials[r].GlowAttenuationData == 0) { @@ -530,7 +530,7 @@ namespace OpenBve { } Gl.glEnable(Gl.GL_BLEND); BlendEnabled = true; SetAlphaFunc(Gl.GL_LESS, 1.0f); - Gl.glDepthMask(Gl.GL_FALSE); + Gl.glDepthMask(false); bool additive = false; for (int i = 0; i < OverlayAlpha.FaceCount; i++) { int r = (int)ObjectManager.Objects[OverlayAlpha.Faces[i].ObjectIndex].Mesh.Faces[OverlayAlpha.Faces[i].FaceIndex].Material; @@ -558,7 +558,7 @@ namespace OpenBve { if (!BlendEnabled) { Gl.glEnable(Gl.GL_BLEND); BlendEnabled = true; } - Gl.glDepthMask(Gl.GL_FALSE); + Gl.glDepthMask(false); Gl.glDisable(Gl.GL_DEPTH_TEST); UnsetAlphaFunc(); SortPolygons(OverlayAlpha); --- openbve-1.4.0.9.orig/openBVE/OpenBve/OldCode/Program.cs +++ openbve-1.4.0.9/openBVE/OpenBve/OldCode/Program.cs @@ -6,6 +6,8 @@ using System.Reflection; using System.Windows.Forms; using Tao.OpenGl; using Tao.Sdl; +using System.Threading; +using System.Windows.Forms; namespace OpenBve { public static partial class Program { @@ -21,6 +23,15 @@ namespace OpenBve { private static bool SdlWindowCreated = false; internal static Host CurrentHost = new Host(); + internal static void WatchdogExit() + { + int delay = 5000; // milliseconds + Console.Error.WriteLine("WatchdogExit: starting timer"); + System.Threading.Thread.Sleep(delay); + Console.Error.WriteLine("WatchdogExit: Something did not shutdown quickly enough, forcing exit"); + Environment.FailFast("WatchdogExit: Something did not shutdown quickly enough, forcing exit"); + } + // main [STAThread] private static void Main(string[] args) { @@ -74,6 +85,13 @@ namespace OpenBve { if(SdlWindowCreated & Interface.CurrentOptions.FullscreenMode) { Sdl.SDL_SetVideoMode(Interface.CurrentOptions.WindowWidth, Interface.CurrentOptions.WindowHeight, 32, Sdl.SDL_OPENGL | Sdl.SDL_DOUBLEBUF); } + + // Start a watchdog timer, so that even if SDL/OpenAL hang freeing buffers, + // the program will still successfully force a quit. + Thread Watchdog = new Thread(new ThreadStart(WatchdogExit)); + Watchdog.IsBackground = true; + Watchdog.Start(); + Renderer.Deinitialize(); Textures.Deinitialize(); Plugins.UnloadPlugins(); @@ -103,6 +121,7 @@ namespace OpenBve { MessageBox.Show(ex.Message + "\n\nProcess = " + FileSystem.RestartProcess + "\nArguments = " + arguments, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); } } + Environment.Exit(0); } // get exception text --- openbve-1.4.0.9.orig/openBVE/OpenBve/OldCode/PluginManager.cs +++ openbve-1.4.0.9/openBVE/OpenBve/OldCode/PluginManager.cs @@ -455,6 +455,14 @@ namespace OpenBve { /// Whether the plugin was loaded successfully. internal static bool LoadDefaultPlugin(TrainManager.Train train, string trainFolder) { string file = OpenBveApi.Path.CombineFile(Program.FileSystem.GetDataFolder("Plugins"), "OpenBveAts.dll"); + // Executable data (== .dlls) may need to live somewhere else, so such an + // option probably may need adding to 'filesystem.cfg' in the future. -sladen + // Note that should path determination logic may want to be shared with + // the similiar statement in System/Plugins.cs + if(!System.IO.File.Exists(file)) + file = OpenBveApi.Path.CombineFile(OpenBveApi.Path.CombineDirectory(System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "Plugins"), "OpenBveAts.dll"); + // Or ... just hard code it as a massive kludge -sladen + //file = "/usr/lib/openbve/Plugins/OpenBveAts.dll"; bool success = LoadPlugin(train, file, trainFolder); if (success) { train.Plugin.IsDefault = true; --- openbve-1.4.0.9.orig/openBVE/OpenBveApi/OpenBveApi.csproj +++ openbve-1.4.0.9/openBVE/OpenBveApi/OpenBveApi.csproj @@ -7,7 +7,7 @@ Library OpenBveApi OpenBveApi - v2.0 + v4.0 Properties C:\Documents and Settings\Administrator\Application Data\ICSharpCode/SharpDevelop3.0\Settings.SourceAnalysis False @@ -35,8 +35,8 @@ bin\Release\ - false - None + True + PdbOnly True False TRACE @@ -76,4 +76,4 @@ Math.cs - \ No newline at end of file + --- openbve-1.4.0.9.orig/openBVE/Sound.Flac/Sound.Flac.csproj +++ openbve-1.4.0.9/openBVE/Sound.Flac/Sound.Flac.csproj @@ -7,7 +7,7 @@ Library Sound.Flac Sound.Flac - v2.0 + v4.0 Properties C:\Documents and Settings\Administrator\Application Data\ICSharpCode/SharpDevelop3.0\Settings.SourceAnalysis False --- openbve-1.4.0.9.orig/openBVE/Sound.RiffWave/Sound.RiffWave.csproj +++ openbve-1.4.0.9/openBVE/Sound.RiffWave/Sound.RiffWave.csproj @@ -7,7 +7,7 @@ Library Plugin Sound.RiffWave - v2.0 + v4.0 Properties C:\Documents and Settings\Administrator\Application Data\ICSharpCode/SharpDevelop3.0\Settings.SourceAnalysis False --- openbve-1.4.0.9.orig/openBVE/OpenBveAts/OpenBveAts.csproj +++ openbve-1.4.0.9/openBVE/OpenBveAts/OpenBveAts.csproj @@ -7,7 +7,7 @@ Library OpenBveAts OpenBveAts - v2.0 + v4.0 Properties C:\Documents and Settings\Administrator\Application Data\ICSharpCode/SharpDevelop3.0\Settings.SourceAnalysis False debian/patches/series0000644000000000000000000000001711716530165012035 0ustar debian-changes