VPlayableCharacterComponent::VPlayableCharacterComponent()
  : m_bNoPhysicsWarningShown(false)
  , m_bIsPaused(false)
#if defined(SUPPORTS_MULTITOUCH)
  , m_pVirtualThumbStick(NULL)
#endif
{
  m_pInputMap = new VInputMap(INPUTMAP_CHARACTER_LAST_ELEMENT + 1, INPUTMAP_CHARACTER_ALTERNATIVES);

#if defined (SUPPORTS_KEYBOARD)
  // Setup controls for playable character
  m_pInputMap->MapTrigger(INPUTMAP_CHARACTER_WALK_FORWARD,  V_KEYBOARD, CT_KB_W);
  m_pInputMap->MapTrigger(INPUTMAP_CHARACTER_WALK_BACKWARD, V_KEYBOARD, CT_KB_S);
  m_pInputMap->MapTrigger(INPUTMAP_CHARACTER_WALK_RUN,      V_KEYBOARD, CT_KB_LSHIFT);
  m_pInputMap->MapTrigger(INPUTMAP_CHARACTER_ROTATE_LEFT,   V_KEYBOARD, CT_KB_A);
  m_pInputMap->MapTrigger(INPUTMAP_CHARACTER_ROTATE_RIGHT,  V_KEYBOARD, CT_KB_D);
#endif

#if defined (WIN32)

#elif defined (_VISION_XENON)
  m_pInputMap->MapTrigger(INPUTMAP_CHARACTER_WALK_FORWARD,  V_XENON_PAD(0), CT_PAD_LEFT_THUMB_STICK_UP,    VInputOptions::DeadZone(0.4f));
  m_pInputMap->MapTrigger(INPUTMAP_CHARACTER_WALK_BACKWARD, V_XENON_PAD(0), CT_PAD_LEFT_THUMB_STICK_DOWN,  VInputOptions::DeadZone(0.4f));
  m_pInputMap->MapTrigger(INPUTMAP_CHARACTER_ROTATE_LEFT,   V_XENON_PAD(0), CT_PAD_LEFT_THUMB_STICK_LEFT,  VInputOptions::DeadZone(0.4f));
  m_pInputMap->MapTrigger(INPUTMAP_CHARACTER_ROTATE_RIGHT,  V_XENON_PAD(0), CT_PAD_LEFT_THUMB_STICK_RIGHT, VInputOptions::DeadZone(0.4f));
  m_pInputMap->MapTrigger(INPUTMAP_CHARACTER_WALK_RUN,      V_XENON_PAD(0), CT_PAD_LEFT_THUMB);

#elif defined (_VISION_PS3)
  m_pInputMap->MapTrigger(INPUTMAP_CHARACTER_WALK_FORWARD,  V_PS3_PAD(0), CT_PAD_LEFT_THUMB_STICK_UP,    VInputOptions::DeadZone(0.4f));
  m_pInputMap->MapTrigger(INPUTMAP_CHARACTER_WALK_BACKWARD, V_PS3_PAD(0), CT_PAD_LEFT_THUMB_STICK_DOWN,  VInputOptions::DeadZone(0.4f));
  m_pInputMap->MapTrigger(INPUTMAP_CHARACTER_ROTATE_LEFT,   V_PS3_PAD(0), CT_PAD_LEFT_THUMB_STICK_LEFT,  VInputOptions::DeadZone(0.4f));
  m_pInputMap->MapTrigger(INPUTMAP_CHARACTER_ROTATE_RIGHT,  V_PS3_PAD(0), CT_PAD_LEFT_THUMB_STICK_RIGHT, VInputOptions::DeadZone(0.4f));
  m_pInputMap->MapTrigger(INPUTMAP_CHARACTER_WALK_RUN,      V_PS3_PAD(0), CT_PAD_LEFT_THUMB);

#elif defined(_VISION_PSP2)
  m_pInputMap->MapTrigger(INPUTMAP_CHARACTER_WALK_FORWARD,  V_PSP2_PAD(0), CT_PAD_LEFT_THUMB_STICK_UP,   VInputOptions::DeadZone(0.4f));
  m_pInputMap->MapTrigger(INPUTMAP_CHARACTER_WALK_BACKWARD, V_PSP2_PAD(0), CT_PAD_LEFT_THUMB_STICK_DOWN, VInputOptions::DeadZone(0.4f));
  m_pInputMap->MapTrigger(INPUTMAP_CHARACTER_WALK_RUN,      V_PSP2_PAD(0), CT_PAD_SQUARE);
  m_pInputMap->MapTrigger(INPUTMAP_CHARACTER_ROTATE_LEFT,   V_PSP2_PAD(0), CT_PAD_LEFT_THUMB_STICK_LEFT, VInputOptions::DeadZone(0.6f));
  m_pInputMap->MapTrigger(INPUTMAP_CHARACTER_ROTATE_RIGHT,  V_PSP2_PAD(0), CT_PAD_LEFT_THUMB_STICK_RIGHT,VInputOptions::DeadZone(0.6f));

#elif defined(_VISION_WIIU)
  // DRC mapping
  m_pInputMap->MapTrigger(INPUTMAP_CHARACTER_WALK_FORWARD,  VInputManagerWiiU::GetDRC(V_DRC_FIRST), CT_PAD_LEFT_THUMB_STICK_UP,    VInputOptions::DeadZone(0.4f));
  m_pInputMap->MapTrigger(INPUTMAP_CHARACTER_WALK_BACKWARD, VInputManagerWiiU::GetDRC(V_DRC_FIRST), CT_PAD_LEFT_THUMB_STICK_DOWN,  VInputOptions::DeadZone(0.4f));
  m_pInputMap->MapTrigger(INPUTMAP_CHARACTER_ROTATE_LEFT,   VInputManagerWiiU::GetDRC(V_DRC_FIRST), CT_PAD_LEFT_THUMB_STICK_LEFT,  VInputOptions::DeadZone(0.4f));
  m_pInputMap->MapTrigger(INPUTMAP_CHARACTER_ROTATE_RIGHT,  VInputManagerWiiU::GetDRC(V_DRC_FIRST), CT_PAD_LEFT_THUMB_STICK_RIGHT, VInputOptions::DeadZone(0.4f));
  m_pInputMap->MapTrigger(INPUTMAP_CHARACTER_WALK_RUN,      VInputManagerWiiU::GetDRC(V_DRC_FIRST), CT_PAD_LEFT_THUMB);

  // Pro controller mapping
  m_pInputMap->MapTrigger(INPUTMAP_CHARACTER_WALK_FORWARD,  VInputManagerWiiU::GetRemote(0), CT_PAD_LEFT_THUMB_STICK_UP,    VInputOptions::DeadZone(0.1f));
  m_pInputMap->MapTrigger(INPUTMAP_CHARACTER_WALK_BACKWARD, VInputManagerWiiU::GetRemote(0), CT_PAD_LEFT_THUMB_STICK_DOWN,  VInputOptions::DeadZone(0.1f));
  m_pInputMap->MapTrigger(INPUTMAP_CHARACTER_ROTATE_LEFT,   VInputManagerWiiU::GetRemote(0), CT_PAD_LEFT_THUMB_STICK_LEFT,  VInputOptions::DeadZone(0.1f));
  m_pInputMap->MapTrigger(INPUTMAP_CHARACTER_ROTATE_RIGHT,  VInputManagerWiiU::GetRemote(0), CT_PAD_LEFT_THUMB_STICK_RIGHT, VInputOptions::DeadZone(0.1f));
  m_pInputMap->MapTrigger(INPUTMAP_CHARACTER_WALK_RUN,      VInputManagerWiiU::GetRemote(0), CT_PAD_LEFT_THUMB);

#elif defined(SUPPORTS_MULTITOUCH)

  // Virtual thumb stick
  m_pVirtualThumbStick = new VVirtualThumbStick();

  m_pInputMap->MapTrigger(INPUTMAP_CHARACTER_WALK_FORWARD,  *m_pVirtualThumbStick, CT_PAD_LEFT_THUMB_STICK_UP,    VInputOptions::DeadZone(0.2f));
  m_pInputMap->MapTrigger(INPUTMAP_CHARACTER_WALK_BACKWARD, *m_pVirtualThumbStick, CT_PAD_LEFT_THUMB_STICK_DOWN,  VInputOptions::DeadZone(0.2f));
  m_pInputMap->MapTrigger(INPUTMAP_CHARACTER_ROTATE_LEFT,   *m_pVirtualThumbStick, CT_PAD_LEFT_THUMB_STICK_LEFT,  VInputOptions::DeadZone(0.2f));
  m_pInputMap->MapTrigger(INPUTMAP_CHARACTER_ROTATE_RIGHT,  *m_pVirtualThumbStick, CT_PAD_LEFT_THUMB_STICK_RIGHT, VInputOptions::DeadZone(0.2f));

#endif

  Vision::Callbacks.OnVideoChanged += this;
}
void KeyControlledTransitionCharacter_cl::InitFunction()
{
  m_pInputMap = new VInputMap(CHARACTER_CONTROL_LAST_ELEMENT+1+CHARACTER_CONTROL_USER_SPACE, CHARACTER_CONTROL_ALTERNATIVES);

#if defined(WIN32) && (!defined(_VISION_WINRT) || defined(_VISION_METRO))
  #ifdef SUPPORTS_KEYBOARD

    // setup necessary key settings
    m_pInputMap->MapTrigger(CHARACTER_MOVE_FORWARD,  V_PC_KEYBOARD, CT_KB_UP,    VInputOptions::Alternative(0));
    m_pInputMap->MapTrigger(CHARACTER_MOVE_FORWARD,  V_PC_KEYBOARD, CT_KB_KP_8,  VInputOptions::Alternative(1));
    m_pInputMap->MapTrigger(CHARACTER_MOVE_BACKWARD, V_PC_KEYBOARD, CT_KB_DOWN,  VInputOptions::Alternative(0));
    m_pInputMap->MapTrigger(CHARACTER_MOVE_BACKWARD, V_PC_KEYBOARD, CT_KB_KP_2,  VInputOptions::Alternative(1));
    m_pInputMap->MapTrigger(CHARACTER_MOVE_LEFT,     V_PC_KEYBOARD, CT_KB_LEFT,  VInputOptions::Alternative(0));
    m_pInputMap->MapTrigger(CHARACTER_MOVE_LEFT,     V_PC_KEYBOARD, CT_KB_KP_4,  VInputOptions::Alternative(1));
    m_pInputMap->MapTrigger(CHARACTER_MOVE_RIGHT,    V_PC_KEYBOARD, CT_KB_RIGHT, VInputOptions::Alternative(0));
    m_pInputMap->MapTrigger(CHARACTER_MOVE_RIGHT,    V_PC_KEYBOARD, CT_KB_KP_6,  VInputOptions::Alternative(1));
  
  #ifdef WASD_CONTROL
    m_pInputMap->MapTrigger(CHARACTER_MOVE_FORWARD,  V_PC_KEYBOARD, CT_KB_W, VInputOptions::Alternative(2));
    m_pInputMap->MapTrigger(CHARACTER_MOVE_BACKWARD, V_PC_KEYBOARD, CT_KB_S, VInputOptions::Alternative(2));
    m_pInputMap->MapTrigger(CHARACTER_MOVE_LEFT,     V_PC_KEYBOARD, CT_KB_A, VInputOptions::Alternative(2));
    m_pInputMap->MapTrigger(CHARACTER_MOVE_RIGHT,    V_PC_KEYBOARD, CT_KB_D, VInputOptions::Alternative(2));
  #endif

    m_pInputMap->MapTrigger(CHARACTER_RUN, V_PC_KEYBOARD, CT_KB_LSHIFT, VInputOptions::Alternative(0));
    m_pInputMap->MapTrigger(CHARACTER_RUN, V_PC_KEYBOARD, CT_KB_RSHIFT, VInputOptions::Alternative(1));
  
  #endif
#endif


#if defined(_VISION_XENON) || (defined(_VISION_WINRT) && !defined(_VISION_METRO) && !defined(_VISION_APOLLO))

  // setup necessary key settings
  m_pInputMap->MapTrigger(CHARACTER_MOVE_FORWARD,  V_XENON_PAD(0), CT_PAD_LEFT_THUMB_STICK_UP,    VInputOptions::DeadZone(0.4f, false, 0));
  m_pInputMap->MapTrigger(CHARACTER_MOVE_BACKWARD, V_XENON_PAD(0), CT_PAD_LEFT_THUMB_STICK_DOWN,  VInputOptions::DeadZone(0.4f, false, 0));
  m_pInputMap->MapTrigger(CHARACTER_MOVE_LEFT,     V_XENON_PAD(0), CT_PAD_LEFT_THUMB_STICK_LEFT,  VInputOptions::DeadZone(0.4f, false, 0));
  m_pInputMap->MapTrigger(CHARACTER_MOVE_RIGHT,    V_XENON_PAD(0), CT_PAD_LEFT_THUMB_STICK_RIGHT, VInputOptions::DeadZone(0.4f, false, 0));

  m_pInputMap->MapTrigger(CHARACTER_RUN, V_XENON_PAD(0), CT_PAD_RIGHT_SHOULDER, VInputOptions::DeadZone(0.4f, false, 0));


  #ifdef SUPPORTS_KEYBOARD

    // Movement
    m_pInputMap->MapTrigger(CHARACTER_MOVE_FORWARD,  VInputManagerXenon::GetKeyboard(), CT_KB_KP_8, VInputOptions::Alternative(1));
    m_pInputMap->MapTrigger(CHARACTER_MOVE_BACKWARD, VInputManagerXenon::GetKeyboard(), CT_KB_KP_2, VInputOptions::Alternative(1));
    m_pInputMap->MapTrigger(CHARACTER_MOVE_LEFT,     VInputManagerXenon::GetKeyboard(), CT_KB_KP_4, VInputOptions::Alternative(1));
    m_pInputMap->MapTrigger(CHARACTER_MOVE_RIGHT,    VInputManagerXenon::GetKeyboard(), CT_KB_KP_6, VInputOptions::Alternative(1));
    
  #ifdef WASD_CONTROL
    m_pInputMap->MapTrigger(CHARACTER_MOVE_FORWARD,  VInputManagerXenon::GetKeyboard(), CT_KB_W, VInputOptions::Alternative(2));
    m_pInputMap->MapTrigger(CHARACTER_MOVE_BACKWARD, VInputManagerXenon::GetKeyboard(), CT_KB_S, VInputOptions::Alternative(2));
    m_pInputMap->MapTrigger(CHARACTER_MOVE_LEFT,     VInputManagerXenon::GetKeyboard(), CT_KB_A, VInputOptions::Alternative(2));
    m_pInputMap->MapTrigger(CHARACTER_MOVE_RIGHT,    VInputManagerXenon::GetKeyboard(), CT_KB_D, VInputOptions::Alternative(2));
  #endif

    // Run
    m_pInputMap->MapTrigger(CHARACTER_RUN, VInputManagerXenon::GetKeyboard(), CT_KB_LSHIFT, VInputOptions::Alternative(1));

  #endif

#endif




#ifdef _VISION_PS3

  // setup necessary key settings
  m_pInputMap->MapTrigger(CHARACTER_MOVE_FORWARD,  V_PS3_PAD(0), CT_PAD_LEFT_THUMB_STICK_UP,    VInputOptions::DeadZone(0.4f, false, 0));
  m_pInputMap->MapTrigger(CHARACTER_MOVE_BACKWARD, V_PS3_PAD(0), CT_PAD_LEFT_THUMB_STICK_DOWN,  VInputOptions::DeadZone(0.4f, false, 0));
  m_pInputMap->MapTrigger(CHARACTER_MOVE_LEFT,     V_PS3_PAD(0), CT_PAD_LEFT_THUMB_STICK_LEFT,  VInputOptions::DeadZone(0.4f, false, 0));
  m_pInputMap->MapTrigger(CHARACTER_MOVE_RIGHT,    V_PS3_PAD(0), CT_PAD_LEFT_THUMB_STICK_RIGHT, VInputOptions::DeadZone(0.4f, false, 0));

  m_pInputMap->MapTrigger(CHARACTER_RUN, V_PS3_PAD(0), CT_PAD_RIGHT_SHOULDER, VInputOptions::DeadZone(0.4f, false, 0));

#endif




#ifdef _VISION_WIIU

  // setup necessary key settings
  m_pInputMap->MapTrigger(CHARACTER_MOVE_FORWARD,  VInputManagerWiiU::GetDRC(V_DRC_FIRST), CT_PAD_LEFT_THUMB_STICK_UP,    VInputOptions::DeadZone(0.4f, false, 0));
  m_pInputMap->MapTrigger(CHARACTER_MOVE_BACKWARD, VInputManagerWiiU::GetDRC(V_DRC_FIRST), CT_PAD_LEFT_THUMB_STICK_DOWN,  VInputOptions::DeadZone(0.4f, false, 0));
  m_pInputMap->MapTrigger(CHARACTER_MOVE_LEFT,     VInputManagerWiiU::GetDRC(V_DRC_FIRST), CT_PAD_LEFT_THUMB_STICK_LEFT,  VInputOptions::DeadZone(0.4f, false, 0));
  m_pInputMap->MapTrigger(CHARACTER_MOVE_RIGHT,    VInputManagerWiiU::GetDRC(V_DRC_FIRST), CT_PAD_LEFT_THUMB_STICK_RIGHT, VInputOptions::DeadZone(0.4f, false, 0));

  m_pInputMap->MapTrigger(CHARACTER_RUN, VInputManagerWiiU::GetDRC(V_DRC_FIRST), CT_PAD_RIGHT_SHOULDER, VInputOptions::DeadZone(0.4f, false, 0));

#endif




#if defined(_VISION_MOBILE)

  #if defined(SUPPORTS_MULTITOUCH)
    m_pVirtualThumbStick = new VVirtualThumbStick();

    m_pInputMap->MapTrigger(CHARACTER_MOVE_FORWARD,  *m_pVirtualThumbStick,   CT_PAD_LEFT_THUMB_STICK_UP,     VInputOptions::DeadZone(0.2f));
    m_pInputMap->MapTrigger(CHARACTER_MOVE_BACKWARD, *m_pVirtualThumbStick,   CT_PAD_LEFT_THUMB_STICK_DOWN,   VInputOptions::DeadZone(0.2f));
    m_pInputMap->MapTrigger(CHARACTER_MOVE_LEFT,     *m_pVirtualThumbStick,   CT_PAD_LEFT_THUMB_STICK_LEFT,   VInputOptions::DeadZone(0.2f));
    m_pInputMap->MapTrigger(CHARACTER_MOVE_RIGHT,    *m_pVirtualThumbStick,   CT_PAD_LEFT_THUMB_STICK_RIGHT,  VInputOptions::DeadZone(0.2f));

  #endif

#endif

  m_bKeyboardInputAllowed = true;

  TransitionCharacter_cl::InitFunction();
}
void KeyControlledTransitionBarbarian_cl::InitFunction()
{

#ifdef SUPPORTS_KEYBOARD

  // setup necessary key settings
  VAppImpl::GetInputMap()->MapTrigger(CHARACTER_MOVE_FORWARD, V_KEYBOARD, CT_KB_UP);
  VAppImpl::GetInputMap()->MapTrigger(CHARACTER_ROTATE_LEFT,  V_KEYBOARD, CT_KB_LEFT);
  VAppImpl::GetInputMap()->MapTrigger(CHARACTER_ROTATE_RIGHT, V_KEYBOARD, CT_KB_RIGHT);

#ifdef WASD_CONTROL
  VAppImpl::GetInputMap()->MapTrigger(CHARACTER_MOVE_FORWARD, V_KEYBOARD, CT_KB_W);
  VAppImpl::GetInputMap()->MapTrigger(CHARACTER_ROTATE_LEFT,  V_KEYBOARD, CT_KB_A);
  VAppImpl::GetInputMap()->MapTrigger(CHARACTER_ROTATE_RIGHT, V_KEYBOARD, CT_KB_D);
#endif

  VAppImpl::GetInputMap()->MapTrigger(CHARACTER_RUN, V_KEYBOARD, CT_KB_LSHIFT);
  VAppImpl::GetInputMap()->MapTrigger(CHARACTER_RUN, V_KEYBOARD, CT_KB_RSHIFT);

#endif

  
#if defined(_VISION_XENON) || (defined(_VISION_WINRT) && !defined(_VISION_METRO) && !defined(_VISION_APOLLO))

  // setup necessary key settings
  VAppImpl::GetInputMap()->MapTrigger(CHARACTER_MOVE_FORWARD, V_XENON_PAD(0), CT_PAD_LEFT_THUMB_STICK_UP,    VInputOptions::DeadZone(0.4f));
  VAppImpl::GetInputMap()->MapTrigger(CHARACTER_ROTATE_LEFT,  V_XENON_PAD(0), CT_PAD_LEFT_THUMB_STICK_LEFT,  VInputOptions::DeadZone(0.4f));
  VAppImpl::GetInputMap()->MapTrigger(CHARACTER_ROTATE_RIGHT, V_XENON_PAD(0), CT_PAD_LEFT_THUMB_STICK_RIGHT, VInputOptions::DeadZone(0.4f));

  VAppImpl::GetInputMap()->MapTrigger(CHARACTER_RUN, V_XENON_PAD(0), CT_PAD_LEFT_SHOULDER, VInputOptions::DeadZone(0.4f));
  
#elif defined(_VISION_PS3)

  // setup necessary key settings
  VAppImpl::GetInputMap()->MapTrigger(CHARACTER_MOVE_FORWARD, V_PS3_PAD(0), CT_PAD_LEFT_THUMB_STICK_UP,    VInputOptions::DeadZone(0.4f));
  VAppImpl::GetInputMap()->MapTrigger(CHARACTER_ROTATE_LEFT,  V_PS3_PAD(0), CT_PAD_LEFT_THUMB_STICK_LEFT,  VInputOptions::DeadZone(0.4f));
  VAppImpl::GetInputMap()->MapTrigger(CHARACTER_ROTATE_RIGHT, V_PS3_PAD(0), CT_PAD_LEFT_THUMB_STICK_RIGHT, VInputOptions::DeadZone(0.4f));

  VAppImpl::GetInputMap()->MapTrigger(CHARACTER_RUN, V_PS3_PAD(0), CT_PAD_LEFT_SHOULDER, VInputOptions::DeadZone(0.4f));

#elif defined(_VISION_PSP2)

  // setup necessary key settings
  VAppImpl::GetInputMap()->MapTrigger(CHARACTER_MOVE_FORWARD, V_PSP2_PAD(0), CT_PAD_LEFT_THUMB_STICK_UP,    VInputOptions::DeadZone(0.4f));
  VAppImpl::GetInputMap()->MapTrigger(CHARACTER_ROTATE_LEFT,  V_PSP2_PAD(0), CT_PAD_LEFT_THUMB_STICK_LEFT,  VInputOptions::DeadZone(0.4f));
  VAppImpl::GetInputMap()->MapTrigger(CHARACTER_ROTATE_RIGHT, V_PSP2_PAD(0), CT_PAD_LEFT_THUMB_STICK_RIGHT, VInputOptions::DeadZone(0.4f));

  VAppImpl::GetInputMap()->MapTrigger(CHARACTER_RUN, V_PSP2_PAD(0), CT_PAD_LEFT_SHOULDER, VInputOptions::DeadZone(0.4f));

#elif defined(_VISION_WIIU)

  // setup necessary key settings
  VAppImpl::GetInputMap()->MapTrigger(CHARACTER_MOVE_FORWARD, VInputManagerWiiU::GetDRC(V_DRC_FIRST), CT_PAD_LEFT_THUMB_STICK_UP,    VInputOptions::DeadZone(0.4f));
  VAppImpl::GetInputMap()->MapTrigger(CHARACTER_ROTATE_LEFT,  VInputManagerWiiU::GetDRC(V_DRC_FIRST), CT_PAD_LEFT_THUMB_STICK_LEFT,  VInputOptions::DeadZone(0.4f));
  VAppImpl::GetInputMap()->MapTrigger(CHARACTER_ROTATE_RIGHT, VInputManagerWiiU::GetDRC(V_DRC_FIRST), CT_PAD_LEFT_THUMB_STICK_RIGHT, VInputOptions::DeadZone(0.4f));

  VAppImpl::GetInputMap()->MapTrigger(CHARACTER_RUN, VInputManagerWiiU::GetDRC(V_DRC_FIRST), CT_PAD_LEFT_SHOULDER, VInputOptions::DeadZone(0.4f));

#endif


  m_bInputAllowed = true;

  TransitionBarbarian_cl::InitFunction();
}
  VisSampleApp::GetInputMap()->MapTrigger(WORLD_LANG_NEXT, V_KEYBOARD, CT_KB_SPACE,  VInputOptions::Once());
