# HG changeset patch # User peter1138 # Date 1202847254 0 # Node ID dfcde0d0dc0a01aa8525540688aba62bc7e9a53a # Parent 28aab5504e15a9a61c60ddd51c49ed39452ec5bb (svn r12125) -Codechange: Remove redundant signal lookup table, and document why normal electric signals are handled specially. diff -r 28aab5504e15 -r dfcde0d0dc0a src/rail_cmd.cpp --- a/src/rail_cmd.cpp Tue Feb 12 15:43:10 2008 +0000 +++ b/src/rail_cmd.cpp Tue Feb 12 20:14:14 2008 +0000 @@ -1433,27 +1433,20 @@ } }; - static const SpriteID SignalBase[2][2][4] = { - { /* Signals on left side */ - { 0x4FB, 0x1323, 0x1333, 0x1343}, /* light signals */ - { 0x1353, 0x1363, 0x1373, 0x1383} /* semaphores */ - }, { /* Signals on right side */ - { 0x4FB, 0x1323, 0x1333, 0x1343}, /* light signals */ - { 0x1446, 0x1456, 0x1466, 0x1476} /* semaphores */ - /* | | | | */ - /* normal, entry, exit, combo */ - } - }; - uint x = TileX(tile) * TILE_SIZE + SignalPositions[side][pos].x; uint y = TileY(tile) * TILE_SIZE + SignalPositions[side][pos].y; SpriteID sprite; - if (GetSignalType(tile, track) == SIGTYPE_NORMAL && GetSignalVariant(tile, track) == SIG_ELECTRIC) { - sprite = SignalBase[side][GetSignalVariant(tile, track)][GetSignalType(tile, track)] + image + condition; + SignalType type = GetSignalType(tile, track); + SignalVariant variant = GetSignalVariant(tile, track); + + if (type == SIGTYPE_NORMAL && variant == SIG_ELECTRIC) { + /* Normal electric signals are picked from original sprites. */ + sprite = SPR_ORIGINAL_SIGNALS_BASE + image + condition; } else { - sprite = SPR_SIGNALS_BASE + (GetSignalType(tile, track) - 1) * 16 + GetSignalVariant(tile, track) * 64 + image + condition; + /* All other signals are picked from add on sprites. */ + sprite = SPR_SIGNALS_BASE + (type - 1) * 16 + variant * 64 + image + condition; } AddSortableSpriteToDraw(sprite, PAL_NONE, x, y, 1, 1, BB_HEIGHT_UNDER_BRIDGE, GetSaveSlopeZ(x, y, track)); diff -r 28aab5504e15 -r dfcde0d0dc0a src/table/sprites.h --- a/src/table/sprites.h Tue Feb 12 15:43:10 2008 +0000 +++ b/src/table/sprites.h Tue Feb 12 20:14:14 2008 +0000 @@ -263,6 +263,8 @@ SPR_MONO_SNOW_OFFSET = 26, SPR_MGLV_SNOW_OFFSET = 26, + SPR_ORIGINAL_SIGNALS_BASE = 1275, + SPR_RAIL_SINGLE_Y = 1005, SPR_RAIL_SINGLE_X = 1006, SPR_RAIL_SINGLE_NORTH = 1007,