mirror of https://github.com/OpenTTD/OpenTTD
(svn r17565) [0.7] -Backport from trunk:
- Fix: Memory leak when viewing the NewGRF settings of a server (r17563) - Fix: 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: 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) - Update: Documentation about bug reporting and known bugs (r17554)release/0.7
parent
803e452fab
commit
429eb416ac
100
known-bugs.txt
100
known-bugs.txt
|
@ -1,5 +1,18 @@
|
||||||
README
|
OpenTTD's known bugs
|
||||||
|
Last updated: 2009-08-18
|
||||||
|
Release version: 0.7.2
|
||||||
------------------------------------------------------------------------
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
Table of Contents:
|
||||||
|
------------------
|
||||||
|
1) About
|
||||||
|
2) Known bugs in the this stable release
|
||||||
|
3) Known bugs that will not be solved
|
||||||
|
|
||||||
|
|
||||||
|
1) About:
|
||||||
|
-- ------
|
||||||
All bugs listed below are marked as known. Please do not submit any bugs
|
All bugs listed below are marked as known. Please do not submit any bugs
|
||||||
that are the same as these. If you do, do not act surprised, because
|
that are the same as these. If you do, do not act surprised, because
|
||||||
we WILL flame you!!
|
we WILL flame you!!
|
||||||
|
@ -8,12 +21,18 @@ Of course if you have more knowledge about any of these bugs, have more
|
||||||
specifics, we welcome you to report them. React to the given bug indicated
|
specifics, we welcome you to report them. React to the given bug indicated
|
||||||
by the number below on http://bugs.openttd.org.
|
by the number below on http://bugs.openttd.org.
|
||||||
|
|
||||||
If the bug report is closed, it has been fixed, which then can be verified
|
|
||||||
in the latest SVN version of /trunk.
|
|
||||||
|
|
||||||
Bugs for 0.7.2
|
2) Known bugs in the this stable release:
|
||||||
------------------------------------------------------------------------
|
-- --------------------------------------
|
||||||
URL: http://bugs.openttd.org
|
The following bugs are known to exist in this stable release and
|
||||||
|
we intend to fix them. Some bugs are known but are not fixable or
|
||||||
|
fixing them would cause further problems. Those bugs can be found
|
||||||
|
in the "Known bugs that will not be solved" section.
|
||||||
|
|
||||||
|
The bugs in this section all refer to a ticket in our bug tracking system
|
||||||
|
that you can find at: http://bugs.openttd.org
|
||||||
|
If the bugs are closed but still listed here it means that the bug is fixed
|
||||||
|
and that the nightlies and next major release will not have that bug.
|
||||||
|
|
||||||
- 3057 Road vehicle sometimes 'forget' the need for servicing
|
- 3057 Road vehicle sometimes 'forget' the need for servicing
|
||||||
- 3040 Not all alternatives are always shown in the "Join station" list
|
- 3040 Not all alternatives are always shown in the "Join station" list
|
||||||
|
@ -32,3 +51,72 @@ URL: http://bugs.openttd.org
|
||||||
- 1140 [OSX] Not smooth moving map with touchpad
|
- 1140 [OSX] Not smooth moving map with touchpad
|
||||||
- 1072 Text overflows in several windows
|
- 1072 Text overflows in several windows
|
||||||
- 119 Clipping problems with vehicles on slopes
|
- 119 Clipping problems with vehicles on slopes
|
||||||
|
|
||||||
|
|
||||||
|
3) Known bugs that will not be solved:
|
||||||
|
-- -----------------------------------
|
||||||
|
This section lists all known bugs that we do not intend to fix and the
|
||||||
|
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
|
||||||
|
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.
|
||||||
|
The primary cause of this problem is that OpenTTD does not have enough
|
||||||
|
data (like a 3D model) to properly determine what needs to be drawn in
|
||||||
|
front of what. OpenTTD has bounding boxes but in lots of cases they
|
||||||
|
are either too big or too small and then cause problems with what
|
||||||
|
needs to be drawn in front of what. Also some visual tricks are used.
|
||||||
|
For example trains at 8 pixels high, the catenary needs to be drawn
|
||||||
|
above that. When you want to draw bridges on top of that, which are
|
||||||
|
only one height level (= 8 pixels) higher, you are getting into some
|
||||||
|
big problems.
|
||||||
|
We can not change the height levels; it would require us to either
|
||||||
|
redraw all vehicle or all landscape graphics. Doing so would mean we
|
||||||
|
leave the Transport Tycoon graphics, which in effect means OpenTTD
|
||||||
|
will not be a Transport Tycoon clone anymore.
|
||||||
|
|
||||||
|
Duplicate (station) names after renaming
|
||||||
|
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.
|
||||||
|
The major part of this problem is that station names are translatable.
|
||||||
|
Meaning that a station is called e.g. '<TOWN> Central' in English and
|
||||||
|
'<TOWN> Centraal' in Dutch. This means that in network games the
|
||||||
|
renaming of a town could cause the rename to succeed on some clients
|
||||||
|
and fail at others. This creates an inconsistent game state that will
|
||||||
|
be seen as a 'desync'. Secondly the custom names are intended to fall
|
||||||
|
completely outside of the '<TOWN> <name>' naming of stations, so when
|
||||||
|
you rename a town all station names are updated accordingly.
|
||||||
|
As a result the decision has been made that all custom names are only
|
||||||
|
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.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
54
readme.txt
54
readme.txt
|
@ -49,25 +49,41 @@ http://forum.openttd.org/
|
||||||
|
|
||||||
2.1) Reporting Bugs:
|
2.1) Reporting Bugs:
|
||||||
---- ---------------
|
---- ---------------
|
||||||
To report a bug, please create a Flyspray account and follow the bugs
|
First of all, check whether the bug is not already known. Do this by looking
|
||||||
link from our homepage. Please make sure the bug is reproducible and
|
through the file called 'known-bugs.txt' which is distributed with OpenTTD
|
||||||
still occurs in the latest daily build or the current SVN version. Also
|
like this readme.
|
||||||
please look through the existing bug reports briefly to see whether the bug
|
|
||||||
is not already known.
|
|
||||||
|
|
||||||
The Flyspray project page URL is: http://bugs.openttd.org/
|
For tracking our bugs we are using a bug tracker called Flyspray. You can find
|
||||||
|
the tracker at http://bugs.openttd.org/. Before actually reporting take a look
|
||||||
|
through the already reported bugs there to see if the bug is already known.
|
||||||
|
The 'known-bugs.txt' file might be a bit outdated at the moment you are
|
||||||
|
reading it as only bugs known before the release are documented there. Also
|
||||||
|
look through the recently closed bugs.
|
||||||
|
|
||||||
Please include the following information in your bug report:
|
When you are sure it is not already reported you should:
|
||||||
- OpenTTD version (PLEASE test the latest SVN/nightly build)
|
* Make sure you are running a recent version, i.e. run the latest stable or
|
||||||
- Bug details, including instructions how to reproduce it
|
nightly based on where you found the bug.
|
||||||
- Platform and compiler (Win32, Linux, FreeBSD, ...)
|
* Make sure you are not running a non-official binary, like a patch pack.
|
||||||
- Attach a saved game *and* a screenshot if possible
|
When you are playing with a patch pack you should report any bugs to the
|
||||||
- If this bug only occurred recently please note the last
|
forum thread related to that patch pack.
|
||||||
version without the bug and the first version including
|
* Make it reproducable for the developers. In other words, create a savegame
|
||||||
the bug. That way we can fix it quicker by looking at the
|
in which you can reproduce the issue once loaded. It is very useful to give
|
||||||
changes made.
|
us the crash.dmp, crash.sav and crash.log which are created on crashes.
|
||||||
- Attach crash.dmp, crash.log and crash.sav from the data
|
* Check whether the bug is already reported on our bug tracker. This includes
|
||||||
directory if they exist.
|
searching for recently closed bug reports as the bug might already be fixed.
|
||||||
|
|
||||||
|
After you have done all that you can report the bug. Please include the
|
||||||
|
following information in your bug report:
|
||||||
|
* OpenTTD version (PLEASE test the latest SVN/nightly build)
|
||||||
|
* Bug details, including instructions how to reproduce it
|
||||||
|
* Platform (Win32, Linux, FreeBSD, ...) and compiler (including version) if
|
||||||
|
you compiled OpenTTD yourself.
|
||||||
|
* Attach a saved game *and* a screenshot if possible
|
||||||
|
* If this bug only occurred recently please note the last version without
|
||||||
|
the bug and the first version including the bug. That way we can fix it
|
||||||
|
quicker by looking at the changes made.
|
||||||
|
* Attach crash.dmp, crash.log and crash.sav. These files are usually created
|
||||||
|
next to your openttd.cfg. The crash handler will tell you the location.
|
||||||
|
|
||||||
2.2) Reporting Desyncs:
|
2.2) Reporting Desyncs:
|
||||||
---- ------------------
|
---- ------------------
|
||||||
|
@ -483,7 +499,7 @@ The OpenTTD team (in alphabetical order):
|
||||||
Owen Rudge (orudge) - Forum host, OS/2 port
|
Owen Rudge (orudge) - Forum host, OS/2 port
|
||||||
Peter Nelson (peter1138) - Spiritual descendant from newGRF gods
|
Peter Nelson (peter1138) - Spiritual descendant from newGRF gods
|
||||||
Remko Bijker (Rubidium) - Lead coder and way more
|
Remko Bijker (Rubidium) - Lead coder and way more
|
||||||
Zdenek Sojka (SmatZ) - Bug finder and fixer
|
Zdeněk Sojka (SmatZ) - Bug finder and fixer
|
||||||
Thijs Marinussen (Yexo) - AI Framework
|
Thijs Marinussen (Yexo) - AI Framework
|
||||||
|
|
||||||
Inactive Developers:
|
Inactive Developers:
|
||||||
|
@ -503,7 +519,7 @@ Retired Developers:
|
||||||
Thanks to:
|
Thanks to:
|
||||||
Josef Drexler - For his great work on TTDPatch.
|
Josef Drexler - For his great work on TTDPatch.
|
||||||
Marcin Grzegorczyk - For his TTDPatch work and documentation of TTD internals and graphics (signals and track foundations)
|
Marcin Grzegorczyk - For his TTDPatch work and documentation of TTD internals and graphics (signals and track foundations)
|
||||||
Petr Baudis (pasky) - Many patches, newgrf support, etc.
|
Petr Baudiš (pasky) - Many patches, newgrf support, etc.
|
||||||
Simon Sasburg (HackyKid) - For the many bugfixes he has blessed us with
|
Simon Sasburg (HackyKid) - For the many bugfixes he has blessed us with
|
||||||
Stefan Meißner (sign_de) - For his work on the console
|
Stefan Meißner (sign_de) - For his work on the console
|
||||||
Mike Ragsdale - OpenTTD installer
|
Mike Ragsdale - OpenTTD installer
|
||||||
|
|
|
@ -340,7 +340,7 @@ struct AboutWindow : public Window {
|
||||||
"Special thanks go out to:",
|
"Special thanks go out to:",
|
||||||
" Josef Drexler - For his great work on TTDPatch",
|
" Josef Drexler - For his great work on TTDPatch",
|
||||||
" Marcin Grzegorczyk - For his documentation of TTD internals",
|
" Marcin Grzegorczyk - For his documentation of TTD internals",
|
||||||
" Petr Baudis (pasky) - Many patches, newGRF support",
|
" Petr Baudi\xC5\xA1 (pasky) - Many patches, newGRF support",
|
||||||
" Stefan Mei\xC3\x9Fner (sign_de) - For his work on the console",
|
" Stefan Mei\xC3\x9Fner (sign_de) - For his work on the console",
|
||||||
" Simon Sasburg (HackyKid) - Many bugfixes he has blessed us with",
|
" Simon Sasburg (HackyKid) - Many bugfixes he has blessed us with",
|
||||||
" Cian Duffy (MYOB) - BeOS port / manual writing",
|
" Cian Duffy (MYOB) - BeOS port / manual writing",
|
||||||
|
|
|
@ -76,5 +76,7 @@ void CDECL NetworkAddChatMessage(TextColour colour, uint8 duration, const char *
|
||||||
void NetworkUndrawChatMessage();
|
void NetworkUndrawChatMessage();
|
||||||
void NetworkChatMessageDailyLoop();
|
void NetworkChatMessageDailyLoop();
|
||||||
|
|
||||||
|
void NetworkAfterNewGRFScan();
|
||||||
|
|
||||||
#endif /* ENABLE_NETWORK */
|
#endif /* ENABLE_NETWORK */
|
||||||
#endif /* NETWORK_FUNC_H */
|
#endif /* NETWORK_FUNC_H */
|
||||||
|
|
|
@ -150,4 +150,37 @@ void NetworkGameListRequery()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Rebuild the GRFConfig's of the servers in the game list as we did
|
||||||
|
* a rescan and might have found new NewGRFs.
|
||||||
|
*/
|
||||||
|
void NetworkAfterNewGRFScan()
|
||||||
|
{
|
||||||
|
for (NetworkGameList *item = _network_game_list; item != NULL; item = item->next) {
|
||||||
|
/* Reset compatability state */
|
||||||
|
item->info.compatible = item->info.version_compatible;
|
||||||
|
|
||||||
|
for (GRFConfig *c = item->info.grfconfig; c != NULL; c = c->next) {
|
||||||
|
assert(HasBit(c->flags, GCF_COPY));
|
||||||
|
|
||||||
|
const GRFConfig *f = FindGRFConfig(c->grfid, c->md5sum);
|
||||||
|
if (f == NULL) {
|
||||||
|
/* Don't know the GRF, so mark game incompatible and the (possibly)
|
||||||
|
* already resolved name for this GRF (another server has sent the
|
||||||
|
* name of the GRF already */
|
||||||
|
c->name = FindUnknownGRFName(c->grfid, c->md5sum, true);
|
||||||
|
c->status = GCS_NOT_FOUND;
|
||||||
|
|
||||||
|
/* If we miss a file, we're obviously incompatible */
|
||||||
|
item->info.compatible = false;
|
||||||
|
} else {
|
||||||
|
c->filename = f->filename;
|
||||||
|
c->name = f->name;
|
||||||
|
c->info = f->info;
|
||||||
|
c->status = GCS_UNKNOWN;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* ENABLE_NETWORK */
|
#endif /* ENABLE_NETWORK */
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
#include "string_func.h"
|
#include "string_func.h"
|
||||||
#include "gamelog.h"
|
#include "gamelog.h"
|
||||||
#include "network/network_type.h"
|
#include "network/network_type.h"
|
||||||
|
#include "network/network_func.h"
|
||||||
#include "gfx_func.h"
|
#include "gfx_func.h"
|
||||||
|
|
||||||
#include "fileio_func.h"
|
#include "fileio_func.h"
|
||||||
|
@ -141,6 +142,8 @@ GRFConfig **CopyGRFConfigList(GRFConfig **dst, const GRFConfig *src, bool init_o
|
||||||
if (src->error->custom_message != NULL) c->error->custom_message = strdup(src->error->custom_message);
|
if (src->error->custom_message != NULL) c->error->custom_message = strdup(src->error->custom_message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ClrBit(c->flags, GCF_COPY);
|
||||||
|
|
||||||
ClrBit(c->flags, GCF_INIT_ONLY);
|
ClrBit(c->flags, GCF_INIT_ONLY);
|
||||||
if (init_only) SetBit(c->flags, GCF_INIT_ONLY);
|
if (init_only) SetBit(c->flags, GCF_INIT_ONLY);
|
||||||
|
|
||||||
|
@ -383,6 +386,10 @@ void ScanNewGRFFiles()
|
||||||
_all_grfs = to_sort[0];
|
_all_grfs = to_sort[0];
|
||||||
|
|
||||||
free(to_sort);
|
free(to_sort);
|
||||||
|
|
||||||
|
#ifdef ENABLE_NETWORK
|
||||||
|
NetworkAfterNewGRFScan();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -133,8 +133,9 @@ struct NewGRFAddWindow : public Window {
|
||||||
GRFConfig **list;
|
GRFConfig **list;
|
||||||
const GRFConfig *sel;
|
const GRFConfig *sel;
|
||||||
|
|
||||||
NewGRFAddWindow(const WindowDesc *desc, GRFConfig **list) : Window(desc, 0)
|
NewGRFAddWindow(const WindowDesc *desc, Window *parent, GRFConfig **list) : Window(desc, 0)
|
||||||
{
|
{
|
||||||
|
this->parent = parent;
|
||||||
this->list = list;
|
this->list = list;
|
||||||
this->resize.step_height = 10;
|
this->resize.step_height = 10;
|
||||||
|
|
||||||
|
@ -490,7 +491,7 @@ struct NewGRFWindow : public Window {
|
||||||
|
|
||||||
case SNGRFS_ADD: // Add GRF
|
case SNGRFS_ADD: // Add GRF
|
||||||
DeleteWindowByClass(WC_SAVELOAD);
|
DeleteWindowByClass(WC_SAVELOAD);
|
||||||
new NewGRFAddWindow(&_newgrf_add_dlg_desc, &this->list);
|
new NewGRFAddWindow(&_newgrf_add_dlg_desc, this, &this->list);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SNGRFS_REMOVE: { // Remove GRF
|
case SNGRFS_REMOVE: { // Remove GRF
|
||||||
|
|
Loading…
Reference in New Issue