Added crouch toggle, global bool called isCrouch, function agent_toggle_down bound to toggle_down.
Shift+crouch=toggle, crouch doesn't work while toggle crouched, at the moment. Formatted keys.ini to be completely aligned.
This commit is contained in:
@@ -47,7 +47,7 @@ FIRST_PERSON D SHIFT slide_right
|
|||||||
FIRST_PERSON W SHIFT push_forward
|
FIRST_PERSON W SHIFT push_forward
|
||||||
FIRST_PERSON S SHIFT push_backward
|
FIRST_PERSON S SHIFT push_backward
|
||||||
FIRST_PERSON E SHIFT jump
|
FIRST_PERSON E SHIFT jump
|
||||||
FIRST_PERSON C SHIFT push_down
|
FIRST_PERSON C SHIFT toggle_down
|
||||||
FIRST_PERSON F SHIFT toggle_fly
|
FIRST_PERSON F SHIFT toggle_fly
|
||||||
|
|
||||||
FIRST_PERSON SPACE NONE stop_moving
|
FIRST_PERSON SPACE NONE stop_moving
|
||||||
@@ -59,14 +59,14 @@ FIRST_PERSON RIGHT SHIFT slide_right
|
|||||||
FIRST_PERSON UP SHIFT push_forward
|
FIRST_PERSON UP SHIFT push_forward
|
||||||
FIRST_PERSON DOWN SHIFT push_backward
|
FIRST_PERSON DOWN SHIFT push_backward
|
||||||
FIRST_PERSON PGUP SHIFT jump
|
FIRST_PERSON PGUP SHIFT jump
|
||||||
FIRST_PERSON PGDN SHIFT push_down
|
FIRST_PERSON PGDN SHIFT toggle_down
|
||||||
|
|
||||||
FIRST_PERSON PAD_LEFT SHIFT slide_left
|
FIRST_PERSON PAD_LEFT SHIFT slide_left
|
||||||
FIRST_PERSON PAD_RIGHT SHIFT slide_right
|
FIRST_PERSON PAD_RIGHT SHIFT slide_right
|
||||||
FIRST_PERSON PAD_UP SHIFT push_forward
|
FIRST_PERSON PAD_UP SHIFT push_forward
|
||||||
FIRST_PERSON PAD_DOWN SHIFT push_backward
|
FIRST_PERSON PAD_DOWN SHIFT push_backward
|
||||||
FIRST_PERSON PAD_PGUP SHIFT jump
|
FIRST_PERSON PAD_PGUP SHIFT jump
|
||||||
FIRST_PERSON PAD_PGDN SHIFT push_down
|
FIRST_PERSON PAD_PGDN SHIFT toggle_down
|
||||||
FIRST_PERSON PAD_HOME SHIFT toggle_fly
|
FIRST_PERSON PAD_HOME SHIFT toggle_fly
|
||||||
FIRST_PERSON PAD_ENTER SHIFT start_chat
|
FIRST_PERSON PAD_ENTER SHIFT start_chat
|
||||||
FIRST_PERSON PAD_DIVIDE SHIFT start_gesture
|
FIRST_PERSON PAD_DIVIDE SHIFT start_gesture
|
||||||
@@ -82,7 +82,7 @@ THIRD_PERSON S SHIFT push_backward
|
|||||||
THIRD_PERSON E NONE jump
|
THIRD_PERSON E NONE jump
|
||||||
THIRD_PERSON C NONE push_down
|
THIRD_PERSON C NONE push_down
|
||||||
THIRD_PERSON E SHIFT jump
|
THIRD_PERSON E SHIFT jump
|
||||||
THIRD_PERSON C SHIFT push_down
|
THIRD_PERSON C SHIFT toggle_down
|
||||||
|
|
||||||
THIRD_PERSON F NONE toggle_fly
|
THIRD_PERSON F NONE toggle_fly
|
||||||
THIRD_PERSON F SHIFT toggle_fly
|
THIRD_PERSON F SHIFT toggle_fly
|
||||||
@@ -102,7 +102,7 @@ THIRD_PERSON DOWN SHIFT push_backward
|
|||||||
THIRD_PERSON PGUP NONE jump
|
THIRD_PERSON PGUP NONE jump
|
||||||
THIRD_PERSON PGDN NONE push_down
|
THIRD_PERSON PGDN NONE push_down
|
||||||
THIRD_PERSON PGUP SHIFT jump
|
THIRD_PERSON PGUP SHIFT jump
|
||||||
THIRD_PERSON PGDN SHIFT push_down
|
THIRD_PERSON PGDN SHIFT toggle_down
|
||||||
THIRD_PERSON HOME SHIFT toggle_fly
|
THIRD_PERSON HOME SHIFT toggle_fly
|
||||||
THIRD_PERSON HOME NONE toggle_fly
|
THIRD_PERSON HOME NONE toggle_fly
|
||||||
|
|
||||||
@@ -117,7 +117,7 @@ THIRD_PERSON PAD_DOWN SHIFT push_backward
|
|||||||
THIRD_PERSON PAD_PGUP NONE jump
|
THIRD_PERSON PAD_PGUP NONE jump
|
||||||
THIRD_PERSON PAD_PGDN NONE push_down
|
THIRD_PERSON PAD_PGDN NONE push_down
|
||||||
THIRD_PERSON PAD_PGUP SHIFT jump
|
THIRD_PERSON PAD_PGUP SHIFT jump
|
||||||
THIRD_PERSON PAD_PGDN SHIFT push_down
|
THIRD_PERSON PAD_PGDN SHIFT toggle_down
|
||||||
THIRD_PERSON PAD_HOME NONE toggle_fly
|
THIRD_PERSON PAD_HOME NONE toggle_fly
|
||||||
THIRD_PERSON PAD_HOME SHIFT toggle_fly
|
THIRD_PERSON PAD_HOME SHIFT toggle_fly
|
||||||
THIRD_PERSON PAD_CENTER NONE stop_moving
|
THIRD_PERSON PAD_CENTER NONE stop_moving
|
||||||
|
|||||||
@@ -69,6 +69,7 @@
|
|||||||
#include "llviewercontrol.h"
|
#include "llviewercontrol.h"
|
||||||
#include "llviewerdisplay.h"
|
#include "llviewerdisplay.h"
|
||||||
#include "llviewerjoystick.h"
|
#include "llviewerjoystick.h"
|
||||||
|
#include "llviewerkeyboard.h" //For crouch toggle
|
||||||
#include "llviewermediafocus.h"
|
#include "llviewermediafocus.h"
|
||||||
#include "llviewermenu.h"
|
#include "llviewermenu.h"
|
||||||
#include "llviewerobjectlist.h"
|
#include "llviewerobjectlist.h"
|
||||||
|
|||||||
@@ -1098,6 +1098,8 @@ bool LLAppViewer::mainLoop()
|
|||||||
&& !gFocusMgr.focusLocked())
|
&& !gFocusMgr.focusLocked())
|
||||||
{
|
{
|
||||||
joystick->scanJoystick();
|
joystick->scanJoystick();
|
||||||
|
if(isCrouch)
|
||||||
|
gAgent.moveUp(-1);
|
||||||
gKeyboard->scanKeyboard();
|
gKeyboard->scanKeyboard();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -45,6 +45,7 @@
|
|||||||
#include "lltoolfocus.h"
|
#include "lltoolfocus.h"
|
||||||
#include "llviewerwindow.h"
|
#include "llviewerwindow.h"
|
||||||
#include "llvoavatarself.h"
|
#include "llvoavatarself.h"
|
||||||
|
#include "lllslconstants.h"
|
||||||
|
|
||||||
//
|
//
|
||||||
// Constants
|
// Constants
|
||||||
@@ -60,12 +61,14 @@ const F32 YAW_NUDGE_RATE = 0.05f; // fraction of normal speed
|
|||||||
|
|
||||||
LLViewerKeyboard gViewerKeyboard;
|
LLViewerKeyboard gViewerKeyboard;
|
||||||
|
|
||||||
|
bool isCrouch = 0; //Shouldn't start crouched.
|
||||||
|
|
||||||
void agent_jump( EKeystate s )
|
void agent_jump( EKeystate s )
|
||||||
{
|
{
|
||||||
if( KEYSTATE_UP == s ) return;
|
if( KEYSTATE_UP == s ) return;
|
||||||
F32 time = gKeyboard->getCurKeyElapsedTime();
|
F32 time = gKeyboard->getCurKeyElapsedTime();
|
||||||
S32 frame_count = llround(gKeyboard->getCurKeyElapsedFrameCount());
|
S32 frame_count = llround(gKeyboard->getCurKeyElapsedFrameCount());
|
||||||
|
if(isCrouch) isCrouch=0;
|
||||||
if( time < FLY_TIME
|
if( time < FLY_TIME
|
||||||
|| frame_count <= FLY_FRAMES
|
|| frame_count <= FLY_FRAMES
|
||||||
|| gAgent.upGrabbed()
|
|| gAgent.upGrabbed()
|
||||||
@@ -79,6 +82,23 @@ void agent_jump( EKeystate s )
|
|||||||
gAgent.moveUp(1);
|
gAgent.moveUp(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
void agent_toggle_down( EKeystate s )
|
||||||
|
{
|
||||||
|
if(KEYSTATE_UP == s) return;
|
||||||
|
else if(KEYSTATE_DOWN == s && !(gAgent.getControlFlags() & AGENT_SITTING))
|
||||||
|
if(isCrouch) isCrouch=0;
|
||||||
|
else if(!gAgent.getFlying())
|
||||||
|
{
|
||||||
|
isCrouch=1;
|
||||||
|
gAgent.moveUp(-1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
gAgent.moveUp(-1);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gAgent.moveUp(-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void agent_push_down( EKeystate s )
|
void agent_push_down( EKeystate s )
|
||||||
{
|
{
|
||||||
@@ -226,6 +246,7 @@ void agent_toggle_fly( EKeystate s )
|
|||||||
if (KEYSTATE_DOWN == s )
|
if (KEYSTATE_DOWN == s )
|
||||||
{
|
{
|
||||||
gAgent.toggleFlying();
|
gAgent.toggleFlying();
|
||||||
|
if(isCrouch) isCrouch=0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -530,6 +551,7 @@ void bind_keyboard_functions()
|
|||||||
gViewerKeyboard.bindNamedFunction("push_backward", agent_push_backward);
|
gViewerKeyboard.bindNamedFunction("push_backward", agent_push_backward);
|
||||||
gViewerKeyboard.bindNamedFunction("look_up", agent_look_up);
|
gViewerKeyboard.bindNamedFunction("look_up", agent_look_up);
|
||||||
gViewerKeyboard.bindNamedFunction("look_down", agent_look_down);
|
gViewerKeyboard.bindNamedFunction("look_down", agent_look_down);
|
||||||
|
gViewerKeyboard.bindNamedFunction("toggle_down", agent_toggle_down);
|
||||||
gViewerKeyboard.bindNamedFunction("toggle_fly", agent_toggle_fly);
|
gViewerKeyboard.bindNamedFunction("toggle_fly", agent_toggle_fly);
|
||||||
gViewerKeyboard.bindNamedFunction("turn_left", agent_turn_left);
|
gViewerKeyboard.bindNamedFunction("turn_left", agent_turn_left);
|
||||||
gViewerKeyboard.bindNamedFunction("turn_right", agent_turn_right);
|
gViewerKeyboard.bindNamedFunction("turn_right", agent_turn_right);
|
||||||
|
|||||||
@@ -93,5 +93,5 @@ protected:
|
|||||||
};
|
};
|
||||||
|
|
||||||
extern LLViewerKeyboard gViewerKeyboard;
|
extern LLViewerKeyboard gViewerKeyboard;
|
||||||
|
extern bool isCrouch;
|
||||||
#endif // LL_LLVIEWERKEYBOARD_H
|
#endif // LL_LLVIEWERKEYBOARD_H
|
||||||
|
|||||||
Reference in New Issue
Block a user