MCPcopy Create free account
hub / github.com/bfbbdecomp/bfbb / set_value

Method set_value

src/SB/Core/x/xHudMeter.cpp:27–84  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

25} // namespace xhud
26
27void xhud::meter_widget::set_value(F32 v)
28{
29 F32 dvalue;
30 F32 sign;
31
32 dvalue = v - value;
33 if (dvalue < -0.01f)
34 {
35 if (res.sound.start_decrement != 0)
36 {
37 xSndPlay(res.sound.start_decrement, 1.0f, 0.0f, 0x80, 0x0, NULL, SND_CAT_GAME, 0.0f);
38 }
39
40 if (res.decrement_time < 0.01f)
41 {
42 set_value_immediate(v);
43 return;
44 }
45
46 dvalue = -1.0f;
47 }
48 else if (dvalue > 0.01f)
49 {
50 if (res.sound.start_increment != 0)
51 {
52 xSndPlay(res.sound.start_increment, 1.0f, 0.0f, 0x80, 0x0, NULL, SND_CAT_GAME, 0.0f);
53 }
54
55 if (res.increment_time < 0.01f)
56 {
57 set_value_immediate(v);
58 return;
59 }
60
61 dvalue = 1.0f;
62 }
63 else
64 {
65 set_value_immediate(v);
66 return;
67 }
68
69 end_value = dvalue;
70
71 if (res.decrement_time == 0.0f)
72 {
73 printf("decrement time = 0 -- ass saved!\n");
74 }
75
76 dvalue = res.decrement_time > 1e-5f ? 1e-5f : dvalue / res.decrement_time;
77 value_vel = dvalue;
78 value_accel = 50.0f * res.decrement_time;
79
80 if (xsqrt(2.0f * (v - value) / res.decrement_time) > 2.0f)
81 {
82 value_accel = 25.0f * res.decrement_time;
83 }
84}

Callers 1

updateMethod · 0.80

Calls 3

printfFunction · 0.85
xsqrtFunction · 0.85
xSndPlayFunction · 0.70

Tested by

no test coverage detected