diff --git a/changelog.txt b/changelog.txt index b280762384..63bacef506 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,48 @@ +1.0.2-RC1 (2010-06-05) +------------------------------------------------------------------------ +- Feature: Translated desktop shortcut comments (r19884) +- Fix: When 'pause on new game' is set, pause the game before CleanupGeneration() to avoid conflicts with concurrent GUI code [FS#3857] (r19934) +- Fix: Pay for the rail/road when constructing tunnels, bridges, depots and stations [FS#3859, FS#3827] (r19925, r19887, r19881) +- Fix: Closing chatbox could cause glitches when news message was shown [FS#3865] (r19921) +- Fix: [YAPP] Inform the pathfinder as well about the fact that the backside of an one-way path signal can be a safe waiting point [FS#3803] (r19896) +- Fix: Allow loading savegames from the console without specifying the ".sav" extension, i.e. make it consistent with saving savegames from the console [FS#3761] (r19885) +- Fix: Dropdowns did affect positioning of new windows because they were not yet removed when the new windows were positioned [FS#3812] (r19883) +- Fix: [NoAI] AIEngine::IsValidEngine() and AIEngine::IsBuildable() returned false positives. Especially wagons of unavailable railtypes were reported available (r19880) +- Fix: Default vehicle group texts were drawn one pixel too low [FS#3851] (r19878) +- Fix: It was not possible to send all trains with common waypoint order to depot (r19876) +- Fix: Compilation for NetBSD [FS#3809, FS#3840, FS#3845] (r19874, r19859, r19853, r19781) +- Fix: If the (guessed initial) destination tile of a road vehicle was not a road stop but was a T-junction or turn, the road vehicles would jump around in circles [FS#3817] (r19873) +- Fix: When a network connection gets lost and a game with AIs was loaded the client might crash due to the AIs not being loaded while the game loop is executed [FS#3819] (r19869) +- Fix: Use non-breaking spaces for currency pre-/postfixes (r19867) +- Fix: Crash when changing/viewing locale settings in the console [FS#3830] (r19865, r19864, r19863, r19862) +- Fix: Drawing fallback sprites for unavailable NewGRF waypoints failed (r19852) +- Fix: Ensure that both texts of the NewGRF gui download button fit (r19823) +- Fix: Kicking clients by IP did not work [FS#3784] (r19818) +- Fix: Compilation with MinGW GCC 4.5.0 and UNICODE (r19787) +- Fix: If a waypoint is immediately followed by a path signal a reservation would be made from that path signal before the waypoint is marked passed. As a result the order to go to the waypoint is used to reserve the path after the waypoint and as such trains get lost [FS#3770] (r19784) +- Fix: NULL pointer deference when testing relative scope *action2 on an unbuilt engine [FS#3828] (r19782) +- Fix: Crash on too long paths [FS#3807] (r19780, r19779, r19778, r19777, r19776) +- Fix: MP_VOID tiles shall have no tropic zone [FS#3820] (r19769) +- Fix: Half-desert tiles would never revert back to clear tiles (r19768) +- Fix: Height in smallmap was different from measured heights [FS#3808] (r19767) +- Fix: [NewGRF] Vehicle var 43 missed AI information in purchase list (r19761) +- Fix: Blocked roadvehicles should first check whether they are still blocked before accelerating again, instead of continuous starting/stopping (r19755) +- Fix: Try harder to find a suitable font that can be loaded, i.e. while searching for a suitable font test whether you can open it [FS#3740] (r19753) +- Fix: Make sure the chat area fits in the default window size; if you want it larger, you can always change/override it in the config file [FS#3798] (r19751) +- Fix: [NewGRF] Industry var 0x43 is not 'safe' during callbacks 22 and 38 either (r19750) +- Fix: [NewGRF] Possible divide-by-zero if a NewGRF checked industry var 42 while the production level was 0 (r19749) +- Fix: Do not recenter usually centered windows when resizing main window or changing language, if they have been moved/resized before [FS#3675] (r19746) +- Fix: The GUI is controlled by _local_company, not _current_company (r19745) +- Fix: NewGRFs could access map bits of not yet constructed industries and houses during construction callbacks (r19748, r19743) +- Fix: [NewGRF] Passing some invalid data to industry variable 67/68 could cause a crash (r19713) +- Fix: Check for industry availability more thoroughly and cancel object placement when selecting not available industries [FS#3787] (r19701) +- Fix: Avoid showing building toolbars behind the main toolbar when the 'Link landscape toolbar' setting is active [FS#3781] (r19696) +- Fix: Under some circumstances the player's name could be empty (r19693) +- Fix: Do not show an error message when trying to give another client an amount of 0 money [FS#3779] (r19684) +- Fix: Do not display an error message when double clicking on a vehicle in the 'available vehicles'-window (r19669) +- Change: Name invalid engines, cargos and industries 'invalid', if the player removed the supplying NewGRFs, hide invalid engines from the purchase list (r19879, r19877) + + 1.0.1 (2010-05-01) ------------------------------------------------------------------------ - Fix: Crash when using restart via rcon (r19722) diff --git a/known-bugs.txt b/known-bugs.txt index 65f9c7530f..81d51e4572 100644 --- a/known-bugs.txt +++ b/known-bugs.txt @@ -34,6 +34,8 @@ 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. +- 3816 Console text does not always fit at 640x480 +- 3746 Console output with right-to-left texts in left-to-right texts is not correct - 3714 Some corrupted savegames can cause crashes - 3695 Behaviour inconsistency building railway/road down towards water - 3651 [OSX] Crash when selecting full screen diff --git a/os/debian/changelog b/os/debian/changelog index c836a51f78..0a2dde24e9 100644 --- a/os/debian/changelog +++ b/os/debian/changelog @@ -1,3 +1,9 @@ +openttd (1.0.2~rc1-0) unstable; urgency=low + + * New upstream release 1.0.2-RC1 + + -- Matthijs Kooijman Sat, 05 Jun 2010 23:36:21 +0000 + openttd (1.0.1-0) unstable; urgency=low * New upstream release 1.0.1 diff --git a/os/os2/installer/make_installer.cmd b/os/os2/installer/make_installer.cmd index 500ef2b0b1..b87751b1cb 100644 --- a/os/os2/installer/make_installer.cmd +++ b/os/os2/installer/make_installer.cmd @@ -1,6 +1,6 @@ @echo off -set OPENTTD_VERSION=1.0.1 +set OPENTTD_VERSION=1.0.2 set OPENSFX_VERSION=0.8.0 set NOSOUND_VERSION=0.8.0 set OPENGFX_VERSION=0.7.0 diff --git a/os/windows/installer/install.nsi b/os/windows/installer/install.nsi index ea60752e12..97d107d8f7 100644 --- a/os/windows/installer/install.nsi +++ b/os/windows/installer/install.nsi @@ -1,9 +1,9 @@ # Version numbers to update !define APPV_MAJOR 1 !define APPV_MINOR 0 -!define APPV_MAINT 1 -!define APPV_BUILD 2 -!define APPV_EXTRA "" +!define APPV_MAINT 2 +!define APPV_BUILD 0 +!define APPV_EXTRA "-RC1" !define APPNAME "OpenTTD" ; Define application name !define APPVERSION "${APPV_MAJOR}.${APPV_MINOR}.${APPV_MAINT}${APPV_EXTRA}" ; Define application version diff --git a/src/genworld.cpp b/src/genworld.cpp index 3b0f2260d9..6303cca710 100644 --- a/src/genworld.cpp +++ b/src/genworld.cpp @@ -178,7 +178,6 @@ static void _GenerateWorld(void *) if (_network_dedicated) DEBUG(net, 0, "Map generated, starting game"); DEBUG(desync, 1, "new_map: %08x", _settings_game.game_creation.generation_seed); - if (_settings_client.gui.pause_on_newgame && _game_mode == GM_NORMAL) DoCommandP(0, PM_PAUSED_NORMAL, 1, CMD_PAUSE); if (_debug_desync_level > 0) { char name[MAX_PATH]; snprintf(name, lengthof(name), "dmp_cmds_%08x_%08x.sav", _settings_game.game_creation.generation_seed, _date); diff --git a/src/newgrf_industries.cpp b/src/newgrf_industries.cpp index a39120fcbc..e8e997426a 100644 --- a/src/newgrf_industries.cpp +++ b/src/newgrf_industries.cpp @@ -131,6 +131,9 @@ static uint32 GetCountAndDistanceOfClosestInstance(byte param_setID, byte layout break; } + /* If the industry type is invalid, there is none and the closest is far away. */ + if (ind_index >= NUM_INDUSTRYTYPES) return 0 | 0xFFFF; + if (layout_filter == 0) { /* If the filter is 0, it could be because none was specified as well as being really a 0. * In either case, just do the regular var67 */ diff --git a/src/openttd.cpp b/src/openttd.cpp index fad7c91d7a..731bf763cd 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -824,6 +824,8 @@ static void MakeNewGameDone() } #endif /* ENABLE_NETWORK */ + if (_settings_client.gui.pause_on_newgame) DoCommandP(0, PM_PAUSED_NORMAL, 1, CMD_PAUSE); + MarkWholeScreenDirty(); } diff --git a/src/roadveh_cmd.cpp b/src/roadveh_cmd.cpp index ea02bee561..228c413046 100644 --- a/src/roadveh_cmd.cpp +++ b/src/roadveh_cmd.cpp @@ -1569,13 +1569,18 @@ static bool RoadVehController(RoadVehicle *v) int j = RoadVehAccelerate(v); int adv_spd = (v->direction & 1) ? 192 : 256; + bool blocked = false; while (j >= adv_spd) { j -= adv_spd; RoadVehicle *u = v; for (RoadVehicle *prev = NULL; u != NULL; prev = u, u = u->Next()) { - if (!IndividualRoadVehicleController(u, prev)) break; + if (!IndividualRoadVehicleController(u, prev)) { + blocked = true; + break; + } } + if (blocked) break; /* 192 spd used for going straight, 256 for going diagonally. */ adv_spd = (v->direction & 1) ? 192 : 256; @@ -1590,7 +1595,10 @@ static bool RoadVehController(RoadVehicle *v) u->UpdateViewport(false, false); } - if (v->progress == 0) v->progress = j; + /* If movement is blocked, set 'progress' to its maximum, so the roadvehicle does + * not accelerate again before it can actually move. I.e. make sure it tries to advance again + * on next tick to discover whether it is still blocked. */ + if (v->progress == 0) v->progress = blocked ? adv_spd - 1 : j; return true; }