| 285 | } |
| 286 | |
| 287 | void D6Joint::Deserialize(DeserializeStream& stream, ISerializeModifier* modifier) |
| 288 | { |
| 289 | // Base |
| 290 | Joint::Deserialize(stream, modifier); |
| 291 | |
| 292 | char motionLabel[8] = "Motion?"; |
| 293 | for (int32 i = 0; i < 6; i++) |
| 294 | { |
| 295 | motionLabel[6] = '0' + i; |
| 296 | JsonTools::GetEnum(_motion[i], stream, motionLabel); |
| 297 | } |
| 298 | static_assert(ARRAY_COUNT(_motion) == 6, "Invalid motion array size"); |
| 299 | |
| 300 | // |
| 301 | |
| 302 | char driveLabel_Stiffness[17] = "Drive?.Stiffness"; |
| 303 | char driveLabel_Damping[17] = "Drive?.Damping"; |
| 304 | char driveLabel_ForceLimit[18] = "Drive?.ForceLimit"; |
| 305 | char driveLabel_Acceleration[20] = "Drive?.Acceleration"; |
| 306 | for (int32 i = 0; i < 6; i++) |
| 307 | { |
| 308 | driveLabel_Stiffness[5] = '0' + i; |
| 309 | driveLabel_Damping[5] = '0' + i; |
| 310 | driveLabel_ForceLimit[5] = '0' + i; |
| 311 | driveLabel_Acceleration[5] = '0' + i; |
| 312 | |
| 313 | JsonTools::GetFloat(_drive[i].Stiffness, stream, driveLabel_Stiffness); |
| 314 | JsonTools::GetFloat(_drive[i].Damping, stream, driveLabel_Damping); |
| 315 | JsonTools::GetFloat(_drive[i].ForceLimit, stream, driveLabel_ForceLimit); |
| 316 | JsonTools::GetBool(_drive[i].Acceleration, stream, driveLabel_Acceleration); |
| 317 | } |
| 318 | static_assert(ARRAY_COUNT(_drive) == 6, "Invalid drive array size"); |
| 319 | |
| 320 | // |
| 321 | |
| 322 | JsonTools::GetFloat(_limitLinear.Extent, stream, "LimitLinear.Extent"); |
| 323 | JsonTools::GetFloat(_limitLinear.Restitution, stream, "LimitLinear.Restitution"); |
| 324 | JsonTools::GetFloat(_limitLinear.ContactDist, stream, "LimitLinear.ContactDist"); |
| 325 | JsonTools::GetFloat(_limitLinear.Spring.Stiffness, stream, "LimitLinear.Stiffness"); |
| 326 | JsonTools::GetFloat(_limitLinear.Spring.Damping, stream, "LimitLinear.Damping"); |
| 327 | |
| 328 | // |
| 329 | |
| 330 | JsonTools::GetFloat(_limitTwist.Lower, stream, "LimitTwist.Lower"); |
| 331 | JsonTools::GetFloat(_limitTwist.Upper, stream, "LimitTwist.Upper"); |
| 332 | JsonTools::GetFloat(_limitTwist.Restitution, stream, "LimitTwist.Restitution"); |
| 333 | JsonTools::GetFloat(_limitTwist.ContactDist, stream, "LimitTwist.ContactDist"); |
| 334 | JsonTools::GetFloat(_limitTwist.Spring.Stiffness, stream, "LimitTwist.Stiffness"); |
| 335 | JsonTools::GetFloat(_limitTwist.Spring.Damping, stream, "LimitTwist.Damping"); |
| 336 | |
| 337 | // |
| 338 | |
| 339 | JsonTools::GetFloat(_limitSwing.YLimitAngle, stream, "LimitSwing.YLimitAngle"); |
| 340 | JsonTools::GetFloat(_limitSwing.ZLimitAngle, stream, "LimitSwing.ZLimitAngle"); |
| 341 | JsonTools::GetFloat(_limitSwing.Restitution, stream, "LimitSwing.Restitution"); |
| 342 | JsonTools::GetFloat(_limitSwing.ContactDist, stream, "LimitSwing.ContactDist"); |
| 343 | JsonTools::GetFloat(_limitSwing.Spring.Stiffness, stream, "LimitSwing.Stiffness"); |
| 344 | JsonTools::GetFloat(_limitSwing.Spring.Damping, stream, "LimitSwing.Damping"); |
nothing calls this directly
no test coverage detected