1use super::class_requires::*;
2use super::*;
3#[allow(non_upper_case_globals, non_snake_case)]
10#[cfg_attr(feature = "json_schema", derive(schemars::JsonSchema))]
11#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
12#[derive(educe::Educe)]
13#[educe(Debug, Clone, Default, PartialEq)]
14pub struct hkbCharacter<'a> {
15 #[cfg_attr(
22 feature = "serde",
23 serde(skip_serializing_if = "Option::is_none", default)
24 )]
25 pub __ptr: Option<Pointer>,
26 #[cfg_attr(feature = "json_schema", schemars(flatten))]
28 #[cfg_attr(feature = "serde", serde(flatten))]
29 pub parent: hkReferencedObject,
30 #[cfg_attr(feature = "json_schema", schemars(rename = "nearbyCharacters"))]
35 #[cfg_attr(feature = "serde", serde(rename = "nearbyCharacters"))]
36 pub m_nearbyCharacters: Vec<Pointer>,
37 #[cfg_attr(feature = "json_schema", schemars(rename = "currentLod"))]
42 #[cfg_attr(feature = "serde", serde(rename = "currentLod"))]
43 pub m_currentLod: i16,
44 #[cfg_attr(feature = "json_schema", schemars(rename = "numTracksInLod"))]
50 #[cfg_attr(feature = "serde", serde(rename = "numTracksInLod"))]
51 pub m_numTracksInLod: i16,
52 #[cfg_attr(feature = "serde", serde(borrow))]
57 #[cfg_attr(feature = "json_schema", schemars(rename = "name"))]
58 #[cfg_attr(feature = "serde", serde(rename = "name"))]
59 pub m_name: StringPtr<'a>,
60 #[cfg_attr(feature = "json_schema", schemars(rename = "ragdollDriver"))]
66 #[cfg_attr(feature = "serde", serde(rename = "ragdollDriver"))]
67 pub m_ragdollDriver: Pointer,
68 #[cfg_attr(feature = "json_schema", schemars(rename = "characterControllerDriver"))]
74 #[cfg_attr(feature = "serde", serde(rename = "characterControllerDriver"))]
75 pub m_characterControllerDriver: Pointer,
76 #[cfg_attr(feature = "json_schema", schemars(rename = "footIkDriver"))]
82 #[cfg_attr(feature = "serde", serde(rename = "footIkDriver"))]
83 pub m_footIkDriver: Pointer,
84 #[cfg_attr(feature = "json_schema", schemars(rename = "handIkDriver"))]
90 #[cfg_attr(feature = "serde", serde(rename = "handIkDriver"))]
91 pub m_handIkDriver: Pointer,
92 #[cfg_attr(feature = "json_schema", schemars(rename = "setup"))]
97 #[cfg_attr(feature = "serde", serde(rename = "setup"))]
98 pub m_setup: Pointer,
99 #[cfg_attr(feature = "json_schema", schemars(rename = "behaviorGraph"))]
104 #[cfg_attr(feature = "serde", serde(rename = "behaviorGraph"))]
105 pub m_behaviorGraph: Pointer,
106 #[cfg_attr(feature = "json_schema", schemars(rename = "projectData"))]
111 #[cfg_attr(feature = "serde", serde(rename = "projectData"))]
112 pub m_projectData: Pointer,
113 #[cfg_attr(feature = "json_schema", schemars(rename = "animationBindingSet"))]
119 #[cfg_attr(feature = "serde", serde(rename = "animationBindingSet"))]
120 pub m_animationBindingSet: Pointer,
121 #[cfg_attr(feature = "json_schema", schemars(rename = "raycastInterface"))]
127 #[cfg_attr(feature = "serde", serde(rename = "raycastInterface"))]
128 pub m_raycastInterface: Pointer,
129 #[cfg_attr(feature = "json_schema", schemars(rename = "world"))]
135 #[cfg_attr(feature = "serde", serde(rename = "world"))]
136 pub m_world: Pointer,
137 #[cfg_attr(feature = "json_schema", schemars(rename = "eventQueue"))]
143 #[cfg_attr(feature = "serde", serde(rename = "eventQueue"))]
144 pub m_eventQueue: Pointer,
145 #[cfg_attr(feature = "json_schema", schemars(rename = "worldFromModel"))]
151 #[cfg_attr(feature = "serde", serde(rename = "worldFromModel"))]
152 pub m_worldFromModel: Pointer,
153 #[cfg_attr(feature = "json_schema", schemars(rename = "poseLocal"))]
159 #[cfg_attr(feature = "serde", serde(rename = "poseLocal"))]
160 pub m_poseLocal: Vec<()>,
161 #[cfg_attr(feature = "json_schema", schemars(rename = "deleteWorldFromModel"))]
167 #[cfg_attr(feature = "serde", serde(rename = "deleteWorldFromModel"))]
168 pub m_deleteWorldFromModel: bool,
169 #[cfg_attr(feature = "json_schema", schemars(rename = "deletePoseLocal"))]
175 #[cfg_attr(feature = "serde", serde(rename = "deletePoseLocal"))]
176 pub m_deletePoseLocal: bool,
177}
178const _: () = {
179 use havok_serde as _serde;
180 impl<'a> _serde::HavokClass for hkbCharacter<'a> {
181 #[inline]
182 fn name(&self) -> &'static str {
183 "hkbCharacter"
184 }
185 #[inline]
186 fn signature(&self) -> _serde::__private::Signature {
187 _serde::__private::Signature::new(0x3088a5c5)
188 }
189 #[allow(clippy::let_and_return, clippy::vec_init_then_push)]
190 fn deps_indexes(&self) -> Vec<usize> {
191 let mut v = Vec::new();
192 v.extend(self.m_nearbyCharacters.iter().map(|ptr| ptr.get()));
193 v.push(self.m_ragdollDriver.get());
194 v.push(self.m_characterControllerDriver.get());
195 v.push(self.m_footIkDriver.get());
196 v.push(self.m_handIkDriver.get());
197 v.push(self.m_setup.get());
198 v.push(self.m_behaviorGraph.get());
199 v.push(self.m_projectData.get());
200 v.push(self.m_animationBindingSet.get());
201 v.push(self.m_raycastInterface.get());
202 v.push(self.m_world.get());
203 v.push(self.m_eventQueue.get());
204 v.push(self.m_worldFromModel.get());
205 v
206 }
207 }
208 impl<'a> _serde::Serialize for hkbCharacter<'a> {
209 fn serialize<S>(&self, __serializer: S) -> Result<S::Ok, S::Error>
210 where
211 S: _serde::ser::Serializer,
212 {
213 let class_meta = self
214 .__ptr
215 .map(|name| (name, _serde::__private::Signature::new(0x3088a5c5)));
216 let mut serializer = __serializer
217 .serialize_struct("hkbCharacter", class_meta, (88u64, 160u64))?;
218 serializer.pad_field([0u8; 4usize].as_slice(), [0u8; 8usize].as_slice())?;
219 serializer.skip_field("memSizeAndFlags", &self.parent.m_memSizeAndFlags)?;
220 serializer.skip_field("referenceCount", &self.parent.m_referenceCount)?;
221 serializer.pad_field([0u8; 0usize].as_slice(), [0u8; 4usize].as_slice())?;
222 serializer
223 .serialize_array_field(
224 "nearbyCharacters",
225 &self.m_nearbyCharacters,
226 TypeSize::NonPtr,
227 )?;
228 serializer.serialize_field("currentLod", &self.m_currentLod)?;
229 serializer.skip_field("numTracksInLod", &self.m_numTracksInLod)?;
230 serializer.pad_field([0u8; 0usize].as_slice(), [0u8; 4usize].as_slice())?;
231 serializer.serialize_field("name", &self.m_name)?;
232 serializer.skip_field("ragdollDriver", &self.m_ragdollDriver)?;
233 serializer
234 .skip_field(
235 "characterControllerDriver",
236 &self.m_characterControllerDriver,
237 )?;
238 serializer.skip_field("footIkDriver", &self.m_footIkDriver)?;
239 serializer.skip_field("handIkDriver", &self.m_handIkDriver)?;
240 serializer.serialize_field("setup", &self.m_setup)?;
241 serializer.serialize_field("behaviorGraph", &self.m_behaviorGraph)?;
242 serializer.serialize_field("projectData", &self.m_projectData)?;
243 serializer.skip_field("animationBindingSet", &self.m_animationBindingSet)?;
244 serializer.skip_field("raycastInterface", &self.m_raycastInterface)?;
245 serializer.skip_field("world", &self.m_world)?;
246 serializer.skip_field("eventQueue", &self.m_eventQueue)?;
247 serializer.skip_field("worldFromModel", &self.m_worldFromModel)?;
248 serializer.skip_field("poseLocal", &self.m_poseLocal)?;
249 serializer.skip_field("deleteWorldFromModel", &self.m_deleteWorldFromModel)?;
250 serializer.skip_field("deletePoseLocal", &self.m_deletePoseLocal)?;
251 serializer.pad_field([0u8; 2usize].as_slice(), [0u8; 2usize].as_slice())?;
252 serializer.end()
253 }
254 }
255};
256#[doc(hidden)]
257#[allow(non_upper_case_globals, unused_attributes, unused_qualifications)]
258const _: () = {
259 use havok_serde as _serde;
260 #[automatically_derived]
261 impl<'de> _serde::Deserialize<'de> for hkbCharacter<'de> {
262 fn deserialize<__D>(deserializer: __D) -> core::result::Result<Self, __D::Error>
263 where
264 __D: _serde::Deserializer<'de>,
265 {
266 #[allow(non_camel_case_types)]
267 enum __Field {
268 m_nearbyCharacters,
269 m_currentLod,
270 m_name,
271 m_setup,
272 m_behaviorGraph,
273 m_projectData,
274 __ignore,
275 }
276 struct __FieldVisitor;
277 impl<'de> _serde::de::Visitor<'de> for __FieldVisitor {
278 type Value = __Field;
279 fn expecting(
280 &self,
281 __formatter: &mut core::fmt::Formatter,
282 ) -> core::fmt::Result {
283 core::fmt::Formatter::write_str(__formatter, "field identifier")
284 }
285 #[allow(clippy::match_single_binding)]
287 #[allow(clippy::reversed_empty_ranges)]
288 #[allow(clippy::single_match)]
289 fn visit_key<__E>(
290 self,
291 __value: &str,
292 ) -> core::result::Result<Self::Value, __E>
293 where
294 __E: _serde::de::Error,
295 {
296 match __value {
297 "nearbyCharacters" => Ok(__Field::m_nearbyCharacters),
298 "currentLod" => Ok(__Field::m_currentLod),
299 "name" => Ok(__Field::m_name),
300 "setup" => Ok(__Field::m_setup),
301 "behaviorGraph" => Ok(__Field::m_behaviorGraph),
302 "projectData" => Ok(__Field::m_projectData),
303 _ => Ok(__Field::__ignore),
304 }
305 }
306 }
307 impl<'de> _serde::Deserialize<'de> for __Field {
308 #[inline]
309 fn deserialize<__D>(
310 __deserializer: __D,
311 ) -> core::result::Result<Self, __D::Error>
312 where
313 __D: _serde::Deserializer<'de>,
314 {
315 _serde::Deserializer::deserialize_key(__deserializer, __FieldVisitor)
316 }
317 }
318 struct __hkbCharacterVisitor<'de> {
319 marker: _serde::__private::PhantomData<hkbCharacter<'de>>,
320 lifetime: _serde::__private::PhantomData<&'de ()>,
321 }
322 #[allow(clippy::match_single_binding)]
323 #[allow(clippy::reversed_empty_ranges)]
324 #[allow(clippy::single_match)]
325 impl<'de> _serde::de::Visitor<'de> for __hkbCharacterVisitor<'de> {
326 type Value = hkbCharacter<'de>;
327 fn expecting(
328 &self,
329 __formatter: &mut core::fmt::Formatter,
330 ) -> core::fmt::Result {
331 core::fmt::Formatter::write_str(__formatter, "struct hkbCharacter")
332 }
333 fn visit_struct_for_bytes<__A>(
334 self,
335 mut __map: __A,
336 ) -> _serde::__private::Result<Self::Value, __A::Error>
337 where
338 __A: _serde::de::MapAccess<'de>,
339 {
340 let __ptr = __A::class_ptr(&mut __map);
341 let parent = __A::parent_value(&mut __map)?;
342 let mut m_nearbyCharacters: _serde::__private::Option<
343 Vec<Pointer>,
344 > = _serde::__private::None;
345 let mut m_currentLod: _serde::__private::Option<i16> = _serde::__private::None;
346 let mut m_numTracksInLod: _serde::__private::Option<i16> = _serde::__private::None;
347 let mut m_name: _serde::__private::Option<StringPtr<'de>> = _serde::__private::None;
348 let mut m_ragdollDriver: _serde::__private::Option<Pointer> = _serde::__private::None;
349 let mut m_characterControllerDriver: _serde::__private::Option<
350 Pointer,
351 > = _serde::__private::None;
352 let mut m_footIkDriver: _serde::__private::Option<Pointer> = _serde::__private::None;
353 let mut m_handIkDriver: _serde::__private::Option<Pointer> = _serde::__private::None;
354 let mut m_setup: _serde::__private::Option<Pointer> = _serde::__private::None;
355 let mut m_behaviorGraph: _serde::__private::Option<Pointer> = _serde::__private::None;
356 let mut m_projectData: _serde::__private::Option<Pointer> = _serde::__private::None;
357 let mut m_animationBindingSet: _serde::__private::Option<Pointer> = _serde::__private::None;
358 let mut m_raycastInterface: _serde::__private::Option<Pointer> = _serde::__private::None;
359 let mut m_world: _serde::__private::Option<Pointer> = _serde::__private::None;
360 let mut m_eventQueue: _serde::__private::Option<Pointer> = _serde::__private::None;
361 let mut m_worldFromModel: _serde::__private::Option<Pointer> = _serde::__private::None;
362 let mut m_poseLocal: _serde::__private::Option<Vec<()>> = _serde::__private::None;
363 let mut m_deleteWorldFromModel: _serde::__private::Option<bool> = _serde::__private::None;
364 let mut m_deletePoseLocal: _serde::__private::Option<bool> = _serde::__private::None;
365 for i in 0..19usize {
366 match i {
367 0usize => {
368 if _serde::__private::Option::is_some(&m_nearbyCharacters) {
369 return _serde::__private::Err(
370 <__A::Error as _serde::de::Error>::duplicate_field(
371 "nearbyCharacters",
372 ),
373 );
374 }
375 m_nearbyCharacters = _serde::__private::Some(
376 match __A::next_value::<Vec<Pointer>>(&mut __map) {
377 _serde::__private::Ok(__val) => __val,
378 _serde::__private::Err(__err) => {
379 return _serde::__private::Err(__err);
380 }
381 },
382 );
383 }
384 1usize => {
385 if _serde::__private::Option::is_some(&m_currentLod) {
386 return _serde::__private::Err(
387 <__A::Error as _serde::de::Error>::duplicate_field(
388 "currentLod",
389 ),
390 );
391 }
392 m_currentLod = _serde::__private::Some(
393 match __A::next_value::<i16>(&mut __map) {
394 _serde::__private::Ok(__val) => __val,
395 _serde::__private::Err(__err) => {
396 return _serde::__private::Err(__err);
397 }
398 },
399 );
400 }
401 2usize => {
402 if _serde::__private::Option::is_some(&m_numTracksInLod) {
403 return _serde::__private::Err(
404 <__A::Error as _serde::de::Error>::duplicate_field(
405 "numTracksInLod",
406 ),
407 );
408 }
409 m_numTracksInLod = _serde::__private::Some(
410 match __A::next_value::<i16>(&mut __map) {
411 _serde::__private::Ok(__val) => __val,
412 _serde::__private::Err(__err) => {
413 return _serde::__private::Err(__err);
414 }
415 },
416 );
417 }
418 3usize => {
419 if _serde::__private::Option::is_some(&m_name) {
420 return _serde::__private::Err(
421 <__A::Error as _serde::de::Error>::duplicate_field("name"),
422 );
423 }
424 __A::pad(&mut __map, 0usize, 4usize)?;
425 m_name = _serde::__private::Some(
426 match __A::next_value::<StringPtr<'de>>(&mut __map) {
427 _serde::__private::Ok(__val) => __val,
428 _serde::__private::Err(__err) => {
429 return _serde::__private::Err(__err);
430 }
431 },
432 );
433 }
434 4usize => {
435 if _serde::__private::Option::is_some(&m_ragdollDriver) {
436 return _serde::__private::Err(
437 <__A::Error as _serde::de::Error>::duplicate_field(
438 "ragdollDriver",
439 ),
440 );
441 }
442 m_ragdollDriver = _serde::__private::Some(
443 match __A::next_value::<Pointer>(&mut __map) {
444 _serde::__private::Ok(__val) => __val,
445 _serde::__private::Err(__err) => {
446 return _serde::__private::Err(__err);
447 }
448 },
449 );
450 }
451 5usize => {
452 if _serde::__private::Option::is_some(
453 &m_characterControllerDriver,
454 ) {
455 return _serde::__private::Err(
456 <__A::Error as _serde::de::Error>::duplicate_field(
457 "characterControllerDriver",
458 ),
459 );
460 }
461 m_characterControllerDriver = _serde::__private::Some(
462 match __A::next_value::<Pointer>(&mut __map) {
463 _serde::__private::Ok(__val) => __val,
464 _serde::__private::Err(__err) => {
465 return _serde::__private::Err(__err);
466 }
467 },
468 );
469 }
470 6usize => {
471 if _serde::__private::Option::is_some(&m_footIkDriver) {
472 return _serde::__private::Err(
473 <__A::Error as _serde::de::Error>::duplicate_field(
474 "footIkDriver",
475 ),
476 );
477 }
478 m_footIkDriver = _serde::__private::Some(
479 match __A::next_value::<Pointer>(&mut __map) {
480 _serde::__private::Ok(__val) => __val,
481 _serde::__private::Err(__err) => {
482 return _serde::__private::Err(__err);
483 }
484 },
485 );
486 }
487 7usize => {
488 if _serde::__private::Option::is_some(&m_handIkDriver) {
489 return _serde::__private::Err(
490 <__A::Error as _serde::de::Error>::duplicate_field(
491 "handIkDriver",
492 ),
493 );
494 }
495 m_handIkDriver = _serde::__private::Some(
496 match __A::next_value::<Pointer>(&mut __map) {
497 _serde::__private::Ok(__val) => __val,
498 _serde::__private::Err(__err) => {
499 return _serde::__private::Err(__err);
500 }
501 },
502 );
503 }
504 8usize => {
505 if _serde::__private::Option::is_some(&m_setup) {
506 return _serde::__private::Err(
507 <__A::Error as _serde::de::Error>::duplicate_field("setup"),
508 );
509 }
510 m_setup = _serde::__private::Some(
511 match __A::next_value::<Pointer>(&mut __map) {
512 _serde::__private::Ok(__val) => __val,
513 _serde::__private::Err(__err) => {
514 return _serde::__private::Err(__err);
515 }
516 },
517 );
518 }
519 9usize => {
520 if _serde::__private::Option::is_some(&m_behaviorGraph) {
521 return _serde::__private::Err(
522 <__A::Error as _serde::de::Error>::duplicate_field(
523 "behaviorGraph",
524 ),
525 );
526 }
527 m_behaviorGraph = _serde::__private::Some(
528 match __A::next_value::<Pointer>(&mut __map) {
529 _serde::__private::Ok(__val) => __val,
530 _serde::__private::Err(__err) => {
531 return _serde::__private::Err(__err);
532 }
533 },
534 );
535 }
536 10usize => {
537 if _serde::__private::Option::is_some(&m_projectData) {
538 return _serde::__private::Err(
539 <__A::Error as _serde::de::Error>::duplicate_field(
540 "projectData",
541 ),
542 );
543 }
544 m_projectData = _serde::__private::Some(
545 match __A::next_value::<Pointer>(&mut __map) {
546 _serde::__private::Ok(__val) => __val,
547 _serde::__private::Err(__err) => {
548 return _serde::__private::Err(__err);
549 }
550 },
551 );
552 }
553 11usize => {
554 if _serde::__private::Option::is_some(
555 &m_animationBindingSet,
556 ) {
557 return _serde::__private::Err(
558 <__A::Error as _serde::de::Error>::duplicate_field(
559 "animationBindingSet",
560 ),
561 );
562 }
563 m_animationBindingSet = _serde::__private::Some(
564 match __A::next_value::<Pointer>(&mut __map) {
565 _serde::__private::Ok(__val) => __val,
566 _serde::__private::Err(__err) => {
567 return _serde::__private::Err(__err);
568 }
569 },
570 );
571 }
572 12usize => {
573 if _serde::__private::Option::is_some(&m_raycastInterface) {
574 return _serde::__private::Err(
575 <__A::Error as _serde::de::Error>::duplicate_field(
576 "raycastInterface",
577 ),
578 );
579 }
580 m_raycastInterface = _serde::__private::Some(
581 match __A::next_value::<Pointer>(&mut __map) {
582 _serde::__private::Ok(__val) => __val,
583 _serde::__private::Err(__err) => {
584 return _serde::__private::Err(__err);
585 }
586 },
587 );
588 }
589 13usize => {
590 if _serde::__private::Option::is_some(&m_world) {
591 return _serde::__private::Err(
592 <__A::Error as _serde::de::Error>::duplicate_field("world"),
593 );
594 }
595 m_world = _serde::__private::Some(
596 match __A::next_value::<Pointer>(&mut __map) {
597 _serde::__private::Ok(__val) => __val,
598 _serde::__private::Err(__err) => {
599 return _serde::__private::Err(__err);
600 }
601 },
602 );
603 }
604 14usize => {
605 if _serde::__private::Option::is_some(&m_eventQueue) {
606 return _serde::__private::Err(
607 <__A::Error as _serde::de::Error>::duplicate_field(
608 "eventQueue",
609 ),
610 );
611 }
612 m_eventQueue = _serde::__private::Some(
613 match __A::next_value::<Pointer>(&mut __map) {
614 _serde::__private::Ok(__val) => __val,
615 _serde::__private::Err(__err) => {
616 return _serde::__private::Err(__err);
617 }
618 },
619 );
620 }
621 15usize => {
622 if _serde::__private::Option::is_some(&m_worldFromModel) {
623 return _serde::__private::Err(
624 <__A::Error as _serde::de::Error>::duplicate_field(
625 "worldFromModel",
626 ),
627 );
628 }
629 m_worldFromModel = _serde::__private::Some(
630 match __A::next_value::<Pointer>(&mut __map) {
631 _serde::__private::Ok(__val) => __val,
632 _serde::__private::Err(__err) => {
633 return _serde::__private::Err(__err);
634 }
635 },
636 );
637 }
638 16usize => {
639 if _serde::__private::Option::is_some(&m_poseLocal) {
640 return _serde::__private::Err(
641 <__A::Error as _serde::de::Error>::duplicate_field(
642 "poseLocal",
643 ),
644 );
645 }
646 m_poseLocal = _serde::__private::Some(
647 match __A::next_value::<Vec<()>>(&mut __map) {
648 _serde::__private::Ok(__val) => __val,
649 _serde::__private::Err(__err) => {
650 return _serde::__private::Err(__err);
651 }
652 },
653 );
654 }
655 17usize => {
656 if _serde::__private::Option::is_some(
657 &m_deleteWorldFromModel,
658 ) {
659 return _serde::__private::Err(
660 <__A::Error as _serde::de::Error>::duplicate_field(
661 "deleteWorldFromModel",
662 ),
663 );
664 }
665 m_deleteWorldFromModel = _serde::__private::Some(
666 match __A::next_value::<bool>(&mut __map) {
667 _serde::__private::Ok(__val) => __val,
668 _serde::__private::Err(__err) => {
669 return _serde::__private::Err(__err);
670 }
671 },
672 );
673 }
674 18usize => {
675 if _serde::__private::Option::is_some(&m_deletePoseLocal) {
676 return _serde::__private::Err(
677 <__A::Error as _serde::de::Error>::duplicate_field(
678 "deletePoseLocal",
679 ),
680 );
681 }
682 m_deletePoseLocal = _serde::__private::Some(
683 match __A::next_value::<bool>(&mut __map) {
684 _serde::__private::Ok(__val) => __val,
685 _serde::__private::Err(__err) => {
686 return _serde::__private::Err(__err);
687 }
688 },
689 );
690 }
691 _ => {}
692 }
693 }
694 __A::pad(&mut __map, 2usize, 2usize)?;
695 let m_nearbyCharacters = match m_nearbyCharacters {
696 _serde::__private::Some(__field) => __field,
697 _serde::__private::None => {
698 return _serde::__private::Err(
699 <__A::Error as _serde::de::Error>::missing_field(
700 "nearbyCharacters",
701 ),
702 );
703 }
704 };
705 let m_currentLod = match m_currentLod {
706 _serde::__private::Some(__field) => __field,
707 _serde::__private::None => {
708 return _serde::__private::Err(
709 <__A::Error as _serde::de::Error>::missing_field(
710 "currentLod",
711 ),
712 );
713 }
714 };
715 let m_numTracksInLod = match m_numTracksInLod {
716 _serde::__private::Some(__field) => __field,
717 _serde::__private::None => {
718 return _serde::__private::Err(
719 <__A::Error as _serde::de::Error>::missing_field(
720 "numTracksInLod",
721 ),
722 );
723 }
724 };
725 let m_name = match m_name {
726 _serde::__private::Some(__field) => __field,
727 _serde::__private::None => {
728 return _serde::__private::Err(
729 <__A::Error as _serde::de::Error>::missing_field("name"),
730 );
731 }
732 };
733 let m_ragdollDriver = match m_ragdollDriver {
734 _serde::__private::Some(__field) => __field,
735 _serde::__private::None => {
736 return _serde::__private::Err(
737 <__A::Error as _serde::de::Error>::missing_field(
738 "ragdollDriver",
739 ),
740 );
741 }
742 };
743 let m_characterControllerDriver = match m_characterControllerDriver {
744 _serde::__private::Some(__field) => __field,
745 _serde::__private::None => {
746 return _serde::__private::Err(
747 <__A::Error as _serde::de::Error>::missing_field(
748 "characterControllerDriver",
749 ),
750 );
751 }
752 };
753 let m_footIkDriver = match m_footIkDriver {
754 _serde::__private::Some(__field) => __field,
755 _serde::__private::None => {
756 return _serde::__private::Err(
757 <__A::Error as _serde::de::Error>::missing_field(
758 "footIkDriver",
759 ),
760 );
761 }
762 };
763 let m_handIkDriver = match m_handIkDriver {
764 _serde::__private::Some(__field) => __field,
765 _serde::__private::None => {
766 return _serde::__private::Err(
767 <__A::Error as _serde::de::Error>::missing_field(
768 "handIkDriver",
769 ),
770 );
771 }
772 };
773 let m_setup = match m_setup {
774 _serde::__private::Some(__field) => __field,
775 _serde::__private::None => {
776 return _serde::__private::Err(
777 <__A::Error as _serde::de::Error>::missing_field("setup"),
778 );
779 }
780 };
781 let m_behaviorGraph = match m_behaviorGraph {
782 _serde::__private::Some(__field) => __field,
783 _serde::__private::None => {
784 return _serde::__private::Err(
785 <__A::Error as _serde::de::Error>::missing_field(
786 "behaviorGraph",
787 ),
788 );
789 }
790 };
791 let m_projectData = match m_projectData {
792 _serde::__private::Some(__field) => __field,
793 _serde::__private::None => {
794 return _serde::__private::Err(
795 <__A::Error as _serde::de::Error>::missing_field(
796 "projectData",
797 ),
798 );
799 }
800 };
801 let m_animationBindingSet = match m_animationBindingSet {
802 _serde::__private::Some(__field) => __field,
803 _serde::__private::None => {
804 return _serde::__private::Err(
805 <__A::Error as _serde::de::Error>::missing_field(
806 "animationBindingSet",
807 ),
808 );
809 }
810 };
811 let m_raycastInterface = match m_raycastInterface {
812 _serde::__private::Some(__field) => __field,
813 _serde::__private::None => {
814 return _serde::__private::Err(
815 <__A::Error as _serde::de::Error>::missing_field(
816 "raycastInterface",
817 ),
818 );
819 }
820 };
821 let m_world = match m_world {
822 _serde::__private::Some(__field) => __field,
823 _serde::__private::None => {
824 return _serde::__private::Err(
825 <__A::Error as _serde::de::Error>::missing_field("world"),
826 );
827 }
828 };
829 let m_eventQueue = match m_eventQueue {
830 _serde::__private::Some(__field) => __field,
831 _serde::__private::None => {
832 return _serde::__private::Err(
833 <__A::Error as _serde::de::Error>::missing_field(
834 "eventQueue",
835 ),
836 );
837 }
838 };
839 let m_worldFromModel = match m_worldFromModel {
840 _serde::__private::Some(__field) => __field,
841 _serde::__private::None => {
842 return _serde::__private::Err(
843 <__A::Error as _serde::de::Error>::missing_field(
844 "worldFromModel",
845 ),
846 );
847 }
848 };
849 let m_poseLocal = match m_poseLocal {
850 _serde::__private::Some(__field) => __field,
851 _serde::__private::None => {
852 return _serde::__private::Err(
853 <__A::Error as _serde::de::Error>::missing_field(
854 "poseLocal",
855 ),
856 );
857 }
858 };
859 let m_deleteWorldFromModel = match m_deleteWorldFromModel {
860 _serde::__private::Some(__field) => __field,
861 _serde::__private::None => {
862 return _serde::__private::Err(
863 <__A::Error as _serde::de::Error>::missing_field(
864 "deleteWorldFromModel",
865 ),
866 );
867 }
868 };
869 let m_deletePoseLocal = match m_deletePoseLocal {
870 _serde::__private::Some(__field) => __field,
871 _serde::__private::None => {
872 return _serde::__private::Err(
873 <__A::Error as _serde::de::Error>::missing_field(
874 "deletePoseLocal",
875 ),
876 );
877 }
878 };
879 _serde::__private::Ok(hkbCharacter {
880 __ptr,
881 parent,
882 m_nearbyCharacters,
883 m_currentLod,
884 m_numTracksInLod,
885 m_name,
886 m_ragdollDriver,
887 m_characterControllerDriver,
888 m_footIkDriver,
889 m_handIkDriver,
890 m_setup,
891 m_behaviorGraph,
892 m_projectData,
893 m_animationBindingSet,
894 m_raycastInterface,
895 m_world,
896 m_eventQueue,
897 m_worldFromModel,
898 m_poseLocal,
899 m_deleteWorldFromModel,
900 m_deletePoseLocal,
901 })
902 }
903 #[allow(clippy::manual_unwrap_or_default)]
904 fn visit_struct<__A>(
905 self,
906 mut __map: __A,
907 ) -> _serde::__private::Result<Self::Value, __A::Error>
908 where
909 __A: _serde::de::MapAccess<'de>,
910 {
911 let mut m_nearbyCharacters: _serde::__private::Option<
912 Vec<Pointer>,
913 > = _serde::__private::None;
914 let mut m_currentLod: _serde::__private::Option<i16> = _serde::__private::None;
915 let mut m_name: _serde::__private::Option<StringPtr<'de>> = _serde::__private::None;
916 let mut m_setup: _serde::__private::Option<Pointer> = _serde::__private::None;
917 let mut m_behaviorGraph: _serde::__private::Option<Pointer> = _serde::__private::None;
918 let mut m_projectData: _serde::__private::Option<Pointer> = _serde::__private::None;
919 while let _serde::__private::Some(__key) = {
920 __A::next_key::<__Field>(&mut __map)?
921 } {
922 match __key {
923 __Field::m_nearbyCharacters => {
924 #[cfg(
925 any(feature = "strict", feature = "ignore_duplicates")
926 )]
927 if _serde::__private::Option::is_some(&m_nearbyCharacters) {
928 #[cfg(feature = "ignore_duplicates")]
929 {
930 __A::skip_value(&mut __map)?;
931 continue;
932 }
933 #[cfg(feature = "strict")]
934 return _serde::__private::Err(
935 <__A::Error as _serde::de::Error>::duplicate_field(
936 "nearbyCharacters",
937 ),
938 );
939 }
940 m_nearbyCharacters = _serde::__private::Some(
941 match __A::next_value::<Vec<Pointer>>(&mut __map) {
942 _serde::__private::Ok(__val) => __val,
943 _serde::__private::Err(__err) => {
944 return _serde::__private::Err(__err);
945 }
946 },
947 );
948 }
949 __Field::m_currentLod => {
950 #[cfg(
951 any(feature = "strict", feature = "ignore_duplicates")
952 )]
953 if _serde::__private::Option::is_some(&m_currentLod) {
954 #[cfg(feature = "ignore_duplicates")]
955 {
956 __A::skip_value(&mut __map)?;
957 continue;
958 }
959 #[cfg(feature = "strict")]
960 return _serde::__private::Err(
961 <__A::Error as _serde::de::Error>::duplicate_field(
962 "currentLod",
963 ),
964 );
965 }
966 m_currentLod = _serde::__private::Some(
967 match __A::next_value::<i16>(&mut __map) {
968 _serde::__private::Ok(__val) => __val,
969 _serde::__private::Err(__err) => {
970 return _serde::__private::Err(__err);
971 }
972 },
973 );
974 }
975 __Field::m_name => {
976 #[cfg(
977 any(feature = "strict", feature = "ignore_duplicates")
978 )]
979 if _serde::__private::Option::is_some(&m_name) {
980 #[cfg(feature = "ignore_duplicates")]
981 {
982 __A::skip_value(&mut __map)?;
983 continue;
984 }
985 #[cfg(feature = "strict")]
986 return _serde::__private::Err(
987 <__A::Error as _serde::de::Error>::duplicate_field("name"),
988 );
989 }
990 m_name = _serde::__private::Some(
991 match __A::next_value::<StringPtr<'de>>(&mut __map) {
992 _serde::__private::Ok(__val) => __val,
993 _serde::__private::Err(__err) => {
994 return _serde::__private::Err(__err);
995 }
996 },
997 );
998 }
999 __Field::m_setup => {
1000 #[cfg(
1001 any(feature = "strict", feature = "ignore_duplicates")
1002 )]
1003 if _serde::__private::Option::is_some(&m_setup) {
1004 #[cfg(feature = "ignore_duplicates")]
1005 {
1006 __A::skip_value(&mut __map)?;
1007 continue;
1008 }
1009 #[cfg(feature = "strict")]
1010 return _serde::__private::Err(
1011 <__A::Error as _serde::de::Error>::duplicate_field("setup"),
1012 );
1013 }
1014 m_setup = _serde::__private::Some(
1015 match __A::next_value::<Pointer>(&mut __map) {
1016 _serde::__private::Ok(__val) => __val,
1017 _serde::__private::Err(__err) => {
1018 return _serde::__private::Err(__err);
1019 }
1020 },
1021 );
1022 }
1023 __Field::m_behaviorGraph => {
1024 #[cfg(
1025 any(feature = "strict", feature = "ignore_duplicates")
1026 )]
1027 if _serde::__private::Option::is_some(&m_behaviorGraph) {
1028 #[cfg(feature = "ignore_duplicates")]
1029 {
1030 __A::skip_value(&mut __map)?;
1031 continue;
1032 }
1033 #[cfg(feature = "strict")]
1034 return _serde::__private::Err(
1035 <__A::Error as _serde::de::Error>::duplicate_field(
1036 "behaviorGraph",
1037 ),
1038 );
1039 }
1040 m_behaviorGraph = _serde::__private::Some(
1041 match __A::next_value::<Pointer>(&mut __map) {
1042 _serde::__private::Ok(__val) => __val,
1043 _serde::__private::Err(__err) => {
1044 return _serde::__private::Err(__err);
1045 }
1046 },
1047 );
1048 }
1049 __Field::m_projectData => {
1050 #[cfg(
1051 any(feature = "strict", feature = "ignore_duplicates")
1052 )]
1053 if _serde::__private::Option::is_some(&m_projectData) {
1054 #[cfg(feature = "ignore_duplicates")]
1055 {
1056 __A::skip_value(&mut __map)?;
1057 continue;
1058 }
1059 #[cfg(feature = "strict")]
1060 return _serde::__private::Err(
1061 <__A::Error as _serde::de::Error>::duplicate_field(
1062 "projectData",
1063 ),
1064 );
1065 }
1066 m_projectData = _serde::__private::Some(
1067 match __A::next_value::<Pointer>(&mut __map) {
1068 _serde::__private::Ok(__val) => __val,
1069 _serde::__private::Err(__err) => {
1070 return _serde::__private::Err(__err);
1071 }
1072 },
1073 );
1074 }
1075 _ => __A::skip_value(&mut __map)?,
1076 }
1077 }
1078 let m_nearbyCharacters = match m_nearbyCharacters {
1079 _serde::__private::Some(__field) => __field,
1080 _serde::__private::None => {
1081 #[cfg(feature = "strict")]
1082 return _serde::__private::Err(
1083 <__A::Error as _serde::de::Error>::missing_field(
1084 "nearbyCharacters",
1085 ),
1086 );
1087 #[cfg(not(feature = "strict"))] Default::default()
1088 }
1089 };
1090 let m_currentLod = match m_currentLod {
1091 _serde::__private::Some(__field) => __field,
1092 _serde::__private::None => {
1093 #[cfg(feature = "strict")]
1094 return _serde::__private::Err(
1095 <__A::Error as _serde::de::Error>::missing_field(
1096 "currentLod",
1097 ),
1098 );
1099 #[cfg(not(feature = "strict"))] Default::default()
1100 }
1101 };
1102 let m_name = match m_name {
1103 _serde::__private::Some(__field) => __field,
1104 _serde::__private::None => {
1105 #[cfg(feature = "strict")]
1106 return _serde::__private::Err(
1107 <__A::Error as _serde::de::Error>::missing_field("name"),
1108 );
1109 #[cfg(not(feature = "strict"))] Default::default()
1110 }
1111 };
1112 let m_setup = match m_setup {
1113 _serde::__private::Some(__field) => __field,
1114 _serde::__private::None => {
1115 #[cfg(feature = "strict")]
1116 return _serde::__private::Err(
1117 <__A::Error as _serde::de::Error>::missing_field("setup"),
1118 );
1119 #[cfg(not(feature = "strict"))] Default::default()
1120 }
1121 };
1122 let m_behaviorGraph = match m_behaviorGraph {
1123 _serde::__private::Some(__field) => __field,
1124 _serde::__private::None => {
1125 #[cfg(feature = "strict")]
1126 return _serde::__private::Err(
1127 <__A::Error as _serde::de::Error>::missing_field(
1128 "behaviorGraph",
1129 ),
1130 );
1131 #[cfg(not(feature = "strict"))] Default::default()
1132 }
1133 };
1134 let m_projectData = match m_projectData {
1135 _serde::__private::Some(__field) => __field,
1136 _serde::__private::None => {
1137 #[cfg(feature = "strict")]
1138 return _serde::__private::Err(
1139 <__A::Error as _serde::de::Error>::missing_field(
1140 "projectData",
1141 ),
1142 );
1143 #[cfg(not(feature = "strict"))] Default::default()
1144 }
1145 };
1146 let __ptr = None;
1147 let parent = hkBaseObject { __ptr };
1148 let parent = hkReferencedObject {
1149 __ptr,
1150 parent,
1151 ..Default::default()
1152 };
1153 let __ptr = __A::class_ptr(&mut __map);
1154 _serde::__private::Ok(hkbCharacter {
1155 __ptr,
1156 parent,
1157 m_nearbyCharacters,
1158 m_currentLod,
1159 m_name,
1160 m_setup,
1161 m_behaviorGraph,
1162 m_projectData,
1163 ..Default::default()
1164 })
1165 }
1166 }
1167 const FIELDS: &[&str] = &[
1168 "nearbyCharacters",
1169 "currentLod",
1170 "numTracksInLod",
1171 "name",
1172 "ragdollDriver",
1173 "characterControllerDriver",
1174 "footIkDriver",
1175 "handIkDriver",
1176 "setup",
1177 "behaviorGraph",
1178 "projectData",
1179 "animationBindingSet",
1180 "raycastInterface",
1181 "world",
1182 "eventQueue",
1183 "worldFromModel",
1184 "poseLocal",
1185 "deleteWorldFromModel",
1186 "deletePoseLocal",
1187 ];
1188 _serde::Deserializer::deserialize_struct(
1189 deserializer,
1190 "hkbCharacter",
1191 FIELDS,
1192 __hkbCharacterVisitor {
1193 marker: _serde::__private::PhantomData::<hkbCharacter>,
1194 lifetime: _serde::__private::PhantomData,
1195 },
1196 )
1197 }
1198 }
1199};