-
Notifications
You must be signed in to change notification settings - Fork 51
Labels
BugAn issue that causes a crash or an invalid or undesirable game state.An issue that causes a crash or an invalid or undesirable game state.
Description
There is a single code 21 error case, able to occur during lunar LEM activities:
per: 5100
code: 21
val: 50
xtra: 0
fail: 98
text: RETROROCKET FAILURE, COMPLEX PROBLEM. REPAIR UNSUCCESSFUL, PERMANENT LOSS OF SEVERAL MANEUVERING JETS.
The FailEval function doesn't explicitly handle this code; it gets dumped into the default failure along with the error codes that aren't implemented. This means it's treated as a minor problem and the mission continues.
case 1:
case 8:
case 10:
case 11:
case 14:
case 21:
case 27:
case 28:
case 29:
default:
FNote = 0;
Mev[STEP].StepInfo = 50;
if (Mev[STEP].fgoto == -1) {
Mev[STEP].trace = 0x7F;
} else {
Mev[STEP].trace = STEP + 1;
}
break; // nothing : continue steps
What makes this notable is that there are two error codes (0 and 20) which are "minor problem, mission continues" effects and they are explicitly handled.
case 0: // Failure has no effect on Mission
case 20: // don't want to test for crew experience
FNote = 0;
Mev[STEP].StepInfo = 50;
if (Mev[STEP].fgoto == -1) {
Mev[STEP].trace = 0x7F;
} else {
Mev[STEP].trace = STEP + 1;
}
break;
The error should either be explicitly handled along with codes 0 and 20, or it should have an effect defined. Thoughts?
Metadata
Metadata
Assignees
Labels
BugAn issue that causes a crash or an invalid or undesirable game state.An issue that causes a crash or an invalid or undesirable game state.