equal
deleted
inserted
replaced
32 |
32 |
33 switch (GetTileType(tile)) { |
33 switch (GetTileType(tile)) { |
34 case MP_STREET: |
34 case MP_STREET: |
35 switch (GetRoadType(tile)) { |
35 switch (GetRoadType(tile)) { |
36 case ROAD_NORMAL: b = GetRoadBits(tile); break; |
36 case ROAD_NORMAL: b = GetRoadBits(tile); break; |
37 case ROAD_CROSSING: b = (_m[tile].m5 & 8 ? ROAD_Y : ROAD_X); break; |
37 case ROAD_CROSSING: b = GetCrossingRoadBits(tile); break; |
38 case ROAD_DEPOT: return (~_m[tile].m5 & 3) == i; |
38 case ROAD_DEPOT: return (~_m[tile].m5 & 3) == i; |
39 default: return false; |
39 default: return false; |
40 } |
40 } |
41 break; |
41 break; |
42 |
42 |
707 case ROAD_CROSSING: { |
707 case ROAD_CROSSING: { |
708 int32 ret; |
708 int32 ret; |
709 |
709 |
710 if (flags & DC_AUTO) return_cmd_error(STR_1801_MUST_REMOVE_ROAD_FIRST); |
710 if (flags & DC_AUTO) return_cmd_error(STR_1801_MUST_REMOVE_ROAD_FIRST); |
711 |
711 |
712 ret = DoCommandByTile(tile, (_m[tile].m5 & 8 ? ROAD_Y : ROAD_X), 0, flags, CMD_REMOVE_ROAD); |
712 ret = DoCommandByTile(tile, GetCrossingRoadBits(tile), 0, flags, CMD_REMOVE_ROAD); |
713 if (CmdFailed(ret)) return CMD_ERROR; |
713 if (CmdFailed(ret)) return CMD_ERROR; |
714 |
714 |
715 if (flags & DC_EXEC) { |
715 if (flags & DC_EXEC) { |
716 DoCommandByTile(tile, 0, 0, flags, CMD_LANDSCAPE_CLEAR); |
716 DoCommandByTile(tile, 0, 0, flags, CMD_LANDSCAPE_CLEAR); |
717 } |
717 } |
1210 case ROAD_NORMAL: |
1210 case ROAD_NORMAL: |
1211 SetTileOwner(tile, OWNER_NONE); |
1211 SetTileOwner(tile, OWNER_NONE); |
1212 break; |
1212 break; |
1213 |
1213 |
1214 case ROAD_CROSSING: |
1214 case ROAD_CROSSING: |
1215 _m[tile].m5 = (_m[tile].m5&8) ? 0x5 : 0xA; |
|
1216 SetTileOwner(tile, _m[tile].m3); |
1215 SetTileOwner(tile, _m[tile].m3); |
1217 _m[tile].m3 = 0; |
1216 _m[tile].m3 = 0; |
1218 _m[tile].m4 &= 0x80; |
1217 _m[tile].m4 &= 0x80; |
|
1218 _m[tile].m5 = GetCrossingRoadBits(tile); |
1219 break; |
1219 break; |
1220 |
1220 |
1221 default: |
1221 default: |
1222 case ROAD_DEPOT: |
1222 case ROAD_DEPOT: |
1223 DoCommandByTile(tile, 0, 0, DC_EXEC, CMD_LANDSCAPE_CLEAR); |
1223 DoCommandByTile(tile, 0, 0, DC_EXEC, CMD_LANDSCAPE_CLEAR); |