diff options
author | rubidium <rubidium@openttd.org> | 2010-11-10 23:13:37 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2010-11-10 23:13:37 +0000 |
commit | 8b8b4e083cde5161b32b9a04644393541765454d (patch) | |
tree | ac76e98dda3b05bdc20da54eb3ae73d2fa842ba1 | |
parent | 72a6eeef266185aa596d7c4be35a8dbc9809f141 (diff) | |
download | openttd-8b8b4e083cde5161b32b9a04644393541765454d.tar.xz |
(svn r21138) -Codechange: Introduce the concepts of frame and position in the tunnel / bridge entering code (Hirundo)
-rw-r--r-- | src/tunnelbridge_cmd.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/tunnelbridge_cmd.cpp b/src/tunnelbridge_cmd.cpp index 22973d62d..ba7eb04ec 100644 --- a/src/tunnelbridge_cmd.cpp +++ b/src/tunnelbridge_cmd.cpp @@ -1502,6 +1502,10 @@ static VehicleEnterTileStatus VehicleEnter_TunnelBridge(Vehicle *v, TileIndex ti const DiagDirection dir = GetTunnelBridgeDirection(tile); /* Direction of the vehicle */ const DiagDirection vdir = DirToDiagDir(v->direction); + /* New position of the vehicle on the tile */ + byte pos = (DiagDirToAxis(vdir) == AXIS_X ? x : y) & TILE_UNIT_MASK; + /* Number of units moved by the vehicle since entering the tile */ + byte frame = (vdir == DIAGDIR_NE || vdir == DIAGDIR_NW) ? TILE_SIZE - 1 - pos : pos; if (IsTunnel(tile)) { byte fc = (x & 0xF) + (y << 4); |