//returns the analog value associated with the analog inputs public float GetAnalogValue(JoyAnalog ja) { switch(ja){ case JoyAnalog.DPadHorizontal: return GetDPadHoriz(); case JoyAnalog.DPadVertical: return GetDPadVert(); case JoyAnalog.LeftStickHorizontal: return GetLeftStickHoriz(); case JoyAnalog.LeftStickVertical: return GetLeftStickVert(); case JoyAnalog.RightStickHorizontal: return GetRightStickHoriz(); case JoyAnalog.RightStickVertical: return GetRightStickVert(); case JoyAnalog.LeftTrigger: return GetLeftTrigger(); case JoyAnalog.RightTrigger: return GetRightTrigger(); } return 0.0f; }
public string GetButtonName(JoyAnalog j) { string name = _buttons.GetButtonName((int)j); return (name == "")? j.ToString() : name; }
bool RemoveKey(Hashtable cfg, JoyAnalog ja, int jplayer, KeyConfig except) { ArrayList al = null; if( FindKey(cfg, ja, jplayer, out al) ){ foreach(KeyConfig e in al){ if( e == except ) continue; e.JoystickAxis = JoyAnalog.None; } } return al.Count >= 1 && !(al.Count == 1 && al.Contains(except)); }
bool HasKey(KeyConfig config, JoyAnalog ja, int jplayer) { if( config == null ) return false; return config.JoystickAxis == ja && config._joyAxisPlayer == jplayer; }
string GetControllerKeyName(JoyAnalog ja, int jplayer) { ControllerManager.JoyInterface ji = CMRef.GetController(jplayer); if(ji != null) { return "P" + jplayer + " " + ji.GetButtonName(ja); } else { return "P" + jplayer + " " + ja.ToString(); } }
bool FindKey(Hashtable cfg, JoyAnalog ja, int jplayer, out ArrayList keyConfigList) { bool found = false; keyConfigList = new ArrayList(); foreach(IDictionaryEnumerator d in cfg){ KeyConfig config = d.Value as KeyConfig; if( HasKey(config, ja, jplayer) ) keyConfigList.Add(config); } return found; }
//edit the current config if a analog joystick input was changed bool EditKey( KeyConfig config, EditStates es, JoyAnalog ja, int jplayer) { if( !( (es == EditStates.PosKey && !config.isAxis) || (es == EditStates.NegKey && config.isAxis) ) || !config.isAxis ) return false; config._joyAxisPlayer = jplayer; config.JoystickAxis = ja; if(config._biDirLink != null){ KeyConfig HorizConfig; KeyConfig VertConfig; if( config.Direction == BiDir.Horizontal ){ HorizConfig = config; VertConfig = config._biDirLink; }else{ VertConfig = config; HorizConfig = config._biDirLink; } // SET switch(ja){ case JoyAnalog.DPadHorizontal: case JoyAnalog.DPadVertical: ClearKeys(HorizConfig, true); ClearKeys(VertConfig, true); HorizConfig._joyAxisPlayer = jplayer; HorizConfig.JoystickAxis = JoyAnalog.DPadHorizontal; VertConfig._joyAxisPlayer = jplayer; VertConfig.JoystickAxis = JoyAnalog.DPadVertical; break; case JoyAnalog.LeftStickHorizontal: case JoyAnalog.LeftStickVertical: ClearKeys(HorizConfig, true); ClearKeys(VertConfig, true); HorizConfig._joyAxisPlayer = jplayer; HorizConfig.JoystickAxis = JoyAnalog.LeftStickHorizontal; VertConfig._joyAxisPlayer = jplayer; VertConfig.JoystickAxis = JoyAnalog.LeftStickVertical; break; case JoyAnalog.RightStickHorizontal: case JoyAnalog.RightStickVertical: ClearKeys(HorizConfig, true); ClearKeys(VertConfig, true); HorizConfig._joyAxisPlayer = jplayer; HorizConfig.JoystickAxis = JoyAnalog.RightStickHorizontal; VertConfig._joyAxisPlayer = jplayer; VertConfig.JoystickAxis = JoyAnalog.RightStickVertical; break; default: return false; } } else { // SET ClearKeys(config, true); config._joyAxisPlayer = jplayer; config.JoystickAxis = ja; } return true; }