Changeset 9967 for code/trunk/src/modules/gametypes/SpaceRaceController.cc
- Timestamp:
- Jan 3, 2014, 10:14:03 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/trunk/src/modules/gametypes/SpaceRaceController.cc
r9965 r9967 149 149 * returns a vector of static Point (checkpoints the spaceship has to reach) 150 150 */ 151 std::vector<RaceCheckPoint*> SpaceRaceController::findStaticCheckpoints( std::vector<RaceCheckPoint*>allCheckpoints)152 { 153 std::map<RaceCheckPoint*, int> * zaehler = new std::map<RaceCheckPoint*, int>(); // counts how many times the checkpoint was reached (for simulation)151 std::vector<RaceCheckPoint*> SpaceRaceController::findStaticCheckpoints(const std::vector<RaceCheckPoint*>& allCheckpoints) 152 { 153 std::map<RaceCheckPoint*, int> zaehler; // counts how many times the checkpoint was reached (for simulation) 154 154 for (unsigned int i = 0; i < allCheckpoints.size(); i++) 155 155 { 156 zaehler ->insert(std::pair<RaceCheckPoint*, int>(allCheckpoints[i],0));157 } 158 int maxWays = rekSimulationCheckpointsReached(zaehler ->begin()->first, zaehler);156 zaehler.insert(std::pair<RaceCheckPoint*, int>(allCheckpoints[i],0)); 157 } 158 int maxWays = rekSimulationCheckpointsReached(zaehler.begin()->first, zaehler); 159 159 160 160 std::vector<RaceCheckPoint*> returnVec; 161 161 returnVec.clear(); 162 for (std::map<RaceCheckPoint*, int>::iterator iter = zaehler ->begin(); iter != zaehler->end(); iter++)162 for (std::map<RaceCheckPoint*, int>::iterator iter = zaehler.begin(); iter != zaehler.end(); iter++) 163 163 { 164 164 if (iter->second == maxWays) … … 168 168 } 169 169 } 170 delete zaehler;171 170 return returnVec; 172 171 } … … 176 175 * return how many ways go from the given Checkpoint to the last Checkpoint (of the Game) 177 176 */ 178 int SpaceRaceController::rekSimulationCheckpointsReached(RaceCheckPoint* currentCheckpoint, std::map<RaceCheckPoint*, int> *zaehler)177 int SpaceRaceController::rekSimulationCheckpointsReached(RaceCheckPoint* currentCheckpoint, std::map<RaceCheckPoint*, int>& zaehler) 179 178 { 180 179 … … 182 181 {// last point reached 183 182 184 (*zaehler)[currentCheckpoint] += 1;183 zaehler[currentCheckpoint] += 1; 185 184 return 1; // 1 Way form the last point to this one 186 185 } … … 199 198 numberOfWays += rekSimulationCheckpointsReached(findCheckpoint(*it), zaehler); 200 199 } 201 (*zaehler)[currentCheckpoint] += numberOfWays;200 zaehler[currentCheckpoint] += numberOfWays; 202 201 return numberOfWays; // returns the number of ways from this point to the last one 203 202 } … … 245 244 * returns the distance between "currentPosition" and the next static checkpoint that can be reached from "currentCheckPoint" 246 245 */ 247 float SpaceRaceController::recCalculateDistance(RaceCheckPoint* currentCheckPoint, Vector3currentPosition)246 float SpaceRaceController::recCalculateDistance(RaceCheckPoint* currentCheckPoint, const Vector3& currentPosition) 248 247 { 249 248 // find: looks if the currentCheckPoint is a staticCheckPoint (staticCheckPoint is the same as: static Point) … … 295 294 } 296 295 297 /*RaceCheckPoint* SpaceRaceController::addVirtualCheckPoint( RaceCheckPoint* previousCheckpoint, int indexFollowingCheckPoint , Vector3virtualCheckPointPosition )296 /*RaceCheckPoint* SpaceRaceController::addVirtualCheckPoint( RaceCheckPoint* previousCheckpoint, int indexFollowingCheckPoint , const Vector3& virtualCheckPointPosition ) 298 297 { 299 298 orxout()<<"add VCP at"<<virtualCheckPointPosition.x<<", "<<virtualCheckPointPosition.y<<", "<<virtualCheckPointPosition.z<<endl; … … 393 392 394 393 // True if a coordinate of 'pointToPoint' is smaller then the corresponding coordinate of 'groesse' 395 bool SpaceRaceController::vergleicheQuader( Vector3 pointToPoint, Vector3groesse)394 bool SpaceRaceController::vergleicheQuader(const Vector3& pointToPoint, const Vector3& groesse) 396 395 { 397 396 if(abs(pointToPoint.x) < groesse.x) … … 405 404 } 406 405 407 bool SpaceRaceController::directLinePossible(RaceCheckPoint* racepoint1, RaceCheckPoint* racepoint2, std::vector<StaticEntity*>allObjects)406 bool SpaceRaceController::directLinePossible(RaceCheckPoint* racepoint1, RaceCheckPoint* racepoint2, const std::vector<StaticEntity*>& allObjects) 408 407 { 409 408 … … 413 412 btScalar radiusObject; 414 413 415 for (std::vector<StaticEntity*>:: iterator it = allObjects.begin(); it != allObjects.end(); ++it)414 for (std::vector<StaticEntity*>::const_iterator it = allObjects.begin(); it != allObjects.end(); ++it) 416 415 { 417 416 for (int everyShape=0; (*it)->getAttachedCollisionShape(everyShape) != 0; everyShape++) … … 434 433 } 435 434 436 /*void SpaceRaceController::computeVirtualCheckpoint(RaceCheckPoint* racepoint1, RaceCheckPoint* racepoint2, std::vector<StaticEntity*>allObjects)435 /*void SpaceRaceController::computeVirtualCheckpoint(RaceCheckPoint* racepoint1, RaceCheckPoint* racepoint2, const std::vector<StaticEntity*>& allObjects) 437 436 { 438 437 Vector3 cP1ToCP2=(racepoint2->getPosition()-racepoint1->getPosition()) / (racepoint2->getPosition()-racepoint1->getPosition()).length(); //unit Vector
Note: See TracChangeset
for help on using the changeset viewer.