[Orxonox-commit 3500] r8186 - code/branches/dockingsystem/src/modules/docking
sven at orxonox.net
sven at orxonox.net
Mon Apr 4 15:21:48 CEST 2011
Author: sven
Date: 2011-04-04 15:21:48 +0200 (Mon, 04 Apr 2011)
New Revision: 8186
Modified:
code/branches/dockingsystem/src/modules/docking/Dock.cc
Log:
DockToShip and some fixes
Modified: code/branches/dockingsystem/src/modules/docking/Dock.cc
===================================================================
--- code/branches/dockingsystem/src/modules/docking/Dock.cc 2011-04-04 13:12:49 UTC (rev 8185)
+++ code/branches/dockingsystem/src/modules/docking/Dock.cc 2011-04-04 13:21:48 UTC (rev 8186)
@@ -32,6 +32,8 @@
*/
#include "Dock.h"
+#include "worldentities/pawns/Pawn.h"
+#include "interfaces/PlayerTrigger.h"
namespace orxonox
@@ -73,15 +75,43 @@
//TODO: Handle MultiDistanceTrigger
- //TODO: This way too oversimplified
+ PlayerTrigger* pTrigger = orxonox_cast<PlayerTrigger*>(trigger);
+ Pawn* pawn = NULL;
+
+ // If the trigger is a PlayerTrigger.
+ if(pTrigger != NULL)
+ {
+ if(!pTrigger->isForPlayer()) // The PlayerTrigger is not exclusively for Pawns which means we cannot extract one.
+ return false;
+ else
+ pawn = pTrigger->getTriggeringPlayer();
+ }
+ else
+ return false;
+
+ if(pawn == NULL)
+ {
+ COUT(4) << "Docking: Can't retrieve Pawn from Trigger. (" << trigger->getIdentifier()->getName() << ")" << std::endl;
+ return false;
+ }
+
+ // Extract the PlayerInfo from the Pawn.
+ PlayerInfo* player = pawn->getPlayer();
+
+ if(player == NULL)
+ {
+ COUT(3) << "The PlayerInfo* is NULL." << std::endl;
+ return false;
+ }
+
+ //TODO: This is way too oversimplified
if(bTriggered) {
- DockingEffect::invokeEffect(docking::DOCKING, NULL, effects_);
- DockingEffect::invokeEffect(docking::ATTACH, NULL, effects_);
+ DockingEffect::invokeEffect(docking::DOCKING, player, effects_);
+ DockingEffect::invokeEffect(docking::ATTACH, player, effects_);
} else {
- DockingEffect::invokeEffect(docking::RELEASE, NULL, effects_);
+ DockingEffect::invokeEffect(docking::RELEASE, player, effects_);
}
-
return true;
}
More information about the Orxonox-commit
mailing list