rail_cmd.c
changeset 1598 4425f756c19b
parent 1591 bf840aede1b1
child 1609 b4d11170cbb5
equal deleted inserted replaced
1597:cc09dbccddac 1598:4425f756c19b
  1068 				if (ret == CMD_ERROR) return CMD_ERROR;
  1068 				if (ret == CMD_ERROR) return CMD_ERROR;
  1069 				cost += ret;
  1069 				cost += ret;
  1070 			}
  1070 			}
  1071 
  1071 
  1072 			m5 &= RAIL_BIT_MASK;
  1072 			m5 &= RAIL_BIT_MASK;
       
  1073 			if (!(flags & DC_EXEC)) {
       
  1074 				for (; m5 != 0; m5 >>= 1) if (m5 & 1) cost += _price.remove_rail;
       
  1075 				return cost;
       
  1076 			}
  1073 			/* FALLTHROUGH */
  1077 			/* FALLTHROUGH */
  1074 
  1078 
  1075 		case RAIL_TYPE_NORMAL: {
  1079 		case RAIL_TYPE_NORMAL: {
  1076 			uint i;
  1080 			uint i;
  1077 
  1081 
  1078 			for (i = 0; m5 != 0; i++, m5 >>= 1) {
  1082 			for (i = 0; m5 != 0; i++, m5 >>= 1) {
  1079 				if (m5 & 1) {
  1083 				if (m5 & 1) {
  1080 					if (flags & DC_EXEC) {
  1084 					ret = DoCommandByTile(tile, 0, i, flags, CMD_REMOVE_SINGLE_RAIL);
  1081 						ret = DoCommandByTile(tile, 0, i, flags, CMD_REMOVE_SINGLE_RAIL);
  1085 					if (ret == CMD_ERROR) return CMD_ERROR;
  1082 						if (ret == CMD_ERROR) return CMD_ERROR;
       
  1083 					} else {
       
  1084 						ret = _price.remove_rail;
       
  1085 					}
       
  1086 					cost += ret;
  1086 					cost += ret;
  1087 				}
  1087 				}
  1088 			}
  1088 			}
  1089 			return cost;
  1089 			return cost;
  1090 		}
  1090 		}