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:
Lirusaito
2012-01-11 11:04:12 -05:00
parent 8543106f5e
commit 4de23007a5
5 changed files with 239 additions and 214 deletions

View File

@@ -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

View File

@@ -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"

View File

@@ -1098,6 +1098,8 @@ bool LLAppViewer::mainLoop()
&& !gFocusMgr.focusLocked()) && !gFocusMgr.focusLocked())
{ {
joystick->scanJoystick(); joystick->scanJoystick();
if(isCrouch)
gAgent.moveUp(-1);
gKeyboard->scanKeyboard(); gKeyboard->scanKeyboard();
} }

View File

@@ -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);

View File

@@ -93,5 +93,5 @@ protected:
}; };
extern LLViewerKeyboard gViewerKeyboard; extern LLViewerKeyboard gViewerKeyboard;
extern bool isCrouch;
#endif // LL_LLVIEWERKEYBOARD_H #endif // LL_LLVIEWERKEYBOARD_H