#endif

#if defined(SUPPORTS_MULTITOUCH)
  VTouchArea *pTouchArea
#if defined(WIN32) && !defined(_VISION_WINRT)
    = new VTouchArea(VInputManager::GetMultitouch(),  VRectanglef(0,0,(float)Vision::Video.GetXRes(),(float)Vision::Video.GetYRes()));
#else
    = new VTouchArea(VInputManager::GetTouchScreen());
#endif

  VisSampleApp::GetInputMap()->MapTrigger(WORLD_LANG_NEXT, pTouchArea, CT_TOUCH_ANY, VInputOptions::Once());
#endif

#if defined(_VISION_XENON) || (defined(_VISION_WINRT) && !defined(_VISION_METRO) && !defined(_VISION_APOLLO))
  VisSampleApp::GetInputMap()->MapTrigger(WORLD_LANG_PREV, V_XENON_PAD(0), CT_PAD_A, VInputOptions::Once());
  VisSampleApp::GetInputMap()->MapTrigger(WORLD_LANG_NEXT, V_XENON_PAD(0), CT_PAD_B, VInputOptions::Once());

#elif defined(_VISION_PS3)
  VisSampleApp::GetInputMap()->MapTrigger(WORLD_LANG_PREV, V_PS3_PAD(0), CT_PAD_CROSS, VInputOptions::Once());
  VisSampleApp::GetInputMap()->MapTrigger(WORLD_LANG_NEXT, V_PS3_PAD(0), CT_PAD_CIRCLE, VInputOptions::Once());

#elif defined(_VISION_PSP2)
  VisSampleApp::GetInputMap()->MapTrigger(WORLD_LANG_PREV, V_PSP2_PAD(0), CT_PAD_CROSS, VInputOptions::Once());
  VisSampleApp::GetInputMap()->MapTrigger(WORLD_LANG_NEXT, V_PSP2_PAD(0), CT_PAD_CIRCLE, VInputOptions::Once());

#elif defined(_VISION_MOBILE)
  int width = Vision::Video.GetXRes();
  int height = Vision::Video.GetYRes();
  
  VTouchArea* prevArea = new VTouchArea(VInputManager::GetTouchScreen(), VRectanglef(0, 0, 100, height), -950.0f);