public Gamepad(IntPtr pmJoystick) { pName= "Unknown Gamepad"; pJoystick= pmJoystick; if(Sdl.SDL_JoystickIsHaptic(pJoystick)== 1) pHaptic= Sdl.SDL_HapticOpenFromJoystick(pJoystick); else pHaptic= IntPtr.Zero; bRumble= (Sdl.SDL_HapticRumbleSupported(pHaptic)== Sdl.SDL_TRUE); if(bRumble) bRumble= (Sdl.SDL_HapticRumbleInit(pHaptic)== 0); if(bRumble) Console.WriteLine("HAPTIC_RUMBLE SUPPORTED"); buttons= new FList<GamepadButton>(); dpads= new FList<GamepadDpad>(); sticks= new FList<GamepadStick>(); buttonsHeld= GBL.NONE; for(int i= 0; i< Sdl.SDL_JoystickNumButtons(pJoystick); i++) buttons.add(new GamepadButton(pJoystick, i)); for(int i= 0; i< Sdl.SDL_JoystickNumHats(pJoystick); i++) dpads.add(new GamepadDpad(pJoystick, i)); for(int i= 0; i< (int)(Sdl.SDL_JoystickNumAxes(joystick)/2f); i++) { if(mapStick(Sdl.SDL_JoystickGetAxis(joystick, i*2))== -1) { triggers.add(new GamepadTrigger(joystick, i*2)); triggers.add(new GamepadTrigger(joystick, (i*2)+1)); } else sticks.add(new GamepadStick(pJoystick, i*2, (i*2)+1)); } }
public GamepadTrigger(IntPtr pmJoystick, int pmIndex) { joystick= pmJoystick; index= pmIndex; pValue= 0f; pDeadZone= 0.24f; pKeyRep= GBL.NONE; }
public GamepadButton(IntPtr pmJoystick, int buttonId) { pJoystick= pmJoystick; buttonID= buttonId; pName= "Button "+buttonId; pKeyRep= GBL.NONE; pHeld= false; }
// Gets if the given button is held down public bool isButtonDown(GBL button) { if(gamepad== null) return false; if(button== GBL.ANY) return ((button&buttons)!= 0); return ((button&buttons)== button); }
public GamepadStick(IntPtr pmJoystick, int pmAxisIdX, int pmAxisIdY) { joystick= pmJoystick; axisIdX= pmAxisIdX; axisIdY= pmAxisIdY; pDeadZone= 0.24f; pX= 0f; pY= 0f; pUpKeyRep= GBL.NONE; pRightKeyRep= GBL.NONE; pDownKeyRep= GBL.NONE; pLeftKeyRep= GBL.NONE; }
public GamepadDpad(IntPtr pmJoystick, int pmIndex) { joystick= pmJoystick; index= pmIndex; pUp= false; pRight= false; pDown= false; pLeft= false; pUpKeyRep= GBL.NONE; pRightKeyRep= GBL.NONE; pDownKeyRep= GBL.NONE; pLeftKeyRep= GBL.NONE; }
// Gets if the given button is not pressed public bool isKeyUp(GBL button) { return gamepad.isButtonUp(button); }
// Gets if the given button of the given player's gamepad is pressed public bool isKeyDown(GBL button) { return gamepad.isButtonDown(button); }
// Gets if the given button is not held down public bool isButtonUp(GBL button) { if(gamepad== null) return false; return ((button&buttons)== 0); }
// Updates the gamepad public void update() { if(gamepad!= null) { gamepad.update(); buttons= gamepad.getHeldButtons(); } }
public GBI(GamepadTrigger gtrigger) { type= 4; flag= gtrigger.getKey(); upFlag= GBL.NONE; rightFlag= GBL.NONE; downFlag= GBL.NONE; leftFlag= GBL.NONE; name= gtrigger.ToString(); }
public GBI(GamepadDpad gdpad) { type= 3; flag= GBL.NONE; upFlag= gdpad.getUpKey(); rightFlag= gdpad.getRightKey(); downFlag= gdpad.getDownKey(); leftFlag= gdpad.getLeftKey(); name= gdpad.ToString(); }
public GBI(GamepadStick gstick) { type= 2; flag= GBL.NONE; upFlag= gstick.getUpKey(); rightFlag= gstick.getRightKey(); downFlag= gstick.getDownKey(); leftFlag= gstick.getLeftKey(); name= gstick.ToString(); }
public GBI(GamepadButton gbutton) { type= 1; flag= gbutton.getKey(); upFlag= GBL.NONE; rightFlag= GBL.NONE; downFlag= GBL.NONE; leftFlag= GBL.NONE; name= gbutton.ToString(); }
public GBI(string pmName) { type= 0; flag= GBL.NONE; upFlag= GBL.NONE; rightFlag= GBL.NONE; downFlag= GBL.NONE; leftFlag= GBL.NONE; name= pmName; }
public void AddDivision(GBL.Repository.Resources.DivisionType division) { AddChild(new DivisionViewModel{DivisionType = division, Parent = this}); }