Changeset ce2bb87 in network-game for common


Ignore:
Timestamp:
Dec 20, 2013, 3:42:30 AM (11 years ago)
Author:
dportnoy <dmp1488@…>
Branches:
master
Children:
b73bc28
Parents:
6c9bcdd
Message:

A player can pick up an opponent's flag in an individual game

Location:
common
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • common/Game.cpp

    r6c9bcdd rce2bb87  
    11#include "Game.h"
     2
     3#include "Common.h"
    24
    35using namespace std;
     
    112114}
    113115
     116// returns the id of the picked-up flag or -1 if none was picked up
     117int Game::processFlagPickupRequest(Player* p) {
     118   vector<WorldMap::Object>* vctObjects = this->worldMap->getObjects();
     119   vector<WorldMap::Object>::iterator it;
     120   int playerId = -1;
     121
     122   for (it = vctObjects->begin(); it != vctObjects->end(); it++) {
     123      if (posDistance(p->pos, it->pos.toFloat()) < 10) {
     124         switch (it->type) {
     125            case WorldMap::OBJECT_BLUE_FLAG:
     126               if (p->team == 1) {
     127                  p->hasBlueFlag = true;
     128                  playerId = it->id;
     129               }
     130               break;
     131            case WorldMap::OBJECT_RED_FLAG:
     132               if (p->team == 0) {
     133                  p->hasRedFlag = true;
     134                  playerId = it->id;
     135               }
     136               break;
     137         }
     138
     139         if (playerId > -1) {
     140            vctObjects->erase(it);
     141            return playerId;
     142         }
     143      }
     144   }
     145
     146   return playerId;
     147}
     148
    114149void Game::setRedScore(int score) {
    115150   this->redScore = score;
  • common/Game.h

    r6c9bcdd rce2bb87  
    4343   bool startPlayerMovement(unsigned int id, int x, int y);
    4444   bool processPlayerMovement(Player* p, FLOAT_POSITION oldPos);
     45   int processFlagPickupRequest(Player* p);
    4546
    4647   void setBlueScore(int score);
Note: See TracChangeset for help on using the changeset viewer.