src/rail_cmd.cpp
changeset 7931 b0a46cd92225
parent 7929 6c9b25842b0f
child 7932 6c3d71e8a129
equal deleted inserted replaced
7930:f12c2437a050 7931:b0a46cd92225
   600 		(trdx >= 0 && dx < 0) ||
   600 		(trdx >= 0 && dx < 0) ||
   601 		(trdy <= 0 && dy > 0) ||
   601 		(trdy <= 0 && dy > 0) ||
   602 		(trdy >= 0 && dy < 0)
   602 		(trdy >= 0 && dy < 0)
   603 	) {
   603 	) {
   604 		if (!HasBit(*trackdir, 3)) { // first direction is invalid, try the other
   604 		if (!HasBit(*trackdir, 3)) { // first direction is invalid, try the other
   605 			SetBitT(*trackdir, 3); // reverse the direction
   605 			SetBit(*trackdir, 3); // reverse the direction
   606 			trdx = -trdx;
   606 			trdx = -trdx;
   607 			trdy = -trdy;
   607 			trdy = -trdy;
   608 		} else { // other direction is invalid too, invalid drag
   608 		} else { // other direction is invalid too, invalid drag
   609 			return CMD_ERROR;
   609 			return CMD_ERROR;
   610 		}
   610 		}
   699  * - p2 = (bit 7)   - 0 = build, 1 = remove tracks
   699  * - p2 = (bit 7)   - 0 = build, 1 = remove tracks
   700  * @see CmdRailTrackHelper
   700  * @see CmdRailTrackHelper
   701  */
   701  */
   702 CommandCost CmdRemoveRailroadTrack(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
   702 CommandCost CmdRemoveRailroadTrack(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
   703 {
   703 {
   704 	return CmdRailTrackHelper(tile, flags, p1, SETBIT(p2, 7));
   704 	return CmdRailTrackHelper(tile, flags, p1, SetBit(p2, 7));
   705 }
   705 }
   706 
   706 
   707 /** Build a train depot
   707 /** Build a train depot
   708  * @param tile position of the train depot
   708  * @param tile position of the train depot
   709  * @param flags operation to perform
   709  * @param flags operation to perform
   983 	} else { // no signals exist, drag a two-way signal stretch
   983 	} else { // no signals exist, drag a two-way signal stretch
   984 		signals = SignalOnTrack(track);
   984 		signals = SignalOnTrack(track);
   985 	}
   985 	}
   986 
   986 
   987 	byte signal_dir = 0;
   987 	byte signal_dir = 0;
   988 	if (signals & SignalAlongTrackdir(trackdir))   SETBIT(signal_dir, 0);
   988 	if (signals & SignalAlongTrackdir(trackdir))   SetBit(signal_dir, 0);
   989 	if (signals & SignalAgainstTrackdir(trackdir)) SETBIT(signal_dir, 1);
   989 	if (signals & SignalAgainstTrackdir(trackdir)) SetBit(signal_dir, 1);
   990 
   990 
   991 	/* signal_ctr         - amount of tiles already processed
   991 	/* signal_ctr         - amount of tiles already processed
   992 	 * signals_density    - patch setting to put signal on every Nth tile (double space on |, -- tracks)
   992 	 * signals_density    - patch setting to put signal on every Nth tile (double space on |, -- tracks)
   993 	 **********
   993 	 **********
   994 	 * trackdir   - trackdir to build with autorail
   994 	 * trackdir   - trackdir to build with autorail
  1119  * - p2 = (bit 24-31) - user defined signals_density
  1119  * - p2 = (bit 24-31) - user defined signals_density
  1120  * @see CmdSignalTrackHelper
  1120  * @see CmdSignalTrackHelper
  1121  */
  1121  */
  1122 CommandCost CmdRemoveSignalTrack(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
  1122 CommandCost CmdRemoveSignalTrack(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
  1123 {
  1123 {
  1124 	return CmdSignalTrackHelper(tile, flags, p1, SETBIT(p2, 5)); // bit 5 is remove bit
  1124 	return CmdSignalTrackHelper(tile, flags, p1, SetBit(p2, 5)); // bit 5 is remove bit
  1125 }
  1125 }
  1126 
  1126 
  1127 typedef CommandCost DoConvertRailProc(TileIndex tile, RailType totype, bool exec);
  1127 typedef CommandCost DoConvertRailProc(TileIndex tile, RailType totype, bool exec);
  1128 
  1128 
  1129 void *UpdateTrainPowerProc(Vehicle *v, void *data)
  1129 void *UpdateTrainPowerProc(Vehicle *v, void *data)