[Orxonox-commit 4562] r9233 - code/branches/captureTheFlag/src/modules/gametypes

decapitb at orxonox.net decapitb at orxonox.net
Wed May 23 17:58:17 CEST 2012


Author: decapitb
Date: 2012-05-23 17:58:17 +0200 (Wed, 23 May 2012)
New Revision: 9233

Removed:
   code/branches/captureTheFlag/src/modules/gametypes/captureTheFlag.cc
   code/branches/captureTheFlag/src/modules/gametypes/captureTheFlag.h
Log:


Deleted: code/branches/captureTheFlag/src/modules/gametypes/captureTheFlag.cc
===================================================================
--- code/branches/captureTheFlag/src/modules/gametypes/captureTheFlag.cc	2012-05-23 15:56:57 UTC (rev 9232)
+++ code/branches/captureTheFlag/src/modules/gametypes/captureTheFlag.cc	2012-05-23 15:58:17 UTC (rev 9233)
@@ -1,328 +0,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Nino Weingart
- *   Co-authors:
- *      ...
- *
- */
-#include "CaptureTheFlag.h"
-
-#include "core/CoreIncludes.h"
-#include "core/ConfigValueIncludes.h"
-#include "interfaces/TeamColourable.h"
-#include "worldentities/TeamSpawnPoint.h"
-#include "worldentities/pawns/Pawn.h"
-
-namespace orxonox
-{
-    CreateUnloadableFactory(CaptureTheFlag);
-
-    CaptureTheFlag::CaptureTheFlag(BaseObject* creator) : Deathmatch(creator)
-    {
-        RegisterObject(CaptureTheFlag);
-        //flagTeamBlue = new FlagPickup;
-        //flagTeamRed = new FlagPickup;
-
-        this->scoreTimer_.setTimer(10, true, createExecutor(createFunctor(&TeamBaseMatch::winPoints, this)));
-        this->outputTimer_.setTimer(10, true, createExecutor(createFunctor(&TeamBaseMatch::showPoints, this)));
-        
-        this->teams_ = 2;
-        this->pointsTeam1_ = 0;
-        this->pointsTeam2_ = 0;
-
-        this->setConfigValues();
-    }
-
-    void tick(float dt){
-    	if(flagTeamBlue->teamScore_ > pointsTeam1_){
-    		pointsTeam1_ = flagTeamBlue->teamScore_;
-    	}
-    	if(flagTeamRed->teamScore_ > pointsTeam2_){
-    		pointsTeam2_ = flagTeamRed->teamScore_;
-    	}
-    }
-    void CaptureTheFlag::setConfigValues()
-    {
-        SetConfigValue(teams_, 2);
-
-        static ColourValue colours[] =
-        {
-            ColourValue(1.0f, 0.3f, 0.3f),
-            ColourValue(0.3f, 0.3f, 1.0f),
-            ColourValue(0.3f, 1.0f, 0.3f),
-            ColourValue(1.0f, 1.0f, 0.0f)
-        };
-        static std::vector<ColourValue> defaultcolours(colours, colours + sizeof(colours) / sizeof(ColourValue));
-
-        SetConfigValue(teamcolours_, defaultcolours);
-    }
-
-    void CaptureTheFlag::playerEntered(PlayerInfo* player)
-    {
-        Deathmatch::playerEntered(player);
-
-        std::vector<unsigned int> playersperteam(this->teams_, 0);
-
-        for (std::map<PlayerInfo*, int>::iterator it = this->teamnumbers_.begin(); it != this->teamnumbers_.end(); ++it)
-            if (it->second < static_cast<int>(this->teams_) && it->second >= 0)
-                playersperteam[it->second]++;
-
-        unsigned int minplayers = static_cast<unsigned int>(-1);
-        size_t minplayersteam = 0;
-        for (size_t i = 0; i < this->teams_; ++i)
-        {
-            if (playersperteam[i] < minplayers)
-            {
-                minplayers = playersperteam[i];
-                minplayersteam = i;
-            }
-        }
-
-        this->teamnumbers_[player] = minplayersteam;
-    }
-
-    bool CaptureTheFlag::playerLeft(PlayerInfo* player)
-    {
-        bool valid_player = Deathmatch::playerLeft(player);
-
-        if (valid_player)
-            this->teamnumbers_.erase(player);
-
-        return valid_player;
-    }
-
-    bool CaptureTheFlag::allowPawnHit(Pawn* victim, Pawn* originator)
-    {
-        return (!this->pawnsAreInTheSameTeam(victim, originator) || !originator);
-    }
-
-    bool CaptureTheFlag::allowPawnDamage(Pawn* victim, Pawn* originator)
-    {
-        return (!this->pawnsAreInTheSameTeam(victim, originator) || !originator);
-    }
-
-    bool CaptureTheFlag::allowPawnDeath(Pawn* victim, Pawn* originator)
-    {
-        return (!this->pawnsAreInTheSameTeam(victim, originator) || !originator);
-    }
-
-    // collect Points for killing oppenents
-        void TeamBaseMatch::playerScored(PlayerInfo* player)
-        {
-            int teamnr = this->getTeam(player);
-            this->addTeamPoints(teamnr, 5);
-        }
-        
-        
-        // show points or each interval of time
-        void TeamBaseMatch::showPoints()
-        {
-            if (!this->hasStarted() || this->hasEnded())
-                return;
-
-            orxout(message) << "Points standing:" << '\n' << "Team Blue: "<< pointsTeam1_ << '\n' << "Team Red: " << pointsTeam2_ << endl;
-            if(pointsTeam1_ >=1700 && pointsTeam1_ < 2000) orxout(message) << "Team Blue is near victory!" << endl;
-            if(pointsTeam2_ >=1700 && pointsTeam2_ < 2000) orxout(message) << "Team Red is near victory!" << endl;
-        }
-        
-        // end game if one team reaches 2000 points
-        void TeamBaseMatch::endGame()
-        {
-            if (this->pointsTeam1_ >= 2000 || this->pointsTeam2_ >= 2000)
-            {
-                int winningteam = -1;
-
-                if (this->pointsTeam1_ > this->pointsTeam2_)
-                {
-                    orxout(message) << "Team Blue has won the match" << endl;
-                    winningteam = 0;
-                }
-                else
-                {
-                    orxout(message) << "Team Red has won the match" << endl;
-                    winningteam = 1;
-                }
-
-                for (std::map<PlayerInfo*, int>::iterator it = this->teamnumbers_.begin(); it != this->teamnumbers_.end(); ++it)
-                {
-                    if (it->first->getClientID() == NETWORK_PEER_ID_UNKNOWN)
-                        continue;
-
-                    if (it->second == winningteam)
-                        this->gtinfo_->sendAnnounceMessage("You have won the match!", it->first->getClientID());
-                    else
-                        this->gtinfo_->sendAnnounceMessage("You have lost the match!", it->first->getClientID());
-                }
-
-                this->end();
-                this->scoreTimer_.stopTimer();
-                this->outputTimer_.stopTimer();
-            }
-        }
-        
-        // this function is called by the function winPoints() which adds points to the teams for every base and killed openents at a certain time
-        void TeamBaseMatch::addTeamPoints(int team, int points)
-        {
-            if(team == 0)
-            {
-                this->pointsTeam1_ += points;
-            }
-            if(team == 1)
-            {
-                this->pointsTeam2_ += points;
-            }
-
-            this->endGame();
-        }
-
-        int TeamBaseMatch::getTeamPoints(int team)
-        {
-            if(team == 0)
-            {
-                return this->pointsTeam1_;
-            }
-            if(team == 1)
-            {
-                return this->pointsTeam2_;
-            }
-
-            return 0;
-        }
-        
-    SpawnPoint* CaptureTheFlag::getBestSpawnPoint(PlayerInfo* player) const
-    {
-        int desiredTeamNr = -1;
-        std::map<PlayerInfo*, int>::const_iterator it_player = this->teamnumbers_.find(player);
-        if (it_player != this->teamnumbers_.end())
-            desiredTeamNr = it_player->second;
-
-        // Only use spawnpoints of the own team (or non-team-spawnpoints)
-        std::set<SpawnPoint*> teamSpawnPoints = this->spawnpoints_;
-        for (std::set<SpawnPoint*>::iterator it = teamSpawnPoints.begin(); it != teamSpawnPoints.end(); )
-        {
-            if ((*it)->isA(Class(TeamSpawnPoint)))
-            {
-                TeamSpawnPoint* tsp = orxonox_cast<TeamSpawnPoint*>(*it);
-                if (tsp && static_cast<int>(tsp->getTeamNumber()) != desiredTeamNr)
-                {
-                    teamSpawnPoints.erase(it++);
-                    continue;
-                }
-            }
-
-            ++it;
-        }
-
-        SpawnPoint* fallbackSpawnPoint = NULL;
-        if (teamSpawnPoints.size() > 0)
-        {
-            unsigned int randomspawn = static_cast<unsigned int>(rnd(static_cast<float>(teamSpawnPoints.size())));
-            unsigned int index = 0;
-            // Get random fallback spawnpoint in case there is no active SpawnPoint.
-            for (std::set<SpawnPoint*>::const_iterator it = teamSpawnPoints.begin(); it != teamSpawnPoints.end(); ++it)
-            {
-                if (index == randomspawn)
-                {
-                    fallbackSpawnPoint = (*it);
-                    break;
-                }
-
-                ++index;
-            }
-
-            // Remove all inactive SpawnPoints from the list.
-            for (std::set<SpawnPoint*>::iterator it = teamSpawnPoints.begin(); it != teamSpawnPoints.end(); )
-            {
-                if(!(*it)->isActive())
-                {
-                    teamSpawnPoints.erase(it++);
-                    continue;
-                }
-
-                ++it;
-            }
-
-            randomspawn = static_cast<unsigned int>(rnd(static_cast<float>(teamSpawnPoints.size())));
-            index = 0;
-            for (std::set<SpawnPoint*>::const_iterator it = teamSpawnPoints.begin(); it != teamSpawnPoints.end(); ++it)
-            {
-                if (index == randomspawn)
-                    return (*it);
-
-                ++index;
-            }
-
-            return fallbackSpawnPoint;
-        }
-
-        return 0;
-    }
-
-    void CaptureTheFlag::playerStartsControllingPawn(PlayerInfo* player, Pawn* pawn)
-    {
-        if (!player)
-            return;
-
-        // Set the team colour
-        std::map<PlayerInfo*, int>::const_iterator it_player = this->teamnumbers_.find(player);
-        if (it_player != this->teamnumbers_.end() && it_player->second >= 0 && it_player->second < static_cast<int>(this->teamcolours_.size()))
-        {
-            if (pawn)
-            {
-                pawn->setRadarObjectColour(this->teamcolours_[it_player->second]);
-
-                std::set<WorldEntity*> pawnAttachments = pawn->getAttachedObjects();
-                for (std::set<WorldEntity*>::iterator it = pawnAttachments.begin(); it != pawnAttachments.end(); ++it)
-                {
-                    if ((*it)->isA(Class(TeamColourable)))
-                    {
-                        TeamColourable* tc = orxonox_cast<TeamColourable*>(*it);
-                        tc->setTeamColour(this->teamcolours_[it_player->second]);
-                    }
-                }
-            }
-        }
-    }
-
-    bool CaptureTheFlag::pawnsAreInTheSameTeam(Pawn* pawn1, Pawn* pawn2)
-    {
-        if (pawn1 && pawn2)
-        {
-            std::map<PlayerInfo*, int>::const_iterator it1 = this->teamnumbers_.find(pawn1->getPlayer());
-            std::map<PlayerInfo*, int>::const_iterator it2 = this->teamnumbers_.find(pawn2->getPlayer());
-
-            if (it1 != this->teamnumbers_.end() && it2 != this->teamnumbers_.end())
-                return (it1->second == it2->second);
-        }
-        return false;
-    }
-
-    int CaptureTheFlag::getTeam(PlayerInfo* player)
-    {
-        std::map<PlayerInfo*, int>::const_iterator it_player = this->teamnumbers_.find(player);
-        if (it_player != this->teamnumbers_.end())
-            return it_player->second;
-        else
-            return -1;
-    }
-}

