1097 |
1097 |
1098 switch (GetRailTileType(tile)) { |
1098 switch (GetRailTileType(tile)) { |
1099 case RAIL_TYPE_SIGNALS: |
1099 case RAIL_TYPE_SIGNALS: |
1100 if (_m[tile].m3 & _signals_table_both[0]) { |
1100 if (_m[tile].m3 & _signals_table_both[0]) { |
1101 ret = DoCommandByTile(tile, 0, 0, flags, CMD_REMOVE_SIGNALS); |
1101 ret = DoCommandByTile(tile, 0, 0, flags, CMD_REMOVE_SIGNALS); |
1102 if (ret == CMD_ERROR) return CMD_ERROR; |
1102 if (CmdFailed(ret)) return CMD_ERROR; |
1103 cost += ret; |
1103 cost += ret; |
1104 } |
1104 } |
1105 if (_m[tile].m3 & _signals_table_both[3]) { |
1105 if (_m[tile].m3 & _signals_table_both[3]) { |
1106 ret = DoCommandByTile(tile, 3, 0, flags, CMD_REMOVE_SIGNALS); |
1106 ret = DoCommandByTile(tile, 3, 0, flags, CMD_REMOVE_SIGNALS); |
1107 if (ret == CMD_ERROR) return CMD_ERROR; |
1107 if (CmdFailed(ret)) return CMD_ERROR; |
1108 cost += ret; |
1108 cost += ret; |
1109 } |
1109 } |
1110 |
1110 |
1111 m5 &= TRACK_BIT_MASK; |
1111 m5 &= TRACK_BIT_MASK; |
1112 if (!(flags & DC_EXEC)) { |
1112 if (!(flags & DC_EXEC)) { |
1119 uint i; |
1119 uint i; |
1120 |
1120 |
1121 for (i = 0; m5 != 0; i++, m5 >>= 1) { |
1121 for (i = 0; m5 != 0; i++, m5 >>= 1) { |
1122 if (m5 & 1) { |
1122 if (m5 & 1) { |
1123 ret = DoCommandByTile(tile, 0, i, flags, CMD_REMOVE_SINGLE_RAIL); |
1123 ret = DoCommandByTile(tile, 0, i, flags, CMD_REMOVE_SINGLE_RAIL); |
1124 if (ret == CMD_ERROR) return CMD_ERROR; |
1124 if (CmdFailed(ret)) return CMD_ERROR; |
1125 cost += ret; |
1125 cost += ret; |
1126 } |
1126 } |
1127 } |
1127 } |
1128 return cost; |
1128 return cost; |
1129 } |
1129 } |