void L_ParticleEffect::create_particle(L_REAL in_x, L_REAL in_y, L_Vector* vec_t) { int chosen = choose_particle(); L_Particle* par_new; L_NEW_PAR( par_new, *fl_particle[chosen] ); L_Vector vec_t2; if(addit_vector_enabled == true) { if(vec_t != NULL) vec_t2 = addit_vector + *vec_t; else vec_t2 = addit_vector; } else { if(vec_t != NULL) vec_t2 = *vec_t; } par_new->set_velocity(vec_t2); if(follow_shooting) { par_new->set_rotation(vec_t->get_angle()); } else if(rotation_distortion != 0) { par_new->set_rotation2((L_RAND_REAL_1()-0.5f)*rotation_distortion); } if(size_distortion != 0) { par_new->set_size( par_new->get_ref_size()+rand_size() ); } if(life_distortion != 0) { int distort = rand() % life_distortion + 1; if(rand() % 2 == 0) distort = -distort; par_new->set_life(par_new->get_remaininig_life()+distort); } par_new->x_pos = in_x; par_new->y_pos = in_y; par_new->initialize(); //add to list particle_list.push_back(par_new); }
void L_ParticleEffect::create_particle(L_REAL in_x, L_REAL in_y, CL_Vec2f* vec_t) { int chosen = choose_particle(); L_Particle* par_new; if (!fl_particle[chosen]) { LogMsg("L_ParticleEffect::create_particle> Can't add invalid particle"); return; } L_NEW_PAR( par_new, *fl_particle[chosen] ); CL_Vec2f vec_t2 = CL_Vec2f(0,0); if(addit_vector_enabled == true) { if(vec_t != NULL) vec_t2 = addit_vector + *vec_t; else vec_t2 = addit_vector; } else { if(vec_t != NULL) vec_t2 = *vec_t; } par_new->set_velocity(vec_t2); if(follow_shooting) { par_new->set_rotation(linear_get_radian(*vec_t)); } else if(par_randrot_on) { par_new->set_rotation2(L_RAND_REAL_2()*L_2PI); } if(size_distortion != 0) { par_new->set_size( par_new->get_ref_size()+rand_size() ); } if(life_distortion != 0) { int distort = rand() % life_distortion + 1; if(rand() % 2 == 0) distort = -distort; par_new->set_life(par_new->get_remaininig_life()+distort); } par_new->x_pos = in_x; par_new->y_pos = in_y; par_new->initialize(); //add to list particle_list.push_back(par_new); }