void EMapObjectTurrent::Process() { double &the_time = ztime->ztime; int i, mx, my; if(killme) return; //check if(the_time >= final_time) { killme = true; EndExplosion(); ZSoundEngine::PlayWavRestricted(TURRENT_EXPLOSION_SND, ex, ey); return; } { double time_dif = (the_time - init_time); //move x = sx + (dx * time_dif); y = sy + (dy * time_dif); size = -(rise / (final_time - init_time)) * (time_dif * time_dif) + rise * time_dif; y -= size * 30; size += 1.0; angle = dangle * time_dif; while(angle >= 360) angle -= 360; while(angle < 0) angle += 360; } }
void ETurrentMissile::Process() { double &the_time = ztime->ztime; //int i, mx, my; if(killme) return; //check if(the_time >= final_time) { killme = true; EndExplosion(); ZSoundEngine::PlayWavRestricted(TURRENT_EXPLOSION_SND, ex, ey); //place crater if(zmap) zmap->CreateCrater(ex, ey, false, 0.35); return; } if(the_time >= next_render_time) { render_i++; if(render_i>=max_render) render_i = 0; next_render_time = the_time + 0.1; } { double time_dif = (the_time - init_time); //move x = sx + (dx * time_dif); y = sy + (dy * time_dif); size = -(rise / (final_time - init_time)) * (time_dif * time_dif) + rise * time_dif; size += 1.0; y -= size * 30; y += 30; angle = dangle * time_dif; while(angle >= 360) angle -= 360; while(angle < 0) angle += 360; } }
void ERockTurrent::Process() { double &the_time = ztime->ztime; if(killme) return; if(the_time >= final_time) { EndExplosion(); killme = true; return; } if(the_time >= next_process_time) { render_i++; if(render_i >=12) render_i = 0; next_process_time = the_time + 0.07; } { double time_dif = (the_time - init_time); double up_amount; //move x = sx + (dx * time_dif); y = sy + (dy * time_dif); size = -(rise / (final_time - init_time)) * (time_dif * time_dif) + rise * time_dif; size += 1; y -= (size-1) * 30; angle = dangle * time_dif; while(angle >= 360) angle -= 360; while(angle < 0) angle += 360; } }