Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Jun 26, 2006, 4:30:31 PM (18 years ago)
Author:
rennerc
Message:

finished spawningpoint for spawning playables

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/network/src/world_entities/spawning_point.cc

    r8798 r8801  
    2424#include "compiler.h"
    2525
    26 #include <map>
     26#include "state.h"
     27#include "game_rules.h"
    2728
    2829
     
    107108void SpawningPoint::pushEntity(WorldEntity* entity, float delay)
    108109{
    109   this->queue[entity] = this->localTimer + delay;
     110  QueueEntry qe;
     111  qe.entity = entity;
     112  qe.list = entity->getOMListNumber();
     113  qe.respawnTime = this->localTimer + delay;
     114 
     115  queue.push_back( qe );
    110116}
    111117
     
    119125
    120126
    121   //BaseObject* spawningEntity = Factory::fabricate(this->classID);
    122   //   if( likely(this->world != NULL))
    123   //     this->world->spawn(dynamic_cast<WorldEntity*>(spawningEntity));
     127  entity->setAbsCoor( this->getAbsCoor() );
     128  entity->setAbsDir( this->getAbsDir() );
     129 
     130  //TODO set camera (not smooth)
    124131}
    125132
     
    135142  this->localTimer += dt;
    136143
    137   std::map<WorldEntity*, float>::iterator it = this->queue.begin();
    138   for( ; it != this->queue.end(); it++)
     144  std::list<QueueEntry>::iterator it = this->queue.begin();
     145  for( ; it != this->queue.end(); )
    139146  {
    140     //
    141     if( it->second <= this->localTimer)
     147   
     148    if( it->respawnTime <= this->localTimer)
    142149    {
    143150      //spawn the player
    144       this->spawn(it->first);
     151      this->spawn(it->entity);
     152     
     153      it->entity->toList( it->list );
     154     
     155      if ( State::getGameRules() )
     156      {
     157        (State::getGameRules())->registerSpawn( it->entity );
     158      }
     159     
     160      std::list<QueueEntry>::iterator delit = it;
     161      it++;
     162     
     163      queue.erase( delit );
     164     
     165      continue;
    145166    }
     167   
     168    it++;
    146169  }
    147170
Note: See TracChangeset for help on using the changeset viewer.