Changeset 8827 in orxonox.OLD for branches/multi_player_map/src/world_entities/spawning_point.cc
- Timestamp:
- Jun 27, 2006, 2:46:40 PM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/multi_player_map/src/world_entities/spawning_point.cc
r8820 r8827 22 22 #include "world_entity.h" 23 23 24 #include "class_list.h" 25 24 26 #include "compiler.h" 25 27 … … 34 36 * constructor 35 37 */ 36 SpawningPoint::SpawningPoint (ClassID classid, const Vector& position)37 {38 this->setAbsCoor(position);39 40 this->init();41 }42 43 44 /**45 * standard constructor46 */47 SpawningPoint::SpawningPoint (const Vector& position, ClassID classid, SpawningPointMode mode, float delay)48 {49 this->setAbsCoor(position);50 51 this->init();52 }53 54 55 38 SpawningPoint::SpawningPoint( const TiXmlElement * root ) 56 39 { … … 69 52 70 53 this->teamId = -1; 54 this->localTimer = 0.0f; 55 56 this->toList( OM_DEAD_TICK ); 71 57 72 58 MessageManager::getInstance()->registerMessageHandler( MSGID_RESPAWN, respawnMessageHandler, NULL ); … … 101 87 * @param entity WorldEntity to be added 102 88 */ 103 void SpawningPoint::pushEntity( WorldEntity* entity, float delay)89 void SpawningPoint::pushEntity(Playable* entity, float delay) 104 90 { 105 91 QueueEntry qe; … … 114 100 * spawn the entity 115 101 */ 116 void SpawningPoint::spawn( WorldEntity* entity)117 { 118 PRINTF( 1)("Spawningpoint spawns newEntity (%s)\n", entity->getClassName());102 void SpawningPoint::spawn(Playable* entity) 103 { 104 PRINTF(0)("Spawningpoint spawns Entity (%s)\n", entity->getClassName()); 119 105 120 106 … … 128 114 (State::getGameRules())->registerSpawn( entity ); 129 115 } 116 117 entity->respawn(); 130 118 } 131 119 … … 140 128 { 141 129 this->localTimer += dt; 142 143 130 std::list<QueueEntry>::iterator it = this->queue.begin(); 144 131 for( ; it != this->queue.end(); ) 145 132 { 146 133 //PRINTF(0)("%f <= %f\n", it->respawnTime, this->localTimer); 147 134 if( it->respawnTime <= this->localTimer) 148 135 { … … 207 194 assert( Converter::byteArrayToInt( data+INTSIZE, &uniqueId ) == INTSIZE ); 208 195 209 //TODO find Playable and SpawningPoint and spawn Playable 196 SpawningPoint * sp = NULL; 197 Playable * playable = NULL; 198 199 const std::list<BaseObject*> * list = ClassList::getList( CL_SPAWNING_POINT ); 200 201 if ( list ) 202 { 203 for ( std::list<BaseObject*>::const_iterator it = list->begin(); it != list->end(); it++ ) 204 { 205 if ( dynamic_cast<SpawningPoint*>(*it)->getUniqueID() == uniqueId ) 206 { 207 sp = dynamic_cast<SpawningPoint*>(*it); 208 break; 209 } 210 } 211 } 212 213 if ( !sp ) 214 { 215 PRINTF(2)("could not find spawning point\n"); 216 return false; 217 } 218 219 list = ClassList::getList( CL_PLAYABLE ); 220 221 if ( list ) 222 { 223 for ( std::list<BaseObject*>::const_iterator it = list->begin(); it != list->end(); it++ ) 224 { 225 if ( dynamic_cast<Playable*>(*it)->getUniqueID() == uniqueId ) 226 { 227 playable = dynamic_cast<Playable*>(*it); 228 break; 229 } 230 } 231 } 232 233 if ( !playable ) 234 { 235 PRINTF(2)("could not find playable\n"); 236 return false; 237 } 238 239 sp->spawn( playable ); 210 240 211 241 return true;
Note: See TracChangeset
for help on using the changeset viewer.