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 BSInterpValueModifier<'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 #[cfg_attr(feature = "serde", serde(borrow))]
30 pub parent: hkbModifier<'a>,
31 #[cfg_attr(feature = "json_schema", schemars(rename = "source"))]
36 #[cfg_attr(feature = "serde", serde(rename = "source"))]
37 pub m_source: f32,
38 #[cfg_attr(feature = "json_schema", schemars(rename = "target"))]
43 #[cfg_attr(feature = "serde", serde(rename = "target"))]
44 pub m_target: f32,
45 #[cfg_attr(feature = "json_schema", schemars(rename = "result"))]
50 #[cfg_attr(feature = "serde", serde(rename = "result"))]
51 pub m_result: f32,
52 #[cfg_attr(feature = "json_schema", schemars(rename = "gain"))]
57 #[cfg_attr(feature = "serde", serde(rename = "gain"))]
58 pub m_gain: f32,
59 #[cfg_attr(feature = "json_schema", schemars(rename = "timeStep"))]
65 #[cfg_attr(feature = "serde", serde(rename = "timeStep"))]
66 pub m_timeStep: f32,
67}
68const _: () = {
69 use havok_serde as _serde;
70 impl<'a> _serde::HavokClass for BSInterpValueModifier<'a> {
71 #[inline]
72 fn name(&self) -> &'static str {
73 "BSInterpValueModifier"
74 }
75 #[inline]
76 fn signature(&self) -> _serde::__private::Signature {
77 _serde::__private::Signature::new(0x29adc802)
78 }
79 #[allow(clippy::let_and_return, clippy::vec_init_then_push)]
80 fn deps_indexes(&self) -> Vec<usize> {
81 let mut v = Vec::new();
82 v.push(self.parent.parent.parent.m_variableBindingSet.get());
83 v
84 }
85 }
86 impl<'a> _serde::Serialize for BSInterpValueModifier<'a> {
87 fn serialize<S>(&self, __serializer: S) -> Result<S::Ok, S::Error>
88 where
89 S: _serde::ser::Serializer,
90 {
91 let class_meta = self
92 .__ptr
93 .map(|name| (name, _serde::__private::Signature::new(0x29adc802)));
94 let mut serializer = __serializer
95 .serialize_struct("BSInterpValueModifier", class_meta, (64u64, 104u64))?;
96 serializer.pad_field([0u8; 4usize].as_slice(), [0u8; 8usize].as_slice())?;
97 serializer
98 .skip_field(
99 "memSizeAndFlags",
100 &self.parent.parent.parent.parent.m_memSizeAndFlags,
101 )?;
102 serializer
103 .skip_field(
104 "referenceCount",
105 &self.parent.parent.parent.parent.m_referenceCount,
106 )?;
107 serializer.pad_field([0u8; 0usize].as_slice(), [0u8; 4usize].as_slice())?;
108 serializer
109 .serialize_field(
110 "variableBindingSet",
111 &self.parent.parent.parent.m_variableBindingSet,
112 )?;
113 serializer
114 .skip_array_field(
115 "cachedBindables",
116 &self.parent.parent.parent.m_cachedBindables,
117 TypeSize::NonPtr,
118 )?;
119 serializer
120 .skip_field(
121 "areBindablesCached",
122 &self.parent.parent.parent.m_areBindablesCached,
123 )?;
124 serializer.pad_field([0u8; 3usize].as_slice(), [0u8; 7usize].as_slice())?;
125 serializer.serialize_field("userData", &self.parent.parent.m_userData)?;
126 serializer.serialize_field("name", &self.parent.parent.m_name)?;
127 serializer.skip_field("id", &self.parent.parent.m_id)?;
128 serializer.skip_field("cloneState", &self.parent.parent.m_cloneState)?;
129 serializer
130 .skip_fixed_array_field(
131 "padNode",
132 self.parent.parent.m_padNode.as_slice(),
133 TypeSize::NonPtr,
134 )?;
135 serializer.pad_field([0u8; 0usize].as_slice(), [0u8; 4usize].as_slice())?;
136 serializer.serialize_field("enable", &self.parent.m_enable)?;
137 serializer
138 .skip_fixed_array_field(
139 "padModifier",
140 self.parent.m_padModifier.as_slice(),
141 TypeSize::NonPtr,
142 )?;
143 serializer.pad_field([0u8; 0usize].as_slice(), [0u8; 4usize].as_slice())?;
144 serializer.serialize_field("source", &self.m_source)?;
145 serializer.serialize_field("target", &self.m_target)?;
146 serializer.serialize_field("result", &self.m_result)?;
147 serializer.serialize_field("gain", &self.m_gain)?;
148 serializer.skip_field("timeStep", &self.m_timeStep)?;
149 serializer.pad_field([0u8; 0usize].as_slice(), [0u8; 4usize].as_slice())?;
150 serializer.end()
151 }
152 }
153};
154#[doc(hidden)]
155#[allow(non_upper_case_globals, unused_attributes, unused_qualifications)]
156const _: () = {
157 use havok_serde as _serde;
158 #[automatically_derived]
159 impl<'de> _serde::Deserialize<'de> for BSInterpValueModifier<'de> {
160 fn deserialize<__D>(deserializer: __D) -> core::result::Result<Self, __D::Error>
161 where
162 __D: _serde::Deserializer<'de>,
163 {
164 #[allow(non_camel_case_types)]
165 enum __Field {
166 m_variableBindingSet,
167 m_userData,
168 m_name,
169 m_enable,
170 m_source,
171 m_target,
172 m_result,
173 m_gain,
174 __ignore,
175 }
176 struct __FieldVisitor;
177 impl<'de> _serde::de::Visitor<'de> for __FieldVisitor {
178 type Value = __Field;
179 fn expecting(
180 &self,
181 __formatter: &mut core::fmt::Formatter,
182 ) -> core::fmt::Result {
183 core::fmt::Formatter::write_str(__formatter, "field identifier")
184 }
185 #[allow(clippy::match_single_binding)]
187 #[allow(clippy::reversed_empty_ranges)]
188 #[allow(clippy::single_match)]
189 fn visit_key<__E>(
190 self,
191 __value: &str,
192 ) -> core::result::Result<Self::Value, __E>
193 where
194 __E: _serde::de::Error,
195 {
196 match __value {
197 "variableBindingSet" => Ok(__Field::m_variableBindingSet),
198 "userData" => Ok(__Field::m_userData),
199 "name" => Ok(__Field::m_name),
200 "enable" => Ok(__Field::m_enable),
201 "source" => Ok(__Field::m_source),
202 "target" => Ok(__Field::m_target),
203 "result" => Ok(__Field::m_result),
204 "gain" => Ok(__Field::m_gain),
205 _ => Ok(__Field::__ignore),
206 }
207 }
208 }
209 impl<'de> _serde::Deserialize<'de> for __Field {
210 #[inline]
211 fn deserialize<__D>(
212 __deserializer: __D,
213 ) -> core::result::Result<Self, __D::Error>
214 where
215 __D: _serde::Deserializer<'de>,
216 {
217 _serde::Deserializer::deserialize_key(__deserializer, __FieldVisitor)
218 }
219 }
220 struct __BSInterpValueModifierVisitor<'de> {
221 marker: _serde::__private::PhantomData<BSInterpValueModifier<'de>>,
222 lifetime: _serde::__private::PhantomData<&'de ()>,
223 }
224 #[allow(clippy::match_single_binding)]
225 #[allow(clippy::reversed_empty_ranges)]
226 #[allow(clippy::single_match)]
227 impl<'de> _serde::de::Visitor<'de> for __BSInterpValueModifierVisitor<'de> {
228 type Value = BSInterpValueModifier<'de>;
229 fn expecting(
230 &self,
231 __formatter: &mut core::fmt::Formatter,
232 ) -> core::fmt::Result {
233 core::fmt::Formatter::write_str(
234 __formatter,
235 "struct BSInterpValueModifier",
236 )
237 }
238 fn visit_struct_for_bytes<__A>(
239 self,
240 mut __map: __A,
241 ) -> _serde::__private::Result<Self::Value, __A::Error>
242 where
243 __A: _serde::de::MapAccess<'de>,
244 {
245 let __ptr = __A::class_ptr(&mut __map);
246 let parent = __A::parent_value(&mut __map)?;
247 let mut m_source: _serde::__private::Option<f32> = _serde::__private::None;
248 let mut m_target: _serde::__private::Option<f32> = _serde::__private::None;
249 let mut m_result: _serde::__private::Option<f32> = _serde::__private::None;
250 let mut m_gain: _serde::__private::Option<f32> = _serde::__private::None;
251 let mut m_timeStep: _serde::__private::Option<f32> = _serde::__private::None;
252 for i in 0..5usize {
253 match i {
254 0usize => {
255 if _serde::__private::Option::is_some(&m_source) {
256 return _serde::__private::Err(
257 <__A::Error as _serde::de::Error>::duplicate_field("source"),
258 );
259 }
260 m_source = _serde::__private::Some(
261 match __A::next_value::<f32>(&mut __map) {
262 _serde::__private::Ok(__val) => __val,
263 _serde::__private::Err(__err) => {
264 return _serde::__private::Err(__err);
265 }
266 },
267 );
268 }
269 1usize => {
270 if _serde::__private::Option::is_some(&m_target) {
271 return _serde::__private::Err(
272 <__A::Error as _serde::de::Error>::duplicate_field("target"),
273 );
274 }
275 m_target = _serde::__private::Some(
276 match __A::next_value::<f32>(&mut __map) {
277 _serde::__private::Ok(__val) => __val,
278 _serde::__private::Err(__err) => {
279 return _serde::__private::Err(__err);
280 }
281 },
282 );
283 }
284 2usize => {
285 if _serde::__private::Option::is_some(&m_result) {
286 return _serde::__private::Err(
287 <__A::Error as _serde::de::Error>::duplicate_field("result"),
288 );
289 }
290 m_result = _serde::__private::Some(
291 match __A::next_value::<f32>(&mut __map) {
292 _serde::__private::Ok(__val) => __val,
293 _serde::__private::Err(__err) => {
294 return _serde::__private::Err(__err);
295 }
296 },
297 );
298 }
299 3usize => {
300 if _serde::__private::Option::is_some(&m_gain) {
301 return _serde::__private::Err(
302 <__A::Error as _serde::de::Error>::duplicate_field("gain"),
303 );
304 }
305 m_gain = _serde::__private::Some(
306 match __A::next_value::<f32>(&mut __map) {
307 _serde::__private::Ok(__val) => __val,
308 _serde::__private::Err(__err) => {
309 return _serde::__private::Err(__err);
310 }
311 },
312 );
313 }
314 4usize => {
315 if _serde::__private::Option::is_some(&m_timeStep) {
316 return _serde::__private::Err(
317 <__A::Error as _serde::de::Error>::duplicate_field(
318 "timeStep",
319 ),
320 );
321 }
322 m_timeStep = _serde::__private::Some(
323 match __A::next_value::<f32>(&mut __map) {
324 _serde::__private::Ok(__val) => __val,
325 _serde::__private::Err(__err) => {
326 return _serde::__private::Err(__err);
327 }
328 },
329 );
330 }
331 _ => {}
332 }
333 }
334 __A::pad(&mut __map, 0usize, 4usize)?;
335 let m_source = match m_source {
336 _serde::__private::Some(__field) => __field,
337 _serde::__private::None => {
338 return _serde::__private::Err(
339 <__A::Error as _serde::de::Error>::missing_field("source"),
340 );
341 }
342 };
343 let m_target = match m_target {
344 _serde::__private::Some(__field) => __field,
345 _serde::__private::None => {
346 return _serde::__private::Err(
347 <__A::Error as _serde::de::Error>::missing_field("target"),
348 );
349 }
350 };
351 let m_result = match m_result {
352 _serde::__private::Some(__field) => __field,
353 _serde::__private::None => {
354 return _serde::__private::Err(
355 <__A::Error as _serde::de::Error>::missing_field("result"),
356 );
357 }
358 };
359 let m_gain = match m_gain {
360 _serde::__private::Some(__field) => __field,
361 _serde::__private::None => {
362 return _serde::__private::Err(
363 <__A::Error as _serde::de::Error>::missing_field("gain"),
364 );
365 }
366 };
367 let m_timeStep = match m_timeStep {
368 _serde::__private::Some(__field) => __field,
369 _serde::__private::None => {
370 return _serde::__private::Err(
371 <__A::Error as _serde::de::Error>::missing_field("timeStep"),
372 );
373 }
374 };
375 _serde::__private::Ok(BSInterpValueModifier {
376 __ptr,
377 parent,
378 m_source,
379 m_target,
380 m_result,
381 m_gain,
382 m_timeStep,
383 })
384 }
385 #[allow(clippy::manual_unwrap_or_default)]
386 fn visit_struct<__A>(
387 self,
388 mut __map: __A,
389 ) -> _serde::__private::Result<Self::Value, __A::Error>
390 where
391 __A: _serde::de::MapAccess<'de>,
392 {
393 let mut m_variableBindingSet: _serde::__private::Option<Pointer> = _serde::__private::None;
394 let mut m_userData: _serde::__private::Option<Ulong> = _serde::__private::None;
395 let mut m_name: _serde::__private::Option<StringPtr<'de>> = _serde::__private::None;
396 let mut m_enable: _serde::__private::Option<bool> = _serde::__private::None;
397 let mut m_source: _serde::__private::Option<f32> = _serde::__private::None;
398 let mut m_target: _serde::__private::Option<f32> = _serde::__private::None;
399 let mut m_result: _serde::__private::Option<f32> = _serde::__private::None;
400 let mut m_gain: _serde::__private::Option<f32> = _serde::__private::None;
401 while let _serde::__private::Some(__key) = {
402 __A::next_key::<__Field>(&mut __map)?
403 } {
404 match __key {
405 __Field::m_variableBindingSet => {
406 #[cfg(
407 any(feature = "strict", feature = "ignore_duplicates")
408 )]
409 if _serde::__private::Option::is_some(
410 &m_variableBindingSet,
411 ) {
412 #[cfg(feature = "ignore_duplicates")]
413 {
414 __A::skip_value(&mut __map)?;
415 continue;
416 }
417 #[cfg(feature = "strict")]
418 return _serde::__private::Err(
419 <__A::Error as _serde::de::Error>::duplicate_field(
420 "variableBindingSet",
421 ),
422 );
423 }
424 m_variableBindingSet = _serde::__private::Some(
425 match __A::next_value::<Pointer>(&mut __map) {
426 _serde::__private::Ok(__val) => __val,
427 _serde::__private::Err(__err) => {
428 return _serde::__private::Err(__err);
429 }
430 },
431 );
432 }
433 __Field::m_userData => {
434 #[cfg(
435 any(feature = "strict", feature = "ignore_duplicates")
436 )]
437 if _serde::__private::Option::is_some(&m_userData) {
438 #[cfg(feature = "ignore_duplicates")]
439 {
440 __A::skip_value(&mut __map)?;
441 continue;
442 }
443 #[cfg(feature = "strict")]
444 return _serde::__private::Err(
445 <__A::Error as _serde::de::Error>::duplicate_field(
446 "userData",
447 ),
448 );
449 }
450 m_userData = _serde::__private::Some(
451 match __A::next_value::<Ulong>(&mut __map) {
452 _serde::__private::Ok(__val) => __val,
453 _serde::__private::Err(__err) => {
454 return _serde::__private::Err(__err);
455 }
456 },
457 );
458 }
459 __Field::m_name => {
460 #[cfg(
461 any(feature = "strict", feature = "ignore_duplicates")
462 )]
463 if _serde::__private::Option::is_some(&m_name) {
464 #[cfg(feature = "ignore_duplicates")]
465 {
466 __A::skip_value(&mut __map)?;
467 continue;
468 }
469 #[cfg(feature = "strict")]
470 return _serde::__private::Err(
471 <__A::Error as _serde::de::Error>::duplicate_field("name"),
472 );
473 }
474 m_name = _serde::__private::Some(
475 match __A::next_value::<StringPtr<'de>>(&mut __map) {
476 _serde::__private::Ok(__val) => __val,
477 _serde::__private::Err(__err) => {
478 return _serde::__private::Err(__err);
479 }
480 },
481 );
482 }
483 __Field::m_enable => {
484 #[cfg(
485 any(feature = "strict", feature = "ignore_duplicates")
486 )]
487 if _serde::__private::Option::is_some(&m_enable) {
488 #[cfg(feature = "ignore_duplicates")]
489 {
490 __A::skip_value(&mut __map)?;
491 continue;
492 }
493 #[cfg(feature = "strict")]
494 return _serde::__private::Err(
495 <__A::Error as _serde::de::Error>::duplicate_field("enable"),
496 );
497 }
498 m_enable = _serde::__private::Some(
499 match __A::next_value::<bool>(&mut __map) {
500 _serde::__private::Ok(__val) => __val,
501 _serde::__private::Err(__err) => {
502 return _serde::__private::Err(__err);
503 }
504 },
505 );
506 }
507 __Field::m_source => {
508 #[cfg(
509 any(feature = "strict", feature = "ignore_duplicates")
510 )]
511 if _serde::__private::Option::is_some(&m_source) {
512 #[cfg(feature = "ignore_duplicates")]
513 {
514 __A::skip_value(&mut __map)?;
515 continue;
516 }
517 #[cfg(feature = "strict")]
518 return _serde::__private::Err(
519 <__A::Error as _serde::de::Error>::duplicate_field("source"),
520 );
521 }
522 m_source = _serde::__private::Some(
523 match __A::next_value::<f32>(&mut __map) {
524 _serde::__private::Ok(__val) => __val,
525 _serde::__private::Err(__err) => {
526 return _serde::__private::Err(__err);
527 }
528 },
529 );
530 }
531 __Field::m_target => {
532 #[cfg(
533 any(feature = "strict", feature = "ignore_duplicates")
534 )]
535 if _serde::__private::Option::is_some(&m_target) {
536 #[cfg(feature = "ignore_duplicates")]
537 {
538 __A::skip_value(&mut __map)?;
539 continue;
540 }
541 #[cfg(feature = "strict")]
542 return _serde::__private::Err(
543 <__A::Error as _serde::de::Error>::duplicate_field("target"),
544 );
545 }
546 m_target = _serde::__private::Some(
547 match __A::next_value::<f32>(&mut __map) {
548 _serde::__private::Ok(__val) => __val,
549 _serde::__private::Err(__err) => {
550 return _serde::__private::Err(__err);
551 }
552 },
553 );
554 }
555 __Field::m_result => {
556 #[cfg(
557 any(feature = "strict", feature = "ignore_duplicates")
558 )]
559 if _serde::__private::Option::is_some(&m_result) {
560 #[cfg(feature = "ignore_duplicates")]
561 {
562 __A::skip_value(&mut __map)?;
563 continue;
564 }
565 #[cfg(feature = "strict")]
566 return _serde::__private::Err(
567 <__A::Error as _serde::de::Error>::duplicate_field("result"),
568 );
569 }
570 m_result = _serde::__private::Some(
571 match __A::next_value::<f32>(&mut __map) {
572 _serde::__private::Ok(__val) => __val,
573 _serde::__private::Err(__err) => {
574 return _serde::__private::Err(__err);
575 }
576 },
577 );
578 }
579 __Field::m_gain => {
580 #[cfg(
581 any(feature = "strict", feature = "ignore_duplicates")
582 )]
583 if _serde::__private::Option::is_some(&m_gain) {
584 #[cfg(feature = "ignore_duplicates")]
585 {
586 __A::skip_value(&mut __map)?;
587 continue;
588 }
589 #[cfg(feature = "strict")]
590 return _serde::__private::Err(
591 <__A::Error as _serde::de::Error>::duplicate_field("gain"),
592 );
593 }
594 m_gain = _serde::__private::Some(
595 match __A::next_value::<f32>(&mut __map) {
596 _serde::__private::Ok(__val) => __val,
597 _serde::__private::Err(__err) => {
598 return _serde::__private::Err(__err);
599 }
600 },
601 );
602 }
603 _ => __A::skip_value(&mut __map)?,
604 }
605 }
606 let m_variableBindingSet = match m_variableBindingSet {
607 _serde::__private::Some(__field) => __field,
608 _serde::__private::None => {
609 #[cfg(feature = "strict")]
610 return _serde::__private::Err(
611 <__A::Error as _serde::de::Error>::missing_field(
612 "variableBindingSet",
613 ),
614 );
615 #[cfg(not(feature = "strict"))] Default::default()
616 }
617 };
618 let m_userData = match m_userData {
619 _serde::__private::Some(__field) => __field,
620 _serde::__private::None => {
621 #[cfg(feature = "strict")]
622 return _serde::__private::Err(
623 <__A::Error as _serde::de::Error>::missing_field("userData"),
624 );
625 #[cfg(not(feature = "strict"))] Default::default()
626 }
627 };
628 let m_name = match m_name {
629 _serde::__private::Some(__field) => __field,
630 _serde::__private::None => {
631 #[cfg(feature = "strict")]
632 return _serde::__private::Err(
633 <__A::Error as _serde::de::Error>::missing_field("name"),
634 );
635 #[cfg(not(feature = "strict"))] Default::default()
636 }
637 };
638 let m_enable = match m_enable {
639 _serde::__private::Some(__field) => __field,
640 _serde::__private::None => {
641 #[cfg(feature = "strict")]
642 return _serde::__private::Err(
643 <__A::Error as _serde::de::Error>::missing_field("enable"),
644 );
645 #[cfg(not(feature = "strict"))] Default::default()
646 }
647 };
648 let m_source = match m_source {
649 _serde::__private::Some(__field) => __field,
650 _serde::__private::None => {
651 #[cfg(feature = "strict")]
652 return _serde::__private::Err(
653 <__A::Error as _serde::de::Error>::missing_field("source"),
654 );
655 #[cfg(not(feature = "strict"))] Default::default()
656 }
657 };
658 let m_target = match m_target {
659 _serde::__private::Some(__field) => __field,
660 _serde::__private::None => {
661 #[cfg(feature = "strict")]
662 return _serde::__private::Err(
663 <__A::Error as _serde::de::Error>::missing_field("target"),
664 );
665 #[cfg(not(feature = "strict"))] Default::default()
666 }
667 };
668 let m_result = match m_result {
669 _serde::__private::Some(__field) => __field,
670 _serde::__private::None => {
671 #[cfg(feature = "strict")]
672 return _serde::__private::Err(
673 <__A::Error as _serde::de::Error>::missing_field("result"),
674 );
675 #[cfg(not(feature = "strict"))] Default::default()
676 }
677 };
678 let m_gain = match m_gain {
679 _serde::__private::Some(__field) => __field,
680 _serde::__private::None => {
681 #[cfg(feature = "strict")]
682 return _serde::__private::Err(
683 <__A::Error as _serde::de::Error>::missing_field("gain"),
684 );
685 #[cfg(not(feature = "strict"))] Default::default()
686 }
687 };
688 let __ptr = None;
689 let parent = hkBaseObject { __ptr };
690 let parent = hkReferencedObject {
691 __ptr,
692 parent,
693 ..Default::default()
694 };
695 let parent = hkbBindable {
696 __ptr,
697 parent,
698 m_variableBindingSet,
699 ..Default::default()
700 };
701 let parent = hkbNode {
702 __ptr,
703 parent,
704 m_userData,
705 m_name,
706 ..Default::default()
707 };
708 let parent = hkbModifier {
709 __ptr,
710 parent,
711 m_enable,
712 ..Default::default()
713 };
714 let __ptr = __A::class_ptr(&mut __map);
715 _serde::__private::Ok(BSInterpValueModifier {
716 __ptr,
717 parent,
718 m_source,
719 m_target,
720 m_result,
721 m_gain,
722 ..Default::default()
723 })
724 }
725 }
726 const FIELDS: &[&str] = &["source", "target", "result", "gain", "timeStep"];
727 _serde::Deserializer::deserialize_struct(
728 deserializer,
729 "BSInterpValueModifier",
730 FIELDS,
731 __BSInterpValueModifierVisitor {
732 marker: _serde::__private::PhantomData::<BSInterpValueModifier>,
733 lifetime: _serde::__private::PhantomData,
734 },
735 )
736 }
737 }
738};