(svn r3141) Replace incorrect railtype bitmask in CmdRailTrackHelper with appropriate GB()
authorpeter1138
Sat, 05 Nov 2005 18:21:28 +0000
changeset 2604 901508f52c3d
parent 2603 01426bffb0f9
child 2605 d9d7eecdd1f1
(svn r3141) Replace incorrect railtype bitmask in CmdRailTrackHelper with appropriate GB()
rail_cmd.c
--- a/rail_cmd.c	Sat Nov 05 18:13:40 2005 +0000
+++ b/rail_cmd.c	Sat Nov 05 18:21:28 2005 +0000
@@ -587,8 +587,9 @@
 	Track track = (Track)GB(p2, 4, 3);
 	Trackdir trackdir;
 	byte mode = HASBIT(p2, 7);
+	RailType railtype = (RailType)GB(p2, 0, 4);
 
-	if (!ValParamRailtype(p2 & 0x3) || !ValParamTrackOrientation(track)) return CMD_ERROR;
+	if (!ValParamRailtype(railtype) || !ValParamTrackOrientation(track)) return CMD_ERROR;
 	if (p1 > MapSize()) return CMD_ERROR;
 	trackdir = TrackToTrackdir(track);
 
@@ -603,7 +604,7 @@
 	if (flags & DC_EXEC) SndPlayTileFx(SND_20_SPLAT_2, TileVirtXY(x, y));
 
 	for(;;) {
-		ret = DoCommand(x, y, p2 & 0x3, TrackdirToTrack(trackdir), flags, (mode == 0) ? CMD_BUILD_SINGLE_RAIL : CMD_REMOVE_SINGLE_RAIL);
+		ret = DoCommand(x, y, railtype, TrackdirToTrack(trackdir), flags, (mode == 0) ? CMD_BUILD_SINGLE_RAIL : CMD_REMOVE_SINGLE_RAIL);
 
 		if (CmdFailed(ret)) {
 			if ((_error_message != STR_1007_ALREADY_BUILT) && (mode == 0))