void GameControlsManager_GameControlsEvent(GameControlsEventData e) { //GameControlsKeyDownEventData { GameControlsKeyDownEventData evt = e as GameControlsKeyDownEventData; if (evt != null) { if (GetControlKeyStrength(evt.ControlKey) != evt.Strength) { ControlKeyPress(evt.ControlKey, evt.Strength); //send to server if (EntitySystemWorld.Instance.IsClientOnly()) { //send turnToPosition before fire if (evt.ControlKey == GameControlKeys.Fire1 || evt.ControlKey == GameControlKeys.Fire2) { if (Instance == this) //send message only to this player { Vec3 turnToPosition; if (GetTurnToPosition(out turnToPosition)) { Client_SendTurnToPositionToServer(turnToPosition); } } } Client_SendControlKeyPressToServer(evt.ControlKey, evt.Strength); } } return; } } //GameControlsKeyUpEventData { GameControlsKeyUpEventData evt = e as GameControlsKeyUpEventData; if (evt != null) { if (IsControlKeyPressed(evt.ControlKey)) { ControlKeyRelease(evt.ControlKey); //send to server if (EntitySystemWorld.Instance.IsClientOnly()) { Client_SendControlKeyReleaseToServer(evt.ControlKey); } } return; } } //TPS arcade, PlatformerDemo specific (camera observe) bool tpsArcade = GameMap.Instance != null && GameMap.Instance.GameType == GameMap.GameTypes.TPSArcade; bool platformerDemo = GameMap.Instance != null && GameMap.Instance.GameType == GameMap.GameTypes.PlatformerDemo; //GameControlsMouseMoveEventData if (!tpsArcade && !platformerDemo) { GameControlsMouseMoveEventData evt = e as GameControlsMouseMoveEventData; if (evt != null) { Vec2 sens = GameControlsManager.Instance.MouseSensitivity * 2; lookDirection.Horizontal -= evt.MouseOffset.X * sens.X; lookDirection.Vertical -= evt.MouseOffset.Y * sens.Y; float limit = fpsCamera ? .1f : MathFunctions.PI / 8; if (lookDirection.Vertical < -(MathFunctions.PI / 2 - limit)) { lookDirection.Vertical = -(MathFunctions.PI / 2 - limit); } if (lookDirection.Vertical > (MathFunctions.PI / 2 - limit)) { lookDirection.Vertical = (MathFunctions.PI / 2 - limit); } return; } } //GameControlsTickEventData if (!tpsArcade && !platformerDemo) { GameControlsTickEventData evt = e as GameControlsTickEventData; if (evt != null) { Vec2 sensitivity = GameControlsManager.Instance.JoystickAxesSensitivity * 2; Vec2 offset = Vec2.Zero; offset.X -= GetControlKeyStrength(GameControlKeys.LookLeft); offset.X += GetControlKeyStrength(GameControlKeys.LookRight); offset.Y += GetControlKeyStrength(GameControlKeys.LookUp); offset.Y -= GetControlKeyStrength(GameControlKeys.LookDown); //Turret specific if (ControlledObject != null && ControlledObject is Turret) { offset.X -= GetControlKeyStrength(GameControlKeys.Left); offset.X += GetControlKeyStrength(GameControlKeys.Right); offset.Y += GetControlKeyStrength(GameControlKeys.Forward); offset.Y -= GetControlKeyStrength(GameControlKeys.Backward); } offset *= evt.Delta * sensitivity; lookDirection.Horizontal -= offset.X; lookDirection.Vertical += offset.Y; float limit = fpsCamera ? .1f : MathFunctions.PI / 8; if (lookDirection.Vertical < -(MathFunctions.PI / 2 - limit)) { lookDirection.Vertical = -(MathFunctions.PI / 2 - limit); } if (lookDirection.Vertical > (MathFunctions.PI / 2 - limit)) { lookDirection.Vertical = (MathFunctions.PI / 2 - limit); } return; } } //.. }
void GameControlsManager_GameControlsEvent( GameControlsEventData e ) { //GameControlsKeyDownEventData { GameControlsKeyDownEventData evt = e as GameControlsKeyDownEventData; if( evt != null ) { if( GetControlKeyStrength( evt.ControlKey ) != evt.Strength ) { ControlKeyPress( evt.ControlKey, evt.Strength ); //send to server if( EntitySystemWorld.Instance.IsClientOnly() ) { //send turnToPosition before fire if( evt.ControlKey == GameControlKeys.Fire1 || evt.ControlKey == GameControlKeys.Fire2 ) { if( Instance == this )//send message only to this player { Vec3 turnToPosition; if( GetTurnToPosition( out turnToPosition ) ) Client_SendTurnToPositionToServer( turnToPosition ); } } Client_SendControlKeyPressToServer( evt.ControlKey, evt.Strength ); } } return; } } //GameControlsKeyUpEventData { GameControlsKeyUpEventData evt = e as GameControlsKeyUpEventData; if( evt != null ) { if( IsControlKeyPressed( evt.ControlKey ) ) { ControlKeyRelease( evt.ControlKey ); //send to server if( EntitySystemWorld.Instance.IsClientOnly() ) Client_SendControlKeyReleaseToServer( evt.ControlKey ); } return; } } //TPS arcade specific (camera observe) bool tpsArcade = GameMap.Instance != null && GameMap.Instance.GameType == GameMap.GameTypes.TPSArcade; //GameControlsMouseMoveEventData if( !tpsArcade ) { GameControlsMouseMoveEventData evt = e as GameControlsMouseMoveEventData; if( evt != null ) { Vec2 sens = GameControlsManager.Instance.MouseSensitivity * 2; lookDirection.Horizontal -= evt.MouseOffset.X * sens.X; lookDirection.Vertical -= evt.MouseOffset.Y * sens.Y; float limit = fpsCamera ? .1f : MathFunctions.PI / 8; if( lookDirection.Vertical < -( MathFunctions.PI / 2 - limit ) ) lookDirection.Vertical = -( MathFunctions.PI / 2 - limit ); if( lookDirection.Vertical > ( MathFunctions.PI / 2 - limit ) ) lookDirection.Vertical = ( MathFunctions.PI / 2 - limit ); return; } } //GameControlsTickEventData if( !tpsArcade ) { GameControlsTickEventData evt = e as GameControlsTickEventData; if( evt != null ) { Vec2 sensitivity = GameControlsManager.Instance.JoystickAxesSensitivity * 2; Vec2 offset = Vec2.Zero; offset.X -= GetControlKeyStrength( GameControlKeys.LookLeft ); offset.X += GetControlKeyStrength( GameControlKeys.LookRight ); offset.Y += GetControlKeyStrength( GameControlKeys.LookUp ); offset.Y -= GetControlKeyStrength( GameControlKeys.LookDown ); //Turret specific if( ControlledObject != null && ControlledObject is Turret ) { offset.X -= GetControlKeyStrength( GameControlKeys.Left ); offset.X += GetControlKeyStrength( GameControlKeys.Right ); offset.Y += GetControlKeyStrength( GameControlKeys.Forward ); offset.Y -= GetControlKeyStrength( GameControlKeys.Backward ); } offset *= evt.Delta * sensitivity; lookDirection.Horizontal -= offset.X; lookDirection.Vertical += offset.Y; float limit = fpsCamera ? .1f : MathFunctions.PI / 8; if( lookDirection.Vertical < -( MathFunctions.PI / 2 - limit ) ) lookDirection.Vertical = -( MathFunctions.PI / 2 - limit ); if( lookDirection.Vertical > ( MathFunctions.PI / 2 - limit ) ) lookDirection.Vertical = ( MathFunctions.PI / 2 - limit ); return; } } //.. }
void GameControlsManager_GameControlsEvent( GameControlsEventData e ) { //GameControlsKeyDownEventData { GameControlsKeyDownEventData evt = e as GameControlsKeyDownEventData; if( evt != null ) { //"Use" control key if( evt.ControlKey == GameControlKeys.Use ) { //currentAttachedGuiObject if( currentAttachedGuiObject != null ) { currentAttachedGuiObject.ControlManager.DoMouseDown( EMouseButtons.Left ); return; } //key down for switch use if( SwitchUseStart() ) return; if( CurrentUnitAllowPlayerControlUse() ) return; } return; } } //GameControlsKeyUpEventData { GameControlsKeyUpEventData evt = e as GameControlsKeyUpEventData; if( evt != null ) { //"Use" control key if( evt.ControlKey == GameControlKeys.Use ) { //currentAttachedGuiObject if( currentAttachedGuiObject != null ) currentAttachedGuiObject.ControlManager.DoMouseUp( EMouseButtons.Left ); //key up for switch use SwitchUseEnd(); } return; } } }
void GameControlsManager_GameControlsEvent( GameControlsEventData e ) { //GameControlsKeyDownEventData { GameControlsKeyDownEventData evt = e as GameControlsKeyDownEventData; if( evt != null ) { //VHFOS #000001 BEGIN if (evt.ControlKey == GameControlKeys.Forward || evt.ControlKey == GameControlKeys.Backward || evt.ControlKey == GameControlKeys.Left || evt.ControlKey == GameControlKeys.Right ) isForwardPressed = true; //VHFOS #000001 END ControlKeyPress( evt.ControlKey, evt.Strength ); UpdateControlledObject(); return; } } //GameControlsKeyUpEventData { GameControlsKeyUpEventData evt = e as GameControlsKeyUpEventData; if( evt != null ) { //VHFOS #000001 BEGIN if (evt.ControlKey == GameControlKeys.Forward || evt.ControlKey == GameControlKeys.Backward || evt.ControlKey == GameControlKeys.Left || evt.ControlKey == GameControlKeys.Right ) isForwardPressed = true; //VHFOS #000001 END ControlKeyRelease( evt.ControlKey ); UpdateControlledObject(); return; } } //GameControlsMouseMoveEventData { GameControlsMouseMoveEventData evt = e as GameControlsMouseMoveEventData; if( evt != null ) { Vec2 sens = GameControlsManager.Instance.MouseSensitivity * 2; lookDirection.Horizontal -= evt.MouseOffset.X * sens.X; lookDirection.Vertical -= evt.MouseOffset.Y * sens.Y; float limit = fpsCamera ? .1f : MathFunctions.PI / 8; if( lookDirection.Vertical < -( MathFunctions.PI / 2 - limit ) ) lookDirection.Vertical = -( MathFunctions.PI / 2 - limit ); if( lookDirection.Vertical > ( MathFunctions.PI / 2 - limit ) ) lookDirection.Vertical = ( MathFunctions.PI / 2 - limit ); UpdateControlledObject(); return; } } //GameControlsTickEventData { GameControlsTickEventData evt = e as GameControlsTickEventData; if( evt != null ) { Vec2 sensitivity = GameControlsManager.Instance.JoystickAxesSensitivity * 2; Vec2 offset = Vec2.Zero; offset.X -= GetControlKeyStrength( GameControlKeys.LookLeft ); offset.X += GetControlKeyStrength( GameControlKeys.LookRight ); offset.Y += GetControlKeyStrength( GameControlKeys.LookUp ); offset.Y -= GetControlKeyStrength( GameControlKeys.LookDown ); //Turret specific if( ControlledObject != null && ControlledObject is Turret ) { offset.X -= GetControlKeyStrength( GameControlKeys.Left ); offset.X += GetControlKeyStrength( GameControlKeys.Right ); offset.Y += GetControlKeyStrength( GameControlKeys.Forward ); offset.Y -= GetControlKeyStrength( GameControlKeys.Backward ); } offset *= evt.Delta * sensitivity; lookDirection.Horizontal -= offset.X; lookDirection.Vertical += offset.Y; float limit = fpsCamera ? .1f : MathFunctions.PI / 8; if( lookDirection.Vertical < -( MathFunctions.PI / 2 - limit ) ) lookDirection.Vertical = -( MathFunctions.PI / 2 - limit ); if( lookDirection.Vertical > ( MathFunctions.PI / 2 - limit ) ) lookDirection.Vertical = ( MathFunctions.PI / 2 - limit ); UpdateControlledObject(); return; } } //.. }