void Renderer::TrackScene(const core::Scene& scene) { SetCurrentCamera(*scene.camera()); for (auto& entity : scene.entities()) { TrackEntity(*entity); } }
Entity *Entity::NewEntity( int _troopType ) { Entity *entity = NULL; switch(_troopType) { case Entity::TypeLaserTroop: entity = new LaserTrooper(); break; case Entity::TypeInsertionSquadie: entity = new Squadie(); break; case Entity::TypeEngineer: entity = new Engineer(); break; case Entity::TypeVirii: entity = new Virii(); break; case Entity::TypeEgg: entity = new Egg(); break; case Entity::TypeSporeGenerator: entity = new SporeGenerator(); break; case Entity::TypeLander: entity = new Lander(); break; case Entity::TypeTripod: entity = new Tripod(); break; case Entity::TypeCentipede: entity = new Centipede(); break; case Entity::TypeSpaceInvader: entity = new SpaceInvader(); break; case Entity::TypeSpider: entity = new Spider(); break; case Entity::TypeDarwinian: entity = new Darwinian(); break; case Entity::TypeOfficer: entity = new Officer(); break; case Entity::TypeArmyAnt: entity = new ArmyAnt(); break; case Entity::TypeArmour: entity = new Armour(); break; case Entity::TypeSoulDestroyer: entity = new SoulDestroyer(); break; case Entity::TypeTriffidEgg: entity = new TriffidEgg(); break; case Entity::TypeAI: entity = new AI(); break; case Entity::TypeShaman: entity = new Shaman(); break; case Entity::TypeHarvester: entity = new Harvester(); break; case Entity::TypeNuke: entity = new Nuke(); break; case Entity::TypeTentacle: entity = new Tentacle(); break; case Entity::TypeMeteor: entity = new Meteor(); break; case Entity::TypeTank: entity = new Tank(); break; case Entity::TypeSpaceShip: entity = new SpaceShip(); break; case Entity::TypeDropShip: entity = new DropShip(); break; default: AppDebugAssert(false); } entity->m_id.GenerateUniqueId(); #ifdef TRACK_SYNC_RAND void TrackEntity( Entity *_entity ); TrackEntity( entity ); #endif return entity; }