| 365 | } |
| 366 | |
| 367 | static Entity exportVehicleBody(const OpenLoco::Vehicles::VehicleBody& src) |
| 368 | { |
| 369 | Entity dst{}; |
| 370 | S5::VehicleBody& dstBody = reinterpret_cast<S5::VehicleBody&>(dst); |
| 371 | dstBody.base = exportEntityBase(src, enumValue(src.getSubType()), enumValue(src.vehicleFlags)); |
| 372 | dstBody.colourSchemePrimary = enumValue(src.colourScheme.primary); |
| 373 | dstBody.colourSchemeSecondary = enumValue(src.colourScheme.secondary); |
| 374 | dstBody.head = enumValue(src.head); |
| 375 | dstBody.remainingDistance = src.remainingDistance; |
| 376 | dstBody.trackAndDirection = src.trackAndDirection.track._data; |
| 377 | dstBody.subPosition = src.subPosition; |
| 378 | dstBody.tileX = src.tileX; |
| 379 | dstBody.tileY = src.tileY; |
| 380 | dstBody.tileBaseZ = src.tileBaseZ; |
| 381 | dstBody.trackType = src.trackType; |
| 382 | dstBody.routingHandle = src.routingHandle._data; |
| 383 | dstBody.var_38 = enumValue(src.var_38); |
| 384 | dstBody.objectSpriteType = src.objectSpriteType; |
| 385 | dstBody.nextCarId = enumValue(src.nextCarId); |
| 386 | dstBody.var_3C = 0; |
| 387 | dstBody.objectId = src.objectId; |
| 388 | dstBody.mode = enumValue(src.mode); |
| 389 | dstBody.var_44 = src.var_44; |
| 390 | dstBody.animationFrame = src.animationFrame; |
| 391 | dstBody.cargoFrame = src.cargoFrame; |
| 392 | dstBody.primaryCargo = exportVehicleCargo(src.primaryCargo); |
| 393 | dstBody.bodyIndex = src.bodyIndex; |
| 394 | dstBody.chuffSoundIndex = src.chuffSoundIndex; |
| 395 | dstBody.creationDay = src.creationDay; |
| 396 | dstBody.var_5A = src.var_5A; |
| 397 | dstBody.wheelSlipping = src.wheelSlipping; |
| 398 | dstBody.breakdownFlags = enumValue(src.breakdownFlags); |
| 399 | dstBody.refundCost = src.refundCost; |
| 400 | dstBody.breakdownTimeout = src.breakdownTimeout; |
| 401 | |
| 402 | return dst; |
| 403 | } |
| 404 | |
| 405 | static Entity exportVehicleTail(const OpenLoco::Vehicles::VehicleTail& src) |
| 406 | { |
no test coverage detected