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;
                }
            }
        }
Example #4
0
        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;
                }
            }

            //..
        }