Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
May 16, 2019, 2:27:40 PM (5 years ago)
Author:
tkuonen
Message:

Improve MouseAPI
Add Comments
Cleanup

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapi.cc

    r12363 r12377  
    11#include "mouseapi.h"
    2 
    3 #if OGRE_VERSION >= 0x010900
    4 #   include <Overlay/OgreOverlayManager.h>
    5 #   include <Overlay/OgrePanelOverlayElement.h>
    6 #else
    7 #   include <OgreOverlayManager.h>
    8 #   include <OgrePanelOverlayElement.h>
    9 #endif
    10 
    11 #include "util/StringUtils.h"
    122
    133namespace orxonox{
     
    2717        if(InputManager::exists())
    2818        {
    29             //cam = CameraManager::getInstance().getActiveCamera()->getOgreCamera();
    3019            state = InputManager::getInstance().createInputState("MouseAPI",true,true,99);
    3120            state->setMouseExclusive(false);//does this work
    3221            state->setMouseHandler(this);
     22            gameInputActivated = false;
    3323            state->setKeyHandler(KeyBinderManager::getInstance().getDefaultAsHandler());
    3424            InputManager::getInstance().enterState("guiMouseOnly");
    3525            InputManager::getInstance().enterState("MouseAPI");
    3626            InputManager::getInstance().setMouseExclusive("game",false);
    37             //InputManager::getInstance().setMouseExclusive("guiMouseOnly",false);
    38             //InputManager::getInstance().getState("game")->
    39         }
    40         //GUIManager::getInstance().showGUI("MouseAPICursor", true);//Display a mouse cursor by displaying a empty menu
    41         /*cursor = static_cast<Ogre::PanelOverlayElement*>(Ogre::OverlayManager::getSingleton()
    42                                                                .createOverlayElement("Panel", "MouseAPI_cursor_" + getUniqueNumberString()));
    43         cursor->setMaterialName("Orxonox/RadarMarker");//todo: better material
    44         cursor->setPosition(0,0);
    45         cursor->setDimensions(0.1,0.1);
    46         Ogre::Overlay* overlay = Ogre::OverlayManager::getSingleton().create( "MouseAPI_cursor_" + getUniqueNumberString() );
    47         overlay->show();*/
    48         //this->overlay_->add2D(this->cursor);
     27        }
    4928    }
    5029
     
    5534    if(active)
    5635    {
    57         GUIManager::getInstance().showGUI("MouseAPICursor", true);
    5836        active = false;
    5937        if(InputManager::exists())
     
    6644        clickEvents.clear();
    6745        scrollEvents.clear();
     46        gameInputActivated=false;
    6847    }
    6948}
     
    7655void MouseAPI::buttonPressed(MouseButtonCode::ByEnum button)
    7756{
    78     cam = CameraManager::getInstance().getActiveCamera()->getOgreCamera();//todo: trycatch
     57    cam = CameraManager::getInstance().getActiveCamera()->getOgreCamera();
    7958    Ogre::Viewport *vp = GraphicsManager::getInstance().getViewport();
    8059    int mouseposX = InputManager::getInstance().getMousePosition().first;
     
    9473void MouseAPI::mouseMoved(IntVector2 abs, IntVector2 rel, IntVector2 clippingSize)
    9574{
    96     //mousePos = abs;
    9775}
    9876
    9977void MouseAPI::tick(float dt)
    10078{
    101     if(active)
    102     {
    103         InputManager::getInstance().leaveState("game");//hack: todo: crate 2nd input state with prioritz 98 for cegui(cursor)
    104         //GUIManager::getInstance().showGUI("MouseAPICursor", false);//hack todo: only if gui not shown & evt better if not in mouse mooved
     79    if(active && !gameInputActivated)
     80    {
     81        InputManager::getInstance().leaveState("game");
    10582    }
    10683
     
    239216}
    240217
    241 //returns relative Position of the Mouse
    242218Vector2 MouseAPI::getMousePosition()
    243219{
     
    246222}
    247223
    248 }
     224void MouseAPI::activateGameInput()
     225{
     226    gameInputActivated = true;
     227    state->setKeyHandler(nullptr);
     228}
     229
     230void MouseAPI::deactivateGameInput()
     231{
     232    gameInputActivated = false;
     233    state->setKeyHandler(KeyBinderManager::getInstance().getDefaultAsHandler());
     234}
     235
     236}
Note: See TracChangeset for help on using the changeset viewer.