Can somebody please check my setup for FreeFalcon. The setup should be like this.
I am using layers UMD with ROCK BOAT SWITCH - they are set like this:
BSB is AG mode - in falcon key backspace - switches to ag mode, selects gun (rock boat switch back position)
BSM is Nav mode - in falcon key 5 (which i am using as ICP NAV button) which is ICP NAV button (rock boat switch middle position)
BSF is AA mode - in falcon key enter - switches to aa mode, selects gun (rock boat switch forward position)
I am also using IO mode for shifted/non shifted states - for this purpose i am using S3 button.
Now i have problem..
When i switch to master mode to AA, NAV or AG my UMD layers dont switch as they are supposed so.
I have set my povs on throttle CSU/CSD/CSR/CSL to have different functions in dependacy of currently selected master mode (AA/AG/NAV modes)..
So when i switch rock boat to fw position it sends enter key which selects gun and master AA mode, or when i switch rock boat to back position it sends backspace key which selects gun and master AA mode,
But sometimes my programmed CSU/CSD/CSR/SCL pov functions dont work well..
When in AA mode (rock boat switch is in forward position) - CSR/CSL should have function of different AA RDR modes..
When in NAV mode (rock boat switch is in middle position) - CSR/CSL should have null function..
When in AG mode (rock boat switch is in aft position) - CSR/CSL should have function of different AG radar modes..
Sometimes i have to move rock boat switch twice to upper postion for my CSR/CSL/CSU/CSD pov buttons to work properly.
Heres script:
include "target.tmh"
int main()
{
Exclude(&HCougar);
Exclude(&T16000);
Exclude(&LMFD);
Exclude(&RMFD);
if(Init(&EventHandle)) return 1;
SetKBRate(25, 1000);
SetKBLayout(KB_ENG);
SetShiftButton(&Joystick, S3, &Throttle, BSF, BSB, UDTOGGLE);
MapKeyIOUMD(&Joystick, TG1, 0, '/', 0, 0, 0, '/');
MapKeyIOUMD(&Joystick, S2, PULSE+ENT, SPC, 0, SPC, PULSE+BSP, SPC);
MapKey(&Joystick, S4,
TEMPO(PULSE + L_SHIFT + '/', PULSE + NUML, 750)); // pulse command + trackir center
MapKeyIOUMD(&Joystick, S1, 0, SEQ( PULSE+'d', PULSE+'c', PULSE+'m', PULSE+'c'), 0, 0, 0, PULSE+'\'');
MapKeyIOUMD(&Joystick, TG2, 0, PULSE+L_ALT+'/', 0, PULSE+L_ALT+'/', 0, PULSE+L_ALT+'/');
MapKey(&Joystick, H2U,
TEMPO(PULSE+KP0, PULSE+L_CTL+UARROW, 450)); // TMS U
MapKey(&Joystick, H2R,
TEMPO(PULSE+F2, PULSE+L_CTL+RARROW, 450)); // TMS R
MapKey(&Joystick, H2D,
TEMPO(PULSE+USB[99], PULSE+L_CTL+DARROW, 450)); // TMS D
MapKey(&Joystick, H2L,
TEMPO(PULSE+F1, PULSE+L_CTL+LARROW, 450)); // TMS L
MapKey(&Joystick, H3U,
TEMPO(PULSE+F12, PULSE+L_SHIFT+KP8, 400)); // DMS U
MapKey(&Joystick, H3R,
TEMPO(L_SHIFT+KP6, PULSE+L_SHIFT+KP6, 400)); // DMS R
MapKey(&Joystick, H3D,
TEMPO(PULSE+F11, PULSE+L_SHIFT+KP2, 400)); // DMS D
MapKey(&Joystick, H3L,
TEMPO(L_SHIFT+KP4, PULSE+L_SHIFT+KP4, 400)); // DMS L
MapKeyIOUMD(&Joystick, H4U, 0, PULSE+'x', 0, PULSE+'x', 0, PULSE+'x');
MapKeyIOUMD(&Joystick, H4D, 0, PULSE+'z', 0, PULSE+'z', 0, PULSE+'z');
MapKeyIOUMD(&Joystick, H4P, PULSE+'j', PULSE+'j', PULSE+'j', PULSE+'j', PULSE+'j', PULSE+'j');
MapAxis(&Joystick, JOYX, DX_X_AXIS, AXIS_NORMAL, MAP_ABSOLUTE);
SetSCurve(&Joystick, JOYX, 0, 0, 0, 0, 0);
MapAxis(&Joystick, JOYY, DX_Y_AXIS, AXIS_NORMAL, MAP_ABSOLUTE);
SetSCurve(&Joystick, JOYY, 0, 0, 0, 0, 0);
MapKeyIOUMD(&Throttle, MSU, PULSE+'3', 0, PULSE+'3', 0, PULSE+'3', 0);
MapKeyIOUMD(&Throttle, MSR, PULSE+'9', 0, PULSE+'9', 0, PULSE+'9', 0);
MapKeyIOUMD(&Throttle, MSD, PULSE+L_SHIFT+'9', 0, PULSE+L_SHIFT+'9', 0, PULSE+L_SHIFT+'9', 0);
MapKeyIOUMD(&Throttle, MSL, PULSE+'0', 0, PULSE+'0', 0, PULSE+'0', 0);
MapKeyIOUMD(&Throttle, SPDF, PULSE+L_CTL+'b', PULSE+L_CTL+'b', PULSE+L_CTL+'b', PULSE+L_CTL+'b', PULSE+L_CTL+'b', PULSE+L_CTL+'b');
MapKeyIOUMD(&Throttle, SPDB, DOWN+L_SHIFT+'b', DOWN+L_SHIFT+'b', DOWN+L_SHIFT+'b', DOWN+L_SHIFT+'b', DOWN+L_SHIFT+'b', DOWN+L_SHIFT+'b');
MapKeyRIOUMD(&Throttle, SPDB, UP+L_SHIFT+'b', UP+L_SHIFT+'b', UP+L_SHIFT+'b', UP+L_SHIFT+'b', UP+L_SHIFT+'b', UP+L_SHIFT+'b');
MapKey(&Throttle, BSF, PULSE+ENT);
MapKey(&Throttle, BSM, PULSE+KP5);
MapKey(&Throttle, BSB, PULSE+BSP);
MapKeyIOUMD(&Throttle, CHF, 0, PULSE+'s', 0, PULSE+'s', 0, PULSE+'s');
MapKeyIOUMD(&Throttle, CHB, 0, PULSE+L_SHIFT+'s', 0, PULSE+L_SHIFT+'s', 0, PULSE+L_SHIFT+'s');
// Lights wing/coll/strobe small on throttle
MapKeyIOUMD(&Throttle, PSF, CHAIN( D(2), PULSE+L_CTL+L_ALT+F9, D(2), PULSE+L_CTL+L_ALT+F10, D(2), PULSE+L_CTL+L_ALT+F11), CHAIN( D(2), PULSE+L_CTL+L_ALT+F9, D(2), PULSE+L_CTL+L_ALT+F10, D(2), PULSE+L_CTL+L_ALT+F11), CHAIN( D(2), PULSE+L_CTL+L_ALT+F9, D(2), PULSE+L_CTL+L_ALT+F10, D(2), PULSE+L_CTL+L_ALT+F11), CHAIN( D(2), PULSE+L_CTL+L_ALT+F9, D(2), PULSE+L_CTL+L_ALT+F10, D(2), PULSE+L_CTL+L_ALT+F11), CHAIN( D(2), PULSE+L_CTL+L_ALT+F9, D(2), PULSE+L_CTL+L_ALT+F10, D(2), PULSE+L_CTL+L_ALT+F11), CHAIN( D(2), PULSE+L_CTL+L_ALT+F9, D(2), PULSE+L_CTL+L_ALT+F10, D(2), PULSE+L_CTL+L_ALT+F11));
// Lights landing small on throttle
MapKeyRIOUMD(&Throttle, PSF, CHAIN( D(2), PULSE+L_CTL+L_ALT+F9, D(2), PULSE+L_CTL+L_ALT+F10, D(2), PULSE+L_CTL+L_ALT+F11), CHAIN( D(2), PULSE+L_CTL+L_ALT+F9, D(2), PULSE+L_CTL+L_ALT+F10, D(2), PULSE+L_CTL+L_ALT+F11), CHAIN( D(2), PULSE+L_CTL+L_ALT+F9, D(2), PULSE+L_CTL+L_ALT+F10, D(2), PULSE+L_CTL+L_ALT+F11), CHAIN( D(2), PULSE+L_CTL+L_ALT+F9, D(2), PULSE+L_CTL+L_ALT+F10, D(2), PULSE+L_CTL+L_ALT+F11), CHAIN( D(2), PULSE+L_CTL+L_ALT+F9, D(2), PULSE+L_CTL+L_ALT+F10, D(2), PULSE+L_CTL+L_ALT+F11), CHAIN( D(2), PULSE+L_CTL+L_ALT+F9, D(2), PULSE+L_CTL+L_ALT+F10, D(2), PULSE+L_CTL+L_ALT+F11));
// Lights wing/coll/strobe on throttle base
MapKeyIOUMD(&Throttle, EOLIGN, CHAIN( D(2), PULSE+L_CTL+L_ALT+F9, D(2), PULSE+L_CTL+L_ALT+F10, D(2), PULSE+L_CTL+L_ALT+F11), CHAIN( D(2), PULSE+L_CTL+L_ALT+F9, D(2), PULSE+L_CTL+L_ALT+F10, D(2), PULSE+L_CTL+L_ALT+F11), CHAIN( D(2), PULSE+L_CTL+L_ALT+F9, D(2), PULSE+L_CTL+L_ALT+F10, D(2), PULSE+L_CTL+L_ALT+F11), CHAIN( D(2), PULSE+L_CTL+L_ALT+F9, D(2), PULSE+L_CTL+L_ALT+F10, D(2), PULSE+L_CTL+L_ALT+F11), CHAIN( D(2), PULSE+L_CTL+L_ALT+F9, D(2), PULSE+L_CTL+L_ALT+F10, D(2), PULSE+L_CTL+L_ALT+F11), CHAIN( D(2), PULSE+L_CTL+L_ALT+F9, D(2), PULSE+L_CTL+L_ALT+F10, D(2), PULSE+L_CTL+L_ALT+F11));
// Lights landing on throttle base
MapKeyIOUMD(&Throttle, EORIGN, PULSE+L_CTL+L_ALT+'l', PULSE+L_CTL+L_ALT+'l', PULSE+L_CTL+L_ALT+'l', PULSE+L_CTL+L_ALT+'l', PULSE+L_CTL+L_ALT+'l', PULSE+L_CTL+L_ALT+'l');
MapKeyIOUMD(&Throttle, PSB, PULSE+L_CTL+L_ALT+'l', PULSE+L_CTL+L_ALT+'l', PULSE+L_CTL+L_ALT+'l', PULSE+L_CTL+L_ALT+'l', PULSE+L_CTL+L_ALT+'l', PULSE+L_CTL+L_ALT+'l');
MapKeyIOUMD(&Throttle, LTB, 0, PULSE+L_SHIFT+'n', 0, PULSE+L_SHIFT+'n', 0, PULSE+L_SHIFT+'n');
MapKeyIOUMD(&Throttle, APUON, CHAIN( D(5), PULSE+L_SHIFT+'m'), CHAIN( D(5), PULSE+L_SHIFT+'m'), CHAIN( D(5), PULSE+L_SHIFT+'m'), CHAIN( D(5), PULSE+L_SHIFT+'m'), CHAIN( D(5), PULSE+L_SHIFT+'m'), CHAIN( D(5), PULSE+L_SHIFT+'m'));
MapKeyIOUMD(&Throttle, LDGH, SEQ( PULSE+L_CTL+'g', PULSE+L_CTL+L_SHIFT+L_ALT+'w'), SEQ( PULSE+L_CTL+'g', PULSE+L_CTL+L_SHIFT+L_ALT+'w'), SEQ( PULSE+L_CTL+'g', PULSE+L_CTL+L_SHIFT+L_ALT+'w'), SEQ( PULSE+L_CTL+'g', PULSE+L_CTL+L_SHIFT+L_ALT+'w'), SEQ( PULSE+L_CTL+'g', PULSE+L_CTL+L_SHIFT+L_ALT+'w'), SEQ( PULSE+L_CTL+'g', PULSE+L_CTL+L_SHIFT+L_ALT+'w'));
MapKeyIOUMD(&Throttle, FLAPU, PULSE+'g', PULSE+'g', PULSE+'g', PULSE+'g', PULSE+'g', PULSE+'g');
MapKeyIOUMD(&Throttle, FLAPD, PULSE+'g', PULSE+'g', PULSE+'g', PULSE+'g', PULSE+'g', PULSE+'g');
MapKeyIOUMD(&Throttle, EACON, CHAIN( D(5), PULSE+L_ALT+'l'), CHAIN( D(5), PULSE+L_ALT+'l'), CHAIN( D(5), PULSE+L_ALT+'l'), CHAIN( D(5), PULSE+L_ALT+'l'), CHAIN( D(5), PULSE+L_ALT+'l'), CHAIN( D(5), PULSE+L_ALT+'l'));
MapKeyIOUMD(&Throttle, RDRNRM, PULSE+L_SHIFT+'a', PULSE+L_SHIFT+'a', PULSE+L_SHIFT+'a', PULSE+L_SHIFT+'a', PULSE+L_SHIFT+'a', PULSE+L_SHIFT+'a');
MapKeyIOUMD(&Throttle, APPAT, PULSE+L_CTL+'1', PULSE+L_CTL+'1', PULSE+L_CTL+'1', PULSE+L_CTL+'1', PULSE+L_CTL+'1', PULSE+L_CTL+'1');
MapKeyIOUMD(&Throttle, APALT, PULSE+L_CTL+'2', PULSE+L_CTL+'2', PULSE+L_CTL+'2', PULSE+L_CTL+'2', PULSE+L_CTL+'2', PULSE+L_CTL+'2');
MapKeyIOUMD(&Throttle, APUOFF, CHAIN( D(5), PULSE+L_CTL+'m'), CHAIN( D(5), PULSE+L_CTL+'m'), CHAIN( D(5), PULSE+L_CTL+'m'), CHAIN( D(5), PULSE+L_CTL+'m'), CHAIN( D(5), PULSE+L_CTL+'m'), CHAIN( D(5), PULSE+L_CTL+'m'));
MapKeyIOUMD(&Throttle, EACOFF, CHAIN( D(5), PULSE+L_ALT+'l'), CHAIN( D(5), PULSE+L_ALT+'l'), CHAIN( D(5), PULSE+L_ALT+'l'), CHAIN( D(5), PULSE+L_ALT+'l'), CHAIN( D(5), PULSE+L_ALT+'l'), CHAIN( D(5), PULSE+L_ALT+'l'));
MapKeyIOUMD(&Throttle, RDRDIS, PULSE+L_ALT+'a', PULSE+L_ALT+'a', PULSE+L_ALT+'a', PULSE+L_ALT+'a', PULSE+L_ALT+'a', PULSE+L_ALT+'a');
MapKeyIOUMD(&Throttle, IDLERON, PULSE+L_ALT+'i', PULSE+L_ALT+'i', PULSE+L_ALT+'i', PULSE+L_ALT+'i', PULSE+L_ALT+'i', PULSE+L_ALT+'i');
MapKeyIOUMD(&Throttle, IDLELON, PULSE+L_ALT+'i', PULSE+L_ALT+'i', PULSE+L_ALT+'i', PULSE+L_ALT+'i', PULSE+L_ALT+'i', PULSE+L_ALT+'i');
MapKeyUMD(&Throttle, CSU,
TEMPO(PULSE+F4, PULSE+L_ALT+'u', 400),
TEMPO(PULSE+F4, PULSE+F4, 400),
TEMPO(PULSE+F4, PULSE+L_SHIFT +'v', 400)); // Pulse CSU
MapKeyUMD(&Throttle, CSD,
TEMPO(PULSE+F3, PULSE+'u', 400),
TEMPO(PULSE+F3, PULSE+F3, 400),
TEMPO(PULSE+F3, PULSE+'v', 400)); // Pulse CSD
MapKeyUMD(&Throttle, CSR,
TEMPO(PULSE+F8, SEQ(PULSE+L_SHIFT+'u',PULSE+L_ALT+'u',PULSE+L_CTL+'u', 500)),
0,
TEMPO(PULSE+F9, PULSE+L_SHIFT+'v', 400));// Pulse CSR
MapKeyUMD(&Throttle, CSL,
TEMPO(SEQ( PULSE+L_CTL+F5, PULSE+L_CTL+F6, PULSE+L_CTL+F7, PULSE+L_CTL+F8), SEQ(PULSE+'m',PULSE+'c',PULSE+'d',PULSE+'c'), 500),
0,
TEMPO(PULSE+F2, PULSE+L_SHIFT+F10, 400));// Pulse CSL
MapAxis(&Throttle, SCX, DX_XROT_AXIS, AXIS_NORMAL, MAP_ABSOLUTE);
SetSCurve(&Throttle, SCX, 0, 33, 0, 4, -2);
MapAxis(&Throttle, SCY, DX_YROT_AXIS, AXIS_NORMAL, MAP_ABSOLUTE);
SetSCurve(&Throttle, SCY, 0, 33, 0, 4, -2);
MapAxis(&Throttle, THR_RIGHT, DX_Z_AXIS, AXIS_NORMAL, MAP_ABSOLUTE);
SetSCurve(&Throttle, THR_RIGHT, 0, 0, 0, 0, 0);
MapAxis(&Throttle, THR_LEFT, DX_ZROT_AXIS, AXIS_NORMAL, MAP_ABSOLUTE);
SetSCurve(&Throttle, THR_LEFT, 0, 0, 0, 0, 0);
MapAxis(&Throttle, THR_FC, DX_SLIDER_AXIS, AXIS_NORMAL, MAP_ABSOLUTE);
SetSCurve(&Throttle, THR_FC, 0, 0, 0, 0, 0);
}
int EventHandle(int type, alias o, int x)
{
DefaultMapping(&o, x);
}