roadveh_cmd.c
changeset 926 a6d140a6a4de
parent 919 544f374ee392
child 1024 5e446b5b3ec5
equal deleted inserted replaced
925:47d7952c6c14 926:a6d140a6a4de
   136 		v->unitnumber = unit_num;
   136 		v->unitnumber = unit_num;
   137 		v->direction = 0;
   137 		v->direction = 0;
   138 		v->owner = _current_player;
   138 		v->owner = _current_player;
   139 
   139 
   140 		v->tile = tile;
   140 		v->tile = tile;
   141 		x = GET_TILE_X(tile)*16 + 8;
   141 		x = TileX(tile) * 16 + 8;
   142 		y = GET_TILE_Y(tile)*16 + 8;
   142 		y = TileY(tile) * 16 + 8;
   143 		v->x_pos = x;
   143 		v->x_pos = x;
   144 		v->y_pos = y;
   144 		v->y_pos = y;
   145 		v->z_pos = GetSlopeZ(x,y);
   145 		v->z_pos = GetSlopeZ(x,y);
   146 		v->z_height = 6;
   146 		v->z_height = 6;
   147 
   147 
  1105 		v->direction = dir*2+1;
  1105 		v->direction = dir*2+1;
  1106 
  1106 
  1107 		rd2 = _roadveh_data_2[dir];
  1107 		rd2 = _roadveh_data_2[dir];
  1108 		rdp = _road_drive_data[(_opt.road_side<<4) + rd2];
  1108 		rdp = _road_drive_data[(_opt.road_side<<4) + rd2];
  1109 
  1109 
  1110 		x = GET_TILE_X(v->tile)*16 + (rdp[6].x&0xF);
  1110 		x = TileX(v->tile) * 16 + (rdp[6].x & 0xF);
  1111 		y = GET_TILE_Y(v->tile)*16 + (rdp[6].y&0xF);
  1111 		y = TileY(v->tile) * 16 + (rdp[6].y & 0xF);
  1112 
  1112 
  1113 		if (RoadVehFindCloseTo(v,x,y,v->direction))
  1113 		if (RoadVehFindCloseTo(v,x,y,v->direction))
  1114 			return;
  1114 			return;
  1115 
  1115 
  1116 		VehicleServiceInDepot(v);
  1116 		VehicleServiceInDepot(v);
  1190 		tmp = (dir+(_opt.road_side<<4))^v->u.road.overtaking;
  1190 		tmp = (dir+(_opt.road_side<<4))^v->u.road.overtaking;
  1191 		rdp = _road_drive_data[tmp];
  1191 		rdp = _road_drive_data[tmp];
  1192 
  1192 
  1193 		tmp &= ~0x10;
  1193 		tmp &= ~0x10;
  1194 
  1194 
  1195 		x = GET_TILE_X(tile)*16 + rdp[0].x;
  1195 		x = TileX(tile) * 16 + rdp[0].x;
  1196 		y = GET_TILE_Y(tile)*16 + rdp[0].y;
  1196 		y = TileY(tile) * 16 + rdp[0].y;
  1197 
  1197 
  1198 		if (RoadVehFindCloseTo(v, x, y, newdir=RoadVehGetSlidingDirection(v, x, y)))
  1198 		if (RoadVehFindCloseTo(v, x, y, newdir=RoadVehGetSlidingDirection(v, x, y)))
  1199 			return;
  1199 			return;
  1200 
  1200 
  1201 		r = VehicleEnterTile(v, tile, x, y);
  1201 		r = VehicleEnterTile(v, tile, x, y);
  1252 		}
  1252 		}
  1253 
  1253 
  1254 		tmp = (_opt.road_side<<4) + dir;
  1254 		tmp = (_opt.road_side<<4) + dir;
  1255 		rdp = _road_drive_data[tmp];
  1255 		rdp = _road_drive_data[tmp];
  1256 
  1256 
  1257 		x = GET_TILE_X(v->tile)*16 + rdp[1].x;
  1257 		x = TileX(v->tile) * 16 + rdp[1].x;
  1258 		y = GET_TILE_Y(v->tile)*16 + rdp[1].y;
  1258 		y = TileY(v->tile) * 16 + rdp[1].y;
  1259 
  1259 
  1260 		if (RoadVehFindCloseTo(v, x, y, newdir=RoadVehGetSlidingDirection(v, x, y)))
  1260 		if (RoadVehFindCloseTo(v, x, y, newdir=RoadVehGetSlidingDirection(v, x, y)))
  1261 			return;
  1261 			return;
  1262 
  1262 
  1263 		r = VehicleEnterTile(v, v->tile, x, y);
  1263 		r = VehicleEnterTile(v, v->tile, x, y);