#pragma once #include "cgp/cgp.hpp" #include "objects/projectile.hpp" using namespace cgp; struct projectiles { int N; std::vector<projectile> projectiles_prop; std::vector<projectile::projectile_type> el_types = { projectile::projectile_type::fire, projectile::projectile_type::ice, projectile::projectile_type::rock, projectile::projectile_type::electric, projectile::projectile_type::water }; //Textures image_structure fire_animation; std::vector<image_structure> fire_grid; mesh_drawable fireball; image_structure water_animation; std::vector<image_structure> water_grid; mesh_drawable waterball; image_structure ice_animation; std::vector<image_structure> ice_grid; mesh_drawable iceball; image_structure electro_animation; std::vector<image_structure> electro_grid; mesh_drawable electroball; image_structure rock_animation; std::vector<image_structure> rock_grid; mesh_drawable rockball; mesh_drawable mesh; void initialize(); void simulate(float dt); void add_ball(vec3 new_pos, vec3 new_dir, int element); void remove_ball(int i); void reset(); };