- string shoulder_code = token[11];
- int marking_code = atoi( token[12].c_str() );
- double smoothness = atof( token[13].c_str() );
- bool dist_remaining = (atoi( token[14].c_str() ) == 1 );
-
- runways->add( last_apt_id, rwy_no, lon, lat, heading, length,
- width, displ_thresh1, displ_thresh2,
- stopway1, stopway2, lighting_flags, surface_code,
- shoulder_code, marking_code, smoothness,
- dist_remaining );
+ SGGeod pos(SGGeod::fromDegFt(lon, lat, 0.0));
+ FGRunway* rwy = new FGRunway(NULL, rwy_no, pos, heading, length,
+ width, displ_thresh1, stopway1, surface_code, false);
+ runways.push_back(rwy);
+
+ if (rwy_no[0] != 'x') {
+ // runways need a reciprocal, taxiways do not
+ FGRunway* reciprocal = new FGRunway(NULL, FGRunway::reverseIdent(rwy_no),
+ pos, heading + 180.0, length, width,
+ displ_thresh2, stopway2, surface_code, true);
+
+ runways.push_back(reciprocal);
+ }