[prev in list] [next in list] [prev in thread] [next in thread]
List: bzflag-commits
Subject: SF.net SVN: bzflag: [16642] trunk/bzflag
From: JeffM2501 () users ! sourceforge ! net
Date: 2008-02-25 3:37:09
Message-ID: E1JTU9N-0006tO-7L () sc8-pr-svn2 ! sourceforge ! net
[Download RAW message or body]
Revision: 16642
http://bzflag.svn.sourceforge.net/bzflag/?rev=16642&view=rev
Author: JeffM2501
Date: 2008-02-24 19:37:08 -0800 (Sun, 24 Feb 2008)
Log Message:
-----------
Add API calls to get players by callsign and bzid search ( inspired by patch 1901120 \
). refactor API to use a utils to init API player records from internal records.
Modified Paths:
--------------
trunk/bzflag/include/bzfsAPI.h
trunk/bzflag/src/bzfs/bzfsAPI.cxx
Modified: trunk/bzflag/include/bzfsAPI.h
===================================================================
--- trunk/bzflag/include/bzfsAPI.h 2008-02-24 21:39:25 UTC (rev 16641)
+++ trunk/bzflag/include/bzfsAPI.h 2008-02-25 03:37:08 UTC (rev 16642)
@@ -1353,6 +1353,8 @@
BZF_API bool bz_getPlayerIndexList ( bz_APIIntList *playerList );
BZF_API bz_APIIntList *bz_getPlayerIndexList ( void );
BZF_API bz_BasePlayerRecord *bz_getPlayerByIndex ( int index );
+BZF_API bz_BasePlayerRecord *bz_getPlayerByCallsign( const char* name );
+BZF_API bz_BasePlayerRecord *bz_getPlayerByBZID ( int BZID );
BZF_API bool bz_updatePlayerData ( bz_BasePlayerRecord *playerRecord );
BZF_API bool bz_hasPerm ( int playerID, const char* perm );
BZF_API bool bz_grantPerm ( int playerID, const char* perm );
Modified: trunk/bzflag/src/bzfs/bzfsAPI.cxx
===================================================================
--- trunk/bzflag/src/bzfs/bzfsAPI.cxx 2008-02-24 21:39:25 UTC (rev 16641)
+++ trunk/bzflag/src/bzfs/bzfsAPI.cxx 2008-02-25 03:37:08 UTC (rev 16642)
@@ -1464,20 +1464,19 @@
return playerList;
}
-//-------------------------------------------------------------------------
-
-BZF_API bz_BasePlayerRecord *bz_getPlayerByIndex(int index)
+bz_BasePlayerRecord *APIPlayerFromRecord ( GameKeeper::Player *player )
{
- GameKeeper::Player *player=GameKeeper::Player::getPlayerByIndex(index);
+ if (!player)
+ return NULL;
bz_BasePlayerRecord *playerRecord=new bz_BasePlayerRecord;
- if(!player || !playerRecord)
+ if (!playerRecord)
return NULL;
playerRecord->callsign=player->player.getCallSign();
playerRecord->email=player->player.getEMail();
- playerRecord->playerID=index;
+ playerRecord->playerID=player->getIndex();
playerRecord->bzID=player->getBzIdentifier();
playerRecord->team=convertTeam(player->player.getTeam());
@@ -1492,6 +1491,52 @@
//-------------------------------------------------------------------------
+BZF_API bz_BasePlayerRecord *bz_getPlayerByIndex(int index)
+{
+ return APIPlayerFromRecord(GameKeeper::Player::getPlayerByIndex(index));
+}
+
+//-------------------------------------------------------------------------
+
+BZF_API bz_BasePlayerRecord *bz_getPlayerByCallsign(const char* callsign)
+{
+ if (!callsign)
+ return NULL;
+
+ std::string upperName = TextUtils::toupper(std::string(callsign));
+
+ for (int i = 0; i < curMaxPlayers; i++)
+ {
+ GameKeeper::Player *p = GameKeeper::Player::getPlayerByIndex(i);
+ if ((p == NULL))
+ continue;
+
+ if (upperName == TextUtils::toupper(std::string(p->player.getCallSign())) )
+ return APIPlayerFromRecord(p);
+ }
+
+ return NULL;
+}
+
+//-------------------------------------------------------------------------
+
+BZF_API bz_BasePlayerRecord * bz_getPlayerByBZID ( int BZID )
+{
+ for (int i = 0; i < curMaxPlayers; i++)
+ {
+ GameKeeper::Player *p = GameKeeper::Player::getPlayerByIndex(i);
+ if ((p == NULL))
+ continue;
+
+ if (BZID == atoi(p->getBzIdentifier().c_str()))
+ return APIPlayerFromRecord(p);
+ }
+
+ return NULL;
+}
+
+//-------------------------------------------------------------------------
+
BZF_API bool bz_freePlayerRecord(bz_BasePlayerRecord *playerRecord)
{
if(playerRecord)
This was sent by the SourceForge.net collaborative development platform, the world's \
largest Open Source development site.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
BZFlag-commits mailing list
BZFlag-commits@lists.SourceForge.net
https://lists.SourceForge.net/lists/listinfo/bzflag-commits
irc: #BZFlag @ irc.freenode.net
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic