1
0
Fork 0

(svn r18098) [0.7] -Backport from trunk:

- Fix: Some possible unwanted side effects if using some sorts of boolean expressions in DEBUG (r18070)
- Fix: Crash when an articulated RV is turning on a drive through road station that gets forcefully (bankrupt) removed [FS#3310] (r18049)
[0.7] -Prepare for 0.7.4-RC1
release/0.7
rubidium 2009-11-15 15:31:17 +00:00
parent 49ac7c9338
commit c607e6cb37
8 changed files with 103 additions and 41 deletions

View File

@ -1,3 +1,29 @@
0.7.4-RC1 (2009-11-15)
------------------------------------------------------------------------
- Change: Prefer extmidi over allegro midi and allegro over null driver [FS#3272] (r17875)
- Change: [NewGRF] Apply default refitmasks only when the NewGRF did not set any of the three refittability properties (xor mask, positive classes, negative classes) (r17663)
- Fix: Crash when an articulated RV is turning on a drive through road station that gets forcefully (bankrupt) removed [FS#3310] (r18049)
- Fix: GCC 4.5 compiling (r18045)
- Fix: AIs failed to load their data from savegames by crashing them when they tried [FS#3290] (r18038)
- Fix: Screen jumped a bit for at least SDL and Allegro when right-click-dragging (r18030)
- Fix: [NewGRF] Improve parsing of RIFF data. Skip unknown chunks and check chunk sizes (r17999)
- Fix: When you start giving money (input window for amount), then get moved to spectators and you click 'Ok' a crash would occur (r17953)
- Fix: Use 24bpp BMP format instead of 32bpp for screenshots. Saves space and is supported by more image viewers (r17943)
- Fix: Close BMP file when making screenshot fails (r17941)
- Fix: Deadlock when trying to create screenshot with too long name (including path) (r17936)
- Fix: Crash when closing NewGRF parameter window with no NewGRF selected [FS#3291] (r17922)
- Fix: 32bpp BMP screenshots were in wrong colours on big endian machines and broken when screen width was not a multiple of 4 (r17910, r17909)
- Fix: Uninitialised values in some paths of loading TTO savegames [FS#3288] (r17908)
- Fix: Make the plane speed setting unchangeable in network games because it can be read by NewGRFs on game load and thus if it changes cause desyncs (r17902)
- Fix: [NewGRF] 'subtract-in' is also signed for production callback version 0 (r17857)
- Fix: [NewGRF] _date_fract runs from 0 to 73 since r2041. Variable 0x09 should not (r17824)
- Fix: Do not fail hard when no soundcard could be detected; just fall back on the null-driver [FS#3268] (r17788)
- Fix: CJK languages do not have spaces, so for adding newlines (multi line strings) we need to (properly) handle the case when there are no spaces instead of truncating the string [FS#3264] (r17772)
- Fix: Powernaut Helicopter got wrong 'load amount' (r17758)
- Fix: [NewGRF] 'last_value' and 'reseed' are shared between procedure and main chain, 'scope' and 'count' are not (r17672)
- Fix: Count only active clients (not those waiting for map download) when checking min_active_clients limit (r16506)
0.7.3 (2009-10-01)
------------------------------------------------------------------------
- Fix: [NewGRF] Crash when trying to build an industry that has no industry layout defined [FS#3233] (r17638, r17633)
@ -14,12 +40,12 @@
- Fix: Assertion triggered when the second vehicle in a 101+ (or 11+ if mammoth trains is disabled) vehicle free wagon chain is an engine and the first vehicle is moved to another chain [FS#3208] (r17576)
- Fix: [NewGRF] Memory leak when viewing the NewGRF settings of a server (r17563)
- Fix: [NewGRF] The NewGRF settings of (remote) network games did not get properly updated when the NewGRFs were rescanned causing reading of freed data [FS#2972] (r17562)
- Fix: [NewGRF] Close the "Add NewGRF" window when you close the "NewGRF Settings" window. The add window has a pointer to the settings which means that not deleting it would cause dereferencing an already freed pointer [FS#3206] (r17559)
- Fix: [NewGRF] Close the 'Add NewGRF' window when you close the 'NewGRF Settings' window. The add window has a pointer to the settings which means that not deleting it would cause dereferencing an already freed pointer [FS#3206] (r17559)
- Fix: Vehicles waiting for their time table did not load anymore after their initial load was completed [FS#3201] (r17551)
- Fix: Aircraft were given an unfair advantage in station rating calculations (r17550)
- Fix: [NewGRF] Sign extending of profit calculation did not work (r17546)
- Fix: [NoAI] AIs had "infinite" time when running code from the global scope [FS#3202] (r17545)
- Fix: [NoAI] Crash when doing commands in the "global" scope [FS#3202] (r17544)
- Fix: [NoAI] AIs had 'infinite' time when running code from the global scope [FS#3202] (r17545)
- Fix: [NoAI] Crash when doing commands in the 'global' scope [FS#3202] (r17544)
0.7.3-RC1 (2009-09-13)

View File

@ -1,6 +1,6 @@
OpenTTD's known bugs
Last updated: 2009-10-01
Release version: 0.7.3
Last updated: 2009-11-15
Release version: 0.7.4-RC1
------------------------------------------------------------------------
@ -62,7 +62,7 @@ reasons why we think that fixing them is infeasible. We might make some
minor improvements that reduce the scope of these bugs, but we will not
be able to completely fix them.
Clipping problems
Clipping problems [FS#119]
In some cases sprites are not drawn as one would expect. Examples of
this are aircraft that might be hidden below the runway or trees that
in some cases are rendered over vehicles.
@ -80,7 +80,34 @@ Clipping problems
leave the Transport Tycoon graphics, which in effect means OpenTTD
will not be a Transport Tycoon clone anymore.
Duplicate (station) names after renaming
Lost trains ignore (block) exit signals [FS#1473]
If trains are lost they ignore block exit signals, blocking junctions
with presignals. This is caused because the path finders cannot tell
where the train needs to go. As such a random direction is chosen at
each junction. This causes the trains to occasionally to make choices
that are unwanted from a player's point of view.
This will not be fixed because lost trains are in almost all cases a
network problem, e.g. a train can never reach a specific place. This
makes the impact of fixing the bug enormously small against the
amount of work needed to write a system that prevents the lost trains
from taking the wrong direction.
Forbid 90 degree turns does not work for crossing PBS paths [FS#2737]
When you run a train through itself on a X junction with PBS turned on
the train will not obey the 'forbid 90 degree turns' setting. This is
due to the fact that we can not be sure that the setting was turned
off when the track was reserved, which means that we assume it was
turned on and that the setting does not hold at the time. We made it
this way to allow one to change the setting in-game, but it breaks
slightly when you are running your train through itself. Running a
train through means that your network is broken and is thus a user
error which OpenTTD tries to graciously handle.
Fixing this bug means that we need to record whether this particular
setting was turned on or off at the time the reservation was made. This
means adding quite a bit of data to the savegame for solving an issue
that is basically an user error. We think it is not worth the effort.
Duplicate (station) names after renaming [FS#3204]
After renaming stations one can create duplicate station names. This
is done giving a station the same custom name as another station with
an automatically generated name.
@ -96,29 +123,24 @@ Duplicate (station) names after renaming
compared to the other custom names in the same class and not compared
to the automatically generated names.
Forbid 90 degree turns does not work for crossing PBS paths
When you run a train through itself on a X junction with PBS turned on
the train will not obey the 'forbid 90 degree turns' setting. This is
due to the fact that we can not be sure that the setting was turned
off when the track was reserved, which means that we assume it was
turned on and that the setting does not hold at the time. We made it
this way to allow one to change the setting in-game, but it breaks
slightly when you are running your train through itself. Running a
train through means that your network is broken and is thus a user
error which OpenTTD tries to graciously handle.
Fixing this bug means that we need to record whether this particular
setting was turned on or off at the time the reservation was made. This
means adding quite a bit of data to the savegame for solving an issue
that is basically an user error. We think it is not worth the effort.
Extreme CPU usage/hangs when using SDL and PulseAudio [FS#3294]
OpenTTD can be extremely slow/use a lot of CPU when the sound is
played via SDL and then through PulseAudio's ALSA wrapper. Under the
same configuration OpenTTD, or rather SDL, might hang when exiting
the game. This setup seems to be the default configuration for
Ubuntu 9.04 and later. For Ubuntu this issue can be solved by
installing the 'libsdl1.2debian-pulseaudio' package from Ubuntu's
Universe repository. For other distributions a similar package needs
to be installed.
Lost trains ignore (block) exit signals
If trains are lost they ignore block exit signals, blocking junctions
with presignals. This is caused because the path finders cannot tell
where the train needs to go. As such a random direction is chosen at
each junction. This causes the trains to occasionally to make choices
that are unwanted from a player's point of view.
This will not be fixed because lost trains are in almost all cases a
network problem, e.g. a train can never reach a specific place. This
makes the impact of fixing the bug enormously small against the
amount of work needed to write a system that prevents the lost trains
from taking the wrong direction.
OpenTTD not properly resizing with SDL on X [FS#3305]
Under some X window managers OpenTTD's window does not properly
resize. You will either end up with a black bar at the right/bottom
side of the window or you cannot see the right/bottom of the window,
e.g you cannot see the status bar. The problem is that OpenTTD does
not always receive a resize event from SDL making it impossible for
OpenTTD to know that the window was resized; sometimes moving the
window will solve the problem.
Window managers that are known to exhibit this behaviour are KDE's
and GNOME's. With the XFCE's and LXDE's window managers the resize
event is sent when the user releases the mouse.

View File

@ -1,3 +1,9 @@
openttd (0.7.4~RC1) unstable; urgency=low
* New upstream release.
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 15 Nov 2009 16:30:07 +0100
openttd (0.7.3) unstable; urgency=low
* New upstream release.

View File

@ -13,7 +13,7 @@
#-------------------------------------------------------------------------------
Name: openttd
Version: 0.7.3
Version: 0.7.4
Release: 1%{?dist}
Group: Amusements/Games

View File

@ -1,7 +1,7 @@
!define APPNAME "OpenTTD" ; Define application name
!define APPVERSION "0.7.3" ; Define application version
!define APPVERSIONINTERNAL "0.7.3.0" ; Define application version in X.X.X.X
!define INSTALLERVERSION 68 ; NEED TO UPDATE THIS FOR EVERY RELEASE!!!
!define APPVERSION "0.7.4-RC1" ; Define application version
!define APPVERSIONINTERNAL "0.7.4.0" ; Define application version in X.X.X.X
!define INSTALLERVERSION 69 ; NEED TO UPDATE THIS FOR EVERY RELEASE!!!
!include ${VERSION_INCLUDE}
!define APPURLLINK "http://www.openttd.org"

View File

@ -1,6 +1,6 @@
OpenTTD README
Last updated: 2009-10-01
Release version: 0.7.3
Last updated: 2009-11-15
Release version: 0.7.4-RC1
------------------------------------------------------------------------

View File

@ -27,9 +27,9 @@
#endif
#else /* NO_DEBUG_MESSAGES */
#if defined(__GNUC__) && (__GNUC__ < 3)
#define DEBUG(name, level, args...) if ((level == 0) || ( _debug_ ## name ## _level >= level)) debug(#name, args)
#define DEBUG(name, level, args...) if (((level) == 0) || ( _debug_ ## name ## _level >= (level))) debug(#name, args)
#else
#define DEBUG(name, level, ...) if (level == 0 || _debug_ ## name ## _level >= level) debug(#name, __VA_ARGS__)
#define DEBUG(name, level, ...) if ((level) == 0 || _debug_ ## name ## _level >= (level)) debug(#name, __VA_ARGS__)
#endif
extern int _debug_ai_level;

View File

@ -1495,7 +1495,15 @@ CommandCost CmdBuildRoadStop(TileIndex tile, DoCommandFlag flags, uint32 p1, uin
static Vehicle *ClearRoadStopStatusEnum(Vehicle *v, void *)
{
if (v->type == VEH_ROAD) v->u.road.state &= RVSB_ROAD_STOP_TRACKDIR_MASK;
if (v->type == VEH_ROAD) {
/* Okay... we are a road vehicle on a drive through road stop.
* But that road stop has just been removed, so we need to make
* sure we are in a valid state... however, vehicles can also
* turn on road stop tiles, so only clear the 'road stop' state
* bits and only when the state was 'in road stop', otherwise
* we'll end up clearing the turn around bits. */
if (HasBit(v->u.road.state, RVS_IN_DT_ROAD_STOP)) v->u.road.state &= RVSB_ROAD_STOP_TRACKDIR_MASK;
}
return NULL;
}