[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