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

Function xPadNormalizeAnalog

src/SB/Core/x/xPad.cpp:190–213  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

188}
189
190void xPadNormalizeAnalog(_tagxPad& pad, S32 inner_zone, S32 outer_zone)
191{
192 const _tagPadAnalog* src = &pad.analog1;
193 for (S32 i = 0; i < 2; i++)
194 {
195 pad.analog[i].offset.x =
196 normalize_analog(src[i].x, -outer_zone, outer_zone, 0, -inner_zone, inner_zone);
197 pad.analog[i].offset.y =
198 normalize_analog(src[i].y, -outer_zone, outer_zone, 0, -inner_zone, inner_zone);
199 if (pad.analog[i].offset.x == 0.0f && pad.analog[i].offset.y == 0.0f)
200 {
201 pad.analog[i].mag = 0.0f;
202 pad.analog[i].dir.assign(1.0f, 0.0f);
203 pad.analog[i].ang = 0.0f;
204 }
205 else
206 {
207 pad.analog[i].mag = pad.analog[i].offset.length();
208 pad.analog[i].dir = pad.analog[i].offset;
209 pad.analog[i].dir /= pad.analog[i].mag;
210 pad.analog[i].ang = xatan2(pad.analog[i].dir.y, pad.analog[i].dir.x);
211 }
212 }
213}
214
215void xPadAnalogIsDigital(S32 idx, S32 enable)
216{

Callers

nothing calls this directly

Calls 2

xatan2Function · 0.85
lengthMethod · 0.80

Tested by

no test coverage detected