mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-06 22:28:56 +00:00
(svn r12125) -Codechange: Remove redundant signal lookup table, and document why normal electric signals are handled specially.
This commit is contained in:
parent
c2bad6d22c
commit
63e306006b
@ -1433,27 +1433,20 @@ static void DrawSingleSignal(TileIndex tile, Track track, byte condition, uint i
|
||||
}
|
||||
};
|
||||
|
||||
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));
|
||||
|
@ -263,6 +263,8 @@ enum Sprites {
|
||||
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,
|
||||
|
Loading…
Reference in New Issue
Block a user