src/ui/uInput.cpp File Reference

#include <stdarg.h>
#include "uInput.h"
#include "tMemManager.h"
#include "rScreen.h"
#include "tInitExit.h"
#include "tConfiguration.h"
#include "rConsole.h"
#include "uMenu.h"
#include "tSysTime.h"
#include <vector>
#include <map>

Include dependency graph for uInput.cpp:

Go to the source code of this file.

Classes

class  uAutoDeleteInput
class  uKeyInput
class  uMouseInput
class  tConfItem_key
class  uJoystick
struct  uJoystick::HatDirections
class  uJoystickInput
struct  uTransformEventInfo
class  uMenuItemInput

Defines

#define MOUSE_BUTTONS   7
#define su_TRANSFORM_PASSES   2
#define MTHRESH   5
#define MREL   2

Typedefs

typedef std::vector< uInput * > uInputs

Functions

static uInputsu_GetInput (tString const &persistentID)
static uAutoDeleteInputsu_GetAutoDeleteInput ()
static uInputsu_NewInput (tString const &ID, tString const &name)
static uInputsu_NewInput (char const *ID, char const *name)
static uKeyInput const & su_GetKeyInput ()
static uMouseInput const & su_GetMouseInput ()
void su_KeyInit ()
static void keyboard_init ()
static void keyboard_exit ()
static uJoystickInputsu_GetJoystickInput ()
static uJoysticksu_GetJoystick (int id)
void su_JoystickInit ()
bool GlobalAct (uAction *act, REAL x)
static void su_TransformEvent (SDL_Event &e, std::vector< uTransformEventInfo > &info)
static int Input_Compare (const tListItemBase *a, const tListItemBase *b)
static void s_InputConfigGeneric (int ePlayer, uAction *&actions, const tOutput &title)
void su_InputConfig (int ePlayer)
void su_InputConfigCamera (int player)
void su_InputConfigGlobal ()
void su_HandleDelayedEvents ()
bool su_HandleEvent (SDL_Event &e, bool delayed)
void su_InputSync ()
void su_ClearKeys ()
static bool messup_func (REAL x)
static bool messdown_func (REAL x)

Variables

bool su_mouseGrab = false
static uActionsu_allActions [uMAX_ACTIONS]
static int su_allActionsLen = 0
uInputs su_inputs
std::map< std::string, uInput * > su_inputMap
static tConfItem_key x
static uActions_playerActions
static uActions_cameraActions
static uActions_globalActions
static tInitExit keyboard_ie & keyboard_init
REAL su_doubleBindTimeout = -10.0f
 true if the mouse cursor is to be confined into the window
static int nextid = 0
REAL mouse_sensitivity = REAL(.1)
REAL key_sensitivity = 40
static double lastTime = 0
static REAL ts = 0
static bool su_delayed = false
static char const * Player_keyword = "PLAYER_BIND"
static uActionGlobalFuncuActionGlobal_anchor = NULL
static uActionGlobal mess_up ("MESS_UP")
static uActionGlobal mess_down ("MESS_DOWN")


Define Documentation

#define MOUSE_BUTTONS   7

Definition at line 227 of file uInput.cpp.

Referenced by su_TransformEvent(), and uMouseInput::uMouseInput().

#define MREL   2

Definition at line 1122 of file uInput.cpp.

#define MTHRESH   5

Definition at line 1121 of file uInput.cpp.

#define su_TRANSFORM_PASSES   2

Definition at line 780 of file uInput.cpp.


Typedef Documentation

typedef std::vector< uInput * > uInputs

Definition at line 99 of file uInput.cpp.


Function Documentation

bool GlobalAct ( uAction act,
REAL  x 
)

Definition at line 691 of file uInput.cpp.

References uActionGlobalFunc::GlobalAct().

Referenced by uBindPlayer::DoActivate().

00692                                    {
00693     return uActionGlobalFunc::GlobalAct(act,x);

Here is the call graph for this function:

Here is the caller graph for this function:

static int Input_Compare ( const tListItemBase a,
const tListItemBase b 
) [static]

Definition at line 1211 of file uInput.cpp.

Referenced by s_InputConfigGeneric().

01214 {
01215     return Input_Comparator::Compare( (const uAction*)a, (const uAction*)b );

Here is the caller graph for this function:

static void keyboard_exit (  )  [static]

Definition at line 434 of file uInput.cpp.

00436 {

static void keyboard_init (  )  [static]

Definition at line 430 of file uInput.cpp.

00432 {

static bool messdown_func ( REAL  x  )  [static]

Definition at line 1493 of file uInput.cpp.

References rConsole::Scroll(), and sr_con.

01494                                  {
01495     if (x>0){
01496         sr_con.Scroll(1);
01497     }
01498     return true;

Here is the call graph for this function:

static bool messup_func ( REAL  x  )  [static]

Definition at line 1486 of file uInput.cpp.

References rConsole::Scroll(), and sr_con.

01487                                {
01488     if (x>0){
01489         sr_con.Scroll(-1);
01490     }
01491     return true;

Here is the call graph for this function:

static void s_InputConfigGeneric ( int  ePlayer,
uAction *&  actions,
const tOutput title 
) [static]

Definition at line 1218 of file uInput.cpp.

References a, b, uMenu::Enter(), Input_Compare(), tListItemBase::Len(), tListItem< T >::Next(), uMenu::ReverseItems(), and tNEW.

Referenced by su_InputConfig(), su_InputConfigCamera(), and su_InputConfigGlobal().

01219                                                                                      {
01220     uMenuItemInput **input;
01221 
01222     uMenu input_menu(title);
01223 
01224     actions->tListItemBase::Sort(&Input_Compare);
01225 
01226     int len = actions->Len();
01227 
01228     input=tNEW(uMenuItemInput*)[len];
01229     int a=0;
01230     for (uAction *A=actions;A; A = A->Next()){
01231         input[a++]=new uMenuItemInput(&input_menu,
01232                                       A,
01233                                       ePlayer+1);
01234 
01235     }
01236 
01237     input_menu.ReverseItems();
01238     input_menu.Enter();
01239 
01240     for (int b=a-1;b>=0;b--)
01241         delete input[b];
01242     delete[] input;

Here is the call graph for this function:

Here is the caller graph for this function:

void su_ClearKeys (  ) 

Definition at line 1367 of file uInput.cpp.

References uBind::Activate(), uInput::GetBind(), uInput::GetPressed(), uInput::SetPressed(), and su_inputs.

Referenced by do_chat(), and uMenu::OnEnter().

01369 {
01370     // clears stored keypresses
01371     for ( uInputs::const_iterator i = su_inputs.begin(); i != su_inputs.end(); ++i )
01372     {
01373         uInput * input = *i;
01374         uBind * bind = input->GetBind();
01375         if ( input->GetPressed() > 0 && bind )
01376         {
01377             bind->Activate( -1, su_delayed );
01378             input->SetPressed( 0 );
01379         }
01380     }

Here is the call graph for this function:

Here is the caller graph for this function:

static uAutoDeleteInput& su_GetAutoDeleteInput (  )  [static]

Definition at line 158 of file uInput.cpp.

Referenced by su_NewInput().

00159 {
00160     static uAutoDeleteInput filler;
00161     return filler;
00162 }

Here is the caller graph for this function:

static uInput* su_GetInput ( tString const &  persistentID  )  [static]

Definition at line 118 of file uInput.cpp.

References NULL, and su_inputMap.

Referenced by tConfItem_key::ReadVal().

00119 {
00120     try
00121     {
00122         return su_inputMap[ persistentID ];
00123     }
00124     catch (...)
00125     {
00126         return NULL;
00127     }
00128 }

Here is the caller graph for this function:

static uJoystick* su_GetJoystick ( int  id  )  [static]

Definition at line 654 of file uInput.cpp.

References uJoystickInput::joysticks, su_GetJoystickInput(), and tASSERT.

Referenced by su_TransformEvent().

00656 {
00657     uJoystickInput & joysticks = su_GetJoystickInput();
00658     tASSERT( id >= 0 && id < (int)joysticks.joysticks.size() );
00659 
00660     return joysticks.joysticks[id];

Here is the call graph for this function:

Here is the caller graph for this function:

static uJoystickInput& su_GetJoystickInput (  )  [static]

Definition at line 648 of file uInput.cpp.

Referenced by su_GetJoystick(), and su_JoystickInit().

00650 {
00651     static uJoystickInput filler;
00652     return filler;

Here is the caller graph for this function:

static uKeyInput const& su_GetKeyInput (  )  [static]

Definition at line 221 of file uInput.cpp.

Referenced by su_KeyInit(), and su_TransformEvent().

00223 {
00224     static uKeyInput filler;
00225     return filler;

Here is the caller graph for this function:

static uMouseInput const& su_GetMouseInput (  )  [static]

Definition at line 261 of file uInput.cpp.

Referenced by su_KeyInit(), and su_TransformEvent().

00263 {
00264     static uMouseInput filler;
00265     return filler;

Here is the caller graph for this function:

void su_HandleDelayedEvents (  ) 

Definition at line 1274 of file uInput.cpp.

References uBind::HanldeDelayed(), and su_inputs.

Referenced by gGame::GameLoop(), and su_HandleEvent().

01276 {
01277     // nothing to do
01278     if ( !su_delayed )
01279     {
01280         return;
01281     }
01282 
01283     su_delayed = false;
01284 
01285     for ( uInputs::const_iterator i = su_inputs.begin(); i != su_inputs.end(); ++i )
01286     {
01287         uBind * bind = (*i)->GetBind();
01288         if ( bind )
01289         {
01290             bind->HanldeDelayed();
01291         }
01292     }

Here is the call graph for this function:

Here is the caller graph for this function:

bool su_HandleEvent ( SDL_Event &  e,
bool  delayed 
)

Definition at line 1294 of file uInput.cpp.

References uBind::act, uBind::Activate(), uInput::GetBind(), uTransformEventInfo::input, uBind::IsDoubleBind(), uTransformEventInfo::needsRepeat, uInput::SetPressed(), su_HandleDelayedEvents(), su_TransformEvent(), uAction::type, uAction::uINPUT_ANALOG, and uTransformEventInfo::value.

Referenced by gMemuItemConsole::Event(), gGame::GameLoop(), and uMenu::HandleEvent().

01295                                                 {
01296 #ifndef DEDICATED
01297     if ( su_delayed && !delayed )
01298     {
01299         su_HandleDelayedEvents();
01300     }
01301 
01302     su_delayed = delayed;
01303 
01304     // transform events
01305     bool ret = false;
01306 
01307     std::vector< uTransformEventInfo > events;
01308     su_TransformEvent( e, events );
01309 
01310     for ( std::vector< uTransformEventInfo >::const_iterator i = events.begin(); i != events.end(); ++i )
01311     {
01312         uTransformEventInfo info = *i;
01313 
01314         if ( info.input )
01315         {
01316             // store input state for later repeat
01317             if ( info.needsRepeat )
01318             {
01319                 info.input->SetPressed( info.value > 0 ? info.value : 0 );
01320             }
01321 
01322             // activate binding
01323             uBind * bind = info.input->GetBind();
01324             if ( bind )
01325             {
01326                 if ( bind->IsDoubleBind( info.input ) )
01327                 {
01328                     return true;
01329                 }
01330 
01331                 if ( info.needsRepeat && bind->act && bind->act->type == uAction::uINPUT_ANALOG )
01332                 {
01333                     info.value *= ts*key_sensitivity;
01334                 }
01335 
01336                 ret |= bind->Activate( info.value, delayed );
01337             }
01338         }
01339     }
01340 
01341     return ret;
01342 #endif
01343     return false;

Here is the call graph for this function:

Here is the caller graph for this function:

void su_InputConfig ( int  ePlayer  ) 

Definition at line 1244 of file uInput.cpp.

References uPlayerPrototype::Name(), uPlayerPrototype::PlayerConfig(), s_InputConfigGeneric(), and tOutput::SetTemplateParameter().

Referenced by sg_PlayerMenu().

01245                                 {
01246 
01247     tOutput name;
01248     name.SetTemplateParameter(1, ePlayer+1);
01249     name.SetTemplateParameter(2, uPlayerPrototype::PlayerConfig(ePlayer)->Name());
01250     name << "$input_for_player";
01251 
01252     s_InputConfigGeneric(ePlayer,s_playerActions,name);

Here is the call graph for this function:

Here is the caller graph for this function:

void su_InputConfigCamera ( int  player  ) 

Definition at line 1254 of file uInput.cpp.

References uPlayerPrototype::Name(), uPlayerPrototype::PlayerConfig(), s_InputConfigGeneric(), and tOutput::SetTemplateParameter().

Referenced by sg_PlayerMenu().

01255                                      {
01256 
01257     tOutput name;
01258     name.SetTemplateParameter(1, uPlayerPrototype::PlayerConfig(player)->Name());
01259     name << "$camera_controls";
01260 
01261     s_InputConfigGeneric(player,s_cameraActions,name);

Here is the call graph for this function:

Here is the caller graph for this function:

void su_InputConfigGlobal (  ) 

Definition at line 1263 of file uInput.cpp.

References s_InputConfigGeneric().

Referenced by MainMenu().

01264                            {
01265     s_InputConfigGeneric(-1,s_globalActions,"$input_items_global");

Here is the call graph for this function:

Here is the caller graph for this function:

void su_InputSync (  ) 

Definition at line 1345 of file uInput.cpp.

References uBind::act, uBind::Activate(), uInput::GetBind(), uInput::GetPressed(), REAL, su_inputs, tSysTimeFloat(), uAction::type, and uAction::uINPUT_ANALOG.

Referenced by gGame::GameLoop().

01346                    {
01347     double time=tSysTimeFloat();
01348     ts=REAL(time-lastTime);
01349 
01350     //static REAL tsSmooth=0;
01351     //tsSmooth+=REAL(ts*.1);
01352     //tsSmooth/=REAL(1.1);
01353     lastTime=time;
01354 
01355     // key repeat
01356     for ( uInputs::const_iterator i = su_inputs.begin(); i != su_inputs.end(); ++i )
01357     {
01358         uInput * input = *i;
01359         uBind * bind = input->GetBind();
01360         if ( input->GetPressed() > 0 && bind &&
01361                 bind->act && bind->act->type == uAction::uINPUT_ANALOG )
01362         {
01363             bind->Activate( ts * key_sensitivity * input->GetPressed(), su_delayed );
01364         }
01365     }

Here is the call graph for this function:

Here is the caller graph for this function:

void su_JoystickInit (  ) 

Definition at line 662 of file uInput.cpp.

References su_GetJoystickInput().

Referenced by main().

00664 {
00665     su_GetJoystickInput();
00666     SDL_JoystickEventState( SDL_ENABLE );

Here is the call graph for this function:

Here is the caller graph for this function:

void su_KeyInit (  ) 

Definition at line 267 of file uInput.cpp.

References su_GetKeyInput(), and su_GetMouseInput().

Referenced by main().

00269 {
00270     su_GetKeyInput();
00271     su_GetMouseInput();

Here is the call graph for this function:

Here is the caller graph for this function:

static uInput* su_NewInput ( char const *  ID,
char const *  name 
) [static]

Definition at line 169 of file uInput.cpp.

References uAutoDeleteInput::Create(), and su_GetAutoDeleteInput().

00170 {
00171     return su_GetAutoDeleteInput().Create( tString( ID ), tString( name ) );
00172 }

Here is the call graph for this function:

static uInput* su_NewInput ( tString const &  ID,
tString const &  name 
) [static]

Definition at line 164 of file uInput.cpp.

References uAutoDeleteInput::Create(), and su_GetAutoDeleteInput().

Referenced by tConfItem_key::ReadVal(), uJoystick::uJoystick(), uKeyInput::uKeyInput(), and uMouseInput::uMouseInput().

00165 {
00166     return su_GetAutoDeleteInput().Create( ID, name );
00167 }

Here is the call graph for this function:

Here is the caller graph for this function:

static void su_TransformEvent ( SDL_Event &  e,
std::vector< uTransformEventInfo > &  info 
) [static]

Definition at line 794 of file uInput.cpp.

References c, uJoystick::Down, uJoystick::GetAxis(), uJoystick::GetBall(), uJoystick::GetButton(), uJoystick::GetHat(), uJoystick::GetHatDirection(), uJoystick::Left, MOUSE_BUTTONS, mouse_sensitivity, REAL, uJoystick::Right, sr_screenHeight, sr_screenWidth, su_GetJoystick(), su_GetKeyInput(), su_GetMouseInput(), su_mouseGrab, and uJoystick::Up.

Referenced by uMenuItemInput::Event(), and su_HandleEvent().

00796 {
00797     switch (e.type)
00798     {
00799     case SDL_MOUSEMOTION:
00800         {
00801             // ignore events generated by mouse grabbing
00802             if ( su_mouseGrab &&
00803                     e.motion.x==sr_screenWidth/2 && e.motion.x==sr_screenHeight/2)
00804             {
00805                 return;
00806             }
00807 
00808             // we generate up to four events per mouse movement
00809             info.reserve(4);
00810 
00811             REAL xrel=e.motion.xrel;
00812             if (xrel > 0) // right
00813             {
00814                 info.push_back( uTransformEventInfo(
00815                                     su_GetMouseInput().x_minus,
00816                                     0,
00817                                     false ) );
00818                 info.push_back( uTransformEventInfo(
00819                                     su_GetMouseInput().x_plus,
00820                                     xrel * mouse_sensitivity,
00821                                     false ) );
00822             }
00823 
00824             if (xrel < 0) // left
00825             {
00826                 info.push_back( uTransformEventInfo(
00827                                     su_GetMouseInput().x_plus,
00828                                     0,
00829                                     false ) );
00830                 info.push_back( uTransformEventInfo(
00831                                     su_GetMouseInput().x_minus,
00832                                     -xrel * mouse_sensitivity,
00833                                     false ) );
00834             }
00835 
00836             // invert mouse movement
00837             REAL yrel=-e.motion.yrel;
00838             if (yrel>0) // up
00839             {
00840                 info.push_back( uTransformEventInfo(
00841                                     su_GetMouseInput().y_minus,
00842                                     0,
00843                                     false ) );
00844                 info.push_back( uTransformEventInfo(
00845                                     su_GetMouseInput().y_plus,
00846                                     yrel * mouse_sensitivity,
00847                                     false ) );
00848             }
00849             if (yrel<0) // down
00850             {
00851                 info.push_back( uTransformEventInfo(
00852                                     su_GetMouseInput().y_plus,
00853                                     0,
00854                                     false ) );
00855                 info.push_back( uTransformEventInfo(
00856                                     su_GetMouseInput().y_minus,
00857                                     -yrel * mouse_sensitivity,
00858                                     false ) );
00859             }
00860         }
00861         break;
00862     case SDL_MOUSEBUTTONDOWN:
00863     case SDL_MOUSEBUTTONUP:
00864         {
00865             int button=e.button.button;
00866             if (button<=MOUSE_BUTTONS)
00867             {
00868                 info.push_back( uTransformEventInfo(
00869                                     su_GetMouseInput().button[ button ],
00870                                     ( e.type == SDL_MOUSEBUTTONDOWN ) ? 1 : 0 ) );
00871             }
00872         }
00873         break;
00874     case SDL_KEYDOWN:
00875     case SDL_KEYUP:
00876         {
00877             SDL_keysym &c = e.key.keysym;
00878 
00879             info.push_back( uTransformEventInfo(
00880                                 su_GetKeyInput().sdl_keys[ c.sym ],
00881                                 ( e.type == SDL_KEYDOWN ) ? 1 : 0 ) );
00882 
00883             break;
00884         }
00885 #ifndef NOJOYSTICK
00886     case SDL_JOYAXISMOTION:
00887         {
00888             uJoystick * joystick = su_GetJoystick( e.jaxis.which );
00889             int dir = e.jaxis.value > 0 ? 1 : 0;
00890 
00891             info.push_back( uTransformEventInfo(
00892                                 joystick->GetAxis( e.jaxis.axis, 1-dir ),
00893                                 0 ) );
00894             info.push_back( uTransformEventInfo(
00895                                 joystick->GetAxis( e.jaxis.axis, dir ),
00896                                 fabs( e.jaxis.value )/32768 ) );
00897 
00898             break;
00899         }
00900     case SDL_JOYBUTTONDOWN:
00901     case SDL_JOYBUTTONUP:
00902         info.push_back( uTransformEventInfo(
00903                             su_GetJoystick( e.jbutton.which )->GetButton( e.jbutton.button ),
00904                             ( e.type == SDL_JOYBUTTONDOWN ) ? 1 : 0 ) );
00905         break;
00906     case SDL_JOYHATMOTION:
00907         {
00908             info.reserve(4);
00909 
00910             uJoystick * joystick = su_GetJoystick( e.jhat.which );
00911             int hat = e.jhat.hat;
00912             int hatDirection = e.jhat.value;
00913 
00914             // left/right hat motion
00915             {
00916                 int & lastDir = joystick->GetHatDirection( hat, 0 );
00917                 int newDir =
00918                     ( ( hatDirection & SDL_HAT_LEFT ) ? -1 : 0 ) +
00919                     ( ( hatDirection & SDL_HAT_RIGHT ) ? +1 : 0 );
00920 
00921                 // negate previous events
00922                 if ( lastDir < 0 && newDir >= 0 )
00923                 {
00924                     info.push_back( uTransformEventInfo(
00925                                         joystick->GetHat( hat, uJoystick::Left ),
00926                                         0 ) );
00927                 }
00928 
00929                 if ( lastDir > 0 && newDir <= 0 )
00930                 {
00931                     info.push_back( uTransformEventInfo(
00932                                         joystick->GetHat( hat, uJoystick::Right ),
00933                                         0 ) );
00934                 }
00935 
00936                 // create new events
00937                 if ( lastDir >= 0 && newDir < 0 )
00938                 {
00939                     info.push_back( uTransformEventInfo(
00940                                         joystick->GetHat( hat, uJoystick::Left ),
00941                                         1 ) );
00942                 }
00943 
00944                 if ( lastDir <= 0 && newDir > 0 )
00945                 {
00946                     info.push_back( uTransformEventInfo(
00947                                         joystick->GetHat( hat, uJoystick::Right ),
00948                                         1 ) );
00949                 }
00950 
00951                 lastDir = newDir;
00952             }
00953 
00954             // up/down hat motion
00955             {
00956                 int & lastDir = joystick->GetHatDirection( hat, 1 );
00957                 int newDir =
00958                     ( ( hatDirection & SDL_HAT_UP ) ? -1 : 0 ) +
00959                     ( ( hatDirection & SDL_HAT_DOWN ) ? +1 : 0 );
00960 
00961                 // negate previous events
00962                 if ( lastDir < 0 && newDir >= 0 )
00963                 {
00964                     info.push_back( uTransformEventInfo(
00965                                         joystick->GetHat( hat, uJoystick::Up ),
00966                                         0 ) );
00967                 }
00968 
00969                 if ( lastDir > 0 && newDir <= 0 )
00970                 {
00971                     info.push_back( uTransformEventInfo(
00972                                         joystick->GetHat( hat, uJoystick::Down ),
00973                                         0 ) );
00974                 }
00975 
00976                 // create new events
00977                 if ( lastDir >= 0 && newDir < 0 )
00978                 {
00979                     info.push_back( uTransformEventInfo(
00980                                         joystick->GetHat( hat, uJoystick::Up ),
00981                                         1 ) );
00982                 }
00983 
00984                 if ( lastDir <= 0 && newDir > 0 )
00985                 {
00986                     info.push_back( uTransformEventInfo(
00987                                         joystick->GetHat( hat, uJoystick::Down ),
00988                                         1 ) );
00989                 }
00990 
00991                 lastDir = newDir;
00992             }
00993         }
00994         break;
00995     case SDL_JOYBALLMOTION:
00996         {
00997             info.reserve(4);
00998 
00999             uJoystick * joystick = su_GetJoystick( e.jball.which );
01000             int ball = e.jball.ball;
01001 
01002             REAL xrel=e.jball.xrel;
01003             if (xrel > 0) // right
01004             {
01005                 info.push_back( uTransformEventInfo(
01006                                     joystick->GetBall( ball, uJoystick::Left ),
01007                                     0,
01008                                     false ) );
01009                 info.push_back( uTransformEventInfo(
01010                                     joystick->GetBall( ball, uJoystick::Right ),
01011                                     xrel,
01012                                     false ) );
01013             }
01014 
01015             if (xrel < 0) // left
01016             {
01017                 info.push_back( uTransformEventInfo(
01018                                     joystick->GetBall( ball, uJoystick::Right ),
01019                                     0,
01020                                     false ) );
01021                 info.push_back( uTransformEventInfo(
01022                                     joystick->GetBall( ball, uJoystick::Left ),
01023                                     -xrel,
01024                                     false ) );
01025             }
01026 
01027             // invert ball movement
01028             REAL yrel=-e.jball.yrel;
01029             if (yrel>0) // up
01030             {
01031                 info.push_back( uTransformEventInfo(
01032                                     joystick->GetBall( ball, uJoystick::Down ),
01033                                     0,
01034                                     false ) );
01035                 info.push_back( uTransformEventInfo(
01036                                     joystick->GetBall( ball, uJoystick::Up ),
01037                                     yrel,
01038                                     false ) );
01039             }
01040             if (yrel<0) // down
01041             {
01042                 info.push_back( uTransformEventInfo(
01043                                     joystick->GetBall( ball, uJoystick::Up ),
01044                                     0,
01045                                     false ) );
01046                 info.push_back( uTransformEventInfo(
01047                                     joystick->GetBall( ball, uJoystick::Down ),
01048                                     -yrel,
01049                                     false ) );
01050             }
01051         }
01052         break;
01053 #endif
01054     default:
01055         break;
01056     }

Here is the call graph for this function:

Here is the caller graph for this function:


Variable Documentation

REAL key_sensitivity = 40

Definition at line 1268 of file uInput.cpp.

tInitExit keyboard_ie& keyboard_init [static]

Definition at line 670 of file uInput.cpp.

double lastTime = 0 [static]

Definition at line 1269 of file uInput.cpp.

static uActionGlobalFunc md & mess_down [static]

Definition at line 1501 of file uInput.cpp.

static uActionGlobalFunc mu & mess_up [static]

Definition at line 1500 of file uInput.cpp.

REAL mouse_sensitivity = REAL(.1)

Definition at line 777 of file uInput.cpp.

Referenced by su_TransformEvent().

int nextid = 0 [static]

Definition at line 738 of file uInput.cpp.

Referenced by uPlayerPrototype::Num(), and uPlayerPrototype::uPlayerPrototype().

char const* Player_keyword = "PLAYER_BIND" [static]

Definition at line 1386 of file uInput.cpp.

uAction* s_cameraActions [static]

Definition at line 354 of file uInput.cpp.

uAction* s_globalActions [static]

Definition at line 355 of file uInput.cpp.

uAction* s_playerActions [static]

Definition at line 353 of file uInput.cpp.

uAction* su_allActions[uMAX_ACTIONS] [static]

Definition at line 43 of file uInput.cpp.

int su_allActionsLen = 0 [static]

Definition at line 44 of file uInput.cpp.

Referenced by uAction::Find(), and uAction::uAction().

bool su_delayed = false [static]

Definition at line 1272 of file uInput.cpp.

REAL su_doubleBindTimeout = -10.0f

true if the mouse cursor is to be confined into the window

Definition at line 717 of file uInput.cpp.

Referenced by uBind::IsDoubleBind().

std::map< std::string, uInput * > su_inputMap

Definition at line 101 of file uInput.cpp.

Referenced by su_GetInput(), and uInput::uInput().

uInputs su_inputs

Definition at line 100 of file uInput.cpp.

Referenced by uMenuItemInput::Event(), uActionGlobal::IsBreakingGlobalBind(), uBindPlayer::NewBind(), tConfItem_key::ReadVal(), uMenuItemInput::Render(), su_ClearKeys(), su_HandleDelayedEvents(), su_InputSync(), uInput::uInput(), tConfItem_key::WriteVal(), and uInput::~uInput().

bool su_mouseGrab = false

Definition at line 41 of file uInput.cpp.

Referenced by filter(), sg_ScreenModeMenu(), and su_TransformEvent().

REAL ts = 0 [static]

Definition at line 1270 of file uInput.cpp.

Referenced by cCockpit::cb_Framerate(), uMenu::OnEnter(), gWallRim::RenderReal(), gAIPlayer::SetTraceSide(), gSpark::Timestep(), gCycleMovement::Timestep(), gAIPlayer::Timestep(), gCycleMovement::TimestepCore(), and gCycle::TimestepCore().

uActionGlobalFunc* uActionGlobal_anchor = NULL [static]

Definition at line 1459 of file uInput.cpp.

tConfItem_key x [static]

Definition at line 351 of file uInput.cpp.

Referenced by atan2f(), uMenuItemSelection< bool >::Clear(), client(), DecaySmooth(), eGrid::display_simple(), nServerInfo::DoQueryAll(), gAIPlayer::EmergencySurvive(), expf(), fabsf(), floorf(), PDDisc::Generate(), PDCone::Generate(), PDCylinder::Generate(), gArena::GetRandomPos(), zShapePolygon::isInside(), tListItemBase::Len(), rModel::Load(), logf(), main(), rConsole::MaxHeight(), MenuBackground(), uMenuItemSelection< bool >::NewChoice(), NextPowerOfTwo(), ntest(), ePoint::operator *(), tOutput::operator const char *(), ePoint::operator+(), ePoint::operator-(), ePoint::operator=(), ePoint::Print(), nKrawall::ReadScrambledPassword(), gCycle::ReadSync(), eNetGameObject::ReceiveControlNet(), gExplosion::Render(), gCycle::Render(), rFont::Render(), gExplosion::Render2D(), cWidget::NeedleGauge::RenderGraph(), cWidget::VerticalBarGauge::RenderGraph(), cWidget::BarGauge::RenderGraph(), gNetPlayerWall::RenderList(), gCycle::RenderName(), uMenu::ReverseItems(), rotate(), sqrtf(), test_max_a(), test_max_b(), gAIPlayer::Think(), gCamera::Timestep(), eCamera::Timestep(), gCycleMovement::TimestepCore(), PDBlob::Within(), PDCone::Within(), PDCylinder::Within(), gCycle::WriteSync(), and gCamera::~gCamera().


Generated on Sat Mar 15 23:19:44 2008 for Armagetron Advanced by  doxygen 1.5.4