|
From: <sgv...@us...> - 2010-05-19 16:21:34
|
Revision: 202
http://simspark.svn.sourceforge.net/simspark/?rev=202&view=rev
Author: sgvandijk
Date: 2010-05-19 16:21:28 +0000 (Wed, 19 May 2010)
Log Message:
-----------
- Select player based on uniform number
Modified Paths:
--------------
branches/agentselection/rcssserver3d/plugin/soccer/trainercommandparser/trainercommandparser.cpp
branches/agentselection/rcssserver3d/plugin/soccermonitor/soccerinput.cpp
branches/agentselection/rcssserver3d/plugin/soccermonitor/soccerinput.h
branches/agentselection/rcssserver3d/rcssmonitor3d/soccerbindings.rb
Modified: branches/agentselection/rcssserver3d/plugin/soccer/trainercommandparser/trainercommandparser.cpp
===================================================================
--- branches/agentselection/rcssserver3d/plugin/soccer/trainercommandparser/trainercommandparser.cpp 2010-05-19 14:58:17 UTC (rev 201)
+++ branches/agentselection/rcssserver3d/plugin/soccer/trainercommandparser/trainercommandparser.cpp 2010-05-19 16:21:28 UTC (rev 202)
@@ -567,6 +567,7 @@
return;
}
+ soccerRuleAspect->ResetAgentSelection();
(*iter)->Select();
}
Modified: branches/agentselection/rcssserver3d/plugin/soccermonitor/soccerinput.cpp
===================================================================
--- branches/agentselection/rcssserver3d/plugin/soccermonitor/soccerinput.cpp 2010-05-19 14:58:17 UTC (rev 201)
+++ branches/agentselection/rcssserver3d/plugin/soccermonitor/soccerinput.cpp 2010-05-19 16:21:28 UTC (rev 202)
@@ -57,10 +57,20 @@
scriptServer->CreateVariable("Command.CameraRightCorner", CmdCameraRightCorner);
scriptServer->CreateVariable("Command.CameraRightGoal", CmdCameraRightGoal);
//JAN
- scriptServer->CreateVariable("Command.FreeKickLeft", CmdFreeKickLeft);
- scriptServer->CreateVariable("Command.FreeKickRight", CmdFreeKickRight);
+ scriptServer->CreateVariable("Command.One", CmdOne);
+ scriptServer->CreateVariable("Command.Two", CmdTwo);
+ scriptServer->CreateVariable("Command.Three", CmdThree);
+ scriptServer->CreateVariable("Command.Four", CmdFour);
+ scriptServer->CreateVariable("Command.Five", CmdFive);
+ scriptServer->CreateVariable("Command.Six", CmdSix);
+ scriptServer->CreateVariable("Command.Seven", CmdSeven);
+ scriptServer->CreateVariable("Command.Eight", CmdEight);
+ scriptServer->CreateVariable("Command.Nine", CmdNine);
+ scriptServer->CreateVariable("Command.Zero", CmdZero);
+ scriptServer->CreateVariable("Command.Left", CmdLeft);
+ scriptServer->CreateVariable("Command.Right", CmdRight);
- scriptServer->CreateVariable("Command.NextMode", CmdNextMode);
+ scriptServer->CreateVariable("Command.PlayerSelectMode", CmdPlayerSelectMode);
scriptServer->CreateVariable("Command.SelectNextAgent", CmdSelectNextAgent);
scriptServer->CreateVariable("Command.ResetSelection", CmdResetSelection);
scriptServer->CreateVariable("Command.KillSelection", CmdKillSelection);
@@ -114,31 +124,15 @@
void SoccerInput::ProcessInput(const Input& input)
{
- // get list of registered SoccerMonitor objects
- TLeafList soccerMonitorList;
- mMonitorClient->ListChildrenSupportingClass<SoccerMonitor>(soccerMonitorList);
-
- if (soccerMonitorList.empty())
- {
- GetLog()->Error()
- << "ERROR: (SoccerInput) Unable to get SoccerMonitor\n";
- return;
- }
-
- boost::shared_ptr<SoccerMonitor> soccerMonitor =
- shared_static_cast<SoccerMonitor>(soccerMonitorList.front());
-
switch (input.mId)
{
default:
return;
- case CmdNextMode:
+ case CmdPlayerSelectMode:
if (input.GetKeyPress())
{
- mCmdMode = (ECmdMode)(mCmdMode + 1);
- if (mCmdMode == CmdModeNone)
- mCmdMode = CmdModeDefault;
+ mCmdMode = CmdModePlayerSelect;
}
break;
@@ -200,87 +194,136 @@
//SendCommand("(ball (pos -42.0 0.0 0.3))");
}
break;
- case CmdCameraLeftGoal:
+
+ case CmdOne:
+ case CmdTwo:
+ case CmdThree:
+ case CmdFour:
+ case CmdFive:
+ case CmdSix:
+ case CmdSeven:
+ case CmdEight:
+ case CmdNine:
+ case CmdZero:
if (input.GetKeyPress())
{
- salt::Vector2f fieldSize = soccerMonitor->GetFieldSize();
- salt::Vector3f pos(-fieldSize.x()*0.8, 0.0, fieldSize.x()*0.4);
- mCameraBody->SetPosition(pos);
- mFPS->SetHAngleDeg(90);
- mFPS->SetVAngleDeg(35);
+ if (mCmdMode == CmdModeDefault)
+ SelectCamera(input.mId - CmdOne);
+ else
+ {
+ ostringstream u_ss;
+ u_ss << "(select (unum " << (input.mId - CmdOne + 1) << ") ";
+ if (mCmdMode == CmdModeLeftPlayerSelect)
+ {
+ u_ss << "(team Left))";
+ SendCommand(u_ss.str());
+ mCmdMode = CmdModeDefault;
+ }
+ else if (mCmdMode == CmdModeRightPlayerSelect)
+ {
+ u_ss << "(team Right))";
+ SendCommand(u_ss.str());
+ mCmdMode = CmdModeDefault;
+ }
+ }
}
break;
- case CmdCameraLeftCorner:
+ case CmdLeft:
if (input.GetKeyPress())
{
- salt::Vector2f fieldSize = soccerMonitor->GetFieldSize();
- salt::Vector3f pos(-fieldSize.x()*0.8, -fieldSize.y(), fieldSize.x()*0.4);
- mCameraBody->SetPosition(pos);
- mFPS->SetHAngleDeg(50);
- mFPS->SetVAngleDeg(30);
+ if (mCmdMode == CmdModeDefault)
+ SendCommand("(playMode free_kick_left)");
+ else if (mCmdMode == CmdModePlayerSelect || mCmdMode == CmdModeRightPlayerSelect)
+ mCmdMode = CmdModeLeftPlayerSelect;
}
break;
- case CmdCameraMiddleLeft:
+ case CmdRight:
if (input.GetKeyPress())
{
- salt::Vector2f fieldSize = soccerMonitor->GetFieldSize();
- salt::Vector3f pos(0, -fieldSize.y(), fieldSize.x()*0.4);
- mCameraBody->SetPosition(pos);
- mFPS->SetHAngleDeg(salt::gRadToDeg(-0.625));
- mFPS->SetVAngleDeg(40);
+ if (mCmdMode == CmdModeDefault)
+ SendCommand("(playMode free_kick_right)");
+ else if (mCmdMode == CmdModePlayerSelect || mCmdMode == CmdModeLeftPlayerSelect)
+ mCmdMode = CmdModeRightPlayerSelect;
}
break;
- case CmdCameraMiddleRight:
- if (input.GetKeyPress())
- {
- salt::Vector2f fieldSize = soccerMonitor->GetFieldSize();
- salt::Vector3f pos(0, -fieldSize.y(), fieldSize.x()*0.4);
- mCameraBody->SetPosition(pos);
- mFPS->SetHAngleDeg(salt::gRadToDeg(0.625));
- mFPS->SetVAngleDeg(40);
- }
+ };
+}
+
+void SoccerInput::SelectCamera(int idx)
+{
+ // get list of registered SoccerMonitor objects
+ TLeafList soccerMonitorList;
+ mMonitorClient->ListChildrenSupportingClass<SoccerMonitor>(soccerMonitorList);
+
+ if (soccerMonitorList.empty())
+ {
+ GetLog()->Error()
+ << "ERROR: (SoccerInput) Unable to get SoccerMonitor\n";
+ return;
+ }
+
+ boost::shared_ptr<SoccerMonitor> soccerMonitor =
+ shared_static_cast<SoccerMonitor>(soccerMonitorList.front());
+
+ salt::Vector2f fieldSize = soccerMonitor->GetFieldSize();
+
+ switch (idx)
+ {
+ case 0:
+ {
+ salt::Vector3f pos(-fieldSize.x()*0.8, 0.0, fieldSize.x()*0.4);
+ mCameraBody->SetPosition(pos);
+ mFPS->SetHAngleDeg(90);
+ mFPS->SetVAngleDeg(35);
+ }
break;
- case CmdCameraMiddle:
- if (input.GetKeyPress())
- {
- salt::Vector2f fieldSize = soccerMonitor->GetFieldSize();
- salt::Vector3f pos(0, -fieldSize.y()*1.1, fieldSize.x()*0.6);
- mCameraBody->SetPosition(pos);
- mFPS->SetHAngleDeg(0);
- mFPS->SetVAngleDeg(45);
- }
+ case 1:
+ {
+ salt::Vector3f pos(-fieldSize.x()*0.8, -fieldSize.y(), fieldSize.x()*0.4);
+ mCameraBody->SetPosition(pos);
+ mFPS->SetHAngleDeg(50);
+ mFPS->SetVAngleDeg(30);
+ }
break;
- case CmdCameraRightCorner:
- if (input.GetKeyPress())
- {
- salt::Vector2f fieldSize = soccerMonitor->GetFieldSize();
- salt::Vector3f pos(fieldSize.x()*0.8, -fieldSize.y(), fieldSize.x()*0.4);
- mCameraBody->SetPosition(pos);
- mFPS->SetHAngleDeg(-50);
- mFPS->SetVAngleDeg(30);
- }
+ case 2:
+ {
+ salt::Vector3f pos(0, -fieldSize.y(), fieldSize.x()*0.4);
+ mCameraBody->SetPosition(pos);
+ mFPS->SetHAngleDeg(salt::gRadToDeg(-0.625));
+ mFPS->SetVAngleDeg(40);
+ }
break;
- case CmdCameraRightGoal:
- if (input.GetKeyPress())
- {
- salt::Vector2f fieldSize = soccerMonitor->GetFieldSize();
- salt::Vector3f pos(fieldSize.x()*0.8, 0.0, fieldSize.x()*0.4);
- mCameraBody->SetPosition(pos);
- mFPS->SetHAngleDeg(-90);
- mFPS->SetVAngleDeg(35);
- }
+ case 3:
+ {
+ salt::Vector3f pos(0, -fieldSize.y()*1.1, fieldSize.x()*0.6);
+ mCameraBody->SetPosition(pos);
+ mFPS->SetHAngleDeg(0);
+ mFPS->SetVAngleDeg(45);
+ }
break;
- case CmdFreeKickLeft:
- if (input.GetKeyPress())
- {
- SendCommand("(playMode free_kick_left)");
- }
+ case 4:
+ {
+ salt::Vector3f pos(0, -fieldSize.y(), fieldSize.x()*0.4);
+ mCameraBody->SetPosition(pos);
+ mFPS->SetHAngleDeg(salt::gRadToDeg(0.625));
+ mFPS->SetVAngleDeg(40);
+ }
break;
- case CmdFreeKickRight:
- if (input.GetKeyPress())
- {
- SendCommand("(playMode free_kick_right)");
- }
+ case 5:
+ {
+ salt::Vector3f pos(fieldSize.x()*0.8, -fieldSize.y(), fieldSize.x()*0.4);
+ mCameraBody->SetPosition(pos);
+ mFPS->SetHAngleDeg(-50);
+ mFPS->SetVAngleDeg(30);
+ }
break;
- };
+ case 6:
+ {
+ salt::Vector3f pos(fieldSize.x()*0.8, 0.0, fieldSize.x()*0.4);
+ mCameraBody->SetPosition(pos);
+ mFPS->SetHAngleDeg(-90);
+ mFPS->SetVAngleDeg(35);
+ }
+ break;
+ }
}
Modified: branches/agentselection/rcssserver3d/plugin/soccermonitor/soccerinput.h
===================================================================
--- branches/agentselection/rcssserver3d/plugin/soccermonitor/soccerinput.h 2010-05-19 14:58:17 UTC (rev 201)
+++ branches/agentselection/rcssserver3d/plugin/soccermonitor/soccerinput.h 2010-05-19 16:21:28 UTC (rev 202)
@@ -49,12 +49,24 @@
CmdCameraMiddle = CmdCameraMiddleRight + 1,
CmdCameraRightCorner = CmdCameraMiddle + 1,
CmdCameraRightGoal = CmdCameraRightCorner + 1,
+
+ CmdOne = CmdCameraRightGoal + 1,
+ CmdTwo = CmdOne + 1,
+ CmdThree = CmdTwo + 1,
+ CmdFour = CmdThree + 1,
+ CmdFive = CmdFour + 1,
+ CmdSix = CmdFive + 1,
+ CmdSeven = CmdSix + 1,
+ CmdEight = CmdSeven + 1,
+ CmdNine = CmdEight + 1,
+ CmdZero = CmdNine + 1,
+
//JAN
- CmdFreeKickLeft = CmdCameraRightGoal + 1,
- CmdFreeKickRight = CmdFreeKickLeft + 1,
+ CmdLeft = CmdZero + 1,
+ CmdRight = CmdLeft + 1,
- CmdNextMode = CmdFreeKickRight + 1,
- CmdSelectNextAgent = CmdNextMode + 1,
+ CmdPlayerSelectMode = CmdRight + 1,
+ CmdSelectNextAgent = CmdPlayerSelectMode + 1,
CmdResetSelection = CmdSelectNextAgent + 1,
CmdKillSelection = CmdResetSelection + 1
};
@@ -63,6 +75,8 @@
{
CmdModeDefault = 1,
CmdModePlayerSelect,
+ CmdModeLeftPlayerSelect,
+ CmdModeRightPlayerSelect,
CmdModeNone
};
@@ -88,6 +102,7 @@
protected:
void SendCommand(const std::string& cmd);
+ void SelectCamera(int idx);
protected:
/** cached reference to the monitor client */
boost::shared_ptr<oxygen::NetClient> mMonitorClient;
Modified: branches/agentselection/rcssserver3d/rcssmonitor3d/soccerbindings.rb
===================================================================
--- branches/agentselection/rcssserver3d/rcssmonitor3d/soccerbindings.rb 2010-05-19 14:58:17 UTC (rev 201)
+++ branches/agentselection/rcssserver3d/rcssmonitor3d/soccerbindings.rb 2010-05-19 16:21:28 UTC (rev 202)
@@ -30,16 +30,28 @@
inputServer.bindCommand('m', Command.MoveAgent);
#inputServer.bindCommand('n', Command.ShootBall);
#inputServer.bindCommand('x', Command.MoveBall);
- inputServer.bindCommand('1', Command.CameraLeftGoal);
- inputServer.bindCommand('2', Command.CameraLeftCorner);
- inputServer.bindCommand('3', Command.CameraMiddleLeft);
- inputServer.bindCommand('4', Command.CameraMiddle);
- inputServer.bindCommand('5', Command.CameraMiddleRight);
- inputServer.bindCommand('6', Command.CameraRightCorner);
- inputServer.bindCommand('7', Command.CameraRightGoal);
- inputServer.bindCommand('l', Command.FreeKickLeft);
- inputServer.bindCommand('r', Command.FreeKickRight);
- inputServer.bindCommand('lctrl y', Command.NextMode);
+
+ #inputServer.bindCommand('1', Command.CameraLeftGoal);
+ #inputServer.bindCommand('2', Command.CameraLeftCorner);
+ #inputServer.bindCommand('3', Command.CameraMiddleLeft);
+ #inputServer.bindCommand('4', Command.CameraMiddle);
+ #inputServer.bindCommand('5', Command.CameraMiddleRight);
+ #inputServer.bindCommand('6', Command.CameraRightCorner);
+ #inputServer.bindCommand('7', Command.CameraRightGoal);
+ inputServer.bindCommand('1', Command.One);
+ inputServer.bindCommand('2', Command.Two);
+ inputServer.bindCommand('3', Command.Three);
+ inputServer.bindCommand('4', Command.Four);
+ inputServer.bindCommand('5', Command.Five);
+ inputServer.bindCommand('6', Command.Six);
+ inputServer.bindCommand('7', Command.Seven);
+ inputServer.bindCommand('8', Command.Eight);
+ inputServer.bindCommand('9', Command.Nine);
+ inputServer.bindCommand('0', Command.Zero);
+
+ inputServer.bindCommand('l', Command.Left);
+ inputServer.bindCommand('r', Command.Right);
+ inputServer.bindCommand('lctrl s', Command.PlayerSelectMode);
inputServer.bindCommand('n', Command.SelectNextAgent);
inputServer.bindCommand('e', Command.ResetSelection);
inputServer.bindCommand('x', Command.KillSelection);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|