| 73 | } |
| 74 | |
| 75 | void ResolveRailTypeGUISprites(RailTypeInfo *rti) |
| 76 | { |
| 77 | SpriteID cursors_base = GetCustomRailSprite(rti, INVALID_TILE, RTSG_CURSORS); |
| 78 | if (cursors_base != 0) { |
| 79 | rti->gui_sprites.build_ns_rail = cursors_base + 0; |
| 80 | rti->gui_sprites.build_x_rail = cursors_base + 1; |
| 81 | rti->gui_sprites.build_ew_rail = cursors_base + 2; |
| 82 | rti->gui_sprites.build_y_rail = cursors_base + 3; |
| 83 | rti->gui_sprites.auto_rail = cursors_base + 4; |
| 84 | rti->gui_sprites.build_depot = cursors_base + 5; |
| 85 | rti->gui_sprites.build_tunnel = cursors_base + 6; |
| 86 | rti->gui_sprites.convert_rail = cursors_base + 7; |
| 87 | rti->cursor.rail_ns = cursors_base + 8; |
| 88 | rti->cursor.rail_swne = cursors_base + 9; |
| 89 | rti->cursor.rail_ew = cursors_base + 10; |
| 90 | rti->cursor.rail_nwse = cursors_base + 11; |
| 91 | rti->cursor.autorail = cursors_base + 12; |
| 92 | rti->cursor.depot = cursors_base + 13; |
| 93 | rti->cursor.tunnel = cursors_base + 14; |
| 94 | rti->cursor.convert = cursors_base + 15; |
| 95 | } |
| 96 | |
| 97 | /* Array of default GUI signal sprite numbers. */ |
| 98 | const SpriteID _signal_lookup[2][SIGTYPE_END] = { |
| 99 | {SPR_IMG_SIGNAL_ELECTRIC_NORM, SPR_IMG_SIGNAL_ELECTRIC_ENTRY, SPR_IMG_SIGNAL_ELECTRIC_EXIT, |
| 100 | SPR_IMG_SIGNAL_ELECTRIC_COMBO, SPR_IMG_SIGNAL_ELECTRIC_PBS, SPR_IMG_SIGNAL_ELECTRIC_PBS_OWAY}, |
| 101 | |
| 102 | {SPR_IMG_SIGNAL_SEMAPHORE_NORM, SPR_IMG_SIGNAL_SEMAPHORE_ENTRY, SPR_IMG_SIGNAL_SEMAPHORE_EXIT, |
| 103 | SPR_IMG_SIGNAL_SEMAPHORE_COMBO, SPR_IMG_SIGNAL_SEMAPHORE_PBS, SPR_IMG_SIGNAL_SEMAPHORE_PBS_OWAY}, |
| 104 | }; |
| 105 | |
| 106 | for (SignalType type = SIGTYPE_BLOCK; type < SIGTYPE_END; type = (SignalType)(type + 1)) { |
| 107 | for (SignalVariant var = SIG_ELECTRIC; var <= SIG_SEMAPHORE; var = (SignalVariant)(var + 1)) { |
| 108 | SpriteID red = GetCustomSignalSprite(rti, INVALID_TILE, type, var, SIGNAL_STATE_RED, true); |
| 109 | SpriteID green = GetCustomSignalSprite(rti, INVALID_TILE, type, var, SIGNAL_STATE_GREEN, true); |
| 110 | rti->gui_sprites.signals[type][var][0] = (red != 0) ? red + SIGNAL_TO_SOUTH : _signal_lookup[var][type]; |
| 111 | rti->gui_sprites.signals[type][var][1] = (green != 0) ? green + SIGNAL_TO_SOUTH : _signal_lookup[var][type] + 1; |
| 112 | } |
| 113 | } |
| 114 | } |
| 115 | |
| 116 | /** |
| 117 | * Compare railtypes based on their sorting order. |
no test coverage detected