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

Function UpdateOrigin

src/dolphin/src/pad/Pad.c:105–152  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

103}
104
105static void UpdateOrigin(s32 chan)
106{
107 PADStatus* origin;
108 u32 chanBit = PAD_CHAN0_BIT >> chan;
109
110 origin = &Origin[chan];
111 switch (AnalogMode & 0x00000700u)
112 {
113 case 0x00000000u:
114 case 0x00000500u:
115 case 0x00000600u:
116 case 0x00000700u:
117 origin->triggerLeft &= ~15;
118 origin->triggerRight &= ~15;
119 origin->analogA &= ~15;
120 origin->analogB &= ~15;
121 break;
122 case 0x00000100u:
123 origin->substickX &= ~15;
124 origin->substickY &= ~15;
125 origin->analogA &= ~15;
126 origin->analogB &= ~15;
127 break;
128 case 0x00000200u:
129 origin->substickX &= ~15;
130 origin->substickY &= ~15;
131 origin->triggerLeft &= ~15;
132 origin->triggerRight &= ~15;
133 break;
134 case 0x00000300u:
135 break;
136 case 0x00000400u:
137 break;
138 }
139
140 origin->stickX -= 128;
141 origin->stickY -= 128;
142 origin->substickX -= 128;
143 origin->substickY -= 128;
144
145 if (XPatchBits & chanBit)
146 {
147 if (64 < origin->stickX && (SIGetType(chan) & 0xffff0000) == SI_GC_CONTROLLER)
148 {
149 origin->stickX = 0;
150 }
151 }
152}
153
154static void PADOriginCallback(s32 chan, u32 error, OSContext* context)
155{

Callers 2

PADOriginCallbackFunction · 0.85
PADOriginUpdateCallbackFunction · 0.85

Calls 1

SIGetTypeFunction · 0.85

Tested by

no test coverage detected