| 2506 | } |
| 2507 | |
| 2508 | void FailCommand(AISubgroupContext* context) |
| 2509 | { |
| 2510 | AI_ERROR(context->_subgroup); |
| 2511 | Command* cmd = context->_task; |
| 2512 | AI_ERROR(cmd); |
| 2513 | FSM* fsm = context->_fsm; |
| 2514 | AI_ERROR(fsm); |
| 2515 | |
| 2516 | if (fsm) |
| 2517 | { |
| 2518 | switch (cmd->_message) |
| 2519 | { |
| 2520 | case Command::NoCommand: |
| 2521 | break; |
| 2522 | case Command::Wait: |
| 2523 | fsm->SetState(SWaitFail, context); |
| 2524 | break; |
| 2525 | case Command::Attack: |
| 2526 | #if ENABLE_HOLDFIRE_FIX |
| 2527 | case Command::AttackAndFire: |
| 2528 | fsm->SetState(SAttackFail, context); |
| 2529 | break; |
| 2530 | #endif |
| 2531 | case Command::Hide: |
| 2532 | fsm->SetState(SHideFail, context); |
| 2533 | break; |
| 2534 | case Command::Move: |
| 2535 | fsm->SetState(SMoveFail, context); |
| 2536 | break; |
| 2537 | case Command::Heal: |
| 2538 | case Command::Repair: |
| 2539 | case Command::Refuel: |
| 2540 | case Command::Rearm: |
| 2541 | case Command::Action: |
| 2542 | fsm->SetState(SSupplyFail, context); |
| 2543 | break; |
| 2544 | case Command::Support: |
| 2545 | fsm->SetState(SSupportFail, context); |
| 2546 | break; |
| 2547 | case Command::Join: |
| 2548 | fsm->SetState(SJoinFail, context); |
| 2549 | break; |
| 2550 | case Command::GetIn: |
| 2551 | fsm->SetState(SGetInFail, context); |
| 2552 | break; |
| 2553 | case Command::Fire: |
| 2554 | fsm->SetState(SFireFail, context); |
| 2555 | break; |
| 2556 | case Command::GetOut: |
| 2557 | fsm->SetState(SGetOutFail, context); |
| 2558 | break; |
| 2559 | case Command::Stop: |
| 2560 | fsm->SetState(SStopFail, context); |
| 2561 | break; |
| 2562 | case Command::Expect: |
| 2563 | fsm->SetState(SExpectFail, context); |
| 2564 | break; |
| 2565 | } |