#include "visitor_generator.hpp" #include "../objectids.hpp" #include "mario_visitor.hpp" #include "mushroom_visitor.hpp" #include "goomba_visitor.hpp" #include "turtle_visitor.hpp" #include "projectile_visitor.hpp" #include "../mario.hpp" std::shared_ptr getVisitor(const MarioBlock &block, SDLPP::Scene &scene, int &coin_count, std::vector> &moving_objects) { std::shared_ptr result{}; switch (block.getId()) { case MARIO_ID: { auto &mario = dynamic_cast(block); result = std::static_pointer_cast( std::make_shared(block.getMovement().getY() < 0, scene, coin_count, moving_objects, mario.isBig(), mario.hasStar())); } break; case MUSHROOM_ID: result = std::static_pointer_cast( std::make_shared()); break; case GOOMBA_ID: result = std::static_pointer_cast( std::make_shared(block.getPos())); break; case TURTLE_ID: result = std::static_pointer_cast( std::make_shared(block.getPos())); break; case FIREBALL_ID: result = std::static_pointer_cast( std::make_shared()); break; default: break; } return result; }