[Orxonox-commit 1263] r5981 - in code/branches/steering/src/orxonox: controllers infos

wirthmi at orxonox.net wirthmi at orxonox.net
Wed Oct 21 17:17:05 CEST 2009


Author: wirthmi
Date: 2009-10-21 17:17:05 +0200 (Wed, 21 Oct 2009)
New Revision: 5981

Modified:
   code/branches/steering/src/orxonox/controllers/Controller.h
   code/branches/steering/src/orxonox/controllers/NewHumanController.cc
   code/branches/steering/src/orxonox/controllers/NewHumanController.h
   code/branches/steering/src/orxonox/infos/PlayerInfo.cc
Log:
Made NewHumanController an InputHandler so we can control the crosshair.


Modified: code/branches/steering/src/orxonox/controllers/Controller.h
===================================================================
--- code/branches/steering/src/orxonox/controllers/Controller.h	2009-10-21 14:06:50 UTC (rev 5980)
+++ code/branches/steering/src/orxonox/controllers/Controller.h	2009-10-21 15:17:05 UTC (rev 5981)
@@ -56,6 +56,8 @@
             inline ControllableEntity* getControllableEntity() const
                 { return this->controllableEntity_; }
             virtual void changedControllableEntity() {}
+            virtual void startControl() {}
+            virtual void stopControl() {}
 
         protected:
             PlayerInfo* player_;

Modified: code/branches/steering/src/orxonox/controllers/NewHumanController.cc
===================================================================
--- code/branches/steering/src/orxonox/controllers/NewHumanController.cc	2009-10-21 14:06:50 UTC (rev 5980)
+++ code/branches/steering/src/orxonox/controllers/NewHumanController.cc	2009-10-21 15:17:05 UTC (rev 5981)
@@ -20,7 +20,7 @@
  *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  *
  *   Author:
- *      Fabian 'x3n' Landau
+ *      Michael Wirth
  *   Co-authors:
  *      ...
  *
@@ -28,6 +28,9 @@
 
 #include "NewHumanController.h"
 
+#include "core/input/InputManager.h"
+#include "core/input/InputState.h"
+
 #include "core/CoreIncludes.h"
 #include "core/ConsoleCommand.h"
 #include "worldentities/ControllableEntity.h"
@@ -71,11 +74,21 @@
         RegisterObject(NewHumanController);
 
         NewHumanController::localController_s = this;
+
+        gameInputState_ = InputManager::getInstance().createInputState("humansteering", true, true);
+        gameInputState_->setMouseHandler(this);
+        gameInputState_->setMouseMode(MouseMode::Exclusive);
     }
 
     NewHumanController::~NewHumanController()
     {
         NewHumanController::localController_s = 0;
+
+        if( this->isInitialized() )
+        {
+            gameInputState_->setHandler(0);
+            InputManager::getInstance().destroyState("humansteering");
+        }
     }
 
     void NewHumanController::tick(float dt)
@@ -94,4 +107,22 @@
         }
     }
 
+    void NewHumanController::startControl() {
+        //gameInputState_->setHandler(KeyBinderManager::getInstance().getDefaultAsHandler());
+        //KeyBinderManager::getInstance().setToDefault();
+
+        InputManager::getInstance().enterState("humansteering");
+        std::cout << "started control" << endl;
+    }
+
+    void NewHumanController::stopControl() {
+        InputManager::getInstance().leaveState("humansteering");
+        std::cout << "stopped control" << endl;
+    }
+
+    void NewHumanController::mouseMoved(IntVector2 abs, IntVector2 rel, IntVector2 clippingSize)
+    {
+        std::cout << "X: " << static_cast<float>(abs.x) << " Y: " << static_cast<float>(abs.y) << endl;
+    }
+
 }

Modified: code/branches/steering/src/orxonox/controllers/NewHumanController.h
===================================================================
--- code/branches/steering/src/orxonox/controllers/NewHumanController.h	2009-10-21 14:06:50 UTC (rev 5980)
+++ code/branches/steering/src/orxonox/controllers/NewHumanController.h	2009-10-21 15:17:05 UTC (rev 5981)
@@ -20,7 +20,7 @@
  *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  *
  *   Author:
- *      Fabian 'x3n' Landau
+ *      Michael Wirth
  *   Co-authors:
  *      ...
  *
@@ -31,12 +31,14 @@
 
 #include "OrxonoxPrereqs.h"
 
-#include "tools/interfaces/Tickable.h"
+//#include "tools/interfaces/Tickable.h"
 #include "HumanController.h"
+#include "core/input/InputHandler.h"
+#include "core/input/InputState.h"
 
 namespace orxonox
 {
-    class _OrxonoxExport NewHumanController : public HumanController
+    class _OrxonoxExport NewHumanController : public HumanController, public InputHandler
     {
         public:
             NewHumanController(BaseObject* creator);
@@ -44,8 +46,15 @@
 
             virtual void tick(float dt);
 
+            void startControl();
+            void stopControl();
+
         private:
             static NewHumanController* localController_s;
+            InputState* gameInputState_;
+
+            //mouse handler functions
+            void mouseMoved    (IntVector2 abs, IntVector2 rel, IntVector2 clippingSize);
     };
 }
 

Modified: code/branches/steering/src/orxonox/infos/PlayerInfo.cc
===================================================================
--- code/branches/steering/src/orxonox/infos/PlayerInfo.cc	2009-10-21 14:06:50 UTC (rev 5980)
+++ code/branches/steering/src/orxonox/infos/PlayerInfo.cc	2009-10-21 15:17:05 UTC (rev 5981)
@@ -157,8 +157,10 @@
 
         this->bReadyToSpawn_ &= (!this->bSetUnreadyAfterSpawn_);
 
-        if (this->controller_)
+        if (this->controller_) {
             this->controller_->setControllableEntity(entity);
+            this->controller_->startControl();
+        }
 
         this->changedControllableEntity();
     }
@@ -173,8 +175,10 @@
         this->controllableEntity_ = 0;
         this->controllableEntityID_ = OBJECTID_UNKNOWN;
 
-        if (this->controller_)
+        if (this->controller_) {
             this->controller_->setControllableEntity(0);
+            this->controller_->stopControl();
+        }
 
         entity->removePlayer();
 




More information about the Orxonox-commit mailing list