(svn r20995) [1.0] -Backport from trunk:

- Fix: When removing a rail station, do not leave track under non-station tiles (r20990)
- Fix: [NewGRF] Ignore the variable for Action7/9 condition type 0x0D and 0x0E as documented (r20979)
- Fix: Helicopters fired a bit too late [FS#4155] (r20910)
This commit is contained in:
rubidium 2010-10-19 20:38:21 +00:00
parent 9db8351def
commit d48a03cb14
5 changed files with 13 additions and 9 deletions

View File

@ -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

View File

@ -2,7 +2,7 @@ openttd (1.0.4-0) unstable; urgency=low
* New upstream release 1.0.4
-- Matthijs Kooijman <matthijs@stdin.nl> Tue, 14 Sepg 2010 20:00:00 +0000
-- Matthijs Kooijman <matthijs@stdin.nl> Tue, 14 Sep 2010 20:00:00 +0000
openttd (1.0.4~rc1-0) unstable; urgency=low

View File

@ -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;

View File

@ -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);

View File

@ -1282,8 +1282,10 @@ CommandCost RemoveFromRailBaseStation(TileArea ta, SmallVector<T *, 4> &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);