void cEato::Update_Dying(void) { m_counter += pFramerate->m_speed_factor; if (!Is_Float_Equal(m_rot_z, 180.0f)) { Set_Active(0); } else { if (m_counter < 5.0f) { Move(0.0f, -5.0f); } else if (m_pos_y < game_res_h + m_col_rect.m_h) { Move(0.0f, 20.0f); } else { m_rot_z = 0.0f; Set_Active(0); } } }
void cStaticEnemy :: Update_Dying( void ) { m_counter += pFramerate->m_speed_factor * 0.1f; // falling death // a little bit upwards first if( m_counter < 0.3f ) { Move( 0.0f, -5.0f ); } // if not below the screen fall else if( m_pos_y < game_res_h + m_col_rect.m_h ) { Move( 0.0f, 20.0f ); Add_Scale( -pFramerate->m_speed_factor * 0.01f ); } // if below disable else { m_rot_z = 0.0f; Set_Scale( 1.0f ); Set_Active( 0 ); } }
void cRokko :: Activate( void ) { pAudio->Play_Sound( "enemy/rokko/activate.wav" ); m_state = STA_FLY; m_massive_type = MASS_MASSIVE; Set_Active( 1 ); if( m_direction == DIR_LEFT ) { Set_Velocity( -m_speed, 0.0f ); } else if( m_direction == DIR_RIGHT ) { Set_Velocity( m_speed, 0.0f ); } else if( m_direction == DIR_UP ) { Set_Velocity( 0.0f, -m_speed ); } else if( m_direction == DIR_DOWN ) { Set_Velocity( 0.0f, m_speed ); } }
void cRokko :: Init( void ) { m_type = TYPE_ROKKO; m_massive_type = MASS_PASSIVE; m_pos_z = 0.03f; m_editor_pos_z = 0.09f; m_can_be_on_ground = 0; m_player_range = 4000; Set_Rotation_Affects_Rect( 1 ); Set_Active( 0 ); m_fire_resistant = 0; m_ice_resistance = 1; m_can_be_hit_from_shell = 0; Set_Direction( DIR_LEFT ); Set_Speed( 8.5f ); m_min_distance_front = 200; Set_Max_Distance_Front( 1000 ); Set_Max_Distance_Sides( 400 ); m_state = STA_STAY; m_smoke_counter = 0; m_kill_sound = "enemy/rokko/hit.wav"; m_kill_points = 250; m_life_left = 500; }
void cRokko :: Update_Dying( void ) { // add gravity if( m_vely < 25 ) { Add_Velocity( 0, 1.5f ); } Move( m_velx, m_vely ); if( m_rot_z - m_start_rot_z < 90 ) { Add_Rotation_Z( pFramerate->m_speed_factor ); } // generate smoke m_smoke_counter += pFramerate->m_speed_factor * 4; if( m_smoke_counter >= 2 ) { Generate_Smoke( static_cast<int>(m_smoke_counter) ); Generate_Sparks( static_cast<int>(m_smoke_counter * 0.5f) ); m_smoke_counter -= static_cast<int>(m_smoke_counter); } // below ground if( m_col_rect.m_y - 200.0f > pActive_Camera->limit_rect.m_y + game_res_h ) { m_rot_z = 0.0f; m_massive_type = MASS_PASSIVE; Set_Active( 0 ); m_velx = 0.0f; } }
void cRokko::Update_Normal_Dying(void) { if (m_vely < m_gravity_max) { Add_Velocity_Y_Max(1.5f, m_gravity_max); } if (m_dying_counter >= 5.0f && m_curr_img < 3) Set_Image_Num(3); else if (m_dying_counter >= 10.0f && m_curr_img == 3) Set_Image_Num(4); else if (m_dying_counter >= 15.0f && m_curr_img == 4) Set_Image_Num(5); Move(m_velx, m_vely); if (m_rot_z - m_start_rot_z < 90) { Add_Rotation_Z(pFramerate->m_speed_factor); } // generate smoke m_smoke_counter += pFramerate->m_speed_factor * 4; if (m_smoke_counter >= 2.0f) { Generate_Smoke(static_cast<int>(m_smoke_counter)); Generate_Sparks(static_cast<int>(m_smoke_counter * 0.5f)); m_smoke_counter -= static_cast<int>(m_smoke_counter); } // below ground if (m_col_rect.m_y - 200.0f > pActive_Camera->m_limit_rect.m_y + game_res_h) { m_rot_z = 0.0f; m_massive_type = MASS_PASSIVE; Set_Active(0); m_velx = 0.0f; } }
void cMouseCursor :: Double_Click( void ) { clickcounter = 0; Leveleditor_CollsionCheck( posx, posy ); Set_Active( iCollisionType, iCollisionNumber ); }
void cSpikeball :: Update_Dying( void ) { // stomp death if( !Is_Float_Equal( m_rot_z, 180.0f ) ) { // scale out float speed = pFramerate->m_speed_factor * 0.05f; Add_Scale_X( -speed * 0.5f ); Add_Scale_Y( -speed ); if( m_scale_y < 0.01f ) { Set_Scale( 1.0f ); Set_Active( 0 ); } } // falling death else { m_counter += pFramerate->m_speed_factor * 0.1f; // a little bit upwards first if( m_counter < 0.3f ) { Move( 0.0f, -5.0f ); } // if not below the ground : fall else if( m_col_rect.m_y < pActive_Camera->m_limit_rect.m_y ) { Move( 0.0f, 20.0f ); Add_Scale( -pFramerate->m_speed_factor * 0.01f ); } // if below disable else { m_rot_z = 0.0f; Set_Scale( 1.0f ); Set_Active( 0 ); } } }
void cOverworld_Manager :: Reset( void ) { // default Overworld Set_Active( "World 1" ); // Set Player to first Waypoint pOverworld_Player->Set_Waypoint( pActive_Overworld->m_player_start_waypoint ); // Reset all Waypoints for( vector<cOverworld *>::iterator itr = objects.begin(); itr != objects.end(); ++itr ) { (*itr)->Reset_Waypoints(); } }
void cMenuHandler :: Add_Menu_Item( cMenu_Item *item, float shadow_pos /* = 0 */, Color shadow_color /* = static_cast<Uint8>(0) */ ) { if( !item ) { printf( "Menu item is NULL ( current Menu size : %d )\n", Get_Size() ); return; } item->Set_Shadow_Pos( shadow_pos ); item->Set_Shadow_Color( shadow_color ); item->Set_Image( item->image_default->m_image ); items.push_back( item ); if( active == -1 && Get_Size() == 1 ) { Set_Active( 0 ); } }
void cStaticEnemy::Update_Dying(void) { m_counter += pFramerate->m_speed_factor * 0.1f; if (m_counter < 0.3f) { Move(0.0f, -5.0f); } else if (m_pos_y < game_res_h + m_col_rect.m_h) { Move(0.0f, 20.0f); Add_Scale(-pFramerate->m_speed_factor * 0.01f); } else { m_rot_z = 0.0f; Set_Scale(1.0f); Set_Active(0); } }
void cMoon::Activate(void) { if (!m_active) { return; } pPlayer->Get_Item(TYPE_MOON); pHud_Points->Add_Points(4000, m_pos_x + m_image->m_w / 2, m_pos_y); if (m_spawned) { Destroy(); } else { Set_Active(0); } }
void cFirePlant::Activate(void) { if (!m_active) { return; } pPlayer->Get_Item(TYPE_FIREPLANT); pHud_Points->Add_Points(700, m_pos_x + m_image->m_w / 2, m_pos_y); if (m_spawned) { Destroy(); } else { Set_Active(0); } }
void cMushroom :: Activate( void ) { if( !m_active ) { return; } pPlayer->Get_Item( m_type ); if( m_type == TYPE_MUSHROOM_DEFAULT ) { pHud_Points->Add_Points( 500, m_pos_x + (m_rect.m_w * 0.5f), m_pos_y + 3 ); } else if( m_type == TYPE_MUSHROOM_LIVE_1 ) { pHud_Points->Add_Points( 1000, m_pos_x + (m_rect.m_w * 0.5f), m_pos_y + 3 ); } else if( m_type == TYPE_MUSHROOM_POISON ) { // nothing } else if( m_type == TYPE_MUSHROOM_BLUE ) { pHud_Points->Add_Points( 700, m_pos_x + (m_rect.m_w * 0.5f), m_pos_y + 3 ); } else if( m_type == TYPE_MUSHROOM_GHOST ) { pHud_Points->Add_Points( 800, m_pos_x + (m_rect.m_w * 0.5f), m_pos_y + 3 ); } // if spawned destroy if( m_spawned ) { Destroy(); } // hide else { Set_Active( 0 ); } }
void cRokko::Init(void) { m_type = TYPE_ROKKO; m_name = "Rokko"; m_massive_type = MASS_PASSIVE; m_pos_z = 0.03f; m_gravity_max = 0; m_editor_pos_z = 0.09f; m_can_be_on_ground = 0; m_camera_range = 4000; Set_Rotation_Affects_Rect(1); Set_Active(0); m_fire_resistant = 1; m_ice_resistance = 1; m_can_be_hit_from_shell = 0; Set_Direction(DIR_LEFT); Set_Speed(8.5f); m_min_distance_front = 200; Set_Max_Distance_Front(1000); Set_Max_Distance_Sides(400); m_state = STA_STAY; m_manual = false; m_smoke_counter = 0; m_kill_sound = "enemy/rokko/hit.wav"; m_kill_points = 250; Add_Image(pVideo->Get_Surface("enemy/rokko/yellow/fly_1.png")); Add_Image(pVideo->Get_Surface("enemy/rokko/yellow/fly_2.png")); Add_Image(pVideo->Get_Surface("enemy/rokko/yellow/fly_3.png")); Add_Image(pVideo->Get_Surface("enemy/rokko/yellow/break_1.png")); Add_Image(pVideo->Get_Surface("enemy/rokko/yellow/break_2.png")); Add_Image(pVideo->Get_Surface("enemy/rokko/yellow/break_3.png")); Set_Image_Num(0, true); Set_Animation(true); Set_Animation_Image_Range(0, 2); Set_Time_All(130, true); }
void cMenuHandler :: Update_Mouse( void ) { int found = -1; // check for( unsigned int i = 0; i < items.size(); i++ ) { if( items[i]->m_col_rect.Intersects( static_cast<float>(pMouseCursor->m_x), static_cast<float>(pMouseCursor->m_y) ) ) { found = i; break; } } // ignore mouse init if( found < 0 && input_event.motion.x == pMouseCursor->m_x ) { return; } Set_Active( found ); }
void cFlyon::Update_Normal_Dying() { // Immediately disappears Set_Active(false); }
void cPowerUp::Load_From_Savegame(cSave_Level_Object* save_object) { bool save_visible = string_to_int(save_object->Get_Value("active")) > 0; Set_Active(save_visible); }
bool cOverworld_Manager :: Set_Active( const std::string &str ) { return Set_Active( Get( str ) ); }