* Road vehicle chain has crashed. * @param v First roadvehicle. * @return whether the chain still exists. */
| 522 | * @return whether the chain still exists. |
| 523 | */ |
| 524 | static bool RoadVehIsCrashed(RoadVehicle *v) |
| 525 | { |
| 526 | v->crashed_ctr++; |
| 527 | if (v->crashed_ctr == 2) { |
| 528 | CreateEffectVehicleRel(v, 4, 4, 8, EV_EXPLOSION_LARGE); |
| 529 | } else if (v->crashed_ctr <= 45) { |
| 530 | if ((v->tick_counter & 7) == 0) RoadVehSetRandomDirection(v); |
| 531 | } else if (v->crashed_ctr >= 2220 && !(v->tick_counter & 0x1F)) { |
| 532 | bool ret = v->Next() != nullptr; |
| 533 | DeleteLastRoadVeh(v); |
| 534 | return ret; |
| 535 | } |
| 536 | |
| 537 | return true; |
| 538 | } |
| 539 | |
| 540 | uint RoadVehicle::Crash(bool flooded) |
| 541 | { |
no test coverage detected