Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

Tools/Player.cpp

Go to the documentation of this file.
00001 /**
00002 * @file Player.cpp
00003 *
00004 * Implementation of class Player.
00005 * 
00006 * @author Martin Lötzsch
00007 */
00008 #ifndef NO_ROBOCUP_CTRL
00009 
00010 #ifdef SIMROBOT
00011 #include "Platform/Win32/RoboCupCtrl2.h"
00012 #else
00013 #ifdef _WIN32
00014 #include "Platform/Win32/RoboCupCtrl.h"
00015 #endif
00016 #endif
00017 
00018 #endif
00019 
00020 #ifdef _WIN32
00021 #ifndef ROBOTREMOTE
00022   #define _WIN32_AND_NOT_ROBOTREMOTE
00023 #endif
00024 #endif
00025 
00026 #ifdef NO_ROBOCUP_CTRL
00027 #include "Platform/GTAssert.h"
00028 #endif
00029 
00030 
00031 #include "Player.h"
00032 #include "Tools/Process.h"
00033 #include "Tools/Debugging/Debugging.h"
00034 
00035 GT_GLOBAL Player* thePlayer;
00036 
00037 void setPlayer(Player* player)
00038 {
00039   thePlayer = player;
00040 }
00041 
00042 Player& getPlayer()
00043 {
00044   return *thePlayer;
00045 }
00046 
00047 Player::Player()
00048 {
00049   theTeamColor = undefinedTeamColor;
00050   thePlayerNumber = undefinedPlayerNumber;
00051 }
00052 
00053 void Player::load()
00054 {
00055 #ifdef _WIN32_AND_NOT_ROBOTREMOTE
00056 #ifndef SIMROBOT
00057   SIM3DOBJECT obj = RoboCupCtrl::getController()->getSimRobotObject();
00058   int index = obj ? obj->ElementName[4] - '1' : 0;
00059 #else
00060   int index = RoboCupCtrl::getController()->getRobotName()[4] - '1';
00061 #endif
00062   if(index < 4)
00063     theTeamColor = red;
00064   else
00065     theTeamColor = blue;
00066   playerNumber number[4] = 
00067   {
00068     one, two, three, four
00069   };
00070   thePlayerNumber = number[index & 3];
00071   strcpy(theTeamName,"sim");
00072   strcat(theTeamName,this->getTeamColorName(theTeamColor));
00073   theGameControllerTeamNumber = theTeamColor == red ? 1 : 0 ;
00074 
00075 #else
00076   InConfigFile file("player.cfg");
00077 
00078   ASSERT(file.exists());
00079   
00080   char buf[50];
00081   file >> buf >> buf;
00082   theTeamColor = getTeamColorFromString(buf);
00083 
00084   file >> buf >> buf;
00085   thePlayerNumber = getPlayerNumberFromString(buf);
00086  
00087   if (!file.eof())
00088   {
00089      file >> buf >> theTeamName; 
00090   }
00091   else
00092   {
00093     strcpy(theTeamName,"Undef-");
00094     strcat(theTeamName,getTeamColorName(theTeamColor));
00095   }
00096     
00097   if (!file.eof())
00098   {
00099     file >> buf >> theGameControllerTeamNumber;
00100   }
00101   else
00102   {
00103     theGameControllerTeamNumber = theTeamColor == red ? 1 : 0 ;
00104   }
00105 #endif
00106 }
00107 
00108 In& operator>>(In& stream,Player& player)
00109 {
00110   stream.read(&player,sizeof(Player));
00111   return stream;
00112 }
00113  
00114 Out& operator<<(Out& stream, const Player& player)
00115 {
00116   stream.write(&player,sizeof(Player));
00117   return stream;
00118 }
00119 

Generated on Mon Mar 20 22:00:07 2006 for GT2005 by doxygen 1.3.6