30
30
res my_ ## name(__VA_ARGS__)
31
31
32
32
int swapForce = 0 ;
33
+ unsigned int homeCoolDown = 0 ;
33
34
34
35
// AX FUNCTIONS
35
36
DECL (s32 , AXSetVoiceDeviceMixOld , void * v , s32 device , u32 id , void * mix ) {
@@ -72,8 +73,7 @@ DECL(void, AXFreeVoice, void *v) {
72
73
real_AXFreeVoice (v );
73
74
}
74
75
75
- void swapVoices ()
76
- {
76
+ void swapVoices () {
77
77
swapAll ();
78
78
for (int i = 0 ; i < VOICE_INFO_MAX ; i ++ ) {
79
79
if (gVoiceInfos [i ].voice == NULL ) continue ;
@@ -85,8 +85,7 @@ void swapVoices()
85
85
}
86
86
87
87
// GX2 FUNCTIONS
88
- DECL (void , GX2CopyColorBufferToScanBuffer , GX2ColorBuffer * colorBuffer , s32 scan_target )
89
- {
88
+ DECL (void , GX2CopyColorBufferToScanBuffer , GX2ColorBuffer * colorBuffer , s32 scan_target ) {
90
89
// GX2 destinations:
91
90
// 0x1 = TV
92
91
// 0x4 = 1st GamePad
@@ -96,12 +95,10 @@ DECL(void, GX2CopyColorBufferToScanBuffer, GX2ColorBuffer *colorBuffer, s32 scan
96
95
// 0x1 = swap
97
96
98
97
// check drc swap and force the drcMode to default when inkstrike is activated
99
- if (drcMode == 0 || swapForce )
100
- {
98
+ if (drcMode == 0 || swapForce ) {
101
99
real_GX2CopyColorBufferToScanBuffer (colorBuffer , scan_target );
102
100
}
103
- else
104
- {
101
+ else {
105
102
switch (scan_target )
106
103
{
107
104
case 0x1 :
@@ -115,40 +112,46 @@ DECL(void, GX2CopyColorBufferToScanBuffer, GX2ColorBuffer *colorBuffer, s32 scan
115
112
}
116
113
117
114
//VPAD FUNCTIONS
118
- DECL (int , VPADRead , int chan , VPADData * buffer , u32 buffer_size , s32 * error )
119
- {
115
+ DECL (int , VPADRead , int chan , VPADData * buffer , u32 buffer_size , s32 * error ) {
116
+ int result = real_VPADRead ( chan , buffer , buffer_size , error );
120
117
// switch on L and SELECT
121
- if (buffer -> btns_d & VPAD_BUTTON_MINUS && buffer -> btns_h & VPAD_BUTTON_L && AppInBackground )
122
- {
118
+ if (buffer -> btns_d & VPAD_BUTTON_MINUS && buffer -> btns_h & VPAD_BUTTON_L && AppInBackground ) {
123
119
drcSwap ();
124
120
}
125
121
122
+ // switch on TV button
123
+ if (buffer -> btns_h & VPAD_BUTTON_TV && homeCoolDown == 0 && AppInBackground ) {
124
+ homeCoolDown = 0x5A ;
125
+ drcSwap ();
126
+ }
127
+ else if (homeCoolDown > 0 ) {
128
+ homeCoolDown -- ;
129
+ }
130
+
131
+
126
132
// patches splatoon enhanced controls
127
- if (isSplatoon )
128
- {
133
+ if (isSplatoon ) {
129
134
gambitPatches (buffer );
130
135
gambitDRC ();
131
136
}
132
137
133
- return real_VPADRead ( chan , buffer , buffer_size , error ) ;
138
+ return result ;
134
139
}
135
140
136
- DECL (void , VPADGetTPCalibratedPoint , int chan , VPADTPData * screen , VPADTPData * raw )
137
- {
141
+ DECL (void , VPADGetTPCalibratedPoint , int chan , VPADTPData * screen , VPADTPData * raw ) {
138
142
real_VPADGetTPCalibratedPoint (chan , screen , raw );
139
143
140
- if (isSplatoon )
144
+ if (isSplatoon ) {
141
145
// handles modified touch input for super jumps
142
146
gambitTouch (screen );
147
+ }
143
148
}
144
149
145
- DECL (void , VPADSetSensorBar , s32 chan , bool on )
146
- {
150
+ DECL (void , VPADSetSensorBar , s32 chan , bool on ){
147
151
real_VPADSetSensorBar (chan , on );
148
152
}
149
153
150
- void drcSwap ()
151
- {
154
+ void drcSwap () {
152
155
// swap drc modes
153
156
drcMode = !drcMode ;
154
157
0 commit comments