Deleted: code/branches/captureTheFlag/src/modules/gametypes/captureTheFlag.h
===================================================================
--- code/branches/captureTheFlag/src/modules/gametypes/captureTheFlag.h	2012-05-23 15:56:57 UTC (rev 9232)
+++ code/branches/captureTheFlag/src/modules/gametypes/captureTheFlag.h	2012-05-23 15:58:17 UTC (rev 9233)
@@ -1,89 +0,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Nino Weingart
- *   Co-authors:
- *      ...
- *
- */
-
-#ifndef _CaptureTheFlag__
-#define _CaptureTheFlag__
-
-#include "OrxonoxPrereqs.h"
-#include "FlagPickup.h"
-#include <set>
-#include "tools/Timer.h"
-#include "Gametype.h"
-
-
-namespace orxonox
-{
-    class _OrxonoxExport CaptureTheFlag : public Gametype
-    {
-    public:
-    	CaptureTheFlag(BaseObject* creator);
-                virtual ~CaptureTheFlag() {}
-
-                void tick(float dt);
-
-                void setConfigValues();
-
-                virtual void playerEntered(PlayerInfo* player);
-                virtual bool playerLeft(PlayerInfo* player);
-
-                virtual bool allowPawnHit(Pawn* victim, Pawn* originator = 0);
-                virtual bool allowPawnDamage(Pawn* victim, Pawn* originator = 0);
-                virtual bool allowPawnDeath(Pawn* victim, Pawn* originator = 0);
-
-                virtual void playerScored(PlayerInfo* player);
-                virtual void showPoints();
-                virtual void endGame();
-
-                void addTeamPoints(int team, int points);
-                int getTeamPoints(int team);
-
-                virtual void playerStartsControllingPawn(PlayerInfo* player, Pawn* pawn);
-
-                int getTeam(PlayerInfo* player);
-                inline const ColourValue& getTeamColour(int teamnr) const
-                    { return this->teamcolours_[teamnr]; }
-
-            protected:
-                virtual SpawnPoint* getBestSpawnPoint(PlayerInfo* player) const;
-                bool pawnsAreInTheSameTeam(Pawn* pawn1, Pawn* pawn2);
-
-                std::map<PlayerInfo*, int> teamnumbers_;
-                std::vector<ColourValue> teamcolours_;
-                unsigned int teams_;
-
-                FlagPickup* flagTeamBlue;
-                FlagPickup* flagTeamRed;
-                //points for each team
-                int pointsTeam1_;
-                int pointsTeam2_;
-
-    };
-}
-
-#endif /* _CaptureTheFlag_H__ */
-




More information about the Orxonox-commit mailing list