1
0
Fork 0

Nasal flight-plans: allow clearing transitions

When nil is set on the _trans members, clear the transition value
internally. Also fix an error message.
This commit is contained in:
James Turner 2020-06-04 17:54:13 +01:00
parent 023fbe35ea
commit 6beeea2bd5

View file

@ -750,6 +750,11 @@ static void flightplanGhostSetMember(naContext c, void* g, naRef field, naRef va
return;
}
if (naIsNil(value)) {
fp->setSID(fp->sid(), string{});
return;
}
if (naIsString(value)) {
const std::string s(naStr_data(value));
Transition* trans = nullptr;
@ -815,6 +820,11 @@ static void flightplanGhostSetMember(naContext c, void* g, naRef field, naRef va
return;
}
if (naIsNil(value)) {
fp->setSTAR(fp->star(), string{});
return;
}
if (naIsString(value)) {
const std::string s(naStr_data(value));
Transition* trans = nullptr;
@ -875,6 +885,11 @@ static void flightplanGhostSetMember(naContext c, void* g, naRef field, naRef va
return;
}
if (naIsNil(value)) {
fp->setApproach(fp->approach(), string{});
return;
}
if (naIsString(value)) {
const std::string s(naStr_data(value));
Transition* trans = nullptr;
@ -898,7 +913,7 @@ static void flightplanGhostSetMember(naContext c, void* g, naRef field, naRef va
return;
}
naRuntimeError(c, "bad argument type setting star_trans");
naRuntimeError(c, "bad argument type setting approach_trans");
} else if (!strcmp(fieldName, "aircraftCategory")) {
if (!naIsString(value)) naRuntimeError(c, "aircraftCategory must be a string");
fp->setIcaoAircraftCategory(naStr_data(value));