summaryrefslogtreecommitdiffstats
path: root/source/Concept/Framework/modules/logic
diff options
context:
space:
mode:
authorsicarius <devnull@localhost>2007-02-22 22:22:02 +0100
committersicarius <devnull@localhost>2007-02-22 22:22:02 +0100
commitd8e83400c8780fdd04018cd2f59313a3e4533d71 (patch)
treeef4f81bc5b8286b9ef759b2063de60abefdaa1f9 /source/Concept/Framework/modules/logic
parentf544ab78229d3a4d54b910135ba61bb816009589 (diff)
downloadrc2007-soccer-d8e83400c8780fdd04018cd2f59313a3e4533d71.tar
rc2007-soccer-d8e83400c8780fdd04018cd2f59313a3e4533d71.zip
Codestuff
Diffstat (limited to 'source/Concept/Framework/modules/logic')
-rwxr-xr-xsource/Concept/Framework/modules/logic/logic.c43
-rwxr-xr-xsource/Concept/Framework/modules/logic/logic.h58
2 files changed, 101 insertions, 0 deletions
diff --git a/source/Concept/Framework/modules/logic/logic.c b/source/Concept/Framework/modules/logic/logic.c
new file mode 100755
index 0000000..00599d8
--- /dev/null
+++ b/source/Concept/Framework/modules/logic/logic.c
@@ -0,0 +1,43 @@
+#include "logic.h"
+
+//-----------------------------------------------------------------------------
+void Logic::OnBallOwned()
+{
+ Wireless* ourWireless = parent->GetModule<Wireless>(IO_WIRELESS_MAIN);
+
+ //ourWireless->Send(WIRELESS_CODE);
+ //ourWireless->Send();
+}
+
+//-----------------------------------------------------------------------------
+void Logic::OnBallLost()
+{
+ Wireless* ourWireless = parent->GetModule<Wireless>(IO_WIRELESS_MAIN);
+
+ //ourWireless->Send(WIRELESS_CODE);
+ //ourWireless->Send();
+}
+
+//-----------------------------------------------------------------------------
+void Logic::Update()
+{
+ // We want to use a navigator
+ Navigator* ourNavigator = parent->GetModule<Navigator>(IO_NAVIGATOR_MAIN);
+
+ // is Keeper?
+ if(isKeeper) {
+ // turn around al little bit...
+ if((status == STATUS_KEEPER_TURN_LEFT && ourNavigator->AngleReached()) ||
+ (status != STATUS_KEEPER_TURN_LEFT && status != STATUS_KEEPER_TURN_RIGHT)) {
+ status = STATUS_KEEPER_TURN_RIGHT;
+ ourNavigator->RotateTo(315,200);
+ }
+ else if(status == STATUS_KEEPER_TURN_RIGHT && ourNavigator->AngleReached()) {
+ status = STATUS_KEEPER_TURN_LEFT;
+ ourNavigator->RotateTo(45, 200);
+ }
+ }
+ else { // is Player?
+
+ }
+}
diff --git a/source/Concept/Framework/modules/logic/logic.h b/source/Concept/Framework/modules/logic/logic.h
new file mode 100755
index 0000000..296956b
--- /dev/null
+++ b/source/Concept/Framework/modules/logic/logic.h
@@ -0,0 +1,58 @@
+#ifndef _LOGIC_H
+#define _LOGIC_H
+
+#include "../../stdafx.h"
+
+#define STATUS_KEEPER_TURN_RIGHT 1
+#define STATUS_KEEPER_TURN_LEFT 2
+
+class Logic : public IO_Module
+{
+public:
+ Logic()
+ {
+ this->parent = NULL;
+ this->moduleId = 0;
+ this->isKeeper = false;
+ this->status = 0;
+ }
+
+ Logic(uint32 logicId)
+ {
+ this->parent = NULL;
+ this->moduleId = logicId;
+ this->isKeeper = false;
+ this->status = 0;
+ }
+
+protected:
+ bool isKeeper;
+ uint8 status;
+
+ void OnBallOwned();
+ void OnBallLost();
+
+public:
+ void Update();
+
+ bool IsKeeper()
+ {
+ return isKeeper;
+ }
+
+ bool IsAttacker()
+ {
+ return !isKeeper;
+ }
+
+ void SetKeeper(bool newStatus) {
+ this->isKeeper = newStatus;
+ }
+
+ bool HasBall()
+ {
+ //fill me!
+ }
+};
+
+#endif