| 828 | } |
| 829 | |
| 830 | static OpenLoco::Entity importVehicleEntity(const S5::Entity& src) |
| 831 | { |
| 832 | const auto vehicleType = static_cast<OpenLoco::Vehicles::VehicleEntityType>(src.base.type); |
| 833 | auto dst = importEntityBase(src.base); |
| 834 | auto* vehicleEntity = dst.asBase<OpenLoco::Vehicles::VehicleBase>(); |
| 835 | |
| 836 | vehicleEntity->vehicleFlags = static_cast<Vehicles::VehicleFlags>(src.base.vehicleFlags); |
| 837 | vehicleEntity->setSubType(vehicleType); |
| 838 | |
| 839 | switch (vehicleType) |
| 840 | { |
| 841 | case OpenLoco::Vehicles::VehicleEntityType::head: |
| 842 | importHeadVehicle(*vehicleEntity->asVehicleHead(), reinterpret_cast<const S5::VehicleHead&>(src)); |
| 843 | break; |
| 844 | case OpenLoco::Vehicles::VehicleEntityType::vehicle_1: |
| 845 | importVehicle1(*vehicleEntity->asVehicle1(), reinterpret_cast<const S5::Vehicle1&>(src)); |
| 846 | break; |
| 847 | case OpenLoco::Vehicles::VehicleEntityType::vehicle_2: |
| 848 | importVehicle2(*vehicleEntity->asVehicle2(), reinterpret_cast<const S5::Vehicle2&>(src)); |
| 849 | break; |
| 850 | case OpenLoco::Vehicles::VehicleEntityType::bogie: |
| 851 | importVehicleBogie(*vehicleEntity->asVehicleBogie(), reinterpret_cast<const S5::VehicleBogie&>(src)); |
| 852 | break; |
| 853 | case OpenLoco::Vehicles::VehicleEntityType::body_start: |
| 854 | case OpenLoco::Vehicles::VehicleEntityType::body_continued: |
| 855 | importVehicleBody(*vehicleEntity->asVehicleBody(), reinterpret_cast<const S5::VehicleBody&>(src)); |
| 856 | break; |
| 857 | case OpenLoco::Vehicles::VehicleEntityType::tail: |
| 858 | importVehicleTail(*vehicleEntity->asVehicleTail(), reinterpret_cast<const S5::VehicleTail&>(src)); |
| 859 | break; |
| 860 | } |
| 861 | |
| 862 | return dst; |
| 863 | } |
| 864 | |
| 865 | OpenLoco::Entity importEntity(const S5::Entity& src) |
| 866 | { |
no test coverage detected