equal
deleted
inserted
replaced
448 (trdx >= 0 && dx < 0) || |
448 (trdx >= 0 && dx < 0) || |
449 (trdy <= 0 && dy > 0) || |
449 (trdy <= 0 && dy > 0) || |
450 (trdy >= 0 && dy < 0) |
450 (trdy >= 0 && dy < 0) |
451 ) { |
451 ) { |
452 if (!HASBIT(*trackdir, 3)) { // first direction is invalid, try the other |
452 if (!HASBIT(*trackdir, 3)) { // first direction is invalid, try the other |
453 *trackdir = SetBitT(*trackdir, 3); // reverse the direction |
453 SetBitT(*trackdir, 3); // reverse the direction |
454 trdx = -trdx; |
454 trdx = -trdx; |
455 trdy = -trdy; |
455 trdy = -trdy; |
456 } else { // other direction is invalid too, invalid drag |
456 } else { // other direction is invalid too, invalid drag |
457 return CMD_ERROR; |
457 return CMD_ERROR; |
458 } |
458 } |
511 if (tile == end_tile) break; |
511 if (tile == end_tile) break; |
512 |
512 |
513 tile += ToTileIndexDiff(_trackdelta[trackdir]); |
513 tile += ToTileIndexDiff(_trackdelta[trackdir]); |
514 |
514 |
515 // toggle railbit for the non-diagonal tracks |
515 // toggle railbit for the non-diagonal tracks |
516 if (!IsDiagonalTrackdir(trackdir)) trackdir = ToggleBitT(trackdir, 0); |
516 if (!IsDiagonalTrackdir(trackdir)) ToggleBitT(trackdir, 0); |
517 } |
517 } |
518 |
518 |
519 return (total_cost == 0) ? CMD_ERROR : total_cost; |
519 return (total_cost == 0) ? CMD_ERROR : total_cost; |
520 } |
520 } |
521 |
521 |
775 |
775 |
776 tile += ToTileIndexDiff(_trackdelta[trackdir]); |
776 tile += ToTileIndexDiff(_trackdelta[trackdir]); |
777 signal_ctr++; |
777 signal_ctr++; |
778 |
778 |
779 // toggle railbit for the non-diagonal tracks (|, -- tracks) |
779 // toggle railbit for the non-diagonal tracks (|, -- tracks) |
780 if (!IsDiagonalTrackdir(trackdir)) trackdir = ToggleBitT(trackdir, 0); |
780 if (!IsDiagonalTrackdir(trackdir)) ToggleBitT(trackdir, 0); |
781 } |
781 } |
782 |
782 |
783 return error ? CMD_ERROR : total_cost; |
783 return error ? CMD_ERROR : total_cost; |
784 } |
784 } |
785 |
785 |