dofile(LockOn_Options.script_path.."command_defs.lua") dofile(LockOn_Options.script_path.."devices.lua") dofile(LockOn_Options.script_path.."config.lua") dofile(LockOn_Options.script_path.."sounds.lua") local gettext = require("i_18n") _ = gettext.translate cursor_mode = { CUMODE_CLICKABLE = 0, CUMODE_CLICKABLE_AND_CAMERA = 1, CUMODE_CAMERA = 2, }; clickable_mode_initial_status = cursor_mode.CUMODE_CLICKABLE use_pointer_name = new_model_format--true direction = 1 cyclic_by_default = true -- to cycle two-way thumblers or not by default function default_button(hint_,device_,command_,arg_,arg_val_,arg_lim_) local arg_val_ = arg_val_ or 1 local arg_lim_ = arg_lim_ or {0,1} return { class = {class_type.BTN}, hint = hint_, device = device_, action = {command_}, stop_action = {command_}, arg = {arg_}, arg_value = {arg_val_}, arg_lim = {arg_lim_}, use_release_message = {true}, sound = {{SOUND_SW1}, {SOUND_SW1}} } end -- default_button with lamp function default_button_with_lamp(hint_,device_,command_,arg_,arg_val_,arg_lim_) local arg_val_ = arg_val_ or 1 local arg_lim_ = arg_lim_ or {0,1} return { class = {class_type.BTN}, hint = hint_, device = device_, action = {command_}, stop_action = {command_}, arg = {arg_}, arg_value = {arg_val_}, arg_lim = {arg_lim_}, use_release_message = {true}, } end -- default_button, red soft function default_button_soft(hint_,device_,command_,arg_,arg_val_,arg_lim_) local arg_val_ = arg_val_ or 1 local arg_lim_ = arg_lim_ or {0,1} return { class = {class_type.BTN}, hint = hint_, device = device_, action = {command_}, stop_action = {command_}, arg = {arg_}, arg_value = {arg_val_}, arg_lim = {arg_lim_}, use_release_message = {true}, sound = {{SOUND_SW4_OFF,SOUND_SW4_ON},{SOUND_SW4_OFF,SOUND_SW4_ON}} } end function default_1_position_tumb(hint_, device_, command_, arg_, arg_val_, arg_lim_) local arg_val_ = arg_val_ or 1 local arg_lim_ = arg_lim_ or {0,1} return { class = {class_type.TUMB}, hint = hint_, device = device_, action = {command_}, arg = {arg_}, arg_value = {arg_val_}, arg_lim = {arg_lim_}, updatable = true, use_OBB = true, sound = {{SOUND_SW1}, {SOUND_SW1}} } end function default_2_position_tumb(hint_, device_, command_, arg_) return { class = {class_type.TUMB,class_type.TUMB}, hint = hint_, device = device_, action = {command_,command_}, arg = {arg_,arg_}, arg_value = {1,-1}, arg_lim = {{0,1},{0,1}}, updatable = true, use_OBB = true, sound = {{SOUND_SW1}, {SOUND_SW1}} } end function default_2_position_tumb_flare(hint_, device_, command_, arg_) return { class = {class_type.TUMB,class_type.TUMB}, hint = hint_, device = device_, action = {command_,command_}, arg = {arg_,arg_}, arg_value = {1,-1}, arg_lim = {{0,1},{0,1}}, updatable = true, use_OBB = true, sound = {{SOUND_SW7_OFF,SOUND_SW7_ON},{SOUND_SW7_OFF,SOUND_SW7_ON}} } end -- default_2_position_tumb -> red cover function default_red_cover(hint_, device_, command_, arg_) return { class = {class_type.TUMB,class_type.TUMB}, hint = hint_, device = device_, action = {command_,command_}, arg = {arg_,arg_}, arg_value = {1,-1}, arg_lim = {{0,1},{0,1}}, updatable = true, use_OBB = true, sound = {{SOUND_SW3_CLOSE, SOUND_SW3_OPEN},{SOUND_SW3_CLOSE, SOUND_SW3_OPEN}} } end function default_2_position_tumb11(hint_, device_, command_, arg_) return { class = {class_type.TUMB,class_type.TUMB}, hint = hint_, device = device_, action = {command_,command_}, arg = {arg_,arg_}, arg_value = {2,-2}, arg_lim = {{-1,1},{-1,1}}, updatable = true, use_OBB = true } end function default_3_position_tumb(hint_,device_,command_,arg_,cycled_,inversed_, arg_value_, arg_limit_) local cycled = true local arg_limit = arg_limit_ or {-1,1} local arg_value = arg_value_ or 1 if inversed_ then arg_value = -arg_value end if cycled_ ~= nil then cycled = cycled_ end return { class = {class_type.TUMB,class_type.TUMB}, hint = hint_, device = device_, action = {command_,command_}, arg = {arg_,arg_}, arg_value = {-arg_value, arg_value}, arg_lim = {arg_limit,arg_limit}, updatable = true, use_OBB = true, cycle = cycled } end function default_axis(hint_,device_,command_,arg_, default_, gain_,updatable_,relative_,cycled_) local default = default_ or 1 local gain = gain_ or 0.1 local updatable = updatable_ or false local relative = relative_ or false return { class = {class_type.LEV}, hint = hint_, device = device_, action = {command_}, arg = {arg_}, arg_value = {default}, arg_lim = {{0,1}}, updatable = updatable, use_OBB = true, gain = {gain}, relative = {relative}, cycle = cycled_, sound = {{SOUND_SW10}} } end function default_movable_axis(hint_,device_,command_,arg_, default_, gain_,updatable_,relative_) local default = default_ or 1 local gain = gain_ or 0.1 local updatable = updatable_ or false local relative = relative_ or false return { class = {class_type.MOVABLE_LEV}, hint = hint_, device = device_, action = {command_}, arg = {arg_}, arg_value = {default}, arg_lim = {{0,1}}, updatable = updatable, use_OBB = true, gain = {gain}, relative = {relative}, } end function default_axis_limited(hint_,device_,command_,arg_, default_, gain_,updatable_,relative_, arg_lim_) local default = default_ or 0 local gain = gain_ or 0.1 local updatable = updatable_ or false local relative = false if relative_ ~= nil then relative = relative_ end return { class = {class_type.LEV}, hint = hint_, device = device_, action = {command_}, arg = {arg_}, arg_value = {default}, arg_lim = {arg_lim_}, updatable = updatable, use_OBB = false, gain = {gain}, relative = {relative}, cycle = false, sound = {{SOUND_SW10}} } end function multiposition_switch(hint_,device_,command_,arg_,count_,delta_,inversed_, min_) local min_ = min_ or 0 local delta_ = delta_ or 0.5 local inversed = 1 if inversed_ then inversed = -1 end return { class = {class_type.TUMB,class_type.TUMB}, hint = hint_, device = device_, action = {command_,command_}, arg = {arg_,arg_}, arg_value = {-delta_ * inversed,delta_ * inversed}, arg_lim = {{min_, min_ + delta_ * (count_ -1)}, {min_, min_ + delta_ * (count_ -1)}}, updatable = true, use_OBB = true, sound = {{SOUND_SW2}, {SOUND_SW2}} } end function multiposition_switch_limited(hint_,device_,command_,arg_,count_,delta_,inversed_,min_) local min_ = min_ or 0 local delta_ = delta_ or 0.5 local inversed = 1 if inversed_ then inversed = -1 end return { class = {class_type.TUMB,class_type.TUMB}, hint = hint_, device = device_, action = {command_,command_}, arg = {arg_,arg_}, arg_value = {-delta_ * inversed,delta_ * inversed}, arg_lim = {{min_, min_ + delta_ * (count_ -1)}, {min_, min_ + delta_ * (count_ -1)}}, updatable = true, use_OBB = true, cycle = false, sound = {{SOUND_SW2}, {SOUND_SW2}} } end function default_button_axis(hint_, device_,command_1, command_2, arg_1, arg_2, limit_1, limit_2) local limit_1_ = limit_1 or 1.0 local limit_2_ = limit_2 or 1.0 return { class = {class_type.BTN, class_type.LEV}, hint = hint_, device = device_, action = {command_1, command_2}, stop_action = {command_1, 0}, arg = {arg_1, arg_2}, arg_value = {1, 0.5}, arg_lim = {{0, limit_1_}, {0,limit_2_}}, gain = {0, 0.1}, relative = {false, false}, updatable = true, use_OBB = true, use_release_message = {true, false} } end function default_animated_lever(hint_, device_, command_, arg_, animation_speed_,arg_lim_) local arg_lim__ = arg_lim_ or {0.0,1.0} return { class = {class_type.TUMB, class_type.TUMB}, hint = hint_, device = device_, action = {command_, command_}, arg = {arg_, arg_}, arg_value = {1, 0}, arg_lim = {arg_lim__, arg_lim__}, updatable = true, gain = {0.1, 0.1}, animated = {true, true}, animation_speed = {animation_speed_, 0}, cycle = true, sound = {{SOUND_SW6_UP,SOUND_SW6_DOWN},{SOUND_SW6_UP,SOUND_SW6_DOWN}} } end function default_button_tumb(hint_, device_, command1_, command2_, arg_) return { class = {class_type.BTN,class_type.TUMB}, hint = hint_, device = device_, action = {command1_,command2_}, stop_action = {command1_,0}, arg = {arg_,arg_}, arg_value = {-1,1}, arg_lim = {{-1,0},{0,1}}, updatable = true, use_OBB = true, use_release_message = {true,false} } end function default_springloaded_tumb(hint_, device_, command1_, command2_, arg_) return { class = {class_type.BTN,class_type.TUMB}, hint = hint_, device = device_, action = {command1_,command2_}, stop_action = {command1_,command2_}, arg = {arg_,arg_}, arg_value = {-1,1}, arg_lim = {{-1,0},{0,1}}, updatable = true, use_OBB = true, use_release_message = {true,true} } end function springloaded_3_pos_tumb(hint_, device_, command1_, command2_, arg_, val1_, val2_, val3_) local val1 = val1_ or -1.0 local val2 = val2_ or 0.0 local val3 = val3_ or 1.0 return { class = {class_type.BTN,class_type.BTN}, hint = hint_, device = device_, action = {command1_,command2_}, stop_action = {command1_,command2_}, arg = {arg_,arg_}, arg_value = {val1,val3}, arg_lim = {{val1,val2},{val2,val3}}, updatable = true, use_OBB = true, use_release_message = {true,true}, sound = {{SOUND_SW1}, {SOUND_SW1}} } end function springloaded_3_pos_tumb_inverted(hint_, device_, command1_, command2_, arg_, val1_, val2_, val3_) local val1 = val1_ or -1.0 local val2 = val2_ or 0.0 local val3 = val3_ or 1.0 return { class = {class_type.BTN,class_type.BTN}, hint = hint_, device = device_, action = {command1_,command2_}, stop_action = {command1_,command2_}, arg = {arg_,arg_}, arg_value = {val3,val1}, arg_lim = {{val2,val3},{val1,val2}}, updatable = true, use_OBB = true, use_release_message = {true,true}, sound = {{SOUND_SW1}, {SOUND_SW1}} } end function radio_wheel(hint_,device_,command1_,command2_,arg_) return { class = {class_type.TUMB,class_type.TUMB}, hint = hint_, device = device_, action = {command1_ ,command2_}, arg = {arg_,arg_}, arg_value = { -0.1, 0.1}, arg_lim = {{0,0.9},{0,0.9}}, relative = {true,true}, animated = {true,true}, animation_speed = {0.5, 0.5} } end elements = {} ----------------------------------------------------------------------------------------------- -- Cockpit mechanics elements["pnt_221"] = default_animated_lever(_("Emergency Canopy Jettison - Pull to jettison"), devices.CPT_MECH, cptmech_commands.Mig15_Command_EmergencyCanopyJettisonHandle, 221, 5.0, {0.0, 1.0}) elements["pnt_223"] = { class = {class_type.TUMB}, hint = _("Left Canopy Lever, OPEN"), device = devices.CPT_MECH, action = {cptmech_commands.Mig15_Command_CanopyLeftHandle}, arg = {NULL, NULL}, arg_value = {-2, 2}, arg_lim = {{-1, 1}}, updatable = true, } elements["pnt_222"] = { class = {class_type.TUMB}, hint = _("Right Canopy Lever, OPEN"), device = devices.CPT_MECH, action = {cptmech_commands.Mig15_Command_CanopyRightHandle}, arg = {NULL, NULL}, arg_value = {-2, 2}, arg_lim = {{-1, 1}}, updatable = true, } elements["pnt_224"] = { class = {class_type.TUMB}, hint = _("Aft Canopy Lever, CLOSE"), device = devices.CPT_MECH, action = {cptmech_commands.Mig15_Command_CanopyAftHandle}, arg = {NULL, NULL}, arg_value = {-2, 2}, arg_lim = {{-1, 1}}, updatable = true, } -- Control system elements["pnt_114"] = springloaded_3_pos_tumb_inverted(_("Elevator Trimmer Switch, PULL(CLIMB)/OFF/PUSH(DESCEND)"), devices.CONTROL_INTERFACE, control_commands.Mig15_Command_TrimElevator, control_commands.Mig15_Command_TrimElevator, 114) elements["pnt_114"].sound = {{SOUND_SW11_ON}, {SOUND_SW11_OFF}, {SOUND_SW11_ON}} elements["pnt_142"] = springloaded_3_pos_tumb(_("Aileron Trimmer Switch, LEFT/OFF/RIGHT"), devices.CONTROL_INTERFACE, control_commands.Mig15_Command_TrimAileron, control_commands.Mig15_Command_TrimAileron, 142) elements["pnt_207"] = default_animated_lever(_("Wing Flaps Handle, RETRACT/NEUTRAL/20 degrees/55 degrees"), devices.CONTROL_INTERFACE, control_commands.Mig15_Command_FlapsHandle, 207, 5.0, {-1.0, 0.5}) elements["pnt_207"].arg_value = {-0.5, 0.5} elements["pnt_207"].cycle = false elements["pnt_125"] = default_2_position_tumb(_("Airbrake Switch, CLOSE/OPEN"), devices.CONTROL_INTERFACE, control_commands.Mig15_Command_AirBrakeSwitch, 125) elements["pnt_203"] = default_animated_lever(_("Hydro Booster Lever, ON/OFF"), devices.CONTROL_INTERFACE, control_commands.Mig15_Command_HydroGainLever, 203, 5.0, {0.0, 1.0}) elements["pnt_203"].sound = {{SOUND_SW5},{SOUND_SW5}} elements["pnt_204"] = default_movable_axis(_("Throttle Friction Lever"), devices.CONTROL_INTERFACE, control_commands.Mig15_Command_FrictionLever, 204, 0.0, 0.2, true, false) elements["pnt_198"] = default_button(_("Airbrake Button, Hold to extend"),devices.CONTROL_INTERFACE, control_commands.Mig15_Command_AirBrakeButton, 198) -- Airbrake elements["pnt_198"].sound = {{SOUND_SW8_OFF,SOUND_SW8_ON},{SOUND_SW8_OFF,SOUND_SW8_ON}} elements["pnt_198"].updatable = true -- Electric system elements["pnt_084"] = default_button(_("Ampere- & Voltmeter - Push to view Volts"), devices.ELEC_INTERFACE, electric_commands.Mig15_Command_VoltmeterBtn, 84) elements["pnt_084"].sound = {{SOUND_SW4_OFF,SOUND_SW4_ON},{SOUND_SW4_OFF,SOUND_SW4_ON}} elements["pnt_149"] = default_2_position_tumb(_("Air Start Switch, ON/OFF"), devices.ELEC_INTERFACE, electric_commands.Mig15_Command_AirEngineStartSw, 149) elements["pnt_081"] = default_2_position_tumb(_("Pitot and Clock Heater Switch, ON/OFF"), devices.ELEC_INTERFACE, electric_commands.Mig15_Command_Heating, 81) elements["pnt_200"] = default_button(_("Engine Start Button - Push to start"), devices.ELEC_INTERFACE, electric_commands.Mig15_Command_EngineStartBtn, 200) elements["pnt_200"].updatable = true elements["pnt_200"].sound = {{SOUND_SW8_OFF,SOUND_SW8_ON},{SOUND_SW8_OFF,SOUND_SW8_ON}} elements["pnt_214"] = default_2_position_tumb(_("Engine Start Button Cover, Cover/Uncover"), devices.ELEC_INTERFACE, electric_commands.Mig15_Command_EngineStartBtnCover, 214) elements["pnt_214"].updatable = true elements["pnt_214"].sound = {{SOUND_SW3_CLOSE, SOUND_SW3_OPEN},{SOUND_SW3_CLOSE, SOUND_SW3_OPEN}} -- Circuit Breakers elements["pnt_117"] = default_2_position_tumb(_("Transfer Pump Switch, ON/OFF"), devices.ELEC_INTERFACE, electric_commands.Mig15_Command_CB_TransferPump, 117) elements["pnt_115"] = default_2_position_tumb(_("Booster Pump Switch, ON/OFF"), devices.ELEC_INTERFACE, electric_commands.Mig15_Command_CB_BoosterPump, 115) elements["pnt_120"] = default_2_position_tumb(_("Ignition Switch, ON/OFF"), devices.ELEC_INTERFACE, electric_commands.Mig15_Command_CB_Ignition, 120) elements["pnt_116"] = default_2_position_tumb(_("Instruments and Lights Switch, ON/OFF"), devices.ELEC_INTERFACE, electric_commands.Mig15_Command_CB_LightsAndInstruments, 116) -- Right Panel elements["pnt_152"] = default_2_position_tumb(_("Accumulator Switch, ON/OFF"), devices.ELEC_INTERFACE, electric_commands.Mig15_Command_BatterySw, 152) elements["pnt_153"] = default_2_position_tumb(_("Generator Switch, ON/OFF"), devices.ELEC_INTERFACE, electric_commands.Mig15_Command_GeneratorSw, 153) elements["pnt_151"] = default_2_position_tumb(_("Nose Light Master Switch, ON/OFF"), devices.ELEC_INTERFACE, electric_commands.Mig15_Command_CB_NoseLight, 151) elements["pnt_154"] = default_2_position_tumb(_("Trim Master Switch, ON/OFF"), devices.ELEC_INTERFACE, electric_commands.Mig15_Command_CB_Trimmer, 154) elements["pnt_155"] = default_2_position_tumb(_("AGK-47B Artificial Horizon + DGMK-3 Switch, ON/OFF"), devices.ELEC_INTERFACE, electric_commands.Mig15_Command_AGK_DGMK, 155) elements["pnt_158"] = default_2_position_tumb(_("Radio Switch, ON/OFF"), devices.ELEC_INTERFACE, electric_commands.Mig15_Command_CB_Radio, 158) elements["pnt_157"] = default_2_position_tumb(_("Bombs Switch, ON/OFF"), devices.ELEC_INTERFACE, electric_commands.Mig15_Command_Bomb, 157) elements["pnt_156"] = default_2_position_tumb(_("Emergency Drop Switch, ON/OFF"), devices.ELEC_INTERFACE, electric_commands.Mig15_Command_CB_EmergencyDrop, 156) elements["pnt_159"] = default_2_position_tumb(_("ARC Switch, ON/OFF"), devices.ELEC_INTERFACE, electric_commands.Mig15_Command_CB_ARC, 159) elements["pnt_160"] = default_2_position_tumb(_("RV-2 Radio Altimeter Switch, ON/OFF"), devices.ELEC_INTERFACE, electric_commands.Mig15_Command_CB_RV2, 160) elements["pnt_161"] = default_2_position_tumb(_("NR-23 Cannon Switch, ON/OFF"), devices.ELEC_INTERFACE, electric_commands.Mig15_Command_NR23, 161) elements["pnt_162"] = default_2_position_tumb(_("N-37D Cannon Switch, ON/OFF"), devices.ELEC_INTERFACE, electric_commands.Mig15_Command_N37D, 162) elements["pnt_163"] = default_2_position_tumb(_("ASP-3N Gunsight Switch, ON/OFF"), devices.ELEC_INTERFACE, electric_commands.Mig15_Command_CB_ASP3N, 163) elements["pnt_164"] = default_2_position_tumb(_("S-13 Gun Camera Switch, ON/OFF"), devices.ELEC_INTERFACE, electric_commands.Mig15_Command_CB_PhotoGun, 164) -- HydroSystem elements["pnt_171"] = default_axis(_("Emergency Flaps Valve"), devices.HYDROSYS_INTERFACE, hydraulic_commands.Mig15_Command_EmergencyFlapsValve, 171, 1.0, 0.05, true, false, false) elements["pnt_167"] = default_axis(_("Emergency Gears Valve"), devices.HYDROSYS_INTERFACE, hydraulic_commands.Mig15_Command_EmergencyGearsValve, 167, 1.0, 0.05, true, false, false) elements["pnt_170"] = default_2_position_tumb(_("Emergency Flaps Valve Cover, OPEN/CLOSE"), devices.HYDROSYS_INTERFACE, hydraulic_commands.Mig15_Command_EmergencyFlapsValveCover, 170) elements["pnt_170"].sound = {{SOUND_SW3_CLOSE,SOUND_SW3_OPEN},{SOUND_SW3_CLOSE,SOUND_SW3_OPEN}} elements["pnt_166"] = default_2_position_tumb(_("Emergency Gears Valve Cover, OPEN/CLOSE"), devices.HYDROSYS_INTERFACE, hydraulic_commands.Mig15_Command_EmergencyGearsValveCover, 166) elements["pnt_166"].sound = {{SOUND_SW3_CLOSE,SOUND_SW3_OPEN},{SOUND_SW3_CLOSE,SOUND_SW3_OPEN}} elements["pnt_186"] = default_axis(_("Emergency System Filling Valve"), devices.HYDROSYS_INTERFACE, hydraulic_commands.Mig15_Command_EmergencySystemFilling, 186, 1.0, 0.05, true, false, false) elements["pnt_242"] = default_axis(_("Air Net Valve"), devices.HYDROSYS_INTERFACE, hydraulic_commands.Mig15_Command_AirNetValve, 242, 1.0, 0.05, true, false, false) elements["pnt_241"] = default_axis(_("Cockpit Filling Valve"), devices.HYDROSYS_INTERFACE, hydraulic_commands.Mig15_Command_CockpitFillingValve, 241, 1.0, 0.05, true, false, false) -- Gear System elements["pnt_071"] = { class = {class_type.TUMB, class_type.TUMB}, hint = _("Landing Gear Handle, UP/DOWN"), device = devices.GEAR_INTERFACE, action = {gear_commands.Mig15_Command_LandingGearHandle, gear_commands.Mig15_Command_LandingGearHandle}, arg = {71, 71}, arg_value = {-0.5, 0.5}, arg_lim = {{0, 1}, {0, 1}}, updatable = true, gain = {0.1, 0.1}, animated = {true, true}, animation_speed = {2.0, 2.0}, cycle = false, sound = {{SOUND_SW9_UP,SOUND_SW9_DOWN},{SOUND_SW9_UP,SOUND_SW9_DOWN}} } elements["pnt_072"] = default_button(_("Gear Lamps Test Button - Push to test"), devices.GEAR_INTERFACE, gear_commands.Mig15_Command_LampsTestButton, 72) elements["pnt_072"].sound = {{SOUND_SW4_OFF,SOUND_SW4_ON},{SOUND_SW4_OFF,SOUND_SW4_ON}} elements["pnt_210"] = default_button(_("Right Emergency Gear Release Handle - Pull to release"), devices.GEAR_INTERFACE, gear_commands.Mig15_Command_RightEmergencyGearReleaseHandle, 210) elements["pnt_210"].updatable = true elements["pnt_210"].animated = {true} elements["pnt_210"].animation_speed = {2.0} elements["pnt_210"].sound = {{SOUND_SW12_ON,SOUND_SW12_OFF}} elements["pnt_209"] = default_button(_("Left Emergency Gear Release Handle - Pull to release"), devices.GEAR_INTERFACE, gear_commands.Mig15_Command_LeftEmergencyGearReleaseHandle, 209) elements["pnt_209"].updatable = true elements["pnt_209"].animated = {true} elements["pnt_209"].animation_speed = {2.0} elements["pnt_209"].sound = {{SOUND_SW12_ON,SOUND_SW12_OFF}} elements["pnt_085"] = default_2_position_tumb(_("Landing Gear Handle Lock, Lock/Unlock"), devices.GEAR_INTERFACE, gear_commands.Mig15_Command_LandingGearHandleCover, 85) elements["pnt_085"].sound = {{SOUND_SW11_ON}, {SOUND_SW11_OFF}, {SOUND_SW11_ON}} -- Fuel System elements["pnt_082"] = default_2_position_tumb(_("Drop Tank Signal Switch, ON/OFF"), devices.FUELSYS_INTERFACE, fuel_commands.Mig15_Command_DropTanksSignal, 82) -- Oxygen System elements["pnt_141"] = default_axis(_("Oxygen Supply Valve"), devices.OXYGEN_INTERFACE, oxygen_commands.Mig15_Command_OxygenSupplyValve, 141, 0.0, 0.1, false, false, false) elements["pnt_143"] = default_axis(_("Air Diluter Valve"), devices.OXYGEN_INTERFACE, oxygen_commands.Mig15_Command_AirValve, 143, 0.0, -0.1, false, false, false) elements["pnt_243"] = default_axis(_("Oxygen Emergency Valve"), devices.OXYGEN_INTERFACE, oxygen_commands.Mig15_Command_OxygenEmergencyValve, 243, 0.0, 0.1, false, false, false) -- Conditioning and Heating System elements["pnt_187"] = default_axis(_("Cockpit Air Valve"), devices.AIR_INTERFACE, air_commands.Mig15_Command_CockpitAirValve, 187, 0.0, 0.1, false, false, false) elements["pnt_086"] = default_axis(_("Ventilation Valve"), devices.AIR_INTERFACE, air_commands.Mig15_Command_VentilationValve, 086, 0.0, -1.0, true, false, false) -- Internal Lights System elements["pnt_184"] = default_axis_limited(_("Left UV Light Rheostat"), devices.LIGHT_SYSTEM, lights_command.Mig15_Command_LeftUVLight_Control, 184, 0.0, 0.1, false, false, {0.23, 0.82}) elements["pnt_185"] = default_axis_limited(_("Right UV Light Rheostat"), devices.LIGHT_SYSTEM, lights_command.Mig15_Command_RightUVLight_Control, 185, 0.0, 0.1, false, false, {0.23, 0.82}) elements["pnt_220"] = default_axis_limited(_("Panels Light Rheostat"), devices.LIGHT_SYSTEM, lights_command.Mig15_Command_PanelLight_Control, 220, 0.0, 0.1, false, false, {0.1, 0.9}) -- Nav Lights System elements["pnt_111"] = default_2_position_tumb(_("External Lights Switch, ON/OFF"), devices.NAVLIGHT_SYSTEM, navlights_commands.Mig15_Command_PositionLights, 111) elements["pnt_080"] = default_2_position_tumb(_("Nose Light Switch, ON/OFF"), devices.NAVLIGHT_SYSTEM, navlights_commands.Mig15_Command_NoseLight, 80) -- Power Plant elements["pnt_208"] = default_axis_limited(_("Engine Stop Lever, CLOSE/OPEN"), devices.ENGINE_INTERFACE, engine_commands.Mig15_Command_EngineStop, 208, -1.0, 0.3, true, false, {0.0, 1.0}) elements["pnt_208"].sound = {{SOUND_SW_NULL},{SOUND_SW_NULL}} elements["pnt_118"] = default_2_position_tumb(_("Isolating Valve Switch, ON/OFF"), devices.ENGINE_INTERFACE, engine_commands.Mig15_Command_IsolatingValve, 118) -- Fire Extinguisher System elements["pnt_136"] = default_red_cover(_("Engine Fire Extinguisher Button Cover, OPEN/CLOSE"), devices.FIRE_EXTING_INTERFACE, fireExting_commands.Mig15_Command_FireExtinguishBtnCover, 136) elements["pnt_137"] = default_button(_("Engine Fire Extinguisher Button - Push to extinguish"), devices.FIRE_EXTING_INTERFACE, fireExting_commands.Mig15_Command_FireExtinguishBtn, 137) elements["pnt_137"].sound = {{SOUND_SW8_OFF,SOUND_SW8_ON},{SOUND_SW8_OFF,SOUND_SW8_ON}} elements["pnt_138"] = default_button(_("Engine Fire Warning Light Test Button - Push to test"), devices.FIRE_EXTING_INTERFACE, fireExting_commands.Mig15_Command_FireDetectionTestBtn, 138) elements["pnt_138"].sound = {{SOUND_SW4_OFF,SOUND_SW4_ON},{SOUND_SW4_OFF,SOUND_SW4_ON}} -- Signal Flares elements["pnt_129"] = default_2_position_tumb(_("Signal Flare Switch, ON/OFF"), devices.SIGNAL_FLARE_DISPENSER, signalflare_commands.Mig15_Command_SignalFlare_switch, 129) elements["pnt_130"] = default_2_position_tumb_flare(_("Signal Flare Yellow Button - Push to launch"), devices.SIGNAL_FLARE_DISPENSER, signalflare_commands.Mig15_Command_SignalFlare_drop_YELLOW, 130) elements["pnt_131"] = default_2_position_tumb_flare(_("Signal Flare Green Button - Push to launch"), devices.SIGNAL_FLARE_DISPENSER, signalflare_commands.Mig15_Command_SignalFlare_drop_GREEN, 131) elements["pnt_132"] = default_2_position_tumb_flare(_("Signal Flare Red Button - Push to launch"), devices.SIGNAL_FLARE_DISPENSER, signalflare_commands.Mig15_Command_SignalFlare_drop_RED, 132) elements["pnt_133"] = default_2_position_tumb_flare(_("Signal Flare White Button - Push to launch"), devices.SIGNAL_FLARE_DISPENSER, signalflare_commands.Mig15_Command_SignalFlare_drop_WHITE, 133) -- Devices -- AGK-47B elements["pnt_012"] = default_2_position_tumb(_("AGK-47B Artificial Horizon Cage - Pull to cage"),devices.AGK47B, device_commands.Button_2, 12) elements["pnt_012"].sound = {{SOUND_SW4_OFF,SOUND_SW4_ON},{SOUND_SW4_OFF,SOUND_SW4_ON}} elements["pnt_013"] = default_axis(_("AGK-47B Artificial Horizon Zero Pitch Trim Knob"), devices.AGK47B, device_commands.Button_3, 13, 0.0, 0.1,false,true, false) --VD-15 elements["pnt_030"] = default_axis(_("Barometric Pressure QFE Knob"),devices.BAR_ALTIMETER, device_commands.Button_1, 30, 1, 0.6, false, true, false) --PRV-46 elements["pnt_036"] = default_2_position_tumb(_("PRV-46 Radar Altimeter Indicator Range Switch, 120m/1200m AGL"),devices.RADAR_ALTIMETER, device_commands.Button_4, 36) elements["pnt_037"] = default_animated_lever(_("PRV-46 Radar Altimeter Indicator Power Switch, ON/OFF"), devices.RADAR_ALTIMETER, device_commands.Button_3, 37, 2.0, {0, 0.25}) elements["pnt_037"].arg_value = {0.25, 0} elements["pnt_037"].sound = {{SOUND_SW13,SOUND_SW13},{SOUND_SW13,SOUND_SW13}} --PDK-45 elements["pnt_034"] = default_axis(_("Heading Knob"),devices.REMOTE_COMPASS, device_commands.Button_1, 34, 1.0, 0.1, false, true, true) elements["pnt_061"] = default_button(_("Fast Slave Button"),devices.REMOTE_COMPASS, device_commands.Button_3, 61) elements["pnt_061"].sound = {{SOUND_SW8_OFF,SOUND_SW8_ON},{SOUND_SW8_OFF,SOUND_SW8_ON}} -------------------------------------------------------------------------------- -- CLOCK elements["pnt_023"] = { class = {class_type.BTN, class_type.BTN, class_type.LEV}, hint = _("AChS-1 Cockpit Chronograph Left Knob"), device = devices.CLOCK, action = {device_commands.Button_1, device_commands.Button_2, device_commands.Button_3}, stop_action = {device_commands.Button_1, device_commands.Button_2, 0}, is_repeatable = {}, arg = {23, 23, 24}, arg_value = {1.0, -1.0, 0.04}, arg_lim = {{0, 1}, {-1, 0}, {0, 1}}, relative = {false,false,true}, gain = {1.0, 1.0, 0.6}, animated = {false, false, true}, animation_speed = {1.0, 1.0, 0.5}, use_release_message = {true, true, false}, use_OBB = true, sound = {{SOUND_SW14_OFF,SOUND_SW14_ON},{SOUND_SW14_OFF,SOUND_SW14_ON}, {SOUND_SW15}} } elements["pnt_025"] = { class = {class_type.BTN, class_type.LEV}, hint = _("AChS-1 Cockpit Chronograph Right Knob"), device = devices.CLOCK, action = {device_commands.Button_4, device_commands.Button_5}, stop_action = {device_commands.Button_4, 0}, is_repeatable = {}, arg = {25, 26}, arg_value = {1.0, 0.05}, arg_lim = {{0, 1}, {-0.15, 0.15}}, gain = {1.0, 1.2}, use_release_message = {true, false}, use_OBB = true, sound = {{SOUND_SW14_OFF,SOUND_SW14_ON},{SOUND_SW13}} } --Weapon System elements["pnt_092"] = default_button(_("N-37D Cannon Reload Button - Press and hold to reload"),devices.WEAPON_SYSTEM, device_commands.Button_5, 92) elements["pnt_092"].sound = {{SOUND_SW8_OFF,SOUND_SW8_ON},{SOUND_SW8_OFF,SOUND_SW8_ON}} elements["pnt_090"] = default_button(_("NR-23 (Top) Cannon Reload Button - Press and hold to reload"),devices.WEAPON_SYSTEM, device_commands.Button_6, 90) elements["pnt_090"].sound = {{SOUND_SW8_OFF,SOUND_SW8_ON},{SOUND_SW8_OFF,SOUND_SW8_ON}} elements["pnt_091"] = default_button(_("NR-23 (Bottom) Cannon Reload Button - Press and hold to reload"),devices.WEAPON_SYSTEM, device_commands.Button_7, 91) elements["pnt_091"].sound = {{SOUND_SW8_OFF,SOUND_SW8_ON},{SOUND_SW8_OFF,SOUND_SW8_ON}} elements["pnt_096"] = default_2_position_tumb(_("Tactical Release Switch, ON/OFF"),devices.WEAPON_SYSTEM, device_commands.Button_8, 96) elements["pnt_097"] = default_button(_("Emergency Release Button - Push to release"),devices.WEAPON_SYSTEM, device_commands.Button_4, 97) elements["pnt_097"].sound = {{SOUND_SW4_OFF,SOUND_SW4_ON},{SOUND_SW4_OFF,SOUND_SW4_ON}} elements["pnt_104"] = default_2_position_tumb(_("Emergency Release Button Cover, OPEN/CLOSE"),devices.WEAPON_SYSTEM, device_commands.Button_9, 104) elements["pnt_104"].sound = {{SOUND_SW3_CLOSE,SOUND_SW3_OPEN},{SOUND_SW3_CLOSE,SOUND_SW3_OPEN}} -- Stick buttons elements["pnt_193"] = default_button(_("N-37D Cannon Fire Button - Push to fire"),devices.WEAPON_SYSTEM, device_commands.Button_1, 193) -- N-37 elements["pnt_193"].sound = {{SOUND_SW8_OFF,SOUND_SW8_ON},{SOUND_SW8_OFF,SOUND_SW8_ON}} elements["pnt_193"].updatable = true --elements["pnt_194"] = default_button(_("NR-23 Cannon Fire Button - Push to fire"),devices.WEAPON_SYSTEM, device_commands.Button_2, 194) -- NR-23 --elements["pnt_194"].updatable = true elements["pnt_195"] = default_button(_("Weapon Release Button - Push to release"),devices.WEAPON_SYSTEM, device_commands.Button_3, 195) -- Tactical Bombs elements["pnt_195"].sound = {{SOUND_SW8_OFF,SOUND_SW8_ON},{SOUND_SW8_OFF,SOUND_SW8_ON}} elements["pnt_195"].updatable = true elements["pnt_196"] = default_2_position_tumb(_("Guns Safety Cover, OPEN/CLOSE"),devices.WEAPON_SYSTEM, device_commands.Button_10, 196) -- Cover elements["pnt_196"].sound = {{SOUND_SW3_CLOSE,SOUND_SW3_OPEN},{SOUND_SW3_CLOSE,SOUND_SW3_OPEN}} --ASP-3N Gunsight elements["pnt_101"] = default_2_position_tumb(_("ASP-3N Gunsight Mode, GYRO/FIXED"),devices.ASP_3N, device_commands.Button_3, 101) elements["pnt_101"].sound = {{SOUND_SW11_OFF,SOUND_SW11_ON},{SOUND_SW11_OFF,SOUND_SW11_ON}} elements["pnt_106"] = default_animated_lever(_("ASP-3N Gunsight Fixed Reticle Mask Lever, SET UP/REMOVE"),devices.ASP_3N, device_commands.Button_11, 106, 5.0, {0, 0.95}) elements["pnt_106"].arg_value = {0.95, 0} elements["pnt_106"].sound = {{SOUND_SW11_ON}, {SOUND_SW11_OFF}, {SOUND_SW11_ON}} elements["pnt_103"] = default_axis(_("ASP-3N Gunsight Target Wingspan Adjustment Dial (meters)"), devices.ASP_3N, device_commands.Button_1, 103, 0.0, -0.1, false, false, false) elements["pnt_102"] = default_axis(_("ASP-3N Gunsight Brightness Knob"), devices.ASP_3N, device_commands.Button_4, 102, 0.0, -0.2, false, false, false) elements["pnt_201"] = default_axis(_("ASP-3N Gunsight Target Distance Knob"),devices.ASP_3N, device_commands.Button_2,201, 0.0, 0.1, true, false, false) elements["pnt_105"] = default_animated_lever(_("ASP-3N Gunsight Color Filter, ON/OFF"), devices.ASP_3N, device_commands.Button_12, 105, 2.0) elements["pnt_105"].sound = {{SOUND_SW3_CLOSE,SOUND_SW3_OPEN},{SOUND_SW3_CLOSE,SOUND_SW3_OPEN}} -- ARC-5 radio compass elements["pnt_180"] = default_axis_limited(_("ARC-5 Audio Volume Knob"), devices.ARC_5, ARC_5_commands.CMD_ARC_5_VOLUME, 180, 0.8, 0.5, false, false, {0.1, 0.9}) elements["pnt_177"] = multiposition_switch_limited(_("ARC-5 Frequency Band Switch"), devices.ARC_5, ARC_5_commands.CMD_ARC_5_BAND, 177, 3, 0.1) elements["pnt_174"] = multiposition_switch_limited(_("ARC-5 Function Selector Switch, OFF/COMP/ANT./LOOP"), devices.ARC_5, ARC_5_commands.CMD_ARC_5_MODE, 174, 4, 0.1) elements["pnt_178"] = springloaded_3_pos_tumb(_("ARC-5 LOOP L-R Switch"), devices.ARC_5, ARC_5_commands.CMD_ARC_5_LOOP_L_R, ARC_5_commands.CMD_ARC_5_LOOP_L_R, 178, -1.0, 0.0, 1.0) elements["pnt_175"] = default_axis(_("ARC-5 Tuning Crank"), devices.ARC_5, ARC_5_commands.CMD_ARC_5_TUNE_FREQUENCY, null, 0.3, 0.01, false, true) elements["pnt_181"] = default_axis_limited(_("ARC-5 Scale Light Knob"), devices.ARC_5, ARC_5_commands.CMD_ARC_5_LIGHT, 181, 0.8, 0.5, false, false, {0.1, 0.9}) elements["pnt_173"] = default_2_position_tumb(_("ARC-5 TLG-TLF Switch, TLG/TLF"), devices.ARC_5, ARC_5_commands.CMD_ARC_5_TLF_TLG, 173) elements["pnt_182"] = default_button(_("ARC-5 Take Control Button - Push to take control"), devices.ARC_5, ARC_5_commands.CMD_ARC_5_CONTROL, 182) elements["pnt_123"] = default_2_position_tumb(_("ARC-5 Near/Far NDB Switch, NEAR/FAR"), devices.ARC_5, ARC_5_commands.CMD_ARC_5_NearOrFar, 123) elements["pnt_146"] = default_2_position_tumb(_("ARC-5 NDB 1 Switch, ON/OFF"), devices.ARC_5, ARC_5_commands.CMD_ARC_5_Near1, 146) elements["pnt_147"] = default_2_position_tumb(_("ARC-5 NDB 2 Switch, ON/OFF"), devices.ARC_5, ARC_5_commands.CMD_ARC_5_Near2, 147) elements["pnt_148"] = default_2_position_tumb(_("ARC-5 NDB 3 Switch, ON/OFF"), devices.ARC_5, ARC_5_commands.CMD_ARC_5_Near3, 148) -- RSI-6K radio elements["pnt_126"] = default_axis_limited(_("RSI-6K Audio Volume Knob"), devices.RSI_6K, RSI_6K_commands.Mig15_Command_RSI6K_Volume, 126, 0.8, 0.2, false, false, {0.1, 0.9}) elements["pnt_232"] = default_axis_limited(_("RSI-6K Wave Control Handle"), devices.RSI_6K, RSI_6K_commands.Mig15_Command_RSI6K_SetTransmitterFrequency, 232, 0.8, 0.03, true, false, {0.0, 1.0}) elements["pnt_230"] = default_axis_limited(_("RSI-6K Antenna Control Handle"), devices.RSI_6K, RSI_6K_commands.Mig15_Command_RSI6K_SetAntennaFrequency, 230, 0.8, 0.03, true, false, {0.0, 1.0}) elements["pnt_233"] = default_animated_lever(_("RSI-6K Wave Control Handle Lock/Unlock"), devices.RSI_6K, RSI_6K_commands.Mig15_Command_RSI6K_TransmitterFrequencyFix, 233, 2, {0, 0.75}) elements["pnt_233"].arg_value = {0.75, 0} elements["pnt_233"].sound = {{SOUND_SW10}} elements["pnt_231"] = default_animated_lever(_("RSI-6K Antenna Control Handle Lock/Unlock"), devices.RSI_6K, RSI_6K_commands.Mig15_Command_RSI6K_AntennaFrequencyFix, 231, 2, {0, 0.75}) elements["pnt_231"].arg_value = {0.75, 0} elements["pnt_231"].sound = {{SOUND_SW10}} elements["pnt_128"] = default_axis(_("RSI-6K Receiver Tuning Knob"), devices.RSI_6K, RSI_6K_commands.Mig15_Command_RSI6K_SetReceiverFrequency, null, 0.3, 0.01, false, true) elements["pnt_128"].sound = {{SOUND_SW10}} elements["pnt_140"] = default_2_position_tumb(_("RSI-6K Receive/ARC Switch, RECEIVE/ARC"), devices.RSI_6K, RSI_6K_commands.Mig15_Command_RSI6K_ReceiveARC, 140) elements["pnt_240"] = default_2_position_tumb(_("RSI-6K Forced Mode Switch, ON/OFF"), devices.RSI_6K, RSI_6K_commands.Mig15_Command_RSI6K_Forced, 240) elements["pnt_202"] = default_button(_("Microphone Button - Push to talk"), devices.RSI_6K, RSI_6K_commands.Mig15_Command_RSI6K_MicBtn, 202) elements["pnt_202"].updatable = true