diff --git a/changelog.txt b/changelog.txt index e050d3b91a..e23a08a245 100644 --- a/changelog.txt +++ b/changelog.txt @@ -2909,7 +2909,8 @@ - Fix: A lot of old AI fixed - Fix: All scenarios, savegames show up with their correct name - Fix: Automatic oil refinery generation in editor -- Fix: Autosave folder was not created on MorphOS- Fix: Bridge slope fix again, thanks Truelight +- Fix: Autosave folder was not created on MorphOS +- Fix: Bridge slope fix again - Fix: Bulldozing stuff with cheat magic_dynamite turned on does not lower city ratings - Fix: Change SDL_HWSURFACE back to SDL_SWSURFACE (Diablo-3D); better performance - Fix: Coast line near edge of map and near oilrigs diff --git a/os/debian/changelog b/os/debian/changelog index bfb053f7e9..575cfb748e 100644 --- a/os/debian/changelog +++ b/os/debian/changelog @@ -2,7 +2,7 @@ openttd (1.0.4-0) unstable; urgency=low * New upstream release 1.0.4 - -- Matthijs Kooijman Tue, 14 Sepg 2010 20:00:00 +0000 + -- Matthijs Kooijman Tue, 14 Sep 2010 20:00:00 +0000 openttd (1.0.4~rc1-0) unstable; urgency=low diff --git a/src/disaster_cmd.cpp b/src/disaster_cmd.cpp index 142ec01d7d..8169fc46f6 100644 --- a/src/disaster_cmd.cpp +++ b/src/disaster_cmd.cpp @@ -422,7 +422,7 @@ static bool DisasterTick_Aircraft(DisasterVehicle *v, uint16 image_override, boo SndPlayTileFx(SND_12_EXPLOSION, i->location.tile); } } else if (v->current_order.GetDestination() == 0) { - int x = v->x_pos - (15 * TILE_SIZE); + int x = v->x_pos + ((leave_at_top ? -15 : 15) * TILE_SIZE); int y = v->y_pos; if ((uint)x > MapMaxX() * TILE_SIZE - 1) return true; diff --git a/src/newgrf.cpp b/src/newgrf.cpp index f324b5e256..3e482b5e79 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -4451,12 +4451,13 @@ static void SkipIf(ByteReader *buf) /* * Parameter (variable in specs) 0x88 can only have GRF ID checking - * conditions, except conditions 0x0B and 0x0C (cargo availability) - * as those ignore the parameter. So, when the condition type is - * either of those, the specific variable 0x88 code is skipped, so - * the "general" code for the cargo availability conditions kicks in. + * conditions, except conditions 0x0B, 0x0C (cargo availability) and + * 0x0D, 0x0E (Rail type availability) as those ignore the parameter. + * So, when the condition type is one of those, the specific variable + * 0x88 code is skipped, so the "general" code for the cargo + * availability conditions kicks in. */ - if (param == 0x88 && condtype != 0x0B && condtype != 0x0C) { + if (param == 0x88 && (condtype < 0x0B || condtype > 0x0E)) { /* GRF ID checks */ GRFConfig *c = GetGRFConfig(cond_val, mask); diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp index 7ae08b1e68..e0456cb6fe 100644 --- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -1282,8 +1282,10 @@ CommandCost RemoveFromRailBaseStation(TileArea ta, SmallVector &affected } } + bool build_rail = keep_rail && !IsStationTileBlocked(tile); + DoClearSquare(tile); - if (keep_rail) MakeRailNormal(tile, owner, TrackToTrackBits(track), rt); + if (build_rail) MakeRailNormal(tile, owner, TrackToTrackBits(track), rt); st->rect.AfterRemoveTile(st, tile); AddTrackToSignalBuffer(tile, track, owner);