Screenshot instructions:
Windows
Mac
Red Hat Linux
Ubuntu
Click URL instructions:
Right-click on ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)
You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(24) |
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(47) |
2006 |
Jan
(353) |
Feb
(445) |
Mar
(417) |
Apr
(227) |
May
(230) |
Jun
(327) |
Jul
(267) |
Aug
(336) |
Sep
(78) |
Oct
(215) |
Nov
(275) |
Dec
(411) |
2007 |
Jan
(570) |
Feb
(322) |
Mar
(425) |
Apr
(316) |
May
(536) |
Jun
(1280) |
Jul
(475) |
Aug
(235) |
Sep
(207) |
Oct
(478) |
Nov
(751) |
Dec
(1020) |
2008 |
Jan
(352) |
Feb
(607) |
Mar
(488) |
Apr
(406) |
May
(276) |
Jun
(295) |
Jul
(924) |
Aug
(1415) |
Sep
(481) |
Oct
(1169) |
Nov
(692) |
Dec
(889) |
2009 |
Jan
(521) |
Feb
(612) |
Mar
(1014) |
Apr
(855) |
May
(854) |
Jun
(620) |
Jul
(558) |
Aug
(260) |
Sep
(487) |
Oct
(823) |
Nov
(471) |
Dec
(464) |
2010 |
Jan
(761) |
Feb
(453) |
Mar
(783) |
Apr
(328) |
May
(42) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
|
|
1
(7) |
2
(5) |
3
(11) |
4
(14) |
5
(3) |
6
(3) |
7
|
8
(5) |
9
(3) |
10
(4) |
11
(5) |
12
(36) |
13
(4) |
14
|
15
(17) |
16
(51) |
17
(14) |
18
(2) |
19
(3) |
20
(2) |
21
(38) |
22
(33) |
23
(10) |
24
(9) |
25
(10) |
26
(33) |
27
(1) |
28
(15) |
29
(3) |
30
(7) |
31
(4) |
|
|
From: Melchior Franz <mfranz@fl...> - 2008-01-31 22:55:39
|
Update of /var/cvs/FlightGear-0.9/FlightGear/src/ATC In directory baron:/tmp/cvs-serv23016 Modified Files: Tag: PRE_OSG_PLIB_20061029 tower.cxx tower.hxx Log Message: Daniyar ATADJANOV: This patch contains bugfixes from my previous patch (i made mistakes when using "diff" utility last time): 1. Now ATC do not tells us to go around because of traffic on RWy, when that traffic is WE. 2. Now ATC don't say that we must follow ourself (like "GFS, number two, follow GFS on final"). And new Tower-ATC features: 1. Requesting departure clearance. When you are on taxiway, you can request departure clearance. Tower will answer with something like: "Line up runway two eight right". TODO: check if any AI-Planes on final and tell something like: "After the landing AI-CALLSIGN line up runway two eight right". 2. Requesting take-off clearance. If you are on runway, you can tell to ATC that you are ready for take-off. So, Tower will tell you that you are cleared for take-off (or immediate take-off). 3. Reporting landing gear position on final by pilot. If you are on aircraft, which landing gear can be UP, when reporting final you will tell "Gear down, ready to land". 4. Reporting landing gear position on final by ATC. When i was newbie and was flying on Cessna 310, i ALWAYS forgot landing gears on final. Now if you are on final and forgot landing gear, Tower will tell you: "LANDING GEAR APPEARS UP" or "Check wheels down and locked". So you will have some time to push gear down or execute missed approach ;) 5. ATIS phonetic ID in requesting landing message. In FG pilots says: "for full stop with ATIS" everytime (when airport doesn't have ATIS too). But in real life pilot saying phonetic ID of ATIS message. Now we have: "for full stop, information alpha ... / ... zulu". If airport doesn't have ATIS, pilot don't say this. TODO: add this feature to AI-Planes too. 6. Advising weather condition in airport by Tower. If you are requesting take-off or landing in airport that doesn't have ATIS service, Tower will tell you about wind direction and speed, visibility and QFE. 7. Reporting downwind if missed approach. When some AI-Plane is on final FG's ATC tell you to "continue approach". And then you lost radio transmission. Now ATC says: "continue approach and report left/right downwind". And now we have "Report Downwind" entry (button) in "ATC Communication" form. Index: tower.cxx =================================================================== RCS file: /var/cvs/FlightGear-0.9/FlightGear/src/ATC/tower.cxx,v retrieving revision 1.57.2.4 retrieving revision 1.57.2.5 diff -C 2 -r1.57.2.4 -r1.57.2.5 *** tower.cxx 27 Oct 2007 19:16:41 -0000 1.57.2.4 --- tower.cxx 31 Jan 2008 22:38:32 -0000 1.57.2.5 *************** *** 4,7 **** --- 4,8 ---- // // Copyright (C) 2002 David C. Luff - david.luff@... + // Copyright (C) 2008 Daniyar Atadjanov (ground clearance, gear check, weather, etc.) // // This program is free software; you can redistribute it and/or *************** *** 29,36 **** #endif #include <Main/globals.hxx> #include <Airports/runways.hxx> - #include <simgear/math/sg_geodesy.hxx> - #include <simgear/debug/logstream.hxx> #include "tower.hxx" --- 30,43 ---- #endif + #include <sstream> + #include <iomanip> + + #include <simgear/debug/logstream.hxx> + #include <simgear/math/sg_geodesy.hxx> + #include <simgear/math/sg_random.h> + #include <simgear/misc/sg_path.hxx> + #include <Main/globals.hxx> #include <Airports/runways.hxx> #include "tower.hxx" *************** *** 42,45 **** --- 49,53 ---- #include "AILocalTraffic.hxx" + SG_USING_STD(cout); *************** *** 52,55 **** --- 60,64 ---- clearedToTakeOff(false), holdShortReported(false), + lineUpReported(false), downwindReported(false), longFinalReported(false), *************** *** 68,71 **** --- 77,82 ---- leg(LEG_UNKNOWN), landingType(AIP_LT_UNKNOWN), + gearWasUp(false), + gearUpReported(false), isUser(false) { *************** *** 79,82 **** --- 90,94 ---- clearedToTakeOff(false), holdShortReported(false), + lineUpReported(false), downwindReported(false), longFinalReported(false), *************** *** 95,98 **** --- 107,112 ---- leg(LEG_UNKNOWN), landingType(AIP_LT_UNKNOWN), + gearWasUp(false), + gearUpReported(false), isUser(false) { *************** *** 106,109 **** --- 120,124 ---- clearedToTakeOff(false), holdShortReported(false), + lineUpReported(false), downwindReported(false), longFinalReported(false), *************** *** 122,125 **** --- 137,142 ---- leg(LEG_UNKNOWN), landingType(AIP_LT_UNKNOWN), + gearWasUp(false), + gearUpReported(false), isUser(false) { *************** *** 134,137 **** --- 151,155 ---- clearedToTakeOff(false), holdShortReported(false), + lineUpReported(false), downwindReported(false), longFinalReported(false), *************** *** 150,153 **** --- 168,173 ---- leg(LEG_UNKNOWN), landingType(AIP_LT_UNKNOWN), + gearWasUp(false), + gearUpReported(false), isUser(false) { *************** *** 291,294 **** --- 311,316 ---- } + RemoveAllUserDialogOptions(); + // TODO - attempt to get a departure control pointer to see if we need to hand off departing traffic to departure. *************** *** 301,305 **** // TODO - this currently assumes only one active runway. rwyOccupied = OnActiveRunway(Point3D(user_lon_node->getDoubleValue(), user_lat_node->getDoubleValue(), 0.0)); ! if(rwyOccupied) { //cout << "User found on active runway\n"; // Assume the user is started at the threshold ready to take-off --- 323,333 ---- // TODO - this currently assumes only one active runway. rwyOccupied = OnActiveRunway(Point3D(user_lon_node->getDoubleValue(), user_lat_node->getDoubleValue(), 0.0)); ! ! if(!OnAnyRunway(Point3D(user_lon_node->getDoubleValue(), user_lat_node->getDoubleValue(), 0.0), false)) { ! //cout << ident << " ADD 0\n"; ! current_atcdialog->add_entry(ident, "@AP Tower, @CS @MI miles @CD of the airport for full stop@...", ! "Contact tower for VFR arrival (full stop)", TOWER, ! (int)USER_REQUEST_VFR_ARRIVAL_FULL_STOP); ! } else { //cout << "User found on active runway\n"; // Assume the user is started at the threshold ready to take-off *************** *** 312,327 **** t->isUser = true; t->planePtr = NULL; ! t->clearedToTakeOff = true; rwyList.push_back(t); rwyListItr = rwyList.begin(); departed = false; ! } else { ! //cout << "User not on active runway\n"; ! // For now assume that this means the user is not at the airport and is in the air. ! // TODO FIXME - this will break when user starts on apron, at hold short, etc. ! if(!OnAnyRunway(Point3D(user_lon_node->getDoubleValue(), user_lat_node->getDoubleValue(), 0.0))) { ! //cout << ident << " ADD 0\n"; ! current_atcdialog->add_entry(ident, "@AP Tower, @CS @MI miles @CD of the airport for full stop with ATIS", "Contact tower for VFR arrival (full stop)", TOWER, (int)USER_REQUEST_VFR_ARRIVAL_FULL_STOP); ! } } } --- 340,349 ---- t->isUser = true; t->planePtr = NULL; ! t->clearedToTakeOff = false; rwyList.push_back(t); rwyListItr = rwyList.begin(); departed = false; ! current_atcdialog->add_entry(ident, "@CS @TO", "Request departure / take-off clearance", ! TOWER, (int)USER_REQUEST_TAKE_OFF); } } *************** *** 449,453 **** void FGTower::ReceiveUserCallback(int code) { if(code == (int)USER_REQUEST_VFR_DEPARTURE) { ! //cout << "User requested departure\n"; } else if(code == (int)USER_REQUEST_VFR_ARRIVAL) { VFRArrivalContact("USER"); --- 471,475 ---- void FGTower::ReceiveUserCallback(int code) { if(code == (int)USER_REQUEST_VFR_DEPARTURE) { ! RequestDepartureClearance("USER"); } else if(code == (int)USER_REQUEST_VFR_ARRIVAL) { VFRArrivalContact("USER"); *************** *** 465,468 **** --- 487,492 ---- } else if(code == (int)USER_REPORT_GOING_AROUND) { ReportGoingAround("USER"); + } else if(code == (int)USER_REQUEST_TAKE_OFF) { + RequestTakeOffClearance("USER"); } } *************** *** 486,494 **** // Later on we might check the actual heading and direct some of those to enter on downwind or base. Point3D op = ortho.ConvertToLocal(t->pos); if(op.y() < -1000) { trns += " Report three mile straight-in runway "; t->opType = STRAIGHT_IN; if(t->isUser) { ! current_atcdialog->add_entry(ident, "@AP Tower, @CS @MI mile final Runway @RW", "Report Final", TOWER, (int)USER_REPORT_3_MILE_FINAL); } else { t->planePtr->RegisterTransmission(14); --- 510,521 ---- // Later on we might check the actual heading and direct some of those to enter on downwind or base. Point3D op = ortho.ConvertToLocal(t->pos); + float gp = fgGetFloat("/gear/gear/position-norm"); + if(gp < 1) + t->gearWasUp = true; // This will be needed on final to tell "Gear down, ready to land." if(op.y() < -1000) { trns += " Report three mile straight-in runway "; t->opType = STRAIGHT_IN; if(t->isUser) { ! current_atcdialog->add_entry(ident, "@CS @MI mile final runway @RW@...", "Report Final", TOWER, (int)USER_REPORT_3_MILE_FINAL); } else { t->planePtr->RegisterTransmission(14); *************** *** 523,526 **** --- 550,588 ---- ProcessDownwindReport(t); t->downwindReported = false; + } else if(t->lineUpReported) { + string trns = t->plane.callsign; + if(rwyOccupied) { + double f = globals->get_ATC_mgr()->GetFrequency(ident, ATIS) / 100.0; + string wtr; + if(!f) { + wtr = ", " + GetWeather(); + } + trns += " Cleared for take-off" + wtr; + t->clearedToTakeOff = true; + } else { + if(!OnAnyRunway(Point3D(user_lon_node->getDoubleValue(), user_lat_node->getDoubleValue(), 0.0), true)) { + // TODO: Check if any AI Planes on final and tell something like: "After the landing CALLSIGN line up runway two eight right" + trns += " Line up runway " + ConvertRwyNumToSpokenString(activeRwy); + t->clearedToTakeOff = false; + current_atcdialog->add_entry(ident, "@CS @TO", "Report ready for take-off", TOWER, (int)USER_REQUEST_TAKE_OFF); + + } else { + sg_srandom_time(); + if((int(sg_random() * 10) + 1) != 3) { + t->clearedToTakeOff = true; + trns += " Cleared immediate take-off "; + } else { + t->clearedToTakeOff = false; + trns += " Negative, departure runway " + ConvertRwyNumToSpokenString(activeRwy); + } + } + } + if(_display) { + pending_transmission = trns; + Transmit(); + } else { + //cout << "Not displaying, trns was " << trns << '\n'; + } + t->lineUpReported = false; } else if(t->holdShortReported) { //cout << "Tower " << ident << " is reponding to holdShortReported...\n"; *************** *** 567,571 **** trns += " cleared to land "; } else { ! trns += " cleared for the option "; } // TODO - add winds --- 629,640 ---- trns += " cleared to land "; } else { ! double f = globals->get_ATC_mgr()->GetFrequency(ident, ATIS) / 100.0; ! string wtr; ! if(!f) { ! wtr = ", " + GetWeather(); ! } else { ! wtr = ", runway " + ConvertRwyNumToSpokenString(activeRwy); ! } ! trns += " cleared to land" + wtr; } // TODO - add winds *************** *** 587,590 **** --- 656,668 ---- } else { trns += " continue approach"; + trns += " and report "; + trns += ((rwy.patternDirection == 1) ? "right " : "left "); + trns += "downwind runway " + ConvertRwyNumToSpokenString(activeRwy); + t->opType = CIRCUIT; + if(t->isUser) { + current_atcdialog->add_entry(ident, "@AP Tower, @CS Downwind @RW", "Report Downwind", TOWER, (int)USER_REPORT_DOWNWIND); + } else { + t->planePtr->RegisterTransmission(15); + } t->clearedToLand = false; } *************** *** 622,626 **** TowerPlaneRec* tf = NULL; for(tower_plane_rec_list_iterator twrItr = appList.begin(); twrItr != appList.end(); twrItr++) { ! if((*twrItr)->eta < (t->eta + 45)) { a++; tf = *twrItr; --- 700,704 ---- TowerPlaneRec* tf = NULL; for(tower_plane_rec_list_iterator twrItr = appList.begin(); twrItr != appList.end(); twrItr++) { ! if((*twrItr)->eta < (t->eta + 45) && strcmp((*twrItr)->plane.callsign.c_str(), t->plane.callsign.c_str()) != 0) { // don't let ATC ask you to follow yourself a++; tf = *twrItr; *************** *** 741,745 **** if(0) { // FIXME //if(timeSinceLastDeparture <= 60.0 && departed == true) { ! trns += " line up"; t->clearedToLineUp = true; t->planePtr->RegisterTransmission(3); // cleared to line-up --- 819,823 ---- if(0) { // FIXME //if(timeSinceLastDeparture <= 60.0 && departed == true) { ! trns += " line up runway " + ConvertRwyNumToSpokenString(activeRwy); t->clearedToLineUp = true; t->planePtr->RegisterTransmission(3); // cleared to line-up *************** *** 864,868 **** //cout << "timeSinceLastDeparture = " << timeSinceLastDeparture << '\n'; if(rwyOccupied) { ! // Do nothing } else if(timeSinceLastDeparture <= 60.0 && departed == true) { // Do nothing - this is a bit of a hack - should maybe do line up be ready here --- 942,947 ---- //cout << "timeSinceLastDeparture = " << timeSinceLastDeparture << '\n'; if(rwyOccupied) { ! RemoveAllUserDialogOptions(); ! current_atcdialog->add_entry(ident, "@CS Ready for take-off", "Request take-off clearance", TOWER, (int)USER_REQUEST_TAKE_OFF); } else if(timeSinceLastDeparture <= 60.0 && departed == true) { // Do nothing - this is a bit of a hack - should maybe do line up be ready here *************** *** 1069,1084 **** // or stationary near the start [V. BAD!!]. // For now this should stop the AI plane landing on top of the user. ! string trns = t->plane.callsign; ! trns += " GO AROUND TRAFFIC ON RUNWAY I REPEAT GO AROUND"; ! pending_transmission = trns; ! ImmediateTransmit(); ! t->instructedToGoAround = true; ! t->clearedToLand = false; ! // Assume it complies!!! ! t->opType = CIRCUIT; ! t->leg = CLIMBOUT; ! if(t->planePtr) { ! //cout << "Registering Go-around transmission with AI plane\n"; ! t->planePtr->RegisterTransmission(13); } } else if(!t->clearedToLand) { --- 1148,1174 ---- // or stationary near the start [V. BAD!!]. // For now this should stop the AI plane landing on top of the user. ! tower_plane_rec_list_iterator twrItr; ! twrItr = rwyList.begin(); ! TowerPlaneRec* tpr = *twrItr; ! if(strcmp(tpr->plane.callsign.c_str(), t->plane.callsign.c_str()) == 0 ! && rwyList.size() == 1) { ! // Fixing bug when ATC says that we must go around because of traffic on rwy ! // but that traffic is our plane! In future we can use this expression ! // for other ATC-messages like "On ground at 46, vacate left." ! ! } else { ! string trns = t->plane.callsign; ! trns += " GO AROUND TRAFFIC ON RUNWAY I REPEAT GO AROUND"; ! pending_transmission = trns; ! ImmediateTransmit(); ! t->instructedToGoAround = true; ! t->clearedToLand = false; ! // Assume it complies!!! ! t->opType = CIRCUIT; ! t->leg = CLIMBOUT; ! if(t->planePtr) { ! //cout << "Registering Go-around transmission with AI plane\n"; ! t->planePtr->RegisterTransmission(13); ! } } } else if(!t->clearedToLand) { *************** *** 1214,1217 **** --- 1304,1308 ---- doThresholdETACalc(); // We need this here because planes in the lists are not guaranteed to *always* have the correct ETA //cout << "eta is " << t->eta << ", rwy is " << (rwyList.size() ? "occupied " : "clear ") << '\n'; + Point3D tortho = ortho.ConvertToLocal(t->pos); if(t->eta < 12 && rwyList.size() && !(t->instructedToGoAround)) { // TODO - need to make this more sophisticated *************** *** 1219,1240 **** // or stationary near the start [V. BAD!!]. // For now this should stop the AI plane landing on top of the user. ! string trns = t->plane.callsign; ! trns += " GO AROUND TRAFFIC ON RUNWAY I REPEAT GO AROUND"; ! pending_transmission = trns; ! ImmediateTransmit(); ! t->instructedToGoAround = true; ! t->clearedToLand = false; ! t->nextOnRwy = false; // But note this is recalculated so don't rely on it ! // Assume it complies!!! ! t->opType = CIRCUIT; ! t->leg = CLIMBOUT; ! if(!t->isUser) { ! if(t->planePtr) { ! //cout << "Registering Go-around transmission with AI plane\n"; ! t->planePtr->RegisterTransmission(13); ! } } else { ! // TODO - add Go-around ack to comm options, ! // remove report rwy vacated. (possibly). } } else if(t->eta < 90 && !t->clearedToLand) { --- 1310,1357 ---- // or stationary near the start [V. BAD!!]. // For now this should stop the AI plane landing on top of the user. ! tower_plane_rec_list_iterator twrItr; ! twrItr = rwyList.begin(); ! TowerPlaneRec* tpr = *twrItr; ! if(strcmp ( tpr->plane.callsign.c_str(), t->plane.callsign.c_str() ) == 0 && rwyList.size() == 1) { ! // Fixing bug when ATC says that we must go around because of traffic on rwy ! // but that traffic is we! In future we can use this expression ! // for other ATC-messages like "On ground at 46, vacate left." ! } else { ! string trns = t->plane.callsign; ! trns += " GO AROUND TRAFFIC ON RUNWAY I REPEAT GO AROUND"; ! pending_transmission = trns; ! ImmediateTransmit(); ! t->instructedToGoAround = true; ! t->clearedToLand = false; ! t->nextOnRwy = false; // But note this is recalculated so don't rely on it ! // Assume it complies!!! ! t->opType = CIRCUIT; ! t->leg = CLIMBOUT; ! if(!t->isUser) { ! if(t->planePtr) { ! //cout << "Registering Go-around transmission with AI plane\n"; ! t->planePtr->RegisterTransmission(13); ! } ! } else { ! // TODO - add Go-around ack to comm options, ! // remove report rwy vacated. (possibly). ! } ! } ! } else if(t->isUser && t->eta < 90 && tortho.y() > -2500 && t->clearedToLand && t->gearUpReported == false) { ! // Check if gear up or down ! double gp = fgGetFloat("/gear/gear/position-norm"); ! if(gp < 1) { ! string trnsm = t->plane.callsign; ! sg_srandom_time(); ! int rnd = int(sg_random() * 2) + 1; ! if(rnd == 2) { // Random message for more realistic ATC ;) ! trnsm += ", LANDING GEAR APPEARS UP!"; ! } else { ! trnsm += ", Check wheels down and locked."; ! } ! pending_transmission = trnsm; ! ImmediateTransmit(); ! t->gearUpReported = true; } } else if(t->eta < 90 && !t->clearedToLand) { *************** *** 1319,1322 **** --- 1436,1445 ---- else distout = dclGetHorizontalSeparation(Point3D(lon, lat, elev), t->planePtr->GetPos()); //cout << " distout = " << distout << '\n'; + if(t->isUser && !(t->clearedToTakeOff)) { // HACK - we use clearedToTakeOff to check if ATC already contacted with plane (and cleared take-off) or not + if(!OnAnyRunway(Point3D(user_lon_node->getDoubleValue(), user_lat_node->getDoubleValue(), 0.0), false)) { + current_atcdialog->remove_entry(ident, USER_REQUEST_TAKE_OFF, TOWER); + t->clearedToTakeOff = true; // FIXME + } + } if(distout > 10000) { string trns = t->plane.callsign; *************** *** 1328,1332 **** RemoveAllUserDialogOptions(); //cout << "ADD A\n"; ! current_atcdialog->add_entry(ident, "@AP Tower, @CS @MI miles @CD of the airport for full stop with ATIS", "Contact tower for VFR arrival (full stop)", TOWER, (int)USER_REQUEST_VFR_ARRIVAL_FULL_STOP); } else { // Send a clear-of-airspace signal --- 1451,1455 ---- RemoveAllUserDialogOptions(); //cout << "ADD A\n"; ! current_atcdialog->add_entry(ident, "@AP Tower, @CS @MI miles @CD of the airport for full stop@...", "Contact tower for VFR arrival (full stop)", TOWER, (int)USER_REQUEST_VFR_ARRIVAL_FULL_STOP); } else { // Send a clear-of-airspace signal *************** *** 1354,1357 **** --- 1477,1481 ---- current_atcdialog->remove_entry(ident, USER_REPORT_RWY_VACATED, TOWER); current_atcdialog->remove_entry(ident, USER_REPORT_GOING_AROUND, TOWER); + current_atcdialog->remove_entry(ident, USER_REQUEST_TAKE_OFF, TOWER); } *************** *** 1469,1483 **** return((ldiff < rlen) && (wdiff < rwidth)); ! } ! // Figure out if a given position lies on any runway or not // Only call this at startup - reading the runways database is expensive and needs to be fixed! ! bool FGTower::OnAnyRunway(const Point3D& pt) { ATCData ad; ! double dist = current_commlist->FindClosest(lon, lat, elev, ad, TOWER, 10.0); if(dist < 0.0) { return(false); } // Based on the airport-id, go through all the runways and check for a point in them --- 1593,1607 ---- return((ldiff < rlen) && (wdiff < rwidth)); ! } // Figure out if a given position lies on any runway or not // Only call this at startup - reading the runways database is expensive and needs to be fixed! ! bool FGTower::OnAnyRunway(const Point3D& pt, bool onGround) { ATCData ad; ! double dist = current_commlist->FindClosest(lon, lat, elev, ad, TOWER, 7.0); if(dist < 0.0) { return(false); } + // Based on the airport-id, go through all the runways and check for a point in them *************** *** 1491,1499 **** } bool on = false; ! while(runway._id == ad.ident) { on = OnRunway(pt, runway); //cout << "Runway " << runway._rwy_no << ": On = " << (on ? "true\n" : "false\n"); ! if(on) return(true); ! globals->get_runways()->next(&runway); } return(on); --- 1615,1628 ---- } bool on = false; ! while(runway._id == ad.ident) { on = OnRunway(pt, runway); //cout << "Runway " << runway._rwy_no << ": On = " << (on ? "true\n" : "false\n"); ! if(on) { ! if(onGround == false) ! return(true); ! if(runway._rwy_no != "xx") ! return(true); ! } ! globals->get_runways()->next(&runway); } return(on); *************** *** 1693,1696 **** --- 1822,1834 ---- } + void FGTower::AddToHoldingList(TowerPlaneRec* t) { + tower_plane_rec_list_iterator it, end = holdList.end(); + for (it = holdList.begin(); it != end; ++it) { + if ((*it)->plane.callsign == t->plane.callsign) + return; + + holdList.push_back(t); + } + } // Calculate the eta of a plane to the threshold. *************** *** 2066,2069 **** --- 2204,2226 ---- //cout << "Request Departure Clearance called...\n"; } + + void FGTower::RequestTakeOffClearance(const string& ID) { + string uid=ID; + if(ID == "USER") { + uid = fgGetString("/sim/user/callsign"); + current_atcdialog->remove_entry(ident, USER_REQUEST_TAKE_OFF, TOWER); + } + TowerPlaneRec* t = FindPlane(uid); + if(t) { + if(!(t->clearedToTakeOff)) { + departed = false; + t->lineUpReported=true; + responseReqd = true; + } + } + else { + SG_LOG(SG_ATC, SG_WARN, "WARNING: Unable to find plane " << ID << " in FGTower::RequestTakeOffClearance(...)"); + } + } void FGTower::ReportFinal(const string& ID) { *************** *** 2306,2309 **** --- 2463,2467 ---- //FGTransmission t; string usercall = fgGetString("/sim/user/callsign"); + TowerPlaneRec* t = FindPlane(responseID); //transmission_list_type tmissions = transmissionlist_station[station]; *************** *** 2322,2325 **** --- 2480,2484 ---- // Replace all the '@' parameters with the actual text. int check = 0; // If mes gets overflowed the while loop can go infinite + double gp = fgGetFloat("/gear/gear/position-norm"); while ( strchr(&mes[0], crej) != NULL ) { // ie. loop until no more occurances of crej ('@') found pos = strchr( &mes[0], crej ); *************** *** 2365,2368 **** --- 2524,2540 ---- */ } + else if ( strcmp ( tag, "@AT" ) == 0 ) { // ATIS ID + /* + char buf[10]; + sprintf( buf, "%i", (int)(tpars.heading) ); + strcat( &dum[0], &buf[0] ); + */ + double f = globals->get_ATC_mgr()->GetFrequency(ident, ATIS) / 100.0; + if(f) { + string atis_id; + atis_id = ", information " + GetATISID(); + strcat( &dum[0], atis_id.c_str() ); + } + } else if ( strcmp ( tag, "@VD" ) == 0 ) { /* *************** *** 2388,2391 **** --- 2560,2577 ---- */ } + else if ( strcmp ( tag, "@TO" ) == 0 ) { // Requesting take-off or departure clearance + string tmp; + if (rwyOccupied) { + tmp = "Ready for take-off"; + } else { + if (OnAnyRunway(Point3D(user_lon_node->getDoubleValue(), + user_lat_node->getDoubleValue(), 0.0),true)) { + tmp = "Request take-off clearance"; + } else { + tmp = "Request departure clearance"; + } + } + strcat(&dum[0], tmp.c_str()); + } else if ( strcmp ( tag, "@MI" ) == 0 ) { char buf[10]; *************** *** 2404,2408 **** else if ( strcmp ( tag, "@RW" ) == 0 ) { strcat(&dum[0], ConvertRwyNumToSpokenString(activeRwy).c_str()); ! } else if(strcmp(tag, "@CD") == 0) { // @CD = compass direction double h = GetHeadingFromTo(Point3D(lon, lat, elev), Point3D(user_lon_node->getDoubleValue(), user_lat_node->getDoubleValue(), user_elev_node->getDoubleValue())); while(h < 0.0) h += 360.0; --- 2590,2600 ---- else if ( strcmp ( tag, "@RW" ) == 0 ) { strcat(&dum[0], ConvertRwyNumToSpokenString(activeRwy).c_str()); ! } ! else if ( strcmp ( tag, "@GR" ) == 0 ) { // Gear position (on final) ! if(t->gearWasUp && gp > 0.99) { ! strcat(&dum[0], ", gear down, ready to land."); ! } ! } ! else if(strcmp(tag, "@CD") == 0) { // @CD = compass direction double h = GetHeadingFromTo(Point3D(lon, lat, elev), Point3D(user_lon_node->getDoubleValue(), user_lat_node->getDoubleValue(), user_elev_node->getDoubleValue())); while(h < 0.0) h += 360.0; *************** *** 2443,2448 **** //} //} ! if ( mes[0] ) return mes; ! else return "No transmission found"; } --- 2635,2668 ---- //} //} ! return mes[0] ? mes : "No transmission found"; ! } ! ! string FGTower::GetWeather() { ! std::ostringstream msg; ! ! // wind ! double hdg = wind_from_hdg->getDoubleValue(); ! double speed = wind_speed_knots->getDoubleValue(); ! if (speed==0) ! msg << "wind calm"; ! else ! msg << "wind " << int(hdg) << " degrees at " << int(speed) << " knots"; ! ! // visibility ! double visibility = fgGetDouble("/environment/visibility-m"); ! if (visibility < 10000) ! msg << ", visibility " << int(visibility / 1609) << " miles"; ! ! // pressure / altimeter ! double pressure = fgGetDouble("/environment/pressure-sea-level-inhg"); ! msg << ", QFE " << fixed << setprecision(2) << pressure << "."; ! ! return msg.str(); ! } ! ! string FGTower::GetATISID() { ! int hours = fgGetInt("/sim/time/utc/hour"); ! int phonetic_id = current_commlist->GetCallSign(ident, hours, 0); ! return GetPhoneticIdent(phonetic_id); } Index: tower.hxx =================================================================== RCS file: /var/cvs/FlightGear-0.9/FlightGear/src/ATC/tower.hxx,v retrieving revision 1.34 retrieving revision 1.34.2.1 diff -C 2 -r1.34 -r1.34.2.1 *** tower.hxx 11 Jun 2006 10:21:10 -0000 1.34 --- tower.hxx 31 Jan 2008 22:38:32 -0000 1.34.2.1 *************** *** 61,65 **** USER_REPORT_DOWNWIND = 6, USER_REPORT_RWY_VACATED = 7, ! USER_REPORT_GOING_AROUND = 8 }; --- 61,66 ---- USER_REPORT_DOWNWIND = 6, USER_REPORT_RWY_VACATED = 7, ! USER_REPORT_GOING_AROUND = 8, ! USER_REQUEST_TAKE_OFF = 9 }; *************** *** 88,91 **** --- 89,93 ---- // ought to add time cleared to depart so we can nag if necessary bool holdShortReported; + bool lineUpReported; bool downwindReported; bool longFinalReported; *************** *** 99,102 **** --- 101,106 ---- bool onRwy; // is physically on the runway bool nextOnRwy; // currently projected by tower to be the next on the runway + bool gearWasUp; // Tell to ATC about gear + bool gearUpReported; // Tell to pilot about landing gear bool vfrArrivalReported; *************** *** 140,143 **** --- 144,148 ---- void RequestDepartureClearance(const string& ID); + void RequestTakeOffClearance(const string& ID); void ReportFinal(const string& ID); void ReportLongFinal(const string& ID); *************** *** 178,184 **** string GenText(const string& m, int c); private: ! FGATCMgr* ATCmgr; // This is purely for synactic convienience to avoid writing globals->get_ATC_mgr()-> all through the code! --- 183,191 ---- string GenText(const string& m, int c); + string GetWeather(); + string GetATISID(); private: ! FGATCMgr* ATCmgr; // This is purely for synactic convienience to avoid writing globals->get_ATC_mgr()-> all through the code! *************** *** 214,218 **** // Figure out if a given position lies on a runway or not ! bool OnAnyRunway(const Point3D& pt); // Calculate the eta of a plane to the threshold. --- 221,225 ---- // Figure out if a given position lies on a runway or not ! bool OnAnyRunway(const Point3D& pt, bool onGround); // Calculate the eta of a plane to the threshold. *************** *** 256,259 **** --- 263,267 ---- bool rwyOccupied; // Active runway occupied flag. For now we'll disregard land-and-hold-short operations. FGATCAlignedProjection ortho; // Orthogonal mapping of the local area with the active runway threshold at the origin + FGATCAlignedProjection ortho_temp; // Ortho for any runway (needed to get plane position in airport) // Figure out which runways are active. *************** *** 320,323 **** --- 328,333 ---- // Add to vacated list only if not already present void AddToVacatedList(TowerPlaneRec* t); + + void AddToHoldingList(TowerPlaneRec* t); // Ground can be separate or handled by tower in real life. |
From: Melchior Franz <mfranz@fl...> - 2008-01-31 22:50:29
|
Update of /var/cvs/FlightGear-0.9/FlightGear/src/ATC In directory baron:/tmp/cvs-serv22759 Modified Files: tower.cxx tower.hxx Log Message: Daniyar ATADJANOV: This patch contains bugfixes from my previous patch (i made mistakes when using "diff" utility last time): 1. Now ATC do not tells us to go around because of traffic on RWy, when that traffic is WE. 2. Now ATC don't say that we must follow ourself (like "GFS, number two, follow GFS on final"). And new Tower-ATC features: 1. Requesting departure clearance. When you are on taxiway, you can request departure clearance. Tower will answer with something like: "Line up runway two eight right". TODO: check if any AI-Planes on final and tell something like: "After the landing AI-CALLSIGN line up runway two eight right". 2. Requesting take-off clearance. If you are on runway, you can tell to ATC that you are ready for take-off. So, Tower will tell you that you are cleared for take-off (or immediate take-off). 3. Reporting landing gear position on final by pilot. If you are on aircraft, which landing gear can be UP, when reporting final you will tell "Gear down, ready to land". 4. Reporting landing gear position on final by ATC. When i was newbie and was flying on Cessna 310, i ALWAYS forgot landing gears on final. Now if you are on final and forgot landing gear, Tower will tell you: "LANDING GEAR APPEARS UP" or "Check wheels down and locked". So you will have some time to push gear down or execute missed approach ;) 5. ATIS phonetic ID in requesting landing message. In FG pilots says: "for full stop with ATIS" everytime (when airport doesn't have ATIS too). But in real life pilot saying phonetic ID of ATIS message. Now we have: "for full stop, information alpha ... / ... zulu". If airport doesn't have ATIS, pilot don't say this. TODO: add this feature to AI-Planes too. 6. Advising weather condition in airport by Tower. If you are requesting take-off or landing in airport that doesn't have ATIS service, Tower will tell you about wind direction and speed, visibility and QFE. 7. Reporting downwind if missed approach. When some AI-Plane is on final FG's ATC tell you to "continue approach". And then you lost radio transmission. Now ATC says: "continue approach and report left/right downwind". And now we have "Report Downwind" entry (button) in "ATC Communication" form. Index: tower.cxx =================================================================== RCS file: /var/cvs/FlightGear-0.9/FlightGear/src/ATC/tower.cxx,v retrieving revision 1.61 retrieving revision 1.62 diff -C 2 -r1.61 -r1.62 *** tower.cxx 27 Oct 2007 19:16:39 -0000 1.61 --- tower.cxx 31 Jan 2008 22:33:32 -0000 1.62 *************** *** 4,7 **** --- 4,8 ---- // // Copyright (C) 2002 David C. Luff - david.luff@... + // Copyright (C) 2008 Daniyar Atadjanov (ground clearance, gear check, weather, etc.) // // This program is free software; you can redistribute it and/or *************** *** 29,36 **** #endif #include <Main/globals.hxx> #include <Airports/runways.hxx> - #include <simgear/math/sg_geodesy.hxx> - #include <simgear/debug/logstream.hxx> #include "tower.hxx" --- 30,43 ---- #endif + #include <sstream> + #include <iomanip> + + #include <simgear/debug/logstream.hxx> + #include <simgear/math/sg_geodesy.hxx> + #include <simgear/math/sg_random.h> + #include <simgear/misc/sg_path.hxx> + #include <Main/globals.hxx> #include <Airports/runways.hxx> #include "tower.hxx" *************** *** 41,44 **** --- 48,52 ---- #include "AILocalTraffic.hxx" + SG_USING_STD(cout); *************** *** 51,54 **** --- 59,63 ---- clearedToTakeOff(false), holdShortReported(false), + lineUpReported(false), downwindReported(false), longFinalReported(false), *************** *** 67,70 **** --- 76,81 ---- leg(LEG_UNKNOWN), landingType(AIP_LT_UNKNOWN), + gearWasUp(false), + gearUpReported(false), isUser(false) { *************** *** 78,81 **** --- 89,93 ---- clearedToTakeOff(false), holdShortReported(false), + lineUpReported(false), downwindReported(false), longFinalReported(false), *************** *** 94,97 **** --- 106,111 ---- leg(LEG_UNKNOWN), landingType(AIP_LT_UNKNOWN), + gearWasUp(false), + gearUpReported(false), isUser(false) { *************** *** 105,108 **** --- 119,123 ---- clearedToTakeOff(false), holdShortReported(false), + lineUpReported(false), downwindReported(false), longFinalReported(false), *************** *** 121,124 **** --- 136,141 ---- leg(LEG_UNKNOWN), landingType(AIP_LT_UNKNOWN), + gearWasUp(false), + gearUpReported(false), isUser(false) { *************** *** 133,136 **** --- 150,154 ---- clearedToTakeOff(false), holdShortReported(false), + lineUpReported(false), downwindReported(false), longFinalReported(false), *************** *** 149,152 **** --- 167,172 ---- leg(LEG_UNKNOWN), landingType(AIP_LT_UNKNOWN), + gearWasUp(false), + gearUpReported(false), isUser(false) { *************** *** 289,292 **** --- 309,314 ---- } + RemoveAllUserDialogOptions(); + // TODO - attempt to get a departure control pointer to see if we need to hand off departing traffic to departure. *************** *** 299,303 **** // TODO - this currently assumes only one active runway. rwyOccupied = OnActiveRunway(Point3D(user_lon_node->getDoubleValue(), user_lat_node->getDoubleValue(), 0.0)); ! if(rwyOccupied) { //cout << "User found on active runway\n"; // Assume the user is started at the threshold ready to take-off --- 321,331 ---- // TODO - this currently assumes only one active runway. rwyOccupied = OnActiveRunway(Point3D(user_lon_node->getDoubleValue(), user_lat_node->getDoubleValue(), 0.0)); ! ! if(!OnAnyRunway(Point3D(user_lon_node->getDoubleValue(), user_lat_node->getDoubleValue(), 0.0), false)) { ! //cout << ident << " ADD 0\n"; ! current_atcdialog->add_entry(ident, "@AP Tower, @CS @MI miles @CD of the airport for full stop@...", ! "Contact tower for VFR arrival (full stop)", TOWER, ! (int)USER_REQUEST_VFR_ARRIVAL_FULL_STOP); ! } else { //cout << "User found on active runway\n"; // Assume the user is started at the threshold ready to take-off *************** *** 310,325 **** t->isUser = true; t->planePtr = NULL; ! t->clearedToTakeOff = true; rwyList.push_back(t); rwyListItr = rwyList.begin(); departed = false; ! } else { ! //cout << "User not on active runway\n"; ! // For now assume that this means the user is not at the airport and is in the air. ! // TODO FIXME - this will break when user starts on apron, at hold short, etc. ! if(!OnAnyRunway(Point3D(user_lon_node->getDoubleValue(), user_lat_node->getDoubleValue(), 0.0))) { ! //cout << ident << " ADD 0\n"; ! current_atcdialog->add_entry(ident, "@AP Tower, @CS @MI miles @CD of the airport for full stop with ATIS", "Contact tower for VFR arrival (full stop)", TOWER, (int)USER_REQUEST_VFR_ARRIVAL_FULL_STOP); ! } } } --- 338,347 ---- t->isUser = true; t->planePtr = NULL; ! t->clearedToTakeOff = false; rwyList.push_back(t); rwyListItr = rwyList.begin(); departed = false; ! current_atcdialog->add_entry(ident, "@CS @TO", "Request departure / take-off clearance", ! TOWER, (int)USER_REQUEST_TAKE_OFF); } } *************** *** 447,451 **** void FGTower::ReceiveUserCallback(int code) { if(code == (int)USER_REQUEST_VFR_DEPARTURE) { ! //cout << "User requested departure\n"; } else if(code == (int)USER_REQUEST_VFR_ARRIVAL) { VFRArrivalContact("USER"); --- 469,473 ---- void FGTower::ReceiveUserCallback(int code) { if(code == (int)USER_REQUEST_VFR_DEPARTURE) { ! RequestDepartureClearance("USER"); } else if(code == (int)USER_REQUEST_VFR_ARRIVAL) { VFRArrivalContact("USER"); *************** *** 463,466 **** --- 485,490 ---- } else if(code == (int)USER_REPORT_GOING_AROUND) { ReportGoingAround("USER"); + } else if(code == (int)USER_REQUEST_TAKE_OFF) { + RequestTakeOffClearance("USER"); } } *************** *** 484,492 **** // Later on we might check the actual heading and direct some of those to enter on downwind or base. Point3D op = ortho.ConvertToLocal(t->pos); if(op.y() < -1000) { trns += " Report three mile straight-in runway "; t->opType = STRAIGHT_IN; if(t->isUser) { ! current_atcdialog->add_entry(ident, "@AP Tower, @CS @MI mile final Runway @RW", "Report Final", TOWER, (int)USER_REPORT_3_MILE_FINAL); } else { t->planePtr->RegisterTransmission(14); --- 508,519 ---- // Later on we might check the actual heading and direct some of those to enter on downwind or base. Point3D op = ortho.ConvertToLocal(t->pos); + float gp = fgGetFloat("/gear/gear/position-norm"); + if(gp < 1) + t->gearWasUp = true; // This will be needed on final to tell "Gear down, ready to land." if(op.y() < -1000) { trns += " Report three mile straight-in runway "; t->opType = STRAIGHT_IN; if(t->isUser) { ! current_atcdialog->add_entry(ident, "@CS @MI mile final runway @RW@...", "Report Final", TOWER, (int)USER_REPORT_3_MILE_FINAL); } else { t->planePtr->RegisterTransmission(14); *************** *** 520,523 **** --- 547,585 ---- ProcessDownwindReport(t); t->downwindReported = false; + } else if(t->lineUpReported) { + string trns = t->plane.callsign; + if(rwyOccupied) { + double f = globals->get_ATC_mgr()->GetFrequency(ident, ATIS) / 100.0; + string wtr; + if(!f) { + wtr = ", " + GetWeather(); + } + trns += " Cleared for take-off" + wtr; + t->clearedToTakeOff = true; + } else { + if(!OnAnyRunway(Point3D(user_lon_node->getDoubleValue(), user_lat_node->getDoubleValue(), 0.0), true)) { + // TODO: Check if any AI Planes on final and tell something like: "After the landing CALLSIGN line up runway two eight right" + trns += " Line up runway " + ConvertRwyNumToSpokenString(activeRwy); + t->clearedToTakeOff = false; + current_atcdialog->add_entry(ident, "@CS @TO", "Report ready for take-off", TOWER, (int)USER_REQUEST_TAKE_OFF); + + } else { + sg_srandom_time(); + if((int(sg_random() * 10) + 1) != 3) { + t->clearedToTakeOff = true; + trns += " Cleared immediate take-off "; + } else { + t->clearedToTakeOff = false; + trns += " Negative, departure runway " + ConvertRwyNumToSpokenString(activeRwy); + } + } + } + if(_display) { + pending_transmission = trns; + Transmit(); + } else { + //cout << "Not displaying, trns was " << trns << '\n'; + } + t->lineUpReported = false; } else if(t->holdShortReported) { //cout << "Tower " << ident << " is reponding to holdShortReported...\n"; *************** *** 563,567 **** trns += " cleared to land "; } else { ! trns += " cleared for the option "; } // TODO - add winds --- 625,636 ---- trns += " cleared to land "; } else { ! double f = globals->get_ATC_mgr()->GetFrequency(ident, ATIS) / 100.0; ! string wtr; ! if(!f) { ! wtr = ", " + GetWeather(); ! } else { ! wtr = ", runway " + ConvertRwyNumToSpokenString(activeRwy); ! } ! trns += " cleared to land" + wtr; } // TODO - add winds *************** *** 583,586 **** --- 652,664 ---- } else { trns += " continue approach"; + trns += " and report "; + trns += ((rwy.patternDirection == 1) ? "right " : "left "); + trns += "downwind runway " + ConvertRwyNumToSpokenString(activeRwy); + t->opType = CIRCUIT; + if(t->isUser) { + current_atcdialog->add_entry(ident, "@AP Tower, @CS Downwind @RW", "Report Downwind", TOWER, (int)USER_REPORT_DOWNWIND); + } else { + t->planePtr->RegisterTransmission(15); + } t->clearedToLand = false; } *************** *** 617,621 **** TowerPlaneRec* tf = NULL; for(tower_plane_rec_list_iterator twrItr = appList.begin(); twrItr != appList.end(); twrItr++) { ! if((*twrItr)->eta < (t->eta + 45)) { a++; tf = *twrItr; --- 695,699 ---- TowerPlaneRec* tf = NULL; for(tower_plane_rec_list_iterator twrItr = appList.begin(); twrItr != appList.end(); twrItr++) { ! if((*twrItr)->eta < (t->eta + 45) && strcmp((*twrItr)->plane.callsign.c_str(), t->plane.callsign.c_str()) != 0) { // don't let ATC ask you to follow yourself a++; tf = *twrItr; *************** *** 734,738 **** if(0) { // FIXME //if(timeSinceLastDeparture <= 60.0 && departed == true) { ! trns += " line up"; t->clearedToLineUp = true; t->planePtr->RegisterTransmission(3); // cleared to line-up --- 812,816 ---- if(0) { // FIXME //if(timeSinceLastDeparture <= 60.0 && departed == true) { ! trns += " line up runway " + ConvertRwyNumToSpokenString(activeRwy); t->clearedToLineUp = true; t->planePtr->RegisterTransmission(3); // cleared to line-up *************** *** 856,860 **** //cout << "timeSinceLastDeparture = " << timeSinceLastDeparture << '\n'; if(rwyOccupied) { ! // Do nothing } else if(timeSinceLastDeparture <= 60.0 && departed == true) { // Do nothing - this is a bit of a hack - should maybe do line up be ready here --- 934,939 ---- //cout << "timeSinceLastDeparture = " << timeSinceLastDeparture << '\n'; if(rwyOccupied) { ! RemoveAllUserDialogOptions(); ! current_atcdialog->add_entry(ident, "@CS Ready for take-off", "Request take-off clearance", TOWER, (int)USER_REQUEST_TAKE_OFF); } else if(timeSinceLastDeparture <= 60.0 && departed == true) { // Do nothing - this is a bit of a hack - should maybe do line up be ready here *************** *** 1061,1076 **** // or stationary near the start [V. BAD!!]. // For now this should stop the AI plane landing on top of the user. ! string trns = t->plane.callsign; ! trns += " GO AROUND TRAFFIC ON RUNWAY I REPEAT GO AROUND"; ! pending_transmission = trns; ! ImmediateTransmit(); ! t->instructedToGoAround = true; ! t->clearedToLand = false; ! // Assume it complies!!! ! t->opType = CIRCUIT; ! t->leg = CLIMBOUT; ! if(t->planePtr) { ! //cout << "Registering Go-around transmission with AI plane\n"; ! t->planePtr->RegisterTransmission(13); } } else if(!t->clearedToLand) { --- 1140,1166 ---- // or stationary near the start [V. BAD!!]. // For now this should stop the AI plane landing on top of the user. ! tower_plane_rec_list_iterator twrItr; ! twrItr = rwyList.begin(); ! TowerPlaneRec* tpr = *twrItr; ! if(strcmp(tpr->plane.callsign.c_str(), t->plane.callsign.c_str()) == 0 ! && rwyList.size() == 1) { ! // Fixing bug when ATC says that we must go around because of traffic on rwy ! // but that traffic is our plane! In future we can use this expression ! // for other ATC-messages like "On ground at 46, vacate left." ! ! } else { ! string trns = t->plane.callsign; ! trns += " GO AROUND TRAFFIC ON RUNWAY I REPEAT GO AROUND"; ! pending_transmission = trns; ! ImmediateTransmit(); ! t->instructedToGoAround = true; ! t->clearedToLand = false; ! // Assume it complies!!! ! t->opType = CIRCUIT; ! t->leg = CLIMBOUT; ! if(t->planePtr) { ! //cout << "Registering Go-around transmission with AI plane\n"; ! t->planePtr->RegisterTransmission(13); ! } } } else if(!t->clearedToLand) { *************** *** 1206,1209 **** --- 1296,1300 ---- doThresholdETACalc(); // We need this here because planes in the lists are not guaranteed to *always* have the correct ETA //cout << "eta is " << t->eta << ", rwy is " << (rwyList.size() ? "occupied " : "clear ") << '\n'; + Point3D tortho = ortho.ConvertToLocal(t->pos); if(t->eta < 12 && rwyList.size() && !(t->instructedToGoAround)) { // TODO - need to make this more sophisticated *************** *** 1211,1232 **** // or stationary near the start [V. BAD!!]. // For now this should stop the AI plane landing on top of the user. ! string trns = t->plane.callsign; ! trns += " GO AROUND TRAFFIC ON RUNWAY I REPEAT GO AROUND"; ! pending_transmission = trns; ! ImmediateTransmit(); ! t->instructedToGoAround = true; ! t->clearedToLand = false; ! t->nextOnRwy = false; // But note this is recalculated so don't rely on it ! // Assume it complies!!! ! t->opType = CIRCUIT; ! t->leg = CLIMBOUT; ! if(!t->isUser) { ! if(t->planePtr) { ! //cout << "Registering Go-around transmission with AI plane\n"; ! t->planePtr->RegisterTransmission(13); ! } } else { ! // TODO - add Go-around ack to comm options, ! // remove report rwy vacated. (possibly). } } else if(t->eta < 90 && !t->clearedToLand) { --- 1302,1349 ---- // or stationary near the start [V. BAD!!]. // For now this should stop the AI plane landing on top of the user. ! tower_plane_rec_list_iterator twrItr; ! twrItr = rwyList.begin(); ! TowerPlaneRec* tpr = *twrItr; ! if(strcmp ( tpr->plane.callsign.c_str(), t->plane.callsign.c_str() ) == 0 && rwyList.size() == 1) { ! // Fixing bug when ATC says that we must go around because of traffic on rwy ! // but that traffic is we! In future we can use this expression ! // for other ATC-messages like "On ground at 46, vacate left." ! } else { ! string trns = t->plane.callsign; ! trns += " GO AROUND TRAFFIC ON RUNWAY I REPEAT GO AROUND"; ! pending_transmission = trns; ! ImmediateTransmit(); ! t->instructedToGoAround = true; ! t->clearedToLand = false; ! t->nextOnRwy = false; // But note this is recalculated so don't rely on it ! // Assume it complies!!! ! t->opType = CIRCUIT; ! t->leg = CLIMBOUT; ! if(!t->isUser) { ! if(t->planePtr) { ! //cout << "Registering Go-around transmission with AI plane\n"; ! t->planePtr->RegisterTransmission(13); ! } ! } else { ! // TODO - add Go-around ack to comm options, ! // remove report rwy vacated. (possibly). ! } ! } ! } else if(t->isUser && t->eta < 90 && tortho.y() > -2500 && t->clearedToLand && t->gearUpReported == false) { ! // Check if gear up or down ! double gp = fgGetFloat("/gear/gear/position-norm"); ! if(gp < 1) { ! string trnsm = t->plane.callsign; ! sg_srandom_time(); ! int rnd = int(sg_random() * 2) + 1; ! if(rnd == 2) { // Random message for more realistic ATC ;) ! trnsm += ", LANDING GEAR APPEARS UP!"; ! } else { ! trnsm += ", Check wheels down and locked."; ! } ! pending_transmission = trnsm; ! ImmediateTransmit(); ! t->gearUpReported = true; } } else if(t->eta < 90 && !t->clearedToLand) { *************** *** 1311,1314 **** --- 1428,1437 ---- else distout = dclGetHorizontalSeparation(Point3D(lon, lat, elev), t->planePtr->GetPos()); //cout << " distout = " << distout << '\n'; + if(t->isUser && !(t->clearedToTakeOff)) { // HACK - we use clearedToTakeOff to check if ATC already contacted with plane (and cleared take-off) or not + if(!OnAnyRunway(Point3D(user_lon_node->getDoubleValue(), user_lat_node->getDoubleValue(), 0.0), false)) { + current_atcdialog->remove_entry(ident, USER_REQUEST_TAKE_OFF, TOWER); + t->clearedToTakeOff = true; // FIXME + } + } if(distout > 10000) { string trns = t->plane.callsign; *************** *** 1320,1324 **** RemoveAllUserDialogOptions(); //cout << "ADD A\n"; ! current_atcdialog->add_entry(ident, "@AP Tower, @CS @MI miles @CD of the airport for full stop with ATIS", "Contact tower for VFR arrival (full stop)", TOWER, (int)USER_REQUEST_VFR_ARRIVAL_FULL_STOP); } else { // Send a clear-of-airspace signal --- 1443,1447 ---- RemoveAllUserDialogOptions(); //cout << "ADD A\n"; ! current_atcdialog->add_entry(ident, "@AP Tower, @CS @MI miles @CD of the airport for full stop@...", "Contact tower for VFR arrival (full stop)", TOWER, (int)USER_REQUEST_VFR_ARRIVAL_FULL_STOP); } else { // Send a clear-of-airspace signal *************** *** 1346,1349 **** --- 1469,1473 ---- current_atcdialog->remove_entry(ident, USER_REPORT_RWY_VACATED, TOWER); current_atcdialog->remove_entry(ident, USER_REPORT_GOING_AROUND, TOWER); + current_atcdialog->remove_entry(ident, USER_REQUEST_TAKE_OFF, TOWER); } *************** *** 1461,1475 **** return((ldiff < rlen) && (wdiff < rwidth)); ! } ! // Figure out if a given position lies on any runway or not // Only call this at startup - reading the runways database is expensive and needs to be fixed! ! bool FGTower::OnAnyRunway(const Point3D& pt) { ATCData ad; ! double dist = current_commlist->FindClosest(lon, lat, elev, ad, TOWER, 10.0); if(dist < 0.0) { return(false); } // Based on the airport-id, go through all the runways and check for a point in them --- 1585,1599 ---- return((ldiff < rlen) && (wdiff < rwidth)); ! } // Figure out if a given position lies on any runway or not // Only call this at startup - reading the runways database is expensive and needs to be fixed! ! bool FGTower::OnAnyRunway(const Point3D& pt, bool onGround) { ATCData ad; ! double dist = current_commlist->FindClosest(lon, lat, elev, ad, TOWER, 7.0); if(dist < 0.0) { return(false); } + // Based on the airport-id, go through all the runways and check for a point in them *************** *** 1483,1491 **** } bool on = false; ! while(runway._id == ad.ident) { on = OnRunway(pt, runway); //cout << "Runway " << runway._rwy_no << ": On = " << (on ? "true\n" : "false\n"); ! if(on) return(true); ! globals->get_runways()->next(&runway); } return(on); --- 1607,1620 ---- } bool on = false; ! while(runway._id == ad.ident) { on = OnRunway(pt, runway); //cout << "Runway " << runway._rwy_no << ": On = " << (on ? "true\n" : "false\n"); ! if(on) { ! if(onGround == false) ! return(true); ! if(runway._rwy_no != "xx") ! return(true); ! } ! globals->get_runways()->next(&runway); } return(on); *************** *** 1685,1688 **** --- 1814,1826 ---- } + void FGTower::AddToHoldingList(TowerPlaneRec* t) { + tower_plane_rec_list_iterator it, end = holdList.end(); + for (it = holdList.begin(); it != end; ++it) { + if ((*it)->plane.callsign == t->plane.callsign) + return; + + holdList.push_back(t); + } + } // Calculate the eta of a plane to the threshold. *************** *** 2058,2061 **** --- 2196,2218 ---- //cout << "Request Departure Clearance called...\n"; } + + void FGTower::RequestTakeOffClearance(const string& ID) { + string uid=ID; + if(ID == "USER") { + uid = fgGetString("/sim/user/callsign"); + current_atcdialog->remove_entry(ident, USER_REQUEST_TAKE_OFF, TOWER); + } + TowerPlaneRec* t = FindPlane(uid); + if(t) { + if(!(t->clearedToTakeOff)) { + departed = false; + t->lineUpReported=true; + responseReqd = true; + } + } + else { + SG_LOG(SG_ATC, SG_WARN, "WARNING: Unable to find plane " << ID << " in FGTower::RequestTakeOffClearance(...)"); + } + } void FGTower::ReportFinal(const string& ID) { *************** *** 2298,2301 **** --- 2455,2459 ---- //FGTransmission t; string usercall = fgGetString("/sim/user/callsign"); + TowerPlaneRec* t = FindPlane(responseID); //transmission_list_type tmissions = transmissionlist_station[station]; *************** *** 2314,2317 **** --- 2472,2476 ---- // Replace all the '@' parameters with the actual text. int check = 0; // If mes gets overflowed the while loop can go infinite + double gp = fgGetFloat("/gear/gear/position-norm"); while ( strchr(&mes[0], crej) != NULL ) { // ie. loop until no more occurances of crej ('@') found pos = strchr( &mes[0], crej ); *************** *** 2357,2360 **** --- 2516,2532 ---- */ } + else if ( strcmp ( tag, "@AT" ) == 0 ) { // ATIS ID + /* + char buf[10]; + sprintf( buf, "%i", (int)(tpars.heading) ); + strcat( &dum[0], &buf[0] ); + */ + double f = globals->get_ATC_mgr()->GetFrequency(ident, ATIS) / 100.0; + if(f) { + string atis_id; + atis_id = ", information " + GetATISID(); + strcat( &dum[0], atis_id.c_str() ); + } + } else if ( strcmp ( tag, "@VD" ) == 0 ) { /* *************** *** 2380,2383 **** --- 2552,2569 ---- */ } + else if ( strcmp ( tag, "@TO" ) == 0 ) { // Requesting take-off or departure clearance + string tmp; + if (rwyOccupied) { + tmp = "Ready for take-off"; + } else { + if (OnAnyRunway(Point3D(user_lon_node->getDoubleValue(), + user_lat_node->getDoubleValue(), 0.0),true)) { + tmp = "Request take-off clearance"; + } else { + tmp = "Request departure clearance"; + } + } + strcat(&dum[0], tmp.c_str()); + } else if ( strcmp ( tag, "@MI" ) == 0 ) { char buf[10]; *************** *** 2396,2400 **** else if ( strcmp ( tag, "@RW" ) == 0 ) { strcat(&dum[0], ConvertRwyNumToSpokenString(activeRwy).c_str()); ! } else if(strcmp(tag, "@CD") == 0) { // @CD = compass direction double h = GetHeadingFromTo(Point3D(lon, lat, elev), Point3D(user_lon_node->getDoubleValue(), user_lat_node->getDoubleValue(), user_elev_node->getDoubleValue())); while(h < 0.0) h += 360.0; --- 2582,2592 ---- else if ( strcmp ( tag, "@RW" ) == 0 ) { strcat(&dum[0], ConvertRwyNumToSpokenString(activeRwy).c_str()); ! } ! else if ( strcmp ( tag, "@GR" ) == 0 ) { // Gear position (on final) ! if(t->gearWasUp && gp > 0.99) { ! strcat(&dum[0], ", gear down, ready to land."); ! } ! } ! else if(strcmp(tag, "@CD") == 0) { // @CD = compass direction double h = GetHeadingFromTo(Point3D(lon, lat, elev), Point3D(user_lon_node->getDoubleValue(), user_lat_node->getDoubleValue(), user_elev_node->getDoubleValue())); while(h < 0.0) h += 360.0; *************** *** 2435,2440 **** //} //} ! if ( mes[0] ) return mes; ! else return "No transmission found"; } --- 2627,2660 ---- //} //} ! return mes[0] ? mes : "No transmission found"; ! } ! ! string FGTower::GetWeather() { ! std::ostringstream msg; ! ! // wind ! double hdg = wind_from_hdg->getDoubleValue(); ! double speed = wind_speed_knots->getDoubleValue(); ! if (speed==0) ! msg << "wind calm"; ! else ! msg << "wind " << int(hdg) << " degrees at " << int(speed) << " knots"; ! ! // visibility ! double visibility = fgGetDouble("/environment/visibility-m"); ! if (visibility < 10000) ! msg << ", visibility " << int(visibility / 1609) << " miles"; ! ! // pressure / altimeter ! double pressure = fgGetDouble("/environment/pressure-sea-level-inhg"); ! msg << ", QFE " << fixed << setprecision(2) << pressure << "."; ! ! return msg.str(); ! } ! ! string FGTower::GetATISID() { ! int hours = fgGetInt("/sim/time/utc/hour"); ! int phonetic_id = current_commlist->GetCallSign(ident, hours, 0); ! return GetPhoneticIdent(phonetic_id); } Index: tower.hxx =================================================================== RCS file: /var/cvs/FlightGear-0.9/FlightGear/src/ATC/tower.hxx,v retrieving revision 1.34 retrieving revision 1.35 diff -C 2 -r1.34 -r1.35 *** tower.hxx 11 Jun 2006 10:21:10 -0000 1.34 --- tower.hxx 31 Jan 2008 22:33:33 -0000 1.35 *************** *** 61,65 **** USER_REPORT_DOWNWIND = 6, USER_REPORT_RWY_VACATED = 7, ! USER_REPORT_GOING_AROUND = 8 }; --- 61,66 ---- USER_REPORT_DOWNWIND = 6, USER_REPORT_RWY_VACATED = 7, ! USER_REPORT_GOING_AROUND = 8, ! USER_REQUEST_TAKE_OFF = 9 }; *************** *** 88,91 **** --- 89,93 ---- // ought to add time cleared to depart so we can nag if necessary bool holdShortReported; + bool lineUpReported; bool downwindReported; bool longFinalReported; *************** *** 99,102 **** --- 101,106 ---- bool onRwy; // is physically on the runway bool nextOnRwy; // currently projected by tower to be the next on the runway + bool gearWasUp; // Tell to ATC about gear + bool gearUpReported; // Tell to pilot about landing gear bool vfrArrivalReported; *************** *** 140,143 **** --- 144,148 ---- void RequestDepartureClearance(const string& ID); + void RequestTakeOffClearance(const string& ID); void ReportFinal(const string& ID); void ReportLongFinal(const string& ID); *************** *** 178,184 **** string GenText(const string& m, int c); private: ! FGATCMgr* ATCmgr; // This is purely for synactic convienience to avoid writing globals->get_ATC_mgr()-> all through the code! --- 183,191 ---- string GenText(const string& m, int c); + string GetWeather(); + string GetATISID(); private: ! FGATCMgr* ATCmgr; // This is purely for synactic convienience to avoid writing globals->get_ATC_mgr()-> all through the code! *************** *** 214,218 **** // Figure out if a given position lies on a runway or not ! bool OnAnyRunway(const Point3D& pt); // Calculate the eta of a plane to the threshold. --- 221,225 ---- // Figure out if a given position lies on a runway or not ! bool OnAnyRunway(const Point3D& pt, bool onGround); // Calculate the eta of a plane to the threshold. *************** *** 256,259 **** --- 263,267 ---- bool rwyOccupied; // Active runway occupied flag. For now we'll disregard land-and-hold-short operations. FGATCAlignedProjection ortho; // Orthogonal mapping of the local area with the active runway threshold at the origin + FGATCAlignedProjection ortho_temp; // Ortho for any runway (needed to get plane position in airport) // Figure out which runways are active. *************** *** 320,323 **** --- 328,333 ---- // Add to vacated list only if not already present void AddToVacatedList(TowerPlaneRec* t); + + void AddToHoldingList(TowerPlaneRec* t); // Ground can be separate or handled by tower in real life. |
From: Syd Adams <sydadams@fl...> - 2008-01-31 07:48:42
|
Update of /var/cvs/FlightGear-0.9/data/Aircraft/dhc6/Models In directory baron:/tmp/cvs-serv2168/Aircraft/dhc6/Models Modified Files: DHC6.xml DHC6F.xml dhc-6.ac dhc-6F.ac paint2.rgb panel.rgb Log Message: added yokes, pedals ... Cockpit updates... Index: DHC6.xml =================================================================== RCS file: /var/cvs/FlightGear-0.9/data/Aircraft/dhc6/Models/DHC6.xml,v retrieving revision 1.2 retrieving revision 1.3 diff -C 2 -r1.2 -r1.3 *** DHC6.xml 28 Jan 2008 08:10:14 -0000 1.2 --- DHC6.xml 31 Jan 2008 07:23:08 -0000 1.3 *************** *** 510,513 **** --- 510,567 ---- <animation> <type>rotate</type> + <object-name>Yoke</object-name> + <object-name>Yoke1</object-name> + <object-name>Yoke2</object-name> + <property>controls/flight/elevator</property> + <factor>10.0</factor> + <center> + <x-m>-3.663</x-m> + <y-m>0</y-m> + <z-m>-0.401</z-m> + </center> + <axis> + <x>0</x> + <y>-1</y> + <z>0</z> + </axis> + </animation> + + <animation> + <type>rotate</type> + <object-name>Yoke1</object-name> + <property>controls/flight/aileron</property> + <factor>40.0</factor> + <center> + <x-m>-3.644</x-m> + <y-m>-0.516</y-m> + <z-m>0.267</z-m> + </center> + <axis> + <x>-1</x> + <y>0</y> + <z>0</z> + </axis> + </animation> + + <animation> + <type>rotate</type> + <object-name>Yoke2</object-name> + <property>controls/flight/aileron</property> + <factor>40.0</factor> + <center> + <x-m>-3.644</x-m> + <y-m>0.491</y-m> + <z-m>0.267</z-m> + </center> + <axis> + <x>-1</x> + <y>0</y> + <z>0</z> + </axis> + </animation> + + + <animation> + <type>rotate</type> <object-name>Elevator</object-name> <property>controls/flight/elevator</property> Index: DHC6F.xml =================================================================== RCS file: /var/cvs/FlightGear-0.9/data/Aircraft/dhc6/Models/DHC6F.xml,v retrieving revision 1.2 retrieving revision 1.3 diff -C 2 -r1.2 -r1.3 *** DHC6F.xml 30 Jan 2008 06:44:09 -0000 1.2 --- DHC6F.xml 31 Jan 2008 07:23:08 -0000 1.3 *************** *** 507,510 **** --- 507,563 ---- <animation> <type>rotate</type> + <object-name>Yoke</object-name> + <object-name>Yoke1</object-name> + <object-name>Yoke2</object-name> + <property>controls/flight/elevator</property> + <factor>10.0</factor> + <center> + <x-m>-3.663</x-m> + <y-m>0</y-m> + <z-m>-0.401</z-m> + </center> + <axis> + <x>0</x> + <y>-1</y> + <z>0</z> + </axis> + </animation> + + <animation> + <type>rotate</type> + <object-name>Yoke1</object-name> + <property>controls/flight/aileron</property> + <factor>40.0</factor> + <center> + <x-m>-3.644</x-m> + <y-m>-0.516</y-m> + <z-m>0.267</z-m> + </center> + <axis> + <x>-1</x> + <y>0</y> + <z>0</z> + </axis> + </animation> + + <animation> + <type>rotate</type> + <object-name>Yoke2</object-name> + <property>controls/flight/aileron</property> + <factor>40.0</factor> + <center> + <x-m>-3.644</x-m> + <y-m>0.491</y-m> + <z-m>0.267</z-m> + </center> + <axis> + <x>-1</x> + <y>0</y> + <z>0</z> + </axis> + </animation> + + <animation> + <type>rotate</type> <object-name>Elevator</object-name> <property>controls/flight/elevator</property> Index: dhc-6.ac =================================================================== RCS file: /var/cvs/FlightGear-0.9/data/Aircraft/dhc6/Models/dhc-6.ac,v retrieving revision 1.2 retrieving revision 1.3 diff -C 2 -r1.2 -r1.3 *** dhc-6.ac 30 Jan 2008 06:44:09 -0000 1.2 --- dhc-6.ac 31 Jan 2008 07:23:08 -0000 1.3 *************** *** 10,14 **** MATERIAL "flat.001" rgb 0 0 0 amb 0.5 0.5 0.5 emis 0 0 0 spec 0 0 0 shi 0 trans 0 OBJECT world ! kids 78 OBJECT poly name "Baggage.door" --- 10,14 ---- MATERIAL "flat.001" rgb 0 0 0 amb 0.5 0.5 0.5 emis 0 0 0 spec 0 0 0 shi 0 trans 0 OBJECT world ! kids 89 OBJECT poly [...124176 lines suppressed...] ! mat 1 ! refs 3 ! 237 0.0183909963816 0.984887897968 ! 221 0.0148094687611 0.988451242447 ! 234 0.0148094687611 0.983404994011 ! SURF 0x10 ! mat 1 ! refs 3 ! 222 0.0198745317757 0.988467395306 ! 221 0.0148094687611 0.988451242447 ! 237 0.0183909963816 0.984887897968 SURF 0x10 mat 1 refs 4 ! 236 0.0218349136412 0.981493473053 ! 223 0.0247449539602 0.988515377045 ! 222 0.0198745317757 0.988467395306 ! 237 0.0183909963816 0.984887897968 kids 0 OBJECT poly Index: dhc-6F.ac =================================================================== RCS file: /var/cvs/FlightGear-0.9/data/Aircraft/dhc6/Models/dhc-6F.ac,v retrieving revision 1.2 retrieving revision 1.3 diff -C 2 -r1.2 -r1.3 *** dhc-6F.ac 30 Jan 2008 06:44:09 -0000 1.2 --- dhc-6F.ac 31 Jan 2008 07:23:09 -0000 1.3 *************** *** 10,14 **** MATERIAL "flat.001" rgb 0 0 0 amb 0.5 0.5 0.5 emis 0 0 0 spec 0 0 0 shi 0 trans 0 OBJECT world ! kids 80 OBJECT poly name "Baggage.door" --- 10,14 ---- MATERIAL "flat.001" rgb 0 0 0 amb 0.5 0.5 0.5 emis 0 0 0 spec 0 0 0 shi 0 trans 0 OBJECT world ! kids 91 OBJECT poly [...123291 lines suppressed...] ! mat 1 ! refs 3 ! 237 0.0183909963816 0.984887897968 ! 221 0.0148094687611 0.988451242447 ! 234 0.0148094687611 0.983404994011 ! SURF 0x10 ! mat 1 ! refs 3 ! 222 0.0198745317757 0.988467395306 ! 221 0.0148094687611 0.988451242447 ! 237 0.0183909963816 0.984887897968 SURF 0x10 mat 1 refs 4 ! 236 0.0218349136412 0.981493473053 ! 223 0.0247449539602 0.988515377045 ! 222 0.0198745317757 0.988467395306 ! 237 0.0183909963816 0.984887897968 kids 0 OBJECT poly Index: paint2.rgb =================================================================== RCS file: /var/cvs/FlightGear-0.9/data/Aircraft/dhc6/Models/paint2.rgb,v retrieving revision 1.1 retrieving revision 1.2 diff -C 2 -r1.1 -r1.2 Binary files /tmp/cvsoNqcX3 and /tmp/cvsoVA3o0 differ Index: panel.rgb =================================================================== RCS file: /var/cvs/FlightGear-0.9/data/Aircraft/dhc6/Models/panel.rgb,v retrieving revision 1.1 retrieving revision 1.2 diff -C 2 -r1.1 -r1.2 Binary files /tmp/cvsF0yq5e and /tmp/cvsxGGoWl differ |
From: Syd Adams <sydadams@fl...> - 2008-01-31 07:48:37
|
Update of /var/cvs/FlightGear-0.9/data/Aircraft/dhc6 In directory baron:/tmp/cvs-serv2168/Aircraft/dhc6 Modified Files: dhc6F.xml Log Message: added yokes, pedals ... Cockpit updates... Index: dhc6F.xml =================================================================== RCS file: /var/cvs/FlightGear-0.9/data/Aircraft/dhc6/dhc6F.xml,v retrieving revision 1.2 retrieving revision 1.3 diff -C 2 -r1.2 -r1.3 *** dhc6F.xml 30 Jan 2008 06:44:08 -0000 1.2 --- dhc6F.xml 31 Jan 2008 07:23:08 -0000 1.3 *************** *** 178,182 **** </gear> ! <!-- The Floats on solid ground--> <gear x="3.75" y="1.75" z="-2.2" compression="0.4" spring = "10" sfric = "1.5" dfric = "1.3" skid="1" ignored-by-solver="1"> --- 178,182 ---- </gear> ! <!-- The Floats on solid ground--> <gear x="3.75" y="1.75" z="-2.2" compression="0.4" spring = "10" sfric = "1.5" dfric = "1.3" skid="1" ignored-by-solver="1"> |
From: Melchior Franz <mfranz@fl...> - 2008-01-30 22:06:04
|
Update of /var/cvs/FlightGear-0.9/data/Nasal In directory baron:/tmp/cvs-serv23351 Modified Files: controls.nas Log Message: make axis wrappers a tad faster (and a whole lot cooler :-) Index: controls.nas =================================================================== RCS file: /var/cvs/FlightGear-0.9/data/Nasal/controls.nas,v retrieving revision 1.29 retrieving revision 1.30 diff -C 2 -r1.29 -r1.30 *** controls.nas 30 Jan 2008 16:48:04 -0000 1.29 --- controls.nas 30 Jan 2008 21:52:29 -0000 1.30 *************** *** 56,75 **** # Joystick axis handlers (uses cmdarg). Shouldn't be called from ! # other contexts. ! var adjustAxis = func(invert, pre, post) { ! var val = cmdarg().getNode("setting").getValue(); ! if(invert) val = -val; ! foreach(var e; engines) ! if(e.selected.getValue()) ! setprop(pre ~ e.index ~ post, (1 - val)/2); ! } ! var throttleAxis = func ! adjustAxis(size(arg), "/controls/engines/engine[", "]/throttle"); ! var mixtureAxis = func ! adjustAxis(size(arg), "/controls/engines/engine[", "]/mixture"); ! var propellerAxis = func ! adjustAxis(size(arg), "/controls/engines/engine[", "]/propeller-pitch"); ! var carbHeatAxis = func ! adjustAxis(size(arg), "/controls/anti-ice/engine[", "]/carb-heat"); ## --- 56,73 ---- # Joystick axis handlers (uses cmdarg). Shouldn't be called from ! # other contexts. A non-null argument inverts the direction of the axis. ! var axisHandler = func(pre, post) { ! func(invert = 0) { ! var val = cmdarg().getNode("setting").getValue(); ! if(invert) val = -val; ! foreach(var e; engines) ! if(e.selected.getValue()) ! setprop(pre ~ e.index ~ post, (1 - val) / 2); ! } ! } ! var throttleAxis = axisHandler("/controls/engines/engine[", "]/throttle"); ! var mixtureAxis = axisHandler("/controls/engines/engine[", "]/mixture"); ! var propellerAxis = axisHandler("/controls/engines/engine[", "]/propeller-pitch"); ! var carbHeatAxis = axisHandler("/controls/anti-ice/engine[", "]/carb-heat"); ## |
From: Melchior Franz <mfranz@fl...> - 2008-01-30 17:08:57
|
Update of /var/cvs/FlightGear-0.9/data In directory baron:/tmp/cvs-serv13613 Modified Files: preferences.xml Log Message: preferences.xml: drop /sim/input/selected/engine settings (these properties are set in controls.nas since ages) controls.nas: avoid repeated querying of /sim/input/selected/engine[*] properties; this isn't supposed to change at runtime and is a rather costly process, especially in axis handlers Index: preferences.xml =================================================================== RCS file: /var/cvs/FlightGear-0.9/data/preferences.xml,v retrieving revision 1.260 retrieving revision 1.261 diff -C 2 -r1.260 -r1.261 *** preferences.xml 30 Jan 2008 00:06:42 -0000 1.260 --- preferences.xml 30 Jan 2008 16:48:04 -0000 1.261 *************** *** 234,251 **** </instrument-options> <input> - <selected> - <engine n="0" type="bool">true</engine> - <engine n="1" type="bool">true</engine> - <engine n="2" type="bool">true</engine> - <engine n="3" type="bool">true</engine> - <engine n="4" type="bool">true</engine> - <engine n="5" type="bool">true</engine> - <engine n="6" type="bool">true</engine> - <engine n="7" type="bool">true</engine> - <engine n="8" type="bool">true</engine> - <engine n="9" type="bool">true</engine> - <engine n="10" type="bool">true</engine> - <engine n="11" type="bool">true</engine> - </selected> <property-key-handler type="bool" userarchive="y">false</property-key-handler> </input> --- 234,237 ---- |
From: Melchior Franz <mfranz@fl...> - 2008-01-30 17:08:56
|
Update of /var/cvs/FlightGear-0.9/data/Nasal In directory baron:/tmp/cvs-serv13613/Nasal Modified Files: controls.nas Log Message: preferences.xml: drop /sim/input/selected/engine settings (these properties are set in controls.nas since ages) controls.nas: avoid repeated querying of /sim/input/selected/engine[*] properties; this isn't supposed to change at runtime and is a rather costly process, especially in axis handlers Index: controls.nas =================================================================== RCS file: /var/cvs/FlightGear-0.9/data/Nasal/controls.nas,v retrieving revision 1.28 retrieving revision 1.29 diff -C 2 -r1.28 -r1.29 *** controls.nas 29 Jan 2008 23:45:31 -0000 1.28 --- controls.nas 30 Jan 2008 16:48:04 -0000 1.29 *************** *** 1,29 **** ! var startEngine = func { ! var sel = props.globals.getNode("/sim/input/selected"); ! var engs = props.globals.getNode("/controls/engines").getChildren("engine"); ! for(var i=0; i<size(engs); i+=1) { ! var select = sel.getChild("engine", i); ! if(select != nil and select.getValue() != 0) { ! engs[i].getNode("starter").setBoolValue(1); ! } ! } } ! # Initialization hack (called after initialization via a timeout), to ! # make sure that the number of engine properties in the selection tree ! # match the actual number of engines. This should probably be fixed in a ! # more elegant way... ! var initSelectProps = func { ! var engs = props.globals.getNode("/controls/engines").getChildren("engine"); ! var sel = props.globals.getNode("/sim/input/selected"); ! for(var i=0; i<size(engs); i+=1) { ! if(sel.getChild("engine", i) == nil) { ! sel.getNode("engine[" ~ i ~ "]", 1); }} ! } ! settimer(initSelectProps, 0); ! ! var selectEngine = func { ! var sel = props.globals.getNode("/sim/input/selected").getChildren("engine"); ! foreach(var node; sel) { node.setBoolValue(node.getIndex() == arg[0]); } } --- 1,10 ---- ! var startEngine = func(v = 1) { ! foreach(var e; engines) ! if(e.selected.getValue()) ! e.controls.getNode("starter").setBoolValue(v); } ! var selectEngine = func(which) { ! foreach(var e; engines) e.selected.setBoolValue(which == e.index); } *************** *** 31,58 **** # engines if no list is specified. Example: selectEngines(1, 1, 3, 5); # ! var selectEngines = func (state, engines...) { ! var sel = props.globals.getNode("/sim/input/selected"); ! if(size(engines)) { ! foreach(var e; engines) ! sel.getChild("engine", e, 1).setBoolValue(state); } else { ! foreach(var e; sel.getChildren("engine")) ! e.setBoolValue(state); } } var selectAllEngines = func { ! var sel = props.globals.getNode("/sim/input/selected").getChildren("engine"); ! foreach(var node; sel) { node.setBoolValue(1); } } ! var stepMagnetos = func { ! var change = arg[0]; ! var engs = props.globals.getNode("/controls/engines").getChildren("engine"); ! var sel = props.globals.getNode("/sim/input/selected"); ! for(var i=0; i<size(engs); i+=1) { ! var select = sel.getChild("engine", i); ! if(select != nil and select.getValue() != 0) { ! var mag = engs[i].getNode("magnetos", 1); mag.setIntValue(mag.getValue() + change); } --- 12,35 ---- # engines if no list is specified. Example: selectEngines(1, 1, 3, 5); # ! var selectEngines = func (state, which...) { ! if(size(which)) { ! foreach(var i; which) ! foreach(var e; engines) ! if(e.index == i) ! e.selected.setBoolValue(state); } else { ! foreach(var e; engines) ! e.selected.setBoolValue(state); } } var selectAllEngines = func { ! foreach(var e; engines) e.selected.setBoolValue(1); } ! var stepMagnetos = func(change) { ! foreach(var e; engines) { ! if(e.selected.getValue()) { ! var mag = e.controls.getNode("magnetos", 1); mag.setIntValue(mag.getValue() + change); } *************** *** 68,79 **** var throttleMouse = func { if(!getprop("/devices/status/mice/mouse[0]/button[1]")) return; - var sel = props.globals.getNode("/sim/input/selected").getChildren("engine"); var delta = cmdarg().getNode("offset").getValue() * -4; ! foreach(var n; sel) { ! if(!n.getValue()) continue; ! var throttle = "/controls/engines/engine[" ~ n.getIndex() ~ "]/throttle"; ! var val = getprop(throttle) + delta; if(size(arg) > 0) val = -val; ! setprop(throttle, val); } } --- 45,55 ---- var throttleMouse = func { if(!getprop("/devices/status/mice/mouse[0]/button[1]")) return; var delta = cmdarg().getNode("offset").getValue() * -4; ! foreach(var e; engines) { ! if(!e.selected.getValue()) continue; ! var throttle = e.controls.getNode("throttle"); ! var val = throttle.getValue() + delta; if(size(arg) > 0) val = -val; ! throttle.setDoubleValue(val); } } *************** *** 84,91 **** var val = cmdarg().getNode("setting").getValue(); if(invert) val = -val; ! var sel = props.globals.getNode("/sim/input/selected").getChildren("engine"); ! foreach(var n; sel) ! if(n.getValue()) ! setprop(pre ~ n.getIndex() ~ post, (1 - val)/2); } var throttleAxis = func --- 60,66 ---- var val = cmdarg().getNode("setting").getValue(); if(invert) val = -val; ! foreach(var e; engines) ! if(e.selected.getValue()) ! setprop(pre ~ e.index ~ post, (1 - val)/2); } var throttleAxis = func *************** *** 224,233 **** var adjEngControl = func { - var engs = props.globals.getNode("/controls/engines").getChildren("engine"); - var selected = props.globals.getNode("/sim/input/selected"); var delta = arg[1] * THROTTLE_RATE * getprop("/sim/time/delta-realtime-sec"); ! foreach(var e; engs) { ! if(selected.getChild("engine", e.getIndex(), 1).getBoolValue()) { ! var node = e.getNode(arg[0], 1); node.setValue(node.getValue() + delta); } --- 199,206 ---- var adjEngControl = func { var delta = arg[1] * THROTTLE_RATE * getprop("/sim/time/delta-realtime-sec"); ! foreach(var e; engines) { ! if(e.selected.getValue()) { ! var node = e.controls.getNode(arg[0], 1); node.setValue(node.getValue() + delta); } *************** *** 240,249 **** var incThrottle = func { var auto = props.globals.getNode("/autopilot/locks/speed", 1); - var sel = props.globals.getNode("/sim/input/selected"); if (!auto.getValue()) { ! var engs = props.globals.getNode("/controls/engines").getChildren("engine"); ! foreach(var e; engs) { ! if(sel.getChild("engine", e.getIndex(), 1).getBoolValue()) { ! var node = e.getNode("throttle", 1); var val = node.getValue() + arg[0]; node.setValue(val < -1.0 ? -1.0 : val > 1.0 ? 1.0 : val); --- 213,220 ---- var incThrottle = func { var auto = props.globals.getNode("/autopilot/locks/speed", 1); if (!auto.getValue()) { ! foreach(var e; engines) { ! if(e.selected.getValue()) { ! var node = e.controls.getNode("throttle", 1); var val = node.getValue() + arg[0]; node.setValue(val < -1.0 ? -1.0 : val > 1.0 ? 1.0 : val); *************** *** 389,393 **** ## ! # Lighting # var toggleLights = func { --- 360,364 ---- ## ! # Lighting. # var toggleLights = func { *************** *** 414,415 **** --- 385,403 ---- } } + + ## + # Initialization. + # + var engines = []; + _setlistener("/sim/signals/fdm-initialized", func { + var sel = props.globals.getNode("/sim/input/selected", 1); + var engs = props.globals.getNode("/controls/engines").getChildren("engine"); + + foreach(var e; engs) { + var index = e.getIndex(); + var s = sel.getChild("engine", index, 1); + if(s.getType() == "NONE") s.setBoolValue(1); + append(engines, { index: index, controls: e, selected: s }); + } + }); + |
From: Syd Adams <sydadams@fl...> - 2008-01-30 07:14:55
|
Update of /var/cvs/FlightGear-0.9/data/Aircraft/dhc6/Models In directory baron:/tmp/cvs-serv28008/Aircraft/dhc6/Models Modified Files: DHC6F.xml dhc-6.ac dhc-6F.ac Log Message: added wheels to floats Index: DHC6F.xml =================================================================== RCS file: /var/cvs/FlightGear-0.9/data/Aircraft/dhc6/Models/DHC6F.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C 2 -r1.1 -r1.2 *** DHC6F.xml 28 Jan 2008 03:11:28 -0000 1.1 --- DHC6F.xml 30 Jan 2008 06:44:09 -0000 1.2 *************** *** 917,920 **** --- 917,1120 ---- </animation> + <!-- Gear --> + + <animation> + <type>translate</type> + <object-name>LHWheel</object-name> + <property>gear/gear[6]/compression-m</property> + <center> + <x-m>-4.72</x-m> + <y-m>-1.75</y-m> + <z-m>-1.579</z-m> + </center> + <axis> + <x>0</x> + <y>0</y> + <z>1</z> + </axis> + </animation> + + <animation> + <type>translate</type> + <object-name>RHWheel</object-name> + <property>gear/gear[7]/compression-m</property> + <center> + <x-m>-4.72</x-m> + <y-m>-1.75</y-m> + <z-m>-1.579</z-m> + </center> + <axis> + <x>0</x> + <y>0</y> + <z>1</z> + </axis> + </animation> + + <animation> + <type>translate</type> + <object-name>LHWheel</object-name> + <property>gear/gear[6]/position-norm</property> + <interpolation> + <entry><ind>0.0</ind><dep>0.0</dep></entry> + <entry><ind>1.0</ind><dep>0.5</dep></entry> + </interpolation> + <center> + <x-m>-4.72</x-m> + <y-m>-1.75</y-m> + <z-m>-1.579</z-m> + </center> + <axis> + <x>0</x> + <y>0</y> + <z>-1</z> + </axis> + </animation> + + <animation> + <type>translate</type> + <object-name>RHWheel</object-name> + <property>gear/gear[7]/position-norm</property> + <interpolation> + <entry><ind>0.0</ind><dep>0.0</dep></entry> + <entry><ind>1.0</ind><dep>0.5</dep></entry> + </interpolation> + <center> + <x-m>-4.72</x-m> + <y-m>-1.75</y-m> + <z-m>-1.579</z-m> + </center> + <axis> + <x>0</x> + <y>0</y> + <z>-1</z> + </axis> + </animation> + + <animation> + <type>translate</type> + <object-name>LHuprRam</object-name> + <object-name>LHlwrRam</object-name> + <object-name>LHfrtWheel</object-name> + <property>gear/gear[4]/position-norm</property> + <interpolation> + <entry><ind>0.0</ind><dep>0.0</dep></entry> + <entry><ind>1.0</ind><dep>0.2100</dep></entry> + </interpolation> + <center> + <x-m>-4.72</x-m> + <y-m>-1.75</y-m> + <z-m>-1.579</z-m> + </center> + <axis> + <x>-0.342</x> + <y>0</y> + <z>-0.940</z> + </axis> + </animation> + + <animation> + <type>translate</type> + <object-name>LHlwrRam</object-name> + <object-name>LHfrtWheel</object-name> + <property>gear/gear[4]/position-norm</property> + <interpolation> + <entry><ind>0.0</ind><dep>0.0</dep></entry> + <entry><ind>1.0</ind><dep>0.3900</dep></entry> + </interpolation> + <center> + <x-m>-4.72</x-m> + <y-m>-1.75</y-m> + <z-m>-1.579</z-m> + </center> + <axis> + <x>-0.342</x> + <y>0</y> + <z>-0.940</z> + </axis> + </animation> + + <animation> + <type>rotate</type> + <object-name>LHfrtWheel</object-name> + <property>gear/gear[4]/compression-m</property> + <interpolation> + <entry><ind>0.0</ind><dep>0.0</dep></entry> + <entry><ind>0.2</ind><dep>60.0</dep></entry> + </interpolation> + <center> + <x-m>-4.785</x-m> + <y-m>-1.75</y-m> + <z-m>-1.756</z-m> + </center> + <axis> + <x>0</x> + <y>-1</y> + <z>0</z> + </axis> + </animation> + + <animation> + <type>translate</type> + <object-name>RHuprRam</object-name> + <object-name>RHlwrRam</object-name> + <object-name>RHfrtWheel</object-name> + <property>gear/gear[5]/position-norm</property> + <interpolation> + <entry><ind>0.0</ind><dep>0.0</dep></entry> + <entry><ind>1.0</ind><dep>0.2100</dep></entry> + </interpolation> + <center> + <x-m>-4.72</x-m> + <y-m>-1.75</y-m> + <z-m>-1.579</z-m> + </center> + <axis> + <x>-0.342</x> + <y>0</y> + <z>-0.940</z> + </axis> + </animation> + + <animation> + <type>translate</type> + <object-name>RHlwrRam</object-name> + <object-name>RHfrtWheel</object-name> + <property>gear/gear[5]/position-norm</property> + <interpolation> + <entry><ind>0.0</ind><dep>0.0</dep></entry> + <entry><ind>1.0</ind><dep>0.3900</dep></entry> + </interpolation> + <center> + <x-m>-4.72</x-m> + <y-m>-1.75</y-m> + <z-m>-1.579</z-m> + </center> + <axis> + <x>-0.342</x> + <y>0</y> + <z>-0.940</z> + </axis> + </animation> + + <animation> + <type>rotate</type> + <object-name>RHfrtWheel</object-name> + <property>gear/gear[5]/compression-m</property> + <interpolation> + <entry><ind>0.0</ind><dep>0.0</dep></entry> + <entry><ind>0.2</ind><dep>60.0</dep></entry> + </interpolation> + <center> + <x-m>-4.785</x-m> + <y-m>1.75</y-m> + <z-m>-1.756</z-m> + </center> + <axis> + <x>0</x> + <y>-1</y> + <z>0</z> + </axis> + </animation> + <!-- hotspots --> Index: dhc-6.ac =================================================================== RCS file: /var/cvs/FlightGear-0.9/data/Aircraft/dhc6/Models/dhc-6.ac,v retrieving revision 1.1 retrieving revision 1.2 diff -C 2 -r1.1 -r1.2 *** dhc-6.ac 28 Jan 2008 03:11:28 -0000 1.1 --- dhc-6.ac 30 Jan 2008 06:44:09 -0000 1.2 *************** *** 705,709 **** texrep 1 1 crease 45.000000 ! numvert 376 -2.553536 1.113162 -3.100337 -2.502574 1.118786 -3.113914 --- 705,709 ---- texrep 1 1 crease 45.000000 ! numvert 378 -2.553536 1.113162 -3.100337 -2.502574 1.118786 -3.113914 *************** *** 1082,1086 **** -2.502669 1.118679 3.113655 -2.553536 1.112952 3.099829 ! numsurf 328 SURF 0x10 mat 1 --- 1082,1088 ---- -2.502669 1.118679 3.113655 -2.553536 1.112952 3.099829 ! -2.553536 1.012249 -2.856712 ! -2.553536 1.012249 2.856712 ! numsurf 360 SURF 0x10 mat 1 *************** *** 3363,3366 **** --- 3365,3560 ---- 374 0.632493913174 0.964277923107 375 0.628981530666 0.963689565659 + SURF 0x10 + mat 1 + refs 3 + 3 0.092570066452 0.917665481567 + 0 0.092570066452 0.919177651405 + 376 0.0931754112244 0.919361352921 + SURF 0x10 + mat 1 + refs 3 + 4 0.092570066452 0.919177651405 + 3 0.092570066452 0.920188069344 + 376 0.0931754112244 0.920428037643 + SURF 0x10 + mat 1 + refs 3 + 7 0.092570066452 0.920188069344 + 4 0.092570066452 0.920542836189 + 376 0.0931754112244 0.920802593231 + SURF 0x10 + mat 1 + refs 3 + 8 0.092570066452 0.920542836189 + 7 0.092570066452 0.920188069344 + 376 0.0931754112244 0.920428037643 + SURF 0x10 + mat 1 + refs 3 + 11 0.092570066452 0.920188069344 + 8 0.092570066452 0.919177651405 + 376 0.0931754112244 0.919361352921 + SURF 0x10 + mat 1 + refs 3 + 12 0.092570066452 0.919177651405 + 11 0.092570066452 0.917665481567 + 376 0.0931754112244 0.917764902115 + SURF 0x10 + mat 1 + refs 3 + 15 0.092570066452 0.917665481567 + 12 0.092570066452 0.915881633759 + 376 0.0931754112244 0.915881633759 + SURF 0x10 + mat 1 + refs 3 + 16 0.092570066452 0.915881633759 + 15 0.092570066452 0.914097905159 + 376 0.0931754112244 0.913998484612 + SURF 0x10 + mat 1 + refs 3 + 19 0.092570066452 0.914097905159 + 16 0.092570066452 0.912585616112 + 376 0.0931769609451 0.912205219269 + SURF 0x10 + mat 1 + refs 3 + 20 0.092570066452 0.912585616112 + 19 0.092570066452 0.911575198174 + 376 0.0931754112244 0.911335229874 + SURF 0x10 + mat 1 + refs 3 + 23 0.092570066452 0.911575198174 + 20 0.092570066452 0.911220431328 + 376 0.0931754112244 0.910960674286 + SURF 0x10 + mat 1 + refs 3 + 24 0.092570066452 0.911220431328 + 23 0.092570066452 0.911575198174 + 376 0.0931754112244 0.911335229874 + SURF 0x10 + mat 1 + refs 3 + 27 0.092570066452 0.911575198174 + 24 0.092570066452 0.912585616112 + 376 0.0931769609451 0.912205219269 + SURF 0x10 + mat 1 + refs 3 + 28 0.092570066452 0.912585616112 + 27 0.092570066452 0.914097905159 + 376 0.0931754112244 0.913998484612 + SURF 0x10 + mat 1 + refs 3 + 31 0.092570066452 0.914097905159 + 28 0.092570066452 0.915881633759 + 376 0.0931754112244 0.915881633759 + SURF 0x10 + mat 1 + refs 3 + 0 0.092570066452 0.915881633759 + 31 0.092570066452 0.917665481567 + 376 0.0931754112244 0.917764902115 + SURF 0x10 + mat 1 + refs 3 + 344 0.092570066452 0.915881633759 + 375 0.0931742787361 0.915881633759 + 377 0.0931742787361 0.917762875557 + SURF 0x10 + mat 1 + refs 3 + 347 0.092570066452 0.914101600647 + 344 0.0931742787361 0.91400039196 + 377 0.0931742787361 0.915881633759 + SURF 0x10 + mat 1 + refs 3 + 348 0.092570066452 0.912592530251 + 347 0.0931759476662 0.912208676338 + 377 0.0931742787361 0.91400039196 + SURF 0x10 + mat 1 + refs 3 + 351 0.092570066452 0.91158425808 + 348 0.0931742787361 0.911339879036 + 377 0.0931759476662 0.912208676338 + SURF 0x10 + mat 1 + refs 3 + 352 0.092570066452 0.91123020649 + 351 0.0931742787361 0.910965681076 + 377 0.0931742787361 0.911339879036 + SURF 0x10 + mat 1 + refs 3 + 355 0.092570066452 0.91158425808 + 352 0.0931742787361 0.911339879036 + 377 0.0931742787361 0.910965681076 + SURF 0x10 + mat 1 + refs 3 + 356 0.092570066452 0.912592530251 + 355 0.0931759476662 0.912208676338 + 377 0.0931742787361 0.911339879036 + SURF 0x10 + mat 1 + refs 3 + 359 0.092570066452 0.914101600647 + 356 0.0931742787361 0.91400039196 + 377 0.0931759476662 0.912208676338 + SURF 0x10 + mat 1 + refs 3 + 360 0.092570066452 0.915881633759 + 359 0.0931742787361 0.915881633759 + 377 0.0931742787361 0.91400039196 + SURF 0x10 + mat 1 + refs 3 + 363 0.092570066452 0.91766166687 + 360 0.0931742787361 0.917762875557 + 377 0.0931742787361 0.915881633759 + SURF 0x10 + mat 1 + refs 3 + 364 0.092570066452 0.919170737267 + 363 0.0931742787361 0.919357776642 + 377 0.0931742787361 0.917762875557 + SURF 0x10 + mat 1 + refs 3 + 367 0.092570066452 0.920179128647 + 364 0.0931742787361 0.92042350769 + 377 0.0931742787361 0.919357776642 + SURF 0x10 + mat 1 + refs 3 + 368 0.092570066452 0.920533180237 + 367 0.0931742787361 0.92079770565 + 377 0.0931742787361 0.92042350769 + SURF 0x10 + mat 1 + refs 3 + 371 0.092570066452 0.920179128647 + 368 0.0931742787361 0.92042350769 + 377 0.0931742787361 0.92079770565 + SURF 0x10 + mat 1 + refs 3 + 372 0.092570066452 0.919170737267 + 371 0.0931742787361 0.919357776642 + 377 0.0931742787361 0.92042350769 + SURF 0x10 + mat 1 + refs 3 + 375 0.092570066452 0.91766166687 + 372 0.0931742787361 0.917762875557 + 377 0.0931742787361 0.919357776642 kids 0 OBJECT poly Index: dhc-6F.ac =================================================================== RCS file: /var/cvs/FlightGear-0.9/data/Aircraft/dhc6/Models/dhc-6F.ac,v retrieving revision 1.1 retrieving revision 1.2 diff -C 2 -r1.1 -r1.2 *** dhc-6F.ac 28 Jan 2008 03:11:28 -0000 1.1 --- dhc-6F.ac 30 Jan 2008 06:44:09 -0000 1.2 *************** *** 10,14 **** MATERIAL "flat.001" rgb 0 0 0 amb 0.5 0.5 0.5 emis 0 0 0 spec 0 0 0 shi 0 trans 0 OBJECT world ! kids 72 OBJECT poly name "Baggage.door" --- 10,14 ---- MATERIAL "flat.001" rgb 0 0 0 amb 0.5 0.5 0.5 emis 0 0 0 spec 0 0 0 shi 0 trans 0 OBJECT world ! kids 80 OBJECT poly [...40562 lines suppressed...] + 14 0.0261285547167 0.975336551666 + 6 0.0261285547167 0.99596786499 + SURF 0x10 + mat 1 + refs 4 + 6 0.0054972935468 0.99596786499 + 14 0.0054972935468 0.975336551666 + 15 0.0261285547167 0.975336551666 + 7 0.0261285547167 0.99596786499 + SURF 0x10 + mat 1 + refs 4 + 8 0.0054972935468 0.99596786499 + 0 0.0054972935468 0.975336551666 + 7 0.0261285547167 0.975336551666 + 15 0.0261285547167 0.99596786499 + kids 0 + OBJECT poly name "Rfuel.cutoff" data 10 |
From: Syd Adams <sydadams@fl...> - 2008-01-30 07:03:44
|
Update of /var/cvs/FlightGear-0.9/data/Aircraft/dhc6/Models/Instruments In directory baron:/tmp/cvs-serv28008/Aircraft/dhc6/Models/Instruments Modified Files: LHfuelflow.xml LHoilpsi.xml RHfuelflow.xml RHoilpsi.xml asi.xml Log Message: added wheels to floats Index: LHfuelflow.xml =================================================================== RCS file: /var/cvs/FlightGear-0.9/data/Aircraft/dhc6/Models/Instruments/LHfuelflow.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C 2 -r1.1 -r1.2 *** LHfuelflow.xml 28 Jan 2008 03:11:30 -0000 1.1 --- LHfuelflow.xml 30 Jan 2008 06:44:09 -0000 1.2 *************** *** 25,28 **** --- 25,29 ---- <interpolation> <entry><ind>0.0</ind><dep>0.0</dep></entry> + <entry><ind>100.0</ind><dep>30.0</dep></entry> <entry><ind>500</ind><dep>255.0</dep></entry> </interpolation> Index: LHoilpsi.xml =================================================================== RCS file: /var/cvs/FlightGear-0.9/data/Aircraft/dhc6/Models/Instruments/LHoilpsi.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C 2 -r1.1 -r1.2 *** LHoilpsi.xml 28 Jan 2008 03:11:30 -0000 1.1 --- LHoilpsi.xml 30 Jan 2008 06:44:09 -0000 1.2 *************** *** 26,30 **** <interpolation> <entry><ind>0.0</ind><dep>0.0</dep></entry> ! <entry><ind>100</ind><dep>320</dep></entry> </interpolation> <axis> --- 26,32 ---- <interpolation> <entry><ind>0.0</ind><dep>0.0</dep></entry> ! <entry><ind>30.0</ind><dep>0.0</dep></entry> ! <entry><ind>70.0</ind><dep>210.0</dep></entry> ! <entry><ind>100</ind><dep>250</dep></entry> </interpolation> <axis> Index: RHfuelflow.xml =================================================================== RCS file: /var/cvs/FlightGear-0.9/data/Aircraft/dhc6/Models/Instruments/RHfuelflow.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C 2 -r1.1 -r1.2 *** RHfuelflow.xml 28 Jan 2008 03:11:30 -0000 1.1 --- RHfuelflow.xml 30 Jan 2008 06:44:09 -0000 1.2 *************** *** 25,28 **** --- 25,29 ---- <interpolation> <entry><ind>0.0</ind><dep>0.0</dep></entry> + <entry><ind>100.0</ind><dep>30.0</dep></entry> <entry><ind>500</ind><dep>255.0</dep></entry> </interpolation> Index: RHoilpsi.xml =================================================================== RCS file: /var/cvs/FlightGear-0.9/data/Aircraft/dhc6/Models/Instruments/RHoilpsi.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C 2 -r1.1 -r1.2 *** RHoilpsi.xml 28 Jan 2008 03:11:30 -0000 1.1 --- RHoilpsi.xml 30 Jan 2008 06:44:09 -0000 1.2 *************** *** 26,30 **** <interpolation> <entry><ind>0.0</ind><dep>0.0</dep></entry> ! <entry><ind>100</ind><dep>320</dep></entry> </interpolation> <axis> --- 26,32 ---- <interpolation> <entry><ind>0.0</ind><dep>0.0</dep></entry> ! <entry><ind>30.0</ind><dep>0.0</dep></entry> ! <entry><ind>70.0</ind><dep>210.0</dep></entry> ! <entry><ind>100</ind><dep>250</dep></entry> </interpolation> <axis> Index: asi.xml =================================================================== RCS file: /var/cvs/FlightGear-0.9/data/Aircraft/dhc6/Models/Instruments/asi.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C 2 -r1.1 -r1.2 *** asi.xml 28 Jan 2008 03:11:31 -0000 1.1 --- asi.xml 30 Jan 2008 06:44:09 -0000 1.2 *************** *** 23,26 **** --- 23,27 ---- <interpolation> <entry><ind>0.0</ind><dep>0.0</dep></entry> + <entry><ind>30</ind><dep>9.0</dep></entry> <entry><ind>40</ind><dep>18.0</dep></entry> <entry><ind>60</ind><dep>36.0</dep></entry> |
From: Syd Adams <sydadams@fl...> - 2008-01-30 07:03:43
|
Update of /var/cvs/FlightGear-0.9/data/Aircraft/dhc6 In directory baron:/tmp/cvs-serv28008/Aircraft/dhc6 Modified Files: dhc6F.xml Log Message: added wheels to floats Index: dhc6F.xml =================================================================== RCS file: /var/cvs/FlightGear-0.9/data/Aircraft/dhc6/dhc6F.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C 2 -r1.1 -r1.2 *** dhc6F.xml 28 Jan 2008 03:11:27 -0000 1.1 --- dhc6F.xml 30 Jan 2008 06:44:08 -0000 1.2 *************** *** 109,130 **** <!-- Floats--> ! <gear x="3.758" y="1.75" z="-2.2" compression="1.2" spring = "15" damp="1.5" sfric = "0.8" dfric = "0.7" ignored-by-solver="1" ! on-water="1" on-solid="0" reduce-friction-by-extension="1.15" ! speed-planing="15" spring-factor-not-planing="0.7"> </gear> ! <gear x="3.758" y="-1.75" z="-2.2" compression="1.2" spring = "15" damp="1.5" sfric = "0.8" dfric = "0.7" ignored-by-solver="1" ! on-water="1" on-solid="0" reduce-friction-by-extension="1.15" ! speed-planing="15" spring-factor-not-planing="0.7"> </gear> <gear x="-2.2" y="1.75" z="-1.7" compression="1.5" spring = "15" damp="1.5" sfric = "0.85" dfric = "0.75" ignored-by-solver="1" on-water="1" on-solid="0" reduce-friction-by-extension="1.15" ! speed-planing="25" spring-factor-not-planing="0.25"> </gear> <gear x="-2.2" y="-1.75" z="-1.7" compression="1.5" spring = "15" damp="1.5" sfric = "0.85" dfric = "0.75" ignored-by-solver="1" on-water="1" on-solid="0" reduce-friction-by-extension="1.15" ! speed-planing="25" spring-factor-not-planing="0.25"> </gear> --- 109,130 ---- <!-- Floats--> ! <gear x="3.758" y="1.75" z="-2.2" compression="1.5" spring = "15" damp="1.5" sfric = "0.8" dfric = "0.7" ignored-by-solver="1" ! on-water="1" on-solid="0" reduce-friction-by-extension="1.05" ! speed-planing="15" spring-factor-not-planing="0.4"> </gear> ! <gear x="3.758" y="-1.75" z="-2.2" compression="1.5" spring = "15" damp="1.5" sfric = "0.8" dfric = "0.7" ignored-by-solver="1" ! on-water="1" on-solid="0" reduce-friction-by-extension="1.05" ! speed-planing="15" spring-factor-not-planing="0.4"> </gear> <gear x="-2.2" y="1.75" z="-1.7" compression="1.5" spring = "15" damp="1.5" sfric = "0.85" dfric = "0.75" ignored-by-solver="1" on-water="1" on-solid="0" reduce-friction-by-extension="1.15" ! speed-planing="20" spring-factor-not-planing="0.25"> </gear> <gear x="-2.2" y="-1.75" z="-1.7" compression="1.5" spring = "15" damp="1.5" sfric = "0.85" dfric = "0.75" ignored-by-solver="1" on-water="1" on-solid="0" reduce-friction-by-extension="1.15" ! speed-planing="15" spring-factor-not-planing="0.25"> </gear> *************** *** 132,136 **** <!-- Retractable wheels--> ! <gear x="4.9" y="1.75" z="-2.45" compression="0.2" spring = "2" sfric = "0.5" dfric=".45" retract-time="4" initial-load="0" damp="0.6"> <control-input control="STEER" axis="/controls/flight/rudder" square="true"/> <control-input axis="/controls/gear/gear-down" control="EXTEND"/> --- 132,136 ---- <!-- Retractable wheels--> ! <gear x="4.9" y="1.75" z="-2.744" compression="0.4" spring = "2" sfric = "0.5" dfric=".45" retract-time="4" initial-load="0" damp="0.6"> <control-input control="STEER" axis="/controls/flight/rudder" square="true"/> <control-input axis="/controls/gear/gear-down" control="EXTEND"/> *************** *** 139,143 **** </gear> ! <gear x="4.9" y="-1.75" z="-2.45" compression="0.2" spring = "2" sfric = "0.5" dfric=".45" retract-time="4" initial-load="0" damp="0.6"> <control-input control="STEER" axis="/controls/flight/rudder" square="true"/> <control-input axis="/controls/gear/gear-down" control="EXTEND"/> --- 139,143 ---- </gear> ! <gear x="4.9" y="-1.75" z="-2.744" compression="0.4" spring = "2" sfric = "0.5" dfric=".45" retract-time="4" initial-load="0" damp="0.6"> <control-input control="STEER" axis="/controls/flight/rudder" square="true"/> <control-input axis="/controls/gear/gear-down" control="EXTEND"/> *************** *** 146,150 **** </gear> ! <gear x="-1.45" y="1.75" z="-2.37" compression="0.2" spring = "3.5" sfric = "0.5" dfric=".45" retract-time="4" initial-load="1" damp="10.1"> <control-input control="BRAKE" axis="/controls/gear/brake-parking" /> <control-input control="BRAKE" axis="/controls/gear/brake-left" /> --- 146,150 ---- </gear> ! <gear x="-1.26" y="1.75" z="-2.68" compression="0.4" spring = "3.5" sfric = "0.5" dfric=".45" retract-time="4" initial-load="1" damp="10.1"> <control-input control="BRAKE" axis="/controls/gear/brake-parking" /> <control-input control="BRAKE" axis="/controls/gear/brake-left" /> *************** *** 154,158 **** </gear> ! <gear x="-1.45" y="-1.75" z="-2.37" compression="0.2" spring = "3.5" sfric = "0.5" dfric=".45" retract-time="4" initial-load="1" damp="10.1"> <control-input control="BRAKE" axis="/controls/gear/brake-parking" /> <control-input control="BRAKE" axis="/controls/gear/brake-right" /> --- 154,158 ---- </gear> ! <gear x="-1.26" y="-1.75" z="-2.68" compression="0.4" spring = "3.5" sfric = "0.5" dfric=".45" retract-time="4" initial-load="1" damp="10.1"> <control-input control="BRAKE" axis="/controls/gear/brake-parking" /> <control-input control="BRAKE" axis="/controls/gear/brake-right" /> |
From: Melchior Franz <mfranz@fl...> - 2008-01-30 00:33:21
|
Update of /var/cvs/FlightGear-0.9/data In directory baron:/tmp/cvs-serv19084 Modified Files: preferences.xml Log Message: pre-select 12 engines, as needed for the Dornier DO-X Index: preferences.xml =================================================================== RCS file: /var/cvs/FlightGear-0.9/data/preferences.xml,v retrieving revision 1.259 retrieving revision 1.260 diff -C 2 -r1.259 -r1.260 *** preferences.xml 25 Dec 2007 19:42:13 -0000 1.259 --- preferences.xml 30 Jan 2008 00:06:42 -0000 1.260 *************** *** 243,246 **** --- 243,250 ---- <engine n="6" type="bool">true</engine> <engine n="7" type="bool">true</engine> + <engine n="8" type="bool">true</engine> + <engine n="9" type="bool">true</engine> + <engine n="10" type="bool">true</engine> + <engine n="11" type="bool">true</engine> </selected> <property-key-handler type="bool" userarchive="y">false</property-key-handler> |
From: Melchior Franz <mfranz@fl...> - 2008-01-29 23:55:23
|
Update of /var/cvs/FlightGear-0.9/data/Nasal In directory baron:/tmp/cvs-serv18465 Modified Files: controls.nas Log Message: make mixture/propeller/carbHear only work for selected engine (like throttle) Index: controls.nas =================================================================== RCS file: /var/cvs/FlightGear-0.9/data/Nasal/controls.nas,v retrieving revision 1.27 retrieving revision 1.28 diff -C 2 -r1.27 -r1.28 *** controls.nas 29 Nov 2007 13:16:13 -0000 1.27 --- controls.nas 29 Jan 2008 23:45:31 -0000 1.28 *************** *** 81,109 **** # Joystick axis handlers (uses cmdarg). Shouldn't be called from # other contexts. ! var throttleAxis = func { var val = cmdarg().getNode("setting").getValue(); ! if(size(arg) > 0) val = -val; var sel = props.globals.getNode("/sim/input/selected").getChildren("engine"); foreach(var n; sel) if(n.getValue()) ! setprop("/controls/engines/engine[" ~ n.getIndex() ~ "]/throttle", ! (1 - val)/2); } ! var mixtureAxis = func { ! var val = cmdarg().getNode("setting").getValue(); ! if(size(arg) > 0) { val = -val; } ! props.setAll("/controls/engines/engine", "mixture", (1 - val)/2); ! } ! var propellerAxis = func { ! var val = cmdarg().getNode("setting").getValue(); ! if(size(arg) > 0) { val = -val; } ! props.setAll("/controls/engines/engine", "propeller-pitch", (1 - val)/2); ! } ! var carbHeatAxis = func { ! var val = cmdarg().getNode("setting").getValue(); ! if(size(arg) > 0) { val = -val; } ! props.setAll("/controls/anti-ice/engine", "carb-heat", (1 - val)/2); ! } ! ## --- 81,100 ---- # Joystick axis handlers (uses cmdarg). Shouldn't be called from # other contexts. ! var adjustAxis = func(invert, pre, post) { var val = cmdarg().getNode("setting").getValue(); ! if(invert) val = -val; var sel = props.globals.getNode("/sim/input/selected").getChildren("engine"); foreach(var n; sel) if(n.getValue()) ! setprop(pre ~ n.getIndex() ~ post, (1 - val)/2); } ! var throttleAxis = func ! adjustAxis(size(arg), "/controls/engines/engine[", "]/throttle"); ! var mixtureAxis = func ! adjustAxis(size(arg), "/controls/engines/engine[", "]/mixture"); ! var propellerAxis = func ! adjustAxis(size(arg), "/controls/engines/engine[", "]/propeller-pitch"); ! var carbHeatAxis = func ! adjustAxis(size(arg), "/controls/anti-ice/engine[", "]/carb-heat"); ## |
From: Curtis L. Olson <curt@fl...> - 2008-01-29 15:23:55
|
Update of /var/cvs/FlightGear-0.9/source/src/AIModel In directory baron:/tmp/cvs-serv32041 Modified Files: Tag: PRE_OSG_PLIB_20061029 AIManager.cxx Log Message: Clear chat messages when an AI/MP model becomes inactive. Index: AIManager.cxx =================================================================== RCS file: /var/cvs/FlightGear-0.9/source/src/AIModel/AIManager.cxx,v retrieving revision 1.69.2.9 retrieving revision 1.69.2.10 diff -C 2 -r1.69.2.9 -r1.69.2.10 *** AIManager.cxx 3 Aug 2007 18:02:30 -0000 1.69.2.9 --- AIManager.cxx 29 Jan 2008 15:03:36 -0000 1.69.2.10 *************** *** 156,159 **** --- 156,161 ---- props->setBoolValue("radar/in-range", false); props->setIntValue("refuel/tanker", false); + props->setStringValue("sim/multiplay/chat", ""); + props->setStringValue("sim/multiplay/transmission-freq-hz", ""); ai_list_itr = ai_list.erase(ai_list_itr); |
From: Curtis L. Olson <curt@fl...> - 2008-01-29 15:22:21
|
Update of /var/cvs/FlightGear-0.9/source/src/AIModel In directory baron:/tmp/cvs-serv32026 Modified Files: AIManager.cxx Log Message: Clear chat messages when an aircraft becomes inactive in the property tree. Index: AIManager.cxx =================================================================== RCS file: /var/cvs/FlightGear-0.9/source/src/AIModel/AIManager.cxx,v retrieving revision 1.80 retrieving revision 1.81 diff -C 2 -r1.80 -r1.81 *** AIManager.cxx 3 Aug 2007 18:02:33 -0000 1.80 --- AIManager.cxx 29 Jan 2008 15:02:47 -0000 1.81 *************** *** 156,159 **** --- 156,161 ---- props->setBoolValue("radar/in-range", false); props->setIntValue("refuel/tanker", false); + props->setStringValue("sim/multiplay/chat", ""); + props->setStringValue("sim/multiplay/transmission-freq-hz", ""); ai_list_itr = ai_list.erase(ai_list_itr); |
From: Syd Adams <sydadams@fl...> - 2008-01-28 08:40:47
|
Update of /var/cvs/FlightGear-0.9/data/Aircraft/dhc6/Models In directory baron:/tmp/cvs-serv10609/Aircraft/dhc6/Models Modified Files: DHC6.xml Log Message: added rear door removal ... skydiving config Index: DHC6.xml =================================================================== RCS file: /var/cvs/FlightGear-0.9/data/Aircraft/dhc6/Models/DHC6.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C 2 -r1.1 -r1.2 *** DHC6.xml 28 Jan 2008 03:11:28 -0000 1.1 --- DHC6.xml 28 Jan 2008 08:10:14 -0000 1.2 *************** *** 492,495 **** --- 492,509 ---- </animation> + <animation> + <type>select</type> + <object-name>Rrdoor.frt.001</object-name> + <object-name>Rrdoor.frt</object-name> + <object-name>Rrdoor.rear.001</object-name> + <object-name>Rrdoor.rear</object-name> + <object-name>Rrdoor.glass</object-name> + <condition> + <not> + <property>sim/model/remove-doors</property> + </not> + </condition> + </animation> + <!-- Controls Surfaces --> |
From: Syd Adams <sydadams@fl...> - 2008-01-28 08:29:58
|
Update of /var/cvs/FlightGear-0.9/data/AI/Aircraft/dhc6/Models In directory baron:/tmp/cvs-serv10609/AI/Aircraft/dhc6/Models Modified Files: DHC6.xml Log Message: added rear door removal ... skydiving config Index: DHC6.xml =================================================================== RCS file: /var/cvs/FlightGear-0.9/data/AI/Aircraft/dhc6/Models/DHC6.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C 2 -r1.1 -r1.2 *** DHC6.xml 28 Jan 2008 03:11:26 -0000 1.1 --- DHC6.xml 28 Jan 2008 08:10:14 -0000 1.2 *************** *** 39,42 **** --- 39,56 ---- </animation> + <animation> + <type>select</type> + <object-name>Rrdoor.frt.001</object-name> + <object-name>Rrdoor.frt</object-name> + <object-name>Rrdoor.rear.001</object-name> + <object-name>Rrdoor.rear</object-name> + <object-name>Rrdoor.glass</object-name> + <condition> + <not> + <property>sim/model/remove-doors</property> + </not> + </condition> + </animation> + <!-- Controls Surfaces --> |
From: Syd Adams <sydadams@fl...> - 2008-01-28 08:29:57
|
Update of /var/cvs/FlightGear-0.9/data/Aircraft/dhc6 In directory baron:/tmp/cvs-serv10609/Aircraft/dhc6 Modified Files: dhc6-base.xml dhc6-set.xml Log Message: added rear door removal ... skydiving config Index: dhc6-base.xml =================================================================== RCS file: /var/cvs/FlightGear-0.9/data/Aircraft/dhc6/dhc6-base.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C 2 -r1.1 -r1.2 *** dhc6-base.xml 28 Jan 2008 03:11:27 -0000 1.1 --- dhc6-base.xml 28 Jan 2008 08:10:14 -0000 1.2 *************** *** 186,188 **** --- 186,235 ---- </environment> + <input> + <keyboard> + <key n="77"> + <name>M</name> + <desc>condition lever leaner.</desc> + <repeatable type="bool">true</repeatable> + <binding> + <command>property-adjust</command> + <property>controls/engines/engine[0]/condition-lever</property> + <step>-0.01</step> + <min>0</min> + <max>1.0</max> + <wrap>0</wrap> + </binding> + <binding> + <command>property-adjust</command> + <property>controls/engines/engine[1]/condition-lever</property> + <step>-0.01</step> + <min>0</min> + <max>1.0</max> + <wrap>0</wrap> + </binding> + </key> + <key n="109"> + <name>m</name> + <desc>condition lever richer</desc> + <repeatable type="bool">true</repeatable> + <binding> + <command>property-adjust</command> + <property>controls/engines/engine[0]/condition-lever</property> + <step>0.01</step> + <min>0</min> + <max>1.0</max> + <wrap>0</wrap> + </binding> + <binding> + <command>property-adjust</command> + <property>controls/engines/engine[1]/condition-lever</property> + <step>0.01</step> + <min>0</min> + <max>1.0</max> + <wrap>0</wrap> + </binding> + </key> + </keyboard> + </input> + </PropertyList> \ No newline at end of file Index: dhc6-set.xml =================================================================== RCS file: /var/cvs/FlightGear-0.9/data/Aircraft/dhc6/dhc6-set.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C 2 -r1.1 -r1.2 *** dhc6-set.xml 28 Jan 2008 03:11:27 -0000 1.1 --- dhc6-set.xml 28 Jan 2008 08:10:14 -0000 1.2 *************** *** 21,24 **** --- 21,25 ---- <model> <path>Aircraft/dhc6/Models/DHC6.xml</path> + <remove-doors type="bool">0</remove-doors> </model> *************** *** 59,62 **** --- 60,70 ---- </item> <item> + <label>Remove Rear Doors</label> + <binding> + <command>property-toggle</command> + <property>sim/model/remove-doors</property> + </binding> + </item> + <item> <label>Open tow-hook</label> <binding> |
From: Syd Adams <sydadams@fl...> - 2008-01-28 05:27:43
|
Update of /var/cvs/FlightGear-0.9/data/Aircraft/dhc6/Models/Liveries In directory baron:/tmp/cvs-serv4124/Aircraft/dhc6/Models/Liveries Added Files: KBAir.xml TransNorth.xml Log Message: still a lot of work to be done ... and its OSG hotspots only ... --- NEW FILE --- <?xml version="1.0"?> <PropertyList> <sim> <model> <livery> <name type="string">Kenn Borek Air LTD</name> <index type="int">1</index> <texture>paint2.rgb</texture> </livery> </model> </sim> </PropertyList> --- NEW FILE --- <?xml version="1.0"?> <PropertyList> <sim> <model> <livery> <name type="string">Trans North</name> <index type="int">0</index> <texture>paint1.rgb</texture> </livery> </model> </sim> </PropertyList> |
From: Syd Adams <sydadams@fl...> - 2008-01-28 05:26:59
|
Update of /var/cvs/FlightGear-0.9/data/Aircraft/dhc6 In directory baron:/tmp/cvs-serv3613/Aircraft/dhc6 Log Message: Directory /var/cvs/FlightGear-0.9/data/Aircraft/dhc6 added to the repository ***** Bogus filespec: - ***** Bogus filespec: New --- NEW FILE --- |
From: Syd Adams <sydadams@fl...> - 2008-01-28 05:05:09
|
Update of /var/cvs/FlightGear-0.9/data/Aircraft/dhc6/Models/Liveries In directory baron:/tmp/cvs-serv3613/Aircraft/dhc6/Models/Liveries Log Message: Directory /var/cvs/FlightGear-0.9/data/Aircraft/dhc6/Models/Liveries added to the repository ***** Bogus filespec: - ***** Bogus filespec: New --- NEW FILE --- |
From: Syd Adams <sydadams@fl...> - 2008-01-28 05:04:59
|
Update of /var/cvs/FlightGear-0.9/data/Aircraft/dhc6/Models In directory baron:/tmp/cvs-serv4124/Aircraft/dhc6/Models Added Files: DHC6.xml DHC6F.xml chrome1.rgb chrome2.rgb dhc-6.ac dhc-6F.ac paint1.rgb paint2.rgb panel.rgb transparent.rgb Log Message: still a lot of work to be done ... and its OSG hotspots only ... --- NEW FILE --- <?xml version="1.0"?> <PropertyList> <path>dhc-6.ac</path> <animation> <name>Exterior</name> <object-name>fuselage</object-name> <object-name>longnose</object-name> <object-name>Spinners</object-name> <object-name>RHdoor</object-name> <object-name>LHdoor</object-name> <object-name>Rrdoor.rear</object-name> <object-name>Rrdoor.frt</object-name> <object-name>Baggage.door</object-name> <object-name>wings</object-name> <object-name>R.aileron</object-name> <object-name>R.flap</object-name> [...1028 lines suppressed...] <animation> <type>rotate</type> <object-name>FrtStrut</object-name> <object-name>FrtWheel</object-name> <property>controls/flight/rudder</property> <factor>-30.0</factor> <center> <x-m>-4.410</x-m> <y-m>0</y-m> <z-m>-0.744</z-m> </center> <axis> <x>0.087</x> <y>0</y> <z>0.996</z> </axis> </animation> </PropertyList> --- NEW FILE --- <?xml version="1.0"?> <PropertyList> <path>dhc-6F.ac</path> <animation> <name>ExteriorF</name> <object-name>fuselage</object-name> <object-name>Spinners</object-name> <object-name>bluntnose</object-name> <object-name>RHdoor</object-name> <object-name>LHdoor</object-name> <object-name>Rrdoor.rear</object-name> <object-name>Rrdoor.frt</object-name> <object-name>Baggage.door</object-name> <object-name>wings</object-name> <object-name>R.aileron</object-name> <object-name>R.flap</object-name> [...962 lines suppressed...] </animation> <animation> <type>pick</type> <object-name>RHind.select</object-name> <action> <button>0</button> <repeatable>false</repeatable> <binding> <command>property-adjust</command> <property>controls/electric/ammeter-switch</property> <step>1</step> <min>-1</min> <max>1</max> <wrap>0</wrap> </binding> </action> </animation> </PropertyList> --- NEW FILE --- Ú Î 2 e 158:;?=;::886 ADFGILKIGGFFD KLNPN LPPQSVUSQQPPN '++,+)'),11556531,+')' ;==?==;=?AADDFBB?=; 353353511,..010.,) BDAA?AABDDAABA?= NPQQPQPLLKLLNPPLLNLK UVVUUQNKGDA?==; NPPNNKGDA=:5331 FIIGFFD FGIIK IGGIFGGFFDF --- NEW FILE --- Ú f ¡ Ó 2 NRWWZ^\ZWU Z\^^afca^\ afhmjhfc DFFIFFDFINNRRURPNIFDAD \ZZ\Z^\^\aaffhfca\Z\Z\ IKIIFDA?ADFIIKNPPRKKID?= \^\\^\Z\Z\^\\^accf^c\Z PRNN IKNKIF cfaa \^a^\^ orroojhca\WURRP jmmjjfc^\WRPNNK \^^\ Z RUUR P ca^\^aaccfhhjhffcca^^acaa\\Z ZWURUWWZZ\^^a^\\ZZWUUWZWWRRP --- NEW FILE --- AC3Db MATERIAL "DefaultWhite" rgb 1 1 1 amb 1 1 1 emis 0 0 0 spec 0.5 0.5 0.5 shi 64 trans 0 MATERIAL "paint" rgb 0.8 0.8 0.8 amb 0 0 0 emis 0 0 0 spec 1 1 1 shi 49 trans 0 MATERIAL "flat" rgb 0.1 0.1 0.1 amb 0.5 0.5 0.5 emis 0 0 0 spec 0 0 0 shi 0 trans 0 MATERIAL "interior" rgb 0.8 0.8 0.8 amb 0 0 0 emis 0 0 0 spec 0.092684 0.092684 0.092684 shi 9 trans 0 MATERIAL "chrome" rgb 0.733334 0.733334 0.733334 amb 0 0 0 emis 0 0 0 spec 1 1 1 shi 63 trans 0 MATERIAL "glass" rgb 0.139136 0.16242 0.255556 amb 0 0 0 emis 0 0 0 spec 1 1 1 shi 32 trans 0.5 MATERIAL "lit" rgb 0.8 0.8 0.8 amb 0 0 0 emis 1 1 1 spec 1 1 1 shi 49 trans 0 MATERIAL "trans" rgb 1 1 1 amb 0 0 0 emis 0 0 0 spec 0.5 0.5 0.5 shi 0 trans 0.8 MATERIAL "flat.001" rgb 0 0 0 amb 0.5 0.5 0.5 emis 0 0 0 spec 0 0 0 shi 0 trans 0 OBJECT world kids 78 OBJECT poly name "Baggage.door" data 10 Circle.023 texture "paint2.rgb" texrep 1 1 crease 45.000000 [...57832 lines suppressed...] SURF 0x10 mat 1 refs 4 350 0.454130023718 0.583011806011 345 0.454130023718 0.581580758095 347 0.0187620595098 0.581582009792 351 0.0186938997358 0.583012521267 SURF 0x10 mat 1 refs 3 346 0.0186257120222 0.583808481693 351 0.0186938997358 0.583012521267 289 0.0185089036822 0.548923313618 SURF 0x10 mat 1 refs 3 351 0.0186938997358 0.583012521267 347 0.0187620595098 0.581582009792 289 0.0185089036822 0.548923313618 kids 0 --- NEW FILE --- AC3Db MATERIAL "DefaultWhite" rgb 1 1 1 amb 1 1 1 emis 0 0 0 spec 0.5 0.5 0.5 shi 64 trans 0 MATERIAL "paint" rgb 0.8 0.8 0.8 amb 0 0 0 emis 0 0 0 spec 1 1 1 shi 49 trans 0 MATERIAL "flat" rgb 0.1 0.1 0.1 amb 0.5 0.5 0.5 emis 0 0 0 spec 0 0 0 shi 0 trans 0 MATERIAL "interior" rgb 0.8 0.8 0.8 amb 0 0 0 emis 0 0 0 spec 0.092684 0.092684 0.092684 shi 9 trans 0 MATERIAL "chrome" rgb 0.733334 0.733334 0.733334 amb 0 0 0 emis 0 0 0 spec 1 1 1 shi 63 trans 0 MATERIAL "glass" rgb 0.139136 0.16242 0.255556 amb 0 0 0 emis 0 0 0 spec 1 1 1 shi 32 trans 0.5 MATERIAL "lit" rgb 0.8 0.8 0.8 amb 0 0 0 emis 1 1 1 spec 1 1 1 shi 49 trans 0 MATERIAL "trans" rgb 1 1 1 amb 0 0 0 emis 0 0 0 spec 0.5 0.5 0.5 shi 0 trans 0.8 MATERIAL "flat.001" rgb 0 0 0 amb 0.5 0.5 0.5 emis 0 0 0 spec 0 0 0 shi 0 trans 0 OBJECT world kids 72 OBJECT poly name "Baggage.door" data 10 Circle.023 texture "paint2.rgb" texrep 1 1 crease 45.000000 [...50567 lines suppressed...] SURF 0x10 mat 1 refs 4 350 0.454130023718 0.583011806011 345 0.454130023718 0.581580758095 347 0.0187620595098 0.581582009792 351 0.0186938997358 0.583012521267 SURF 0x10 mat 1 refs 3 346 0.0186257120222 0.583808481693 351 0.0186938997358 0.583012521267 289 0.0185089036822 0.548923313618 SURF 0x10 mat 1 refs 3 351 0.0186938997358 0.583012521267 347 0.0187620595098 0.581582009792 289 0.0185089036822 0.548923313618 kids 0 --- NEW FILE --- Ú ; ¼ Õ h ê [...1005 lines suppressed...] "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÄÆÈM~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÄÆÈM~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÆÈM~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÆÈM~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÆÈM~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÆÈM~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÆÈM~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÆÈM~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÆÈM~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÆÈM~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÆÈM~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÇÈM~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÇÈM~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÇÈM~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÇÈM~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÇÈM~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÇÈM~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÇÈM~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÇÈM~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÇÈM~ --- NEW FILE --- Ú v 5 } ) È ~Ì~Ì~Ì~Ì~Ì~Ì~Ì~ÌÌÄ Ì~Ì~Ì~Ì~Ì~Ì~ÌÌÄ ~Ì~Ì~Ì~Ì~ÌÌÄ [...1110 lines suppressed...] "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÄÆÈc\#$T«ÌÊk~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÄÆÈa]QªÌÊk~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÆÈ¶^ª ¯ÁÌÄG~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÆÈc^# ;ËÄG~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÆÈa^ 7ËÄG~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÆÈ¶_ª ¾Ì¯"~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÆÈc_# 2 ʯ"~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÆÈa_ .ʯ"~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÆÈ¶`ª ¬ÂÌ ~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÆÈc`# -Ì ~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÆÈa` (Ì ~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÇȶaª±ÉÈZ~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÇÈca#EºÈZ~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÇÈaaA¹ÈZ~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÇÈ·aª «¼Ì³.~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÇÈca# $yʳ.~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÇÈaa vʳ.~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÇÈ·bª ¬ÂÌ~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÇÈcb# -Ì~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÇÈab (Ì~ --- NEW FILE --- Ú Ô 7 R g  #ß * 0e 6 <× C% Iu OÌ V \ b¤ [...2580 lines suppressed...] Á>~*P~~} 8ºg±Ã8±p8º]~8Q8I Á>~*P~~} 8ºg±Ã8±p8º]~8Q8:B F.~*P~~} Á¸l8Á}8}Á¸}l[A~8~8~8%8IÁ>~*P~~} Á¸l8Á}8}Á¸}l[A~8~8~8%8IÁ>~*P~~} Á¸}tA(8pÌÌÃB8Ì̧KÌg]Ìp8Ty8pÌKgÌyÌyÃ8pÌÌÃT8ºÌºBKÌpBÌÃúKBÌÌÃ8Ã8ÃÌT±8BÃÌ̱p8pÌT88p̱Ã8pÌK88º8Ã8Ã8 º8º§8ç8Ã̱KÌp8ÌB~8%8°Á°c8I>*$;;/;$;$ FF;;//;//Q;;**P~~} Á¸}tA(8pÌÌÃB8Ì̧KÌg]Ìp8Ty8pÌKgÌyÌyÃ8pÌÌÃT8ºÌºBKÌpBÌÃúKBÌÌÃ8Ã8ÃÌT±8BÃÌ̱p8pÌT88p̱Ã8pÌK88º8Ã8Ã8 º8º§8ç8Ã̱KÌp8ÌB~8%8°Á°c8I>*$;;/;$;$ FF;;//;//Q;;**P~~} FB:8<EFE;8:DFE=89BF CB??9(8pÌÌÃB8Ì̧KÌg]Ìp8Ty8pÌKgÌyÌyÃ8pÌÌÃT8ºÌºBKÌpBÌÃúKBÌÌÃ8Ã8ÃÌT±8BÃÌ̱p8pÌT88p̱Ã8pÌK88º8Ã8Ã8 º8º§8ç8Ã̱KÌp8ÌB~8%8EFE=8:B.*$;;/;$;$ FF;;//;//Q;;**P~~} FE=8:BF>8@FA;~8~8d8EFE=;.~*P~~} Á°R8I§Á°[8IÁ°c8AÁl8 Á}8}ÁA8l¸ÁI8c°Á°R8I§Á°[8IÁ°c8Ál8 Á}8}ÁA8l¸ÁI8c°Á°R8I§ Á>~*P~~} Á°R8I§Á°[8IÁ°c8AÁl8 Á}8}ÁA8l¸ÁI8c°Á°R8I§Á°[8IÁ°c8Ál8 Á}8}ÁA8l¸ÁI8c°Á°R8I§ Á>~*P~~} FE;8:DFE<8:BFE=89BF>8@F?8?FA98>FB:8=EFE;8:DFE<8:BFE=8BF>8@F?8?FA98>FB:8=EFE;8:D F.~*P~~} --- NEW FILE --- Ú D Ü b W £ ï [...2253 lines suppressed...] ³«O8³@~8~8]8£³8H³¬~~~~6 ³«O8³@~8~8]8£³8H³¬~~~~6 ³«O8³@~8~8]8£³8H³¬~~~~6 8H£³v~8~8\8}³8³~~~~6 8H£³v~8~8\8}³8³~~~~6 8H£³v~8~8\8}³8³~~~~6 ³£H8 ³£H~8~8Y8«³8³~~~~7 ³£H8 ³£H~8~8Y8«³8³~~~~7 ³£H8 ³£H~8~8Y8«³8³~~~~7 ³£O8}³_~8~8T8_³}8@³~~~~9 ³£O8}³_~8~8T8_³}8@³~~~~9 ³£O8}³_~8~8T8_³}8@³~~~~9 ÿ_~ 8@£³«H8£ ³~~~~V 8@£³«H8£ ³~~~~V 8@£³«H8£ ³~~~~V |
From: Syd Adams <sydadams@fl...> - 2008-01-28 04:44:22
|
Update of /var/cvs/FlightGear-0.9/data/Aircraft/dhc6/Models In directory baron:/tmp/cvs-serv3613/Aircraft/dhc6/Models Log Message: Directory /var/cvs/FlightGear-0.9/data/Aircraft/dhc6/Models added to the repository ***** Bogus filespec: - ***** Bogus filespec: New --- NEW FILE --- |
From: Syd Adams <sydadams@fl...> - 2008-01-28 04:23:02
|
Update of /var/cvs/FlightGear-0.9/data/Aircraft/dhc6/Nasal In directory baron:/tmp/cvs-serv3613/Aircraft/dhc6/Nasal Log Message: Directory /var/cvs/FlightGear-0.9/data/Aircraft/dhc6/Nasal added to the repository ***** Bogus filespec: - ***** Bogus filespec: New --- NEW FILE --- |
Update of /var/cvs/FlightGear-0.9/data/AI/Aircraft/dhc6/Models In directory baron:/tmp/cvs-serv4124/AI/Aircraft/dhc6/Models Added Files: DHC6.xml DHC6F.xml chrome1.rgb dhc-6.ac dhc-6F.ac paint1.rgb paint2.rgb transparent.rgb Log Message: still a lot of work to be done ... and its OSG hotspots only ... --- NEW FILE --- <?xml version="1.0"?> <PropertyList> <path>dhc-6.ac</path> <animation> <name>Exterior</name> <object-name>fuselage</object-name> <object-name>longnose</object-name> <object-name>Spinners</object-name> <object-name>RHdoor</object-name> <object-name>LHdoor</object-name> <object-name>Rrdoor.rear</object-name> <object-name>Rrdoor.frt</object-name> <object-name>Baggage.door</object-name> <object-name>wings</object-name> <object-name>R.aileron</object-name> <object-name>R.flap</object-name> <object-name>L.flap</object-name> <object-name>R.slat</object-name> <object-name>L.slat</object-name> <object-name>L.aileron</object-name> <object-name>Hstab</object-name> <object-name>rudder</object-name> <object-name>Elevator</object-name> <object-name>Engine</object-name> <object-name>Engine.cowl</object-name> <object-name>LHstrut</object-name> <object-name>RHstrut</object-name> </animation> <animation> <type>material</type> <object-name>Exterior</object-name> <property-base>sim/model/livery</property-base> <texture-prop>texture</texture-prop> <texture>paint1.rgb</texture> </animation> <!-- Controls Surfaces --> <animation> <type>rotate</type> <object-name>Elevator</object-name> <property>controls/flight/elevator</property> <factor>15.0</factor> <center> <x-m>7.593</x-m> <y-m>0</y-m> <z-m>1.186</z-m> </center> <axis> <x>0</x> <y>1</y> <z>0</z> </axis> </animation> <animation> <type>rotate</type> <object-name>rudder</object-name> <property>controls/flight/rudder</property> <factor>17.0</factor> <center> <x-m>8.087</x-m> <y-m>0</y-m> <z-m>1.995</z-m> </center> <axis> <x>0.324</x> <y>0</y> <z>0.946</z> </axis> </animation> <animation> <type>rotate</type> <object-name>R.slat</object-name> <object-name>R.flap</object-name> <object-name>R.aileron</object-name> <property>surface-positions/flap-pos-norm</property> <factor>20.0</factor> <center> <x-m>0.489</x-m> <y-m>0.920</y-m> <z-m>0.576</z-m> </center> <axis> <x>0</x> <y>0.999</y> <z>0.053</z> </axis> </animation> <animation> <type>rotate</type> <object-name>R.flap</object-name> <property>surface-positions/flap-pos-norm</property> <factor>20.0</factor> <center> <x-m>0.594</x-m> <y-m>0.913</y-m> <z-m>0.913</z-m> </center> <axis> <x>0</x> <y>0.999</y> <z>0.053</z> </axis> </animation> <animation> <type>rotate</type> <object-name>R.aileron</object-name> <property>controls/flight/aileron</property> <factor>-20.0</factor> <center> <x-m>0.592</x-m> <y-m>6.040</y-m> <z-m>1.181</z-m> </center> <axis> <x>0</x> <y>0.999</y> <z>0.053</z> </axis> </animation> <animation> <type>rotate</type> <object-name>L.slat</object-name> <object-name>L.flap</object-name> <object-name>L.aileron</object-name> <property>surface-positions/flap-pos-norm</property> <factor>-20.0</factor> <center> <x-m>0.489</x-m> <y-m>-0.920</y-m> <z-m>0.576</z-m> </center> <axis> <x>0</x> <y>-0.999</y> <z>0.053</z> </axis> </animation> <animation> <type>rotate</type> <object-name>L.flap</object-name> <property>surface-positions/flap-pos-norm</property> <factor>-40.0</factor> <center> <x-m>0.594</x-m> <y-m>-0.913</y-m> <z-m>0.913</z-m> </center> <axis> <x>0</x> <y>-0.999</y> <z>0.053</z> </axis> </animation> <animation> <type>rotate</type> <object-name>L.aileron</object-name> <property>controls/flight/aileron</property> <factor>-20.0</factor> <center> <x-m>0.592</x-m> <y-m>-6.040</y-m> <z-m>1.181</z-m> </center> <axis> <x>0</x> <y>-0.999</y> <z>0.053</z> </axis> </animation> <!-- Props --> <animation> <type>select</type> <object-name>Lprop.1</object-name> <object-name>Lprop.2</object-name> <object-name>Lprop.3</object-name> <condition> <less-than> <property>engines/engine[0]/n2</property> <value>70.0001</value> </less-than> </condition> </animation> <animation> <type>select</type> <object-name>Lprop.disk</object-name> <condition> <greater-than> <property>engines/engine[0]/n2</property> <value>70.000</value> </greater-than> </condition> </animation> <animation> <type>spin</type> <object-name>Lprop.1</object-name> <object-name>Lprop.2</object-name> <object-name>Lprop.3</object-name> <property>engines/engine[0]/n2</property> <factor>10.0</factor> <center> <x-m>-2.660</x-m> <y-m>-2.857</y-m> <z-m>1.012</z-m> </center> <axis> <x>1</x> <y>0</y> <z>0</z> </axis> </animation> <animation> <type>select</type> <object-name>Rprop.1</object-name> <object-name>Rprop.2</object-name> <object-name>Rprop.3</object-name> <condition> <less-than> <property>engines/engine[1]/n2</property> <value>70.0001</value> </less-than> </condition> </animation> <animation> <type>select</type> <object-name>Rprop.disk</object-name> <condition> <greater-than> <property>engines/engine[1]/n2</property> <value>70.000</value> </greater-than> </condition> </animation> <animation> <type>spin</type> <object-name>Rprop.1</object-name> <object-name>Rprop.2</object-name> <object-name>Rprop.3</object-name> <property>engines/engine[1]/n2</property> <factor>10.0</factor> <center> <x-m>-2.660</x-m> <y-m>2.857</y-m> <z-m>1.012</z-m> </center> <axis> <x>1</x> <y>0</y> <z>0</z> </axis> </animation> <!-- GEAR --> <animation> <type>translate</type> <object-name>FrtStrut</object-name> <object-name>FrtWheel</object-name> <property>gear/gear[0]/compression-m</property> <factor>1.0</factor> <axis> <x>0.087</x> <y>0</y> <z>0.996</z> </axis> </animation> <animation> <type>rotate</type> <object-name>Lwheel</object-name> <object-name>LHstrut</object-name> <property>gear/gear[1]/compression-m</property> <interpolation> <entry><ind>0.0</ind><dep>0.0</dep></entry> <entry><ind>0.5</ind><dep>25.0</dep></entry> </interpolation> <center> <x-m>-0.134</x-m> <y-m>-0.923</y-m> <z-m>-0.810</z-m> </center> <axis> <x>-1</x> <y>0</y> <z>0</z> </axis> </animation> <animation> <type>rotate</type> <object-name>Rwheel</object-name> <object-name>RHstrut</object-name> <property>gear/gear[2]/compression-m</property> <interpolation> <entry><ind>0.0</ind><dep>0.0</dep></entry> <entry><ind>0.5</ind><dep>25.0</dep></entry> </interpolation> <center> <x-m>-0.134</x-m> <y-m>0.923</y-m> <z-m>-0.810</z-m> </center> <axis> <x>1</x> <y>0</y> <z>0</z> </axis> </animation> <animation> <type>rotate</type> <object-name>FrtStrut</object-name> <object-name>FrtWheel</object-name> <property>controls/flight/rudder</property> <factor>-30.0</factor> <center> <x-m>-4.410</x-m> <y-m>0</y-m> <z-m>-0.744</z-m> </center> <axis> <x>0.087</x> <y>0</y> <z>0.996</z> </axis> </animation> </PropertyList> --- NEW FILE --- <?xml version="1.0"?> <PropertyList> <path>dhc-6F.ac</path> <animation> <name>ExteriorF</name> <object-name>fuselage</object-name> <object-name>Spinners</object-name> <object-name>bluntnose</object-name> <object-name>RHdoor</object-name> <object-name>LHdoor</object-name> <object-name>Rrdoor.rear</object-name> <object-name>Rrdoor.frt</object-name> <object-name>Baggage.door</object-name> <object-name>wings</object-name> <object-name>R.aileron</object-name> <object-name>R.flap</object-name> <object-name>L.flap</object-name> <object-name>R.slat</object-name> <object-name>L.slat</object-name> <object-name>L.aileron</object-name> <object-name>Hstab</object-name> <object-name>rudder</object-name> <object-name>Elevator</object-name> <object-name>Engine</object-name> <object-name>Engine.cowl</object-name> <object-name>LHstrut</object-name> <object-name>RHstrut</object-name> </animation> <animation> <type>material</type> <object-name>ExteriorF</object-name> <property-base>sim/model/livery</property-base> <texture-prop>texture</texture-prop> <texture>paint1.rgb</texture> </animation> <animation> <type>shader</type> <shader>chrome</shader> <texture>Aircraft/dhc6/Models/chrome1.rgb</texture> <object-name>glass</object-name> <object-name>LHdoor.glass</object-name> <object-name>RHdoor.glass</object-name> <object-name>Rrdoor.glass</object-name> </animation> <!-- Controls Surfaces --> <animation> <type>rotate</type> <object-name>Elevator</object-name> <property>controls/flight/elevator</property> <factor>15.0</factor> <center> <x-m>7.593</x-m> <y-m>0</y-m> <z-m>1.186</z-m> </center> <axis> <x>0</x> <y>1</y> <z>0</z> </axis> </animation> <animation> <type>rotate</type> <object-name>rudder</object-name> <property>controls/flight/rudder</property> <factor>17.0</factor> <center> <x-m>8.087</x-m> <y-m>0</y-m> <z-m>1.995</z-m> </center> <axis> <x>0.324</x> <y>0</y> <z>0.946</z> </axis> </animation> <animation> <type>rotate</type> <object-name>R.slat</object-name> <object-name>R.flap</object-name> <object-name>R.aileron</object-name> <property>surface-positions/flap-pos-norm</property> <factor>20.0</factor> <center> <x-m>0.489</x-m> <y-m>0.920</y-m> <z-m>0.576</z-m> </center> <axis> <x>0</x> <y>0.999</y> <z>0.053</z> </axis> </animation> <animation> <type>rotate</type> <object-name>R.flap</object-name> <property>surface-positions/flap-pos-norm</property> <factor>20.0</factor> <center> <x-m>0.594</x-m> <y-m>0.913</y-m> <z-m>0.913</z-m> </center> <axis> <x>0</x> <y>0.999</y> <z>0.053</z> </axis> </animation> <animation> <type>rotate</type> <object-name>R.aileron</object-name> <property>controls/flight/aileron</property> <factor>-20.0</factor> <center> <x-m>0.592</x-m> <y-m>6.040</y-m> <z-m>1.181</z-m> </center> <axis> <x>0</x> <y>0.999</y> <z>0.053</z> </axis> </animation> <animation> <type>rotate</type> <object-name>L.slat</object-name> <object-name>L.flap</object-name> <object-name>L.aileron</object-name> <property>surface-positions/flap-pos-norm</property> <factor>-20.0</factor> <center> <x-m>0.489</x-m> <y-m>-0.920</y-m> <z-m>0.576</z-m> </center> <axis> <x>0</x> <y>-0.999</y> <z>0.053</z> </axis> </animation> <animation> <type>rotate</type> <object-name>L.flap</object-name> <property>surface-positions/flap-pos-norm</property> <factor>-40.0</factor> <center> <x-m>0.594</x-m> <y-m>-0.913</y-m> <z-m>0.913</z-m> </center> <axis> <x>0</x> <y>-0.999</y> <z>0.053</z> </axis> </animation> <animation> <type>rotate</type> <object-name>L.aileron</object-name> <property>controls/flight/aileron</property> <factor>-20.0</factor> <center> <x-m>0.592</x-m> <y-m>-6.040</y-m> <z-m>1.181</z-m> </center> <axis> <x>0</x> <y>-0.999</y> <z>0.053</z> </axis> </animation> <!-- Props --> <animation> <type>select</type> <object-name>Lprop.1</object-name> <object-name>Lprop.2</object-name> <object-name>Lprop.3</object-name> <condition> <less-than> <property>engines/engine[0]/n2</property> <value>70.0001</value> </less-than> </condition> </animation> <animation> <type>select</type> <object-name>Lprop.disk</object-name> <condition> <greater-than> <property>engines/engine[0]/n2</property> <value>70.000</value> </greater-than> </condition> </animation> <animation> <type>spin</type> <object-name>Lprop.1</object-name> <object-name>Lprop.2</object-name> <object-name>Lprop.3</object-name> <property>engines/engine[0]/n2</property> <factor>10.0</factor> <center> <x-m>-2.660</x-m> <y-m>-2.857</y-m> <z-m>1.012</z-m> </center> <axis> <x>1</x> <y>0</y> <z>0</z> </axis> </animation> <animation> <type>select</type> <object-name>Rprop.1</object-name> <object-name>Rprop.2</object-name> <object-name>Rprop.3</object-name> <condition> <less-than> <property>engines/engine[1]/n2</property> <value>70.0001</value> </less-than> </condition> </animation> <animation> <type>select</type> <object-name>Rprop.disk</object-name> <condition> <greater-than> <property>engines/engine[1]/n2</property> <value>70.000</value> </greater-than> </condition> </animation> <animation> <type>spin</type> <object-name>Rprop.1</object-name> <object-name>Rprop.2</object-name> <object-name>Rprop.3</object-name> <property>engines/engine[1]/n2</property> <factor>10.0</factor> <center> <x-m>-2.660</x-m> <y-m>2.857</y-m> <z-m>1.012</z-m> </center> <axis> <x>1</x> <y>0</y> <z>0</z> </axis> </animation> </PropertyList> --- NEW FILE --- Ú Ù ; w ª ¤¦¦§¨ª©¨§§¦¦¥ ¡ ¤¥¦§¦¥¤¤£¢££¢¢££¤£¢¢£¤¥¦¤¤££¡¡ ¥¦§§¦§¦¤¥ ¦¦¤¤¥¤ ©ªª©©§¥¤¢ ¥¦¦¥¥¤¢ ¡££¢¡¡ ¡¢¢¤¥¦¦¨ª«¬ª©§§¦¥¤¤£¢¡ ¤£¢¡ ¢£¤¤¥§¨ª©¨¦¥¤¤ ¢££¤££¢¢ ¡ ¤£¢¡¢£¤¤¥¦¦§¦¥¥¤¤ £¤££¡ ¡ ¡¢££¤ £¢¢£¡¢¢¡¡ ¡ ¡¢£¢¡¢¢¡¡ ¢ --- NEW FILE --- AC3Db MATERIAL "DefaultWhite" rgb 1 1 1 amb 1 1 1 emis 0 0 0 spec 0.5 0.5 0.5 shi 64 trans 0 MATERIAL "paint.001" rgb 0.8 0.8 0.8 amb 0 0 0 emis 0 0 0 spec 1 1 1 shi 49 trans 0 MATERIAL "flat.002" rgb 0.1 0.1 0.1 amb 0.5 0.5 0.5 emis 0 0 0 spec 0 0 0 shi 0 trans 0 MATERIAL "chrome.001" rgb 0.733334 0.733334 0.733334 amb 0 0 0 emis 0 0 0 spec 1 1 1 shi 63 trans 0 MATERIAL "glass.001" rgb 0.139136 0.16242 0.255556 amb 0 0 0 emis 0 0 0 spec 1 1 1 shi 32 trans 0 MATERIAL "trans.001" rgb 1 1 1 amb 0 0 0 emis 0 0 0 spec 0.5 0.5 0.5 shi 0 trans 0.8 MATERIAL "interior.001" rgb 0.8 0.8 0.8 amb 0 0 0 emis 0 0 0 spec 0.092684 0.092684 0.092684 shi 9 trans 0 OBJECT world kids 47 OBJECT poly name "Baggage.door" data 10 Circle.002 texture "paint2.rgb" texrep 1 1 crease 45.000000 numvert 10 3.687783 -0.501487 0.479101 [...41779 lines suppressed...] SURF 0x10 mat 1 refs 4 350 0.454130023718 0.583011806011 345 0.454130023718 0.581580758095 347 0.0187620595098 0.581582009792 351 0.0186938997358 0.583012521267 SURF 0x10 mat 1 refs 3 346 0.0186257120222 0.583808481693 351 0.0186938997358 0.583012521267 289 0.0185089036822 0.548923313618 SURF 0x10 mat 1 refs 3 351 0.0186938997358 0.583012521267 347 0.0187620595098 0.581582009792 289 0.0185089036822 0.548923313618 kids 0 --- NEW FILE --- AC3Db MATERIAL "DefaultWhite" rgb 1 1 1 amb 1 1 1 emis 0 0 0 spec 0.5 0.5 0.5 shi 64 trans 0 MATERIAL "paint" rgb 0.8 0.8 0.8 amb 0 0 0 emis 0 0 0 spec 1 1 1 shi 49 trans 0 MATERIAL "flat" rgb 0.1 0.1 0.1 amb 0.5 0.5 0.5 emis 0 0 0 spec 0 0 0 shi 0 trans 0 MATERIAL "glass" rgb 0.139136 0.16242 0.255556 amb 0 0 0 emis 0 0 0 spec 1 1 1 shi 32 trans 0 MATERIAL "trans" rgb 1 1 1 amb 0 0 0 emis 0 0 0 spec 0.5 0.5 0.5 shi 0 trans 0.8 MATERIAL "interior" rgb 0.8 0.8 0.8 amb 0 0 0 emis 0 0 0 spec 0.092684 0.092684 0.092684 shi 9 trans 0 OBJECT world kids 41 OBJECT poly name "Baggage.door" data 10 Circle.023 texture "paint2.rgb" texrep 1 1 crease 45.000000 numvert 10 3.687783 -0.501487 0.479101 2.968057 -0.501487 0.571556 [...34513 lines suppressed...] SURF 0x10 mat 1 refs 4 350 0.454130023718 0.583011806011 345 0.454130023718 0.581580758095 347 0.0187620595098 0.581582009792 351 0.0186938997358 0.583012521267 SURF 0x10 mat 1 refs 3 346 0.0186257120222 0.583808481693 351 0.0186938997358 0.583012521267 289 0.0185089036822 0.548923313618 SURF 0x10 mat 1 refs 3 351 0.0186938997358 0.583012521267 347 0.0187620595098 0.581582009792 289 0.0185089036822 0.548923313618 kids 0 --- NEW FILE --- Ú ; ¼ Õ h ê [...1005 lines suppressed...] "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÄÆÈM~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÄÆÈM~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÆÈM~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÆÈM~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÆÈM~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÆÈM~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÆÈM~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÆÈM~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÆÈM~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÆÈM~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÆÈM~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÇÈM~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÇÈM~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÇÈM~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÇÈM~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÇÈM~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÇÈM~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÇÈM~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÇÈM~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÇÈM~ --- NEW FILE --- Ú v 5 } ) È ~Ì~Ì~Ì~Ì~Ì~Ì~Ì~ÌÌÄ Ì~Ì~Ì~Ì~Ì~Ì~ÌÌÄ ~Ì~Ì~Ì~Ì~ÌÌÄ [...1110 lines suppressed...] "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÄÆÈc\#$T«ÌÊk~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÄÆÈa]QªÌÊk~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÆÈ¶^ª ¯ÁÌÄG~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÆÈc^# ;ËÄG~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÆÈa^ 7ËÄG~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÆÈ¶_ª ¾Ì¯"~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÆÈc_# 2 ʯ"~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÆÈa_ .ʯ"~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÆÈ¶`ª ¬ÂÌ ~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÆÈc`# -Ì ~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÆÈa` (Ì ~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÇȶaª±ÉÈZ~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÇÈca#EºÈZ~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÇÈaaA¹ÈZ~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÇÈ·aª «¼Ì³.~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÇÈca# $yʳ.~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÇÈaa vʳ.~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÇÈ·bª ¬ÂÌ~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÇÈcb# -Ì~ "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdegikmoqsuwy{} ¡£¥§©«¯±³µ·¹»½¿ÁÃÅÇÈab (Ì~ --- NEW FILE --- Ú D Ü b W £ ï [...2253 lines suppressed...] ³«O8³@~8~8]8£³8H³¬~~~~6 ³«O8³@~8~8]8£³8H³¬~~~~6 ³«O8³@~8~8]8£³8H³¬~~~~6 8H£³v~8~8\8}³8³~~~~6 8H£³v~8~8\8}³8³~~~~6 8H£³v~8~8\8}³8³~~~~6 ³£H8 ³£H~8~8Y8«³8³~~~~7 ³£H8 ³£H~8~8Y8«³8³~~~~7 ³£H8 ³£H~8~8Y8«³8³~~~~7 ³£O8}³_~8~8T8_³}8@³~~~~9 ³£O8}³_~8~8T8_³}8@³~~~~9 ³£O8}³_~8~8T8_³}8@³~~~~9 ÿ_~ 8@£³«H8£ ³~~~~V 8@£³«H8£ ³~~~~V 8@£³«H8£ ³~~~~V |
From: Syd Adams <sydadams@fl...> - 2008-01-28 04:02:20
|
Update of /var/cvs/FlightGear-0.9/data/Aircraft/dhc6 In directory baron:/tmp/cvs-serv4124/Aircraft/dhc6 Added Files: autopilot.xml dhc6-base.xml dhc6-set.xml dhc6-sound.xml dhc6.xml dhc6F-set.xml dhc6F.xml instrumentation.xml splash.rgb splash1.rgb Log Message: still a lot of work to be done ... and its OSG hotspots only ... --- NEW FILE --- <?xml version="1.0"?> <PropertyList> <!-- =============================== --> <!-- ====== Lateral Modes ====== --> <!-- =============================== --> <!-- Wing leveler --> <pid-controller> <name>Wing Leveler</name> <debug>false</debug> <enable> <prop>autopilot/locks/heading</prop> <value>wing-leveler</value> <honor-passive>true</honor-passive> </enable> <input> <prop>orientation/roll-deg</prop> </input> <reference> <value>0.0</value> </reference> <output> <prop>controls/flight/aileron</prop> </output> <config> <Kp>0.5</Kp> <beta>1.0</beta> <alpha>0.1</alpha> <gamma>0.0</gamma> <Ti>10.0</Ti> <Td>0.01</Td> <u_min>-1.0</u_min> <u_max>1.0</u_max> </config> </pid-controller> <!-- Heading Bug Hold --> <pi-simple-controller> <name>Heading Bug Hold (DG based) Stage 1</name> <debug>false</debug> <enable> <prop>autopilot/locks/heading</prop> <value>dg-heading-hold</value> </enable> <input> <prop>autopilot/internal/fdm-heading-bug-error-deg</prop> </input> <reference> <value>0.0</value> </reference> <output> <prop>autopilot/internal/target-roll-deg</prop> </output> <config> <Kp>-1.5</Kp> <Ki>0.0</Ki> <u_min>-27.0</u_min> <u_max>27.0</u_max> </config> </pi-simple-controller> <pid-controller> <name>Heading Bug Hold (DG based) Stage 2</name> <debug>false</debug> <enable> <prop>autopilot/locks/heading</prop> <value>dg-heading-hold</value> <honor-passive>true</honor-passive> </enable> <input> <prop>orientation/roll-deg</prop> </input> <reference> <prop>autopilot/internal/target-roll-deg</prop> </reference> <output> <prop>controls/flight/aileron</prop> </output> <config> <Kp>0.5</Kp> <beta>1.0</beta> <alpha>0.1</alpha> <gamma>0.0</gamma> <Ti>10.0</Ti> <Td>0.01</Td> <u_min>-1.0</u_min> <u_max>1.0</u_max> </config> </pid-controller> <!-- Nav1 hold. --> <pi-simple-controller> <name>Nav1 Hold Stage 1</name> <debug>false</debug> <enable> <prop>autopilot/locks/heading</prop> <value>nav1-hold</value> </enable> <input> <prop>instrumentation/flightdirector/nav-hdg-deg</prop> </input> <reference> <value>0</value> </reference> <output> <prop>autopilot/internal/target-roll-deg</prop> </output> <config> <Kp>-1.5</Kp> <Ki>0.0</Ki> <u_min>-30.0</u_min> <u_max>30.0</u_max> </config> </pi-simple-controller> <pid-controller> <name>Nav1 Hold Stage 2</name> <debug>false</debug> <enable> <prop>autopilot/locks/heading</prop> <value>nav1-hold</value> <honor-passive>true</honor-passive> </enable> <input> <prop>orientation/roll-deg</prop> </input> <reference> <prop>autopilot/internal/target-roll-deg</prop> </reference> <output> <prop>controls/flight/aileron</prop> </output> <config> <Kp>0.5</Kp> <beta>1.0</beta> <alpha>0.1</alpha> <gamma>0.0</gamma> <Ti>10.0</Ti> <Td>0.01</Td> <u_min>-1.0</u_min> <u_max>1.0</u_max> </config> </pid-controller> <!-- ================================ --> <!-- ======= Vertical Modes ======= --> <!-- ================================ --> <!-- Pitch hold --> <pid-controller> <name>Pitch hold</name> <debug>false</debug> <enable> <prop>autopilot/locks/altitude</prop> <value>pitch-hold</value> <honor-passive>true</honor-passive> </enable> <input> <prop>orientation/pitch-deg</prop> </input> <reference> <prop>autopilot/settings/target-pitch-deg</prop> </reference> <output> <prop>controls/flight/elevator</prop> </output> <config> <Kp>-0.1</Kp> <beta>1.0</beta> <alpha>0.1</alpha> <gamma>0.0</gamma> <Ti>1.0</Ti> <Td>0.00001</Td> <u_min>-0.5</u_min> <u_max>0.5</u_max> </config> </pid-controller> <!-- altitude hold --> <pi-simple-controller> <name>Altitude Hold (Altimeter based) Stage 1</name> <debug>false</debug> <enable> <prop>autopilot/locks/altitude</prop> <value>altitude-hold</value> </enable> <input> <prop>position/altitude-ft</prop> </input> <reference> <prop>autopilot/settings/target-altitude-ft</prop> </reference> <output> <prop>autopilot/internal/target-climb-rate-fps</prop> </output> <config> <Kp>0.3</Kp> <Ki>0.0</Ki> <u_min>-33.3</u_min> <u_max>33.3</u_max> </config> </pi-simple-controller> <pid-controller> <name>Altitude Hold (Altimeter based) Stage 2</name> <debug>false</debug> <enable> <prop>autopilot/locks/altitude</prop> <value>altitude-hold</value> </enable> <input> <prop>velocities/vertical-speed-fps</prop> </input> <reference> <prop>autopilot/internal/target-climb-rate-fps</prop> </reference> <output> <prop>autopilot/settings/target-pitch-deg</prop> </output> <config> <Kp>0.06</Kp> <beta>1.0</beta> <alpha>0.1</alpha> <gamma>0.0</gamma> <Ti>10.0</Ti> <Td>0.00001</Td> <u_min>-5.0</u_min> <u_max>5.0</u_max> </config> </pid-controller> <pid-controller> <name>Pitch hold</name> <debug>false</debug> <enable> <prop>autopilot/locks/altitude</prop> <value>altitude-hold</value> <honor-passive>true</honor-passive> </enable> <input> <prop>orientation/pitch-deg</prop> </input> <reference> <prop>autopilot/settings/target-pitch-deg</prop> </reference> <output> <prop>controls/flight/elevator</prop> </output> <config> <Kp>-0.05</Kp> <beta>1.0</beta> <alpha>0.01</alpha> <gamma>0.0</gamma> <Ti>10.0</Ti> <Td>0.000001</Td> <u_min>-0.25</u_min> <u_max>0.25</u_max> </config> </pid-controller> <!-- Glideslope hold. --> <pid-controller> <name>Glideslope Hold</name> <debug>false</debug> <enable> <prop>autopilot/locks/altitude</prop> <value>gs1-hold</value> </enable> <input> <prop>velocities/vertical-speed-fps</prop> </input> <reference> <prop>instrumentation/nav[0]/gs-rate-of-climb</prop> </reference> <output> <prop>autopilot/settings/target-pitch-deg</prop> </output> <config> <Kp>0.06</Kp> <beta>1.0</beta> <alpha>0.1</alpha> <gamma>0.0</gamma> <Ti>10.0</Ti> <Td>0.00001</Td> <u_min>-5.0</u_min> <u_max>5.0</u_max> </config> </pid-controller> <pid-controller> <name>Pitch hold</name> <debug>false</debug> <enable> <prop>autopilot/locks/altitude</prop> <value>gs1-hold</value> <honor-passive>true</honor-passive> </enable> <input> <prop>orientation/pitch-deg</prop> </input> <reference> <prop>autopilot/settings/target-pitch-deg</prop> </reference> <output> <prop>controls/flight/elevator</prop> </output> <config> <Kp>-0.05</Kp> <beta>1.0</beta> <alpha>0.1</alpha> <gamma>0.0</gamma> <Ti>1.0</Ti> <Td>0.00001</Td> <u_min>-0.5</u_min> <u_max>0.5</u_max> </config> </pid-controller> <!-- Vertical Speed hold --> <pid-controller> <name>Vertical Speed Hold</name> <debug>false</debug> <enable> <prop>/autopilot/locks/altitude</prop> <value>vertical-speed-hold</value> <honor-passive>true</honor-passive> </enable> <input> <prop>velocities/vertical-speed-fps</prop> </input> <reference> <prop>autopilot/settings/vertical-speed-fpm</prop> <scale>0.01667</scale> </reference> <output> <prop>controls/flight/elevator</prop> </output> <config> <Kp>-0.02</Kp> <beta>1.0</beta> <alpha>0.1</alpha> <gamma>0.0</gamma> <Ti>5.0</Ti> <Td>0.00001</Td> <u_min>-0.5</u_min> <u_max>0.5</u_max> </config> </pid-controller> <!-- ============== Speed Modes ============== --> <!-- Simple Auto throttle --> <pid-controller> <name>Auto Throttle</name> <debug>false</debug> <enable> <prop>autopilot/locks/speed</prop> <value>ias-hold</value> </enable> <input> <prop>velocities/airspeed-kt</prop> </input> <reference> <prop>autopilot/settings/target-speed-kt</prop> </reference> <output> <prop>controls/flight/elevator</prop> </output> <config> <Kp>-0.05</Kp> <beta>1.0</beta> <alpha>0.1</alpha> <gamma>0.0</gamma> <Ti>1.0</Ti> <Td>0.00001</Td> <u_min>-0.5</u_min> <u_max>0.5</u_max> </config> </pid-controller> <!-- Yaw Damper --> <pid-controller> <name>yaw damper</name> <debug>false</debug> <enable> <prop>controls/flight/yaw-damper</prop> <value type="bool">true</value> </enable> <input> <prop>instrumentation/slip-skid-ball/indicated-slip-skid</prop> </input> <reference> <value>0.0</value> </reference> <output> <prop>controls/flight/rudder</prop> </output> <config> <Kp>0.125</Kp> <beta>1.0</beta> <alpha>0.1</alpha> <gamma>0.0</gamma> <Ti>3.0</Ti> <Td>0.0</Td> <u_min>-0.5</u_min> <u_max>0.5</u_max> </config> </pid-controller> </PropertyList> --- NEW FILE --- <?xml version="1.0"?> <!-- ************************************************************************ de Havilland Twin Otter Jan 2008 Syd Adams ************************************************************************ --> <PropertyList> <sim> <model> <start-idling type="bool">0</start-idling> <variant type="int">0</variant> </model> <view n="0"> <internal archive="y">true</internal> <name>Cockpit</name> <type>lookfrom</type> <internal type="bool">true</internal> <config> <default-field-of-view-deg>60</default-field-of-view-deg> <x-offset-m type="double">-0.48</x-offset-m> <y-offset-m type="double">0.72</y-offset-m> <z-offset-m type="double">-3.26</z-offset-m> <pitch-offset-deg>-12</pitch-offset-deg> </config> </view> <current-view> <config> <default-field-of-view-deg>60</default-field-of-view-deg> </config> </current-view> <systems> <electrical> <path></path> </electrical> <autopilot> <path>Aircraft/dhc6/autopilot.xml</path> </autopilot> </systems> <instrumentation> <path>Aircraft/dhc6/instrumentation.xml</path> </instrumentation> <sound> <path>Aircraft/dhc6/dhc6-sound.xml</path> </sound> <flaps> <setting>0.000</setting> <setting>0.125</setting> <setting>0.250</setting> <setting>0.375</setting> <setting>0.500</setting> <setting>0.625</setting> <setting>0.750</setting> <setting>0.875</setting> <setting>1.000</setting> </flaps> <virtual-cockpit>true</virtual-cockpit> <allow-toggle-cockpit>true</allow-toggle-cockpit> <help> <title>Twin Otter</title> <line></line> </help> <weight n="0"> <name>Crew</name> <weight-lb>360</weight-lb> <max-lb>400</max-lb> <min-lb>180</min-lb> </weight> <weight n="1"> <name>Pax/Baggage</name> <weight-lb>1898</weight-lb> <max-lb>4000</max-lb> <min-lb>0</min-lb> </weight> <yokes-visible type="bool">1</yokes-visible> </sim> <controls> <electric> <battery-switch type = "bool">0</battery-switch> <avionics-switch type = "bool">0</avionics-switch> <external-power type = "bool">0</external-power> <engine n="0"> <generator>false</generator> </engine> <engine n="1"> <generator>false</generator> </engine> </electric> <lighting> <instrument-lights>0</instrument-lights> </lighting> <engines> <fire-test type="bool">0</fire-test> <engine n="0"> <condition>0</condition> <cutoff>0</cutoff> <condition-lever>0</condition-lever> <propeller-pitch>0</propeller-pitch> </engine> <engine n="1"> <condition>0</condition> <cutoff>0</cutoff> <condition-lever>0</condition-lever> <propeller-pitch>0</propeller-pitch> </engine> </engines> </controls> <consumables> <fuel> <tank n="0"> <name>Front Tank</name> </tank> <tank n="1"> <name>Rear Tank</name> </tank> </fuel> </consumables> <instrumentation> <flightdirector> <serviceable>true</serviceable> </flightdirector> <altimeter> <millibars type= "double">0</millibars> </altimeter> <transponder> <inputs> <serviceable type="bool">true</serviceable> </inputs> </transponder> <nav n="0"> <serviceable type="bool">1</serviceable> </nav> <nav n="1"> <serviceable type="bool">1</serviceable> </nav> <comm n="0"> <serviceable type="bool">1</serviceable> </comm> <comm n="1"> <serviceable type="bool">1</serviceable> </comm> </instrumentation> <engines> <engine n="0"> <running>0</running> <rpm>0</rpm> <fuel-flow-pph type="float">0</fuel-flow-pph> </engine> <engine n="1"> <running>0</running> <rpm>0</rpm> <fuel-flow-pph type="float">0</fuel-flow-pph> </engine> </engines> <autopilot> <locks> <passive-mode type="bool">true</passive-mode> </locks> </autopilot> <environment> <turbulence> <use-cloud-turbulence>true</use-cloud-turbulence> </turbulence> </environment> </PropertyList> --- NEW FILE --- <?xml version="1.0"?> <!-- ************************************************************************ de Havilland Twin Otter Jan 2008 Syd Adams ************************************************************************ --> <PropertyList include="dhc6-base.xml"> <sim> <description>de Havilland Twin Otter (wheels)</description> <status>developement</status> <author>Syd Adams</author> <flight-model>yasim</flight-model> <aero>dhc6</aero> <fuel-fraction>0.5</fuel-fraction> <startup> <splash-texture>Aircraft/dhc6/splash.rgb</splash-texture> </startup> <model> <path>Aircraft/dhc6/Models/DHC6.xml</path> </model> <hitches> <aerotow> <tow> <length type="float">60</length> <elastic-constant type="float">10000</elastic-constant> <weight-per-m-kg-m type="float">1</weight-per-m-kg-m> <dist type="float">1</dist> <connected-to-property-node type="bool"></connected-to-property-node> <brake-force type="float">100000</brake-force> <connected-to-ai-or-mp-callsign type ="string">*</connected-to-ai-or-mp-callsign> <end-force-x type ="float">0</end-force-x> <end-force-y type ="float">0</end-force-y> <end-force-z type ="float">0</end-force-z> </tow> <speed-in-tow-direction type="float">0</speed-in-tow-direction> <open type="bool">true</open> <local-pos-x type="float">0</local-pos-x> <local-pos-y type="float">0</local-pos-y> <local-pos-z type="float">0</local-pos-z> <is-slave type="bool">false</is-slave> </aerotow> </hitches> <menubar> <default> <menu n="10"> <label>DHC-6</label> <enabled type="bool">true</enabled> <item> <label>Autostart</label> <binding> <command>property-toggle</command> <property>sim/model/start-idling</property> </binding> </item> <item> <label>Open tow-hook</label> <binding> <command>property-assign</command> <property>/sim/hitches/aerotow/open</property> <value type="bool">true</value> </binding> </item> <item> <label>Lock tow-hook</label> <binding> <command>property-assign</command> <property>/sim/hitches/aerotow/open</property> <value type="bool">false</value> </binding> </item> <item> <label>Select Livery</label> <binding> <command>nasal</command> <script>aircraft.livery.dialog.toggle()</script> </binding> </item> </menu> </default> </menubar> </sim> <controls> <gear> <brake-parking>1</brake-parking> </gear> </controls> <input> <keyboard> <key n="79"> <name>O</name> <desc>Open aerotow hook</desc> <binding> <command>property-assign</command> <property>/sim/hitches/aerotow/open</property> <value type="bool">true</value> </binding> </key> <key n="111"> <name>o</name> <desc>Lock aerotow hook</desc> <binding> <command>property-assign</command> <property>/sim/hitches/aerotow/open</property> <value type="bool">false</value> </binding> </key> </keyboard> </input> <nasal> <dhc6> <file>Aircraft/dhc6/Nasal/Electrical.nas</file> <file>Aircraft/dhc6/Nasal/systems.nas</file> <file>Aircraft/dhc6/Nasal/vhf22.nas</file> <file>Aircraft/dhc6/Nasal/vir32.nas</file> <file>Aircraft/Instruments-3d/clock/M877/M877.nas</file> </dhc6> </nasal> <hitch name="aerotow" x="-6.2" y="0" z="-0.12" force-is-calculated-by-other="1"> <tow length="60" weight-per-meter="0.035" elastic-constant="9000" break-force="10000" mp-auto-connect-period="1.0"/> <winch max-tow-length="1000" min-tow-length="60" initial-tow-length="60"/> </hitch> </PropertyList> --- NEW FILE --- <?xml version="1.0"?> <PropertyList> <fx> <!-- Engine 1 --> <crank> <name>engstart0</name> <reference-dist>1.0</reference-dist> <max-dist>4.0</max-dist> <mode>once</mode> <path>Sounds/turbine_start.wav</path> <condition> <greater-than> <property>controls/engines/engine[0]/condition</property> <value>0.1</value> </greater-than> </condition> <volume> <property>sim/sound/cabin</property> <factor>0.3</factor> </volume> <position> <x>-1.5</x> <y>2.6</y> <z>-0.33</z> </position> </crank> <prop> <name>prop1</name> <reference-dist>150.0</reference-dist> <max-dist>500.0</max-dist> <mode>looped</mode> <path>Sounds/turboprop1.wav</path> <property>engines/engine[0]/n2</property> <condition> <greater-than> <property>controls/engines/engine[0]/condition</property> <value>0.001</value> </greater-than> </condition> <volume> <property>engines/engine[0]/n2</property> <factor>0.01</factor> </volume> <volume> <property>sim/sound/E_volume</property> </volume> <pitch> <property>engines/engine[0]/n2</property> <offset>0.0</offset> <factor>0.015</factor> <min>0.2</min> <max>1.2</max> </pitch> <position> <x>-1.5</x> <y>2.6</y> <z>-0.33</z> </position> </prop> <turbine0> <name>turbine0</name> <reference-dist>1.0</reference-dist> <max-dist>4.0</max-dist> <mode>looped</mode> <path>Sounds/turbine_loop.wav</path> <property>engines/engine[0]/n2</property> <volume> <property>sim/sound/cabin</property> <factor>0.3</factor> </volume> <position> <x>-1.5</x> <y>2.6</y> <z>-0.33</z> </position> <pitch> <property>engines/engine[0]/n2</property> <offset>1.0</offset> <factor>0.001</factor> </pitch> </turbine0> <shutdown> <name>engine0 off</name> <reference-dist>1.0</reference-dist> <max-dist>4.0</max-dist> <mode>once</mode> <path>Sounds/turbine_shutdown.wav</path> <condition> <equals> <property>controls/engines/engine[0]/condition</property> <value>0</value> </equals> </condition> <volume> <property>sim/sound/cabin</property> <factor>0.3</factor> </volume> <position> <x>-1.5</x> <y>2.6</y> <z>-0.33</z> </position> </shutdown> <!-- Engine 2 --> <crank> <name>engstart1</name> <reference-dist>2.0</reference-dist> <max-dist>4.0</max-dist> <mode>once</mode> <path>Sounds/turbine_start.wav</path> <condition> <greater-than> <property>controls/engines/engine[1]/condition</property> <value>0</value> </greater-than> </condition> <volume> <property>sim/sound/cabin</property> <factor>0.3</factor> </volume> <position> <x>-1.5</x> <y>-2.6</y> <z>-0.33</z> </position> </crank> <prop> <name>prop2</name> <reference-dist>150.0</reference-dist> <max-dist>500.0</max-dist> <mode>looped</mode> <path>Sounds/turboprop1.wav</path> <property>engines/engine[1]/n2</property> <condition> <greater-than> <property>controls/engines/engine[1]/condition</property> <value>0.001</value> </greater-than> </condition> <volume> <property>engines/engine[1]/n2</property> <factor>0.01</factor> </volume> <volume> <property>sim/sound/E_volume</property> </volume> <pitch> <property>engines/engine[1]/n2</property> <offset>0.0</offset> <factor>0.015</factor> <min>0.2</min> <max>1.2</max> </pitch> <position> <x>-1.5</x> <y>-2.6</y> <z>-0.33</z> </position> </prop> <turbine1> <name>turbine1</name> <reference-dist>1.0</reference-dist> <max-dist>4.0</max-dist> <mode>looped</mode> <path>Sounds/turbine_loop.wav</path> <condition> <greater-than> <property>engines/engine[1]/n2</property> <value>50.995</value> </greater-than> </condition> <volume> <property>sim/sound/cabin</property> <factor>0.3</factor> </volume> <position> <x>-1.5</x> <y>-2.6</y> <z>-0.33</z> </position> <pitch> <property>engines/engine[1]/n2</property> <offset>1.0</offset> <factor>0.001</factor> </pitch> </turbine1> <shutdown> <name>engine1 off</name> <reference-dist>1.0</reference-dist> <max-dist>4.0</max-dist> <mode>once</mode> <path>Sounds/turbine_shutdown.wav</path> <condition> <equals> <property>controls/engines/engine[1]/condition</property> <value>0</value> </equals> </condition> <volume> <property>sim/sound/cabin</property> <factor>0.3</factor> </volume> <position> <x>-1.5</x> <y>-2.6</y> <z>-0.33</z> </position> </shutdown> <rumble> <name>rumble</name> <reference-dist>2.0</reference-dist> <max-dist>5.0</max-dist> <mode>looped</mode> <path>Sounds/rumble.wav</path> <condition> <or> <property>gear/gear[0]/wow</property> <property>gear/gear[1]/wow</property> <property>gear/gear[2]/wow</property> </or> </condition> <volume> <property>velocities/groundspeed-kt</property> <factor>0.05</factor> <max>0.5</max> </volume> <position> <x>0</x> <y>0</y> <z>-2</z> </position> </rumble> <gear> <name>gear</name> <mode>in-transit</mode> <path>Sounds/gear.wav</path> <property>gear/gear[0]/position-norm</property> <reference-dist>2.0</reference-dist> <max-dist>5.0</max-dist> <pitch> <internal>dt_play</internal> <offset>0.8</offset> <factor>-0.001</factor> </pitch> <position> <x>0</x> <y>0</y> <z>-2</z> </position> </gear> <gear> <name>gear-lock</name> <path>Sounds/gear-lck.wav</path> <condition> <equals> <property>gear/gear[0]/position-norm</property> <value>0</value> </equals> </condition> <reference-dist>2.0</reference-dist> <max-dist>5.0</max-dist> <position> <x>0</x> <y>0</y> <z>-2</z> </position> </gear> <squeal> <name>squeal</name> <reference-dist>20.0</reference-dist> <max-dist>40.0</max-dist> <path>Sounds/squeal.wav</path> <condition> <or> <property>gear/gear[0]/wow</property> <property>gear/gear[1]/wow</property> <property>gear/gear[2]/wow</property> </or> </condition> <volume> <property>sim/sound/E_volume</property> </volume> <volume> <property>velocities/airspeed-kt</property> <factor>0.01</factor> </volume> <pitch> <property>velocities/airspeed-kt</property> <factor>0.0025</factor> <offset>1.0</offset> </pitch> <position> <x>0</x> <y>0</y> <z>-2</z> </position> </squeal> <flap> <name>flaps</name> <reference-dist>2.0</reference-dist> <max-dist>5.0</max-dist> <mode>in-transit</mode> <path>Sounds/flaps.wav</path> <property>surface-positions/flap-pos-norm</property> <volume> <property>sim/sound/cabin</property> </volume> <position> <x>0</x> <y>0</y> <z>0</z> </position> </flap> <wind> <name>wind</name> <reference-dist>0.5</reference-dist> <max-dist>1.0</max-dist> <mode>looped</mode> <path>Sounds/wind.wav</path> <condition> <and> <equals> <property>sim/current-view/view-number</property> <value>0</value> </equals> <not> <property>sim/crashed</property> </not> </and> </condition> <position> <x>-5</x> <y>0</y> <z>0</z> </position> <volume> <property>position/altitude-ft</property> <factor>-0.000015</factor> <offset>1.0</offset> <min>0</min> <max>0.5</max> </volume> <volume> <property>velocities/airspeed-kt</property> <factor>0.0015</factor> <min>0.0</min> <max>0.25</max> </volume> <pitch> <property>velocities/airspeed-kt</property> <factor>0.01</factor> <offset>1.0</offset> </pitch> </wind> </fx> </PropertyList> --- NEW FILE --- <!-- DHC6-300 Twin Otter Jan 2008 by Syd Adams. SPECS: Height: 5.9m Length: 15.77 Wing span: 19.8 MTOW: 12,500 lbs Service Ceiling = 26700 ft Cruise at MTOW 5000 ft - 181 TAS 10,000 ft - 182 TAS Stall : Full Flaps = 58 kt O Flaps = 74 kt --> <airplane mass="7500"> <approach speed="80" aoa="5" fuel="0.5"> <control-setting axis="/controls/engines/engine[0]/throttle" value="0.2"/> <control-setting axis="/controls/engines/engine[1]/throttle" value="0.2"/> <control-setting axis="/controls/engines/engine[0]/condition" value="1.0"/> <control-setting axis="/controls/engines/engine[1]/condition" value="1.0"/> <control-setting axis="/controls/flight/flaps" value="0.5"/> <solve-weight idx="0" weight="360"/> <solve-weight idx="1" weight="2940"/> </approach> <cruise speed="180" alt="10000" fuel="0.5"> <control-setting axis="/controls/engines/engine[0]/throttle" value="1.0"/> <control-setting axis="/controls/engines/engine[1]/throttle" value="1.0"/> <control-setting axis="/controls/engines/engine[0]/condition" value="1.0"/> <control-setting axis="/controls/engines/engine[1]/condition" value="1.0"/> <control-setting axis="/controls/flight/flaps" value="0.0"/> <solve-weight idx="0" weight="360"/> <solve-weight idx="1" weight="2940"/> </cruise> <cockpit x="2.8" y="0.3" z="0.745"/> <fuselage ax="6.338" ay="0" az="-0.185" bx="3.609" by="0" bz="0.111" width="1.8" taper="0.2" midpoint="1.0" cy="1.1" cx="1.1"/> <fuselage ax="3.609" ay="0" az="0.111" bx="-2.470" by="0" bz="0.111" width="1.8" taper="1.0" midpoint="0.5" cy="1.1" cx="1.1"/> <fuselage ax="-2.470" ay="0" az="0.111" bx="-8.811" by="0" bz="0.30" width="1.8" taper="0.1" midpoint="0.0" cy="1.1" cx="1.1"/> <fuselage ax="2.497" ay="2.857" az="0.858" bx="-0.410" by="2.857" bz="1.012" width="0.6" taper="0.2" midpoint="0.2" cy="1.5" cx="1.5"/> <fuselage ax="2.497" ay="-2.857" az="0.858" bx="-0.410" by="-2.857" bz="1.012" width="0.6" taper="0.2" midpoint="0.2" cy="1.5" cx="1.5"/> <wing x="0.10" y="0.80" z="1.0" length="9.0" chord="1.95" sweep="0" dihedral="2" taper="1" camber="0.069" incidence="1"> <stall aoa="15" width="6" peak="1.5"/> <flap0 start="0" end=".6" lift="1.6" drag="1.8"/> <flap1 start=".6" end=".95" lift="1.3" drag="1.2"/> <control-input axis="/controls/flight/flaps" control="FLAP0"/> <control-speed control="FLAP0" transition-time="20"/> <control-output control="FLAP0" prop="/surface-positions/flap-pos-norm"/> <control-input axis="/controls/flight/aileron" control="FLAP1" split="true"/> <control-input axis="/controls/flight/aileron-trim" control="FLAP1" split="true"/> <control-output control="FLAP1" side="left" prop="/surface-positions/left-aileron-pos-norm"/> <control-output control="FLAP1" side="right" prop="/surface-positions/right-aileron-pos-norm"/> </wing> <hstab x="-7.47" y="0.08" z="1.186" length="3.15" chord="1.4" sweep="0" dihedral="0" taper="1"> <stall aoa="18" width="4" peak="1.5"/> <flap0 start="0" end="1" lift="1.3" drag="1.1"/> <control-input axis="/controls/flight/elevator" control="FLAP0"/> <control-input axis="/controls/flight/elevator-trim" control="FLAP0"/> <control-output control="FLAP0" prop="/surface-positions/elevator-pos-norm"/> </hstab> <vstab x="-7.312" y="0.00" z="0.3" length="2.6" chord="2.9" sweep="20" taper="0.7" > <stall aoa="16" width="4" peak="1.5"/> <flap0 start="0" end="1" lift="1.2" drag="1.2"/> <control-input axis="/controls/flight/rudder" control="FLAP0" invert="true"/> <control-input axis="/controls/flight/rudder-trim" control="FLAP0" invert="true"/> <control-output control="FLAP0" prop="/surface-positions/rudder-pos-norm"/> </vstab> <!-- 2500 lbs (Jet A) Fuel burn ... 580 lbs/hr --> <tank x="0.66" y="0" z="-0.5" capacity="1000" jet="true"/> <tank x="-1.32" y="0" z="0.5" capacity="1400" jet="true"/> <tank x="0" y="0" z="0" capacity="0"/> <gear x="4.47" y="0.00" z="-1.76" compression=".4" spring="0.9" damp="1.0" sfric="0.5" dfric="0.4"> <control-input axis="/controls/flight/rudder" control="STEER" square="true"/> </gear> <gear x="-0.25" y="2.65" z="-1.8" compression=".3" spring="1.0" damp="0.6" sfric="0.5" dfric="0.4"> <control-input axis="/controls/gear/brake-left" control="BRAKE"/> <control-input axis="/controls/gear/brake-parking" control="BRAKE"/> </gear> <gear x="-0.25" y="-2.65" z="-1.8" compression=".3" spring="1.0" damp="0.6" sfric="0.5" dfric="0.4"> <control-input axis="/controls/gear/brake-right" control="BRAKE"/> <control-input axis="/controls/gear/brake-parking" control="BRAKE"/> </gear> <!-- Engines: 2 PT6A-27 620 shp Prop diam: 2.59 m --> <propeller x="1.3" y="2.65" z="1.0" mass="500" moment="80" radius="1.3" cruise-speed="160" cruise-rpm="2200" cruise-power="620" cruise-alt="10000" min-rpm="1700" max-rpm="2200" fine-stop="0.25" coarse-stop="4.0"> <turbine-engine eng-power="620" eng-rpm="2200" alt="10000" flat-rating="620" max-n2="101.5" bsfc="0.468"/> <actionpt x="2.2" y="2.65" z="1.0"/> <control-input axis="/controls/engines/engine[0]/throttle" control="THROTTLE"/> <control-input axis="/controls/engines/engine[0]/condition" control="CONDLEVER"/> <control-input axis="/controls/engines/engine[0]/starter" control="STARTER"/> <control-input axis="/controls/engines/engine[0]/propeller-pitch" control="ADVANCE"/> <control-input axis="/controls/engines/engine[0]/propeller-feather" control="PROPFEATHER"/> </propeller> <propeller x="1.3" y="-2.65" z="1.0" mass="500" moment="-80" radius="1.3" cruise-speed="160" cruise-rpm="2200" cruise-power="620" cruise-alt="10000" min-rpm="1700" max-rpm="2200" fine-stop="0.25" coarse-stop="4.0"> <turbine-engine eng-power="620" eng-rpm="2200" alt="10000" flat-rating="620" max-n2="101.5" bsfc="0.468"/> <actionpt x="2.2" y="-2.65" z="1.0"/> <control-input axis="/controls/engines/engine[1]/throttle" control="THROTTLE"/> <control-input axis="/controls/engines/engine[1]/condition" control="CONDLEVER"/> <control-input axis="/controls/engines/engine[1]/starter" control="STARTER"/> <control-input axis="/controls/engines/engine[1]/propeller-pitch" control="ADVANCE"/> <control-input axis="/controls/engines/engine[1]/propeller-feather" control="PROPFEATHER"/> </propeller> <!-- <jet x="1.3" y="2.65" z="1.0" mass="500" thrust="2000" tsfc="0.468" epr="3.4" rotate="0" spool-time="4.0"> <control-input axis="/controls/engines/engine[0]/throttle-lever" control="THROTTLE"/> <control-input axis="/controls/engines/engine[0]/mixture" control="MIXTURE"/> <control-input axis="/controls/engines/engine[0]/reverser" control="REVERSE_THRUST"/> <control-output control="REVERSE_THRUST" prop="/surface-positions/reverser-norm"/> <control-speed control="REVERSE_THRUST" transition-time="1.5"/> <actionpt x="2.2" y="2.65" z="1.0"/> </jet> <jet x="1.3" y="-2.65" z="1.0" mass="500" thrust="2000" tsfc="0.468" epr="3.4" rotate="0" spool-time="4.0"> <control-input axis="/controls/engines/engine[1]/throttle-lever" control="THROTTLE"/> <control-input axis="/controls/engines/engine[1]/mixture" control="MIXTURE"/> <control-input axis="/controls/engines/engine[1]/reverser" control="REVERSE_THRUST"/> <control-output control="REVERSE_THRUST" prop="/surface-positions/reverser-norm"/> <control-speed control="REVERSE_THRUST" transition-time="1.5"/> <actionpt x="2.2" y="-2.65" z="1.0"/> </jet> --> <ballast x="-6.5" y="0" z="0" mass="-500"/> <ballast x="0.3" y="0" z="-0.5" mass="1500"/> <ballast x="2.5" y="0" z="-1" mass="1000"/> <weight x="2.5" y="0" z="0" mass-prop="/sim/weight[0]/weight-lb"/> <weight x="0.0" y="0" z="0" mass-prop="/sim/weight[1]/weight-lb"/> <hitch name="aerotow" x="-2.5" y="0" z="-0.85" force-is-calculated-by-other="1"> <tow length="60" weight-per-meter="0.035" elastic-constant="9000" break-force="10000" mp-auto-connect-period="1.0"/> <winch max-tow-length="1000" min-tow-length="60" initial-tow-length="60"/> </hitch> </airplane> --- NEW FILE --- <?xml version="1.0"?> <!-- ************************************************************************ de Havilland Twin Otter Jan 2008 Syd Adams ************************************************************************ --> <PropertyList include="dhc6-base.xml"> <sim> <description>de Havilland Twin Otter (floats)</description> <status>developement</status> <author>Syd Adams</author> <flight-model>yasim</flight-model> <aero>dhc6F</aero> <fuel-fraction>0.5</fuel-fraction> <startup> <splash-texture>Aircraft/dhc6/splash1.rgb</splash-texture> </startup> <model> <path>Aircraft/dhc6/Models/DHC6F.xml</path> </model> <hitches> <aerotow> <tow> <length type="float">60</length> <elastic-constant type="float">10000</elastic-constant> <weight-per-m-kg-m type="float">1</weight-per-m-kg-m> <dist type="float">1</dist> <connected-to-property-node type="bool"></connected-to-property-node> <brake-force type="float">100000</brake-force> <connected-to-ai-or-mp-callsign type ="string">*</connected-to-ai-or-mp-callsign> <end-force-x type ="float">0</end-force-x> <end-force-y type ="float">0</end-force-y> <end-force-z type ="float">0</end-force-z> </tow> <speed-in-tow-direction type="float">0</speed-in-tow-direction> <open type="bool">true</open> <local-pos-x type="float">0</local-pos-x> <local-pos-y type="float">0</local-pos-y> <local-pos-z type="float">0</local-pos-z> <is-slave type="bool">false</is-slave> </aerotow> </hitches> <menubar> <default> <menu n="10"> <label>DHC-6</label> <enabled type="bool">true</enabled> <item> <label>Autostart</label> <binding> <command>property-toggle</command> <property>sim/model/start-idling</property> </binding> </item> <item> <label>Water Rudder Up/Down</label> <binding> <command>property-toggle</command> <property>controls/gear/water-rudder-down</property> </binding> </item> <item> <label>Open tow-hook</label> <binding> <command>property-assign</command> <property>/sim/hitches/aerotow/open</property> <value type="bool">true</value> </binding> </item> <item> <label>Lock tow-hook</label> <binding> <command>property-assign</command> <property>/sim/hitches/aerotow/open</property> <value type="bool">false</value> </binding> </item> <item> <label>Select Livery</label> <binding> <command>nasal</command> <script>aircraft.livery.dialog.toggle()</script> </binding> </item> </menu> </default> </menubar> </sim> <controls> <gear> <brake-parking>1</brake-parking> <water-rudder-pos type="double">0</water-rudder-pos> <water-rudder-down type="bool">0</water-rudder-down> </gear> </controls> <input> <keyboard> <key n="79"> <name>O</name> <desc>Open aerotow hook</desc> <binding> <command>property-assign</command> <property>/sim/hitches/aerotow/open</property> <value type="bool">true</value> </binding> </key> <key n="111"> <name>o</name> <desc>Lock aerotow hook</desc> <binding> <command>property-assign</command> <property>/sim/hitches/aerotow/open</property> <value type="bool">false</value> </binding> </key> </keyboard> </input> <nasal> <dhc6> <file>Aircraft/dhc6/Nasal/Electrical.nas</file> <file>Aircraft/dhc6/Nasal/systems.nas</file> <file>Aircraft/dhc6/Nasal/vhf22.nas</file> <file>Aircraft/dhc6/Nasal/vir32.nas</file> <file>Aircraft/Instruments-3d/clock/M877/M877.nas</file> </dhc6> </nasal> <hitch name="aerotow" x="-6.2" y="0" z="-0.12" force-is-calculated-by-other="1"> <tow length="60" weight-per-meter="0.035" elastic-constant="9000" break-force="10000" mp-auto-connect-period="1.0"/> <winch max-tow-length="1000" min-tow-length="60" initial-tow-length="60"/> </hitch> </PropertyList> --- NEW FILE --- <!-- DHC6-300 Twin Otter Jan 2008 by Syd Adams. SPECS: Height: 5.9m Length: 15.77 Wing span: 19.8 MTOW: 12,500 lbs Service Ceiling = 26700 ft Cruise at MTOW 5000 ft - 181 TAS 10,000 ft - 182 TAS Stall : Full Flaps = 58 kt O Flaps = 74 kt --> <airplane mass="7500"> <approach speed="80" aoa="5" fuel="0.5"> <control-setting axis="/controls/engines/engine[0]/throttle" value="0.20"/> <control-setting axis="/controls/engines/engine[1]/throttle" value="0.20"/> <control-setting axis="/controls/engines/engine[0]/condition" value="1.0"/> <control-setting axis="/controls/engines/engine[1]/condition" value="1.0"/> <control-setting axis="/controls/engines/engine[0]/propeller-pitch" value="1.0"/> <control-setting axis="/controls/engines/engine[1]/propeller-pitch" value="1.0"/> <control-setting axis="/controls/flight/flaps" value="0.5"/> <solve-weight idx="0" weight="360"/> <solve-weight idx="1" weight="2940"/> </approach> <cruise speed="180" alt="10000" fuel="0.5"> <control-setting axis="/controls/engines/engine[0]/throttle" value="1.0"/> <control-setting axis="/controls/engines/engine[1]/throttle" value="1.0"/> <control-setting axis="/controls/engines/engine[0]/condition" value="1.0"/> <control-setting axis="/controls/engines/engine[1]/condition" value="1.0"/> <control-setting axis="/controls/engines/engine[0]/propeller-pitch" value="1.0"/> <control-setting axis="/controls/engines/engine[1]/propeller-pitch" value="1.0"/> <control-setting axis="/controls/flight/flaps" value="0.0"/> <solve-weight idx="0" weight="360"/> <solve-weight idx="1" weight="2940"/> </cruise> <cockpit x="2.8" y="0.3" z="0.745"/> <fuselage ax="6.338" ay="0" az="-0.185" bx="3.609" by="0" bz="0.111" width="1.8" taper="0.2" midpoint="1.0" cy="1.1" cx="1.1"/> <fuselage ax="3.609" ay="0" az="0.111" bx="-2.470" by="0" bz="0.111" width="1.8" taper="1.0" midpoint="0.5" cy="1.1" cx="1.1"/> <fuselage ax="-2.470" ay="0" az="0.111" bx="-8.811" by="0" bz="0.30" width="1.8" taper="0.1" midpoint="0.0" cy="1.1" cx="1.1"/> <fuselage ax="2.497" ay="2.857" az="0.858" bx="-0.410" by="2.857" bz="1.012" width="0.6" taper="0.2" midpoint="0.2" cy="1.5" cx="1.5"/> <fuselage ax="2.497" ay="-2.857" az="0.858" bx="-0.410" by="-2.857" bz="1.012" width="0.6" taper="0.2" midpoint="0.2" cy="1.5" cx="1.5"/> <wing x="0.10" y="0.80" z="1.0" length="9.0" chord="1.95" sweep="0" dihedral="2" taper="1" camber="0.065" incidence="1"> <stall aoa="15" width="6" peak="1.5"/> <flap0 start="0" end=".6" lift="1.5" drag="1.6"/> <flap1 start=".6" end=".95" lift="1.3" drag="1.2"/> <control-input axis="/controls/flight/flaps" control="FLAP0"/> <control-speed control="FLAP0" transition-time="20"/> <control-output control="FLAP0" prop="/surface-positions/flap-pos-norm"/> <control-input axis="/controls/flight/aileron" control="FLAP1" split="true"/> <control-input axis="/controls/flight/aileron-trim" control="FLAP1" split="true"/> <control-output control="FLAP1" side="left" prop="/surface-positions/left-aileron-pos-norm"/> <control-output control="FLAP1" side="right" prop="/surface-positions/right-aileron-pos-norm"/> </wing> <hstab x="-7.47" y="0.08" z="1.186" length="3.15" chord="1.4" sweep="0" dihedral="0" taper="1"> <stall aoa="18" width="4" peak="1.5"/> <flap0 start="0" end="1" lift="1.5" drag="1.1"/> <control-input axis="/controls/flight/elevator" control="FLAP0"/> <control-input axis="/controls/flight/elevator-trim" control="FLAP0"/> <control-output control="FLAP0" prop="/surface-positions/elevator-pos-norm"/> </hstab> <vstab x="-7.312" y="0.00" z="0.3" length="2.6" chord="2.9" sweep="20" taper="0.7" > <stall aoa="16" width="4" peak="1.5"/> <flap0 start="0" end="1" lift="1.2" drag="1.2"/> <control-input axis="/controls/flight/rudder" control="FLAP0" invert="true"/> <control-input axis="/controls/flight/rudder-trim" control="FLAP0" invert="true"/> <control-output control="FLAP0" prop="/surface-positions/rudder-pos-norm"/> </vstab> <!-- 2500 lbs (Jet A) Fuel burn ... 580 lbs/hr --> <tank x="0.66" y="0" z="-0.5" capacity="1000" jet="true"/> <tank x="-1.32" y="0" z="0.5" capacity="1400" jet="true"/> <tank x="0" y="0" z="0" capacity="0"/> <tank x="0" y="0" z="0" capacity="0"/> <!-- Floats--> <gear x="3.758" y="1.75" z="-2.2" compression="1.2" spring = "15" damp="1.5" sfric = "0.8" dfric = "0.7" ignored-by-solver="1" on-water="1" on-solid="0" reduce-friction-by-extension="1.15" speed-planing="15" spring-factor-not-planing="0.7"> </gear> <gear x="3.758" y="-1.75" z="-2.2" compression="1.2" spring = "15" damp="1.5" sfric = "0.8" dfric = "0.7" ignored-by-solver="1" on-water="1" on-solid="0" reduce-friction-by-extension="1.15" speed-planing="15" spring-factor-not-planing="0.7"> </gear> <gear x="-2.2" y="1.75" z="-1.7" compression="1.5" spring = "15" damp="1.5" sfric = "0.85" dfric = "0.75" ignored-by-solver="1" on-water="1" on-solid="0" reduce-friction-by-extension="1.15" speed-planing="25" spring-factor-not-planing="0.25"> </gear> <gear x="-2.2" y="-1.75" z="-1.7" compression="1.5" spring = "15" damp="1.5" sfric = "0.85" dfric = "0.75" ignored-by-solver="1" on-water="1" on-solid="0" reduce-friction-by-extension="1.15" speed-planing="25" spring-factor-not-planing="0.25"> </gear> <!-- Retractable wheels--> <gear x="4.9" y="1.75" z="-2.45" compression="0.2" spring = "2" sfric = "0.5" dfric=".45" retract-time="4" initial-load="0" damp="0.6"> <control-input control="STEER" axis="/controls/flight/rudder" square="true"/> <control-input axis="/controls/gear/gear-down" control="EXTEND"/> <control-output control="EXTEND" prop="/gear/gear[4]/position-norm"/> <control-speed control="EXTEND" transition-time="4"/> </gear> <gear x="4.9" y="-1.75" z="-2.45" compression="0.2" spring = "2" sfric = "0.5" dfric=".45" retract-time="4" initial-load="0" damp="0.6"> <control-input control="STEER" axis="/controls/flight/rudder" square="true"/> <control-input axis="/controls/gear/gear-down" control="EXTEND"/> <control-output control="EXTEND" prop="/gear/gear[5]/position-norm"/> <control-speed control="EXTEND" transition-time="4"/> </gear> <gear x="-1.45" y="1.75" z="-2.37" compression="0.2" spring = "3.5" sfric = "0.5" dfric=".45" retract-time="4" initial-load="1" damp="10.1"> <control-input control="BRAKE" axis="/controls/gear/brake-parking" /> <control-input control="BRAKE" axis="/controls/gear/brake-left" /> <control-input axis="/controls/gear/gear-down" control="EXTEND"/> <control-output control="EXTEND" prop="/gear/gear[6]/position-norm"/> <control-speed control="EXTEND" transition-time="4"/> </gear> <gear x="-1.45" y="-1.75" z="-2.37" compression="0.2" spring = "3.5" sfric = "0.5" dfric=".45" retract-time="4" initial-load="1" damp="10.1"> <control-input control="BRAKE" axis="/controls/gear/brake-parking" /> <control-input control="BRAKE" axis="/controls/gear/brake-right" /> <control-input axis="/controls/gear/gear-down" control="EXTEND"/> <control-output control="EXTEND" prop="/gear/gear[7]/position-norm"/> <control-speed control="EXTEND" transition-time="4"/> </gear> <!-- 2 more Floats, need to be at this position in the file to do not brake the animation "reduce-friction-by-extension" is reduced to get steering control--> <gear x="-4.2" y="1.75" z="-1.7" compression="1.8" spring = "8" sfric = "0.9" dfric = "0.8" ignored-by-solver="1" on-water="1" on-solid="0" reduce-friction-by-extension="0.7" speed-planing="25" spring-factor-not-planing="3"> <control-input axis="/controls/gear/water-rudder-pos" control="STEER" invert ="true" square="true"/> </gear> <gear x="-4.2" y="-1.75" z="-1.7" compression="1.8" spring = "8" sfric = "0.9" dfric = "0.8" ignored-by-solver="1" on-water="1" on-solid="0" reduce-friction-by-extension="0.7" speed-planing="25" spring-factor-not-planing="3"> <control-input axis="/controls/gear/water-rudder-pos" control="STEER" invert="true" square="true"/> </gear> <!-- The Floats on solid ground--> <gear x="3.75" y="1.75" z="-2.2" compression="0.4" spring = "10" sfric = "1.5" dfric = "1.3" skid="1" ignored-by-solver="1"> </gear> <gear x="3.75" y="-1.75" z="-2.2" compression="0.4" spring = "10" sfric = "1.5" dfric = "1.3" skid="1" ignored-by-solver="1"> </gear> <gear x="-4.2" y="1.75" z="-1.70" compression="0.2" spring = "10" sfric = "1.5" dfric = "1.3" skid="1" ignored-by-solver="1"> </gear> <gear x="-4.2" y="-1.75" z="-1.7" compression="0.2" spring = "10" sfric = "1.5" dfric = "1.3" skid="1" ignored-by-solver="1"> </gear> <!-- Retractable wheels on water--> <gear x="0" y="1.75" z="-2.2" compression="0.2" spring = "0.1" sfric = "1" dfric="1" retract-time="4" on-water="1" on-solid="0" ignored-by-solver="1" reduce-friction-by-extension="0.5"> <control-input axis="/controls/gear/gear-down" control="EXTEND"/> <control-speed control="EXTEND" transition-time="4"/> </gear> <gear x="0" y="-1.75" z="-2.2" compression="0.2" spring = "0.1" sfric = "1" dfric ="1" retract-time="4" on-water="1" on-solid="0" ignored-by-solver="1" reduce-friction-by-extension="0.5"> <control-input axis="/controls/gear/gear-down" control="EXTEND"/> <control-speed control="EXTEND" transition-time="4"/> </gear> <!-- Engines: 2 PT6A-27 620 shp Prop diam: 2.59 m --> <propeller x="1.3" y="2.65" z="1.0" mass="500" moment="80" radius="1.3" cruise-speed="180" cruise-rpm="2200" cruise-power="620" cruise-alt="10000" min-rpm="1700" max-rpm="2200" fine-stop="0.25" coarse-stop="4.0"> <turbine-engine eng-power="620" eng-rpm="2200" alt="10000" flat-rating="620" max-n2="101.5" bsfc="0.468"/> <actionpt x="2.2" y="2.65" z="1.0"/> <control-input axis="/controls/engines/engine[0]/throttle" control="THROTTLE"/> <control-input axis="/controls/engines/engine[0]/condition" control="CONDLEVER"/> <control-input axis="/controls/engines/engine[0]/starter" control="STARTER"/> <control-input axis="/controls/engines/engine[0]/propeller-pitch" control="ADVANCE"/> <control-input axis="/controls/engines/engine[0]/propeller-feather" control="PROPFEATHER"/> </propeller> <propeller x="1.3" y="-2.65" z="1.0" mass="500" moment="-80" radius="1.3" cruise-speed="180" cruise-rpm="2200" cruise-power="620" cruise-alt="10000" min-rpm="1700" max-rpm="2200" fine-stop="0.25" coarse-stop="4.0"> <turbine-engine eng-power="620" eng-rpm="2200" alt="10000" flat-rating="620" max-n2="101.5" bsfc="0.468"/> <actionpt x="2.2" y="-2.65" z="1.0"/> <control-input axis="/controls/engines/engine[1]/throttle" control="THROTTLE"/> <control-input axis="/controls/engines/engine[1]/condition" control="CONDLEVER"/> <control-input axis="/controls/engines/engine[1]/starter" control="STARTER"/> <control-input axis="/controls/engines/engine[1]/propeller-pitch" control="ADVANCE"/> <control-input axis="/controls/engines/engine[1]/propeller-feather" control="PROPFEATHER"/> </propeller> <ballast x="-6.5" y="0" z="0" mass="-500"/> <ballast x="-0.05" y="0" z="-0.5" mass="2500"/> <ballast x="2.0" y="0" z="-1" mass="800"/> <weight x="2.5" y="0" z="0" mass-prop="/sim/weight[0]/weight-lb"/> <weight x="0.0" y="0" z="0" mass-prop="/sim/weight[1]/weight-lb"/> <hitch name="aerotow" x="-2.5" y="0" z="-0.85" force-is-calculated-by-other="1"> <tow length="60" weight-per-meter="0.035" elastic-constant="9000" break-force="10000" mp-auto-connect-period="1.0"/> <winch max-tow-length="1000" min-tow-length="60" initial-tow-length="60"/> </hitch> </airplane> --- NEW FILE --- <?xml version="1.0"?> <!-- ********************************************************************** This file selects the instrumentation modules that should be available. ********************************************************************** --> <PropertyList> <adf> <name>adf</name> <number>0</number> </adf> <airspeed-indicator> <name>airspeed-indicator</name> <number>0</number> <total-pressure>/systems/pitot/total-pressure-inhg</total-pressure> <static-pressure>/systems/static/pressure-inhg</static-pressure> </airspeed-indicator> <altimeter> <name>altimeter</name> <number>0</number> <static-pressure>/systems/static/pressure-inhg</static-pressure> </altimeter> <attitude-indicator> <name>attitude-indicator</name> <number>0</number> <suction>/systems/vacuum/suction-inhg</suction> </attitude-indicator> <clock> <name>clock</name> <number>0</number> </clock> <heading-indicator> <name>heading-indicator</name> <number>0</number> <suction>/systems/vacuum/suction-inhg</suction> </heading-indicator> <heading-indicator-dg> <name>heading-indicator-dg</name> <number>0</number> </heading-indicator-dg> <magnetic-compass> <name>magnetic-compass</name> <number>0</number> </magnetic-compass> <nav-radio> <name>nav</name> <number>0</number> </nav-radio> <slip-skid-ball> <name>slip-skid-ball</name> <number>0</number> </slip-skid-ball> <transponder> <name>transponder</name> <number>0</number> <mode-c-altitude>/instrumentation/encoder/mode-c-alt-ft</mode-c-altitude> </transponder> <turn-indicator> <name>turn-indicator</name> <number>0</number> </turn-indicator> <vertical-speed-indicator> <name>vertical-speed-indicator</name> <number>0</number> <static-pressure>/systems/static/pressure-inhg</static-pressure> </vertical-speed-indicator> <gps> <name>gps</name> <number>0</number> </gps> <mk-viii> <name>mk-viii</name> <number>0</number> <serviceable>true</serviceable> </mk-viii> <encoder> <name>encoder</name> <number>0</number> </encoder> </PropertyList> --- NEW FILE --- Ú Ü ñ Ò ~ ¸ ¸u ¸¨ ¸C"¸M [...2333 lines suppressed...] &)- &)- -* 9 -- µÔÔÍÈÔªÔÐN%t Ô Ô µÔÔÍÈÔ - - --- NEW FILE --- Ú g Í [...2267 lines suppressed...] GFGFGFGFGGFGGFGFGFGFGFGGF GF GFGFGFGFGGFGGFGFGFGFGFGFGHGHGHGHGHGHHGHHGHGHGHGHGHHG HG HGHGHGHGHHGHHGHGHHGHGHGHIH IHIHIHIHIIHIIHIHIHIHIHIIH IH IHIHIHIHIIHIIHIHIHIHIHIIH IH IHIHI >=>=>=>=>>=>>=>=>=>=>=>>= >= >=>=>=>=>>=>>=>=>=>=>=>>= >= >=>=>=>=>>=>>=>=>=>=>=>=>?>?>?>?>?>??>??>?>?>?>?>??> ?> ?>?>?>?>??>??>?>??>?>?>?@? @?@?@?@?@@?@@?@?@?@?@?@@? @?@?@?@A@A@A@A@A@AA@ A@ A@A@A ;:;<<;)<;?<;?<;*<;<;<=<=<= HG0HG(HGHGHIH=IH?IHI ?>0?>(?>?>?@?=@?@?@?@A@A@A <;<;<;<<;<<;;<;;<<;<;;<;;<;<;<<;<;<;<;<<;<;<<;<<;;<;;<<;<;;<;;<;<;<<;<;<;<;<<;<;<<;<<;;<;;<<;<;;<;;<;<;<<;<;<;<;<<;<;<<;<;<=<=<=<= HGHGHHGHGHHGHHGGHGGHHGHGGHGGHGHGHHGHGHGHGHHGHGHHGHHGGHGHHGHIHIIHIIHIHIHIHIIHIHIIHIIHHIHHIIHIHHIHHIHIHIIHIHIHIHIIHIHIIHIIHHIHHIIHIHHIHHIHIHI >?>=>==>=>=>=>=>>=>=>>=>>==>==>>=>==>==>=>=>>=>=>=>=>>=>=>>=>>==>==>>=>==>==>=>=>>=>=>=>=>>=>=>>=>>==>==>>=>=> ?>?>??>?>??>??>>?>>??>?>>?>>?>?>??>?>?>?>??>?>??>??>>?>??>?@?@@?@@?@?@?@?@@?@?@@?@@??@??@@?@??@??@?@?@@?@?@?@?@ A@AA@...@@A@@AA@A@@A@@A@A@A |