rail_cmd.c
changeset 2737 fb1556b8f5e0
parent 2670 f2d6a8424e3e
child 2752 55e04dee346d
equal deleted inserted replaced
2736:3d6487cbbb69 2737:fb1556b8f5e0
  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 		}