void Game_Event::UpdateSelfMovement() { if (running) return; if (!Game_Message::GetContinueEvents() && Game_Map::GetInterpreter().IsRunning()) return; if (!IsStopping()) return; switch (move_type) { case RPG::EventPage::MoveType_random: MoveTypeRandom(); break; case RPG::EventPage::MoveType_vertical: MoveTypeCycleUpDown(); break; case RPG::EventPage::MoveType_horizontal: MoveTypeCycleLeftRight(); break; case RPG::EventPage::MoveType_toward: MoveTypeTowardsPlayer(); break; case RPG::EventPage::MoveType_away: MoveTypeAwayFromPlayer(); break; case RPG::EventPage::MoveType_custom: MoveTypeCustom(); break; } }
void Game_Character::Update() { if (IsJumping()) { UpdateJump(); if (IsSpinning()) anime_count++; } else if (IsMoving()) { remaining_step -= 1 << (1 + GetMoveSpeed()); if (IsSpinning() || (animation_type != RPG::EventPage::AnimType_fixed_graphic && walk_animation)) anime_count++; } else { stop_count++; if (IsSpinning() || IsContinuous() || pattern != original_pattern) anime_count++; } if (anime_count >= GetSteppingSpeed()) { if (IsSpinning()) { SetSpriteDirection((GetSpriteDirection() + 1) % 4); } else if (!IsContinuous() && IsStopping()) { pattern = original_pattern; last_pattern = last_pattern == RPG::EventPage::Frame_left ? RPG::EventPage::Frame_right : RPG::EventPage::Frame_left; } else { if (last_pattern == RPG::EventPage::Frame_left) { if (pattern == RPG::EventPage::Frame_right) { pattern = RPG::EventPage::Frame_middle; last_pattern = RPG::EventPage::Frame_right; } else { pattern = RPG::EventPage::Frame_right; } } else { if (pattern == RPG::EventPage::Frame_left) { pattern = RPG::EventPage::Frame_middle; last_pattern = RPG::EventPage::Frame_left; } else { pattern = RPG::EventPage::Frame_left; } } } anime_count = 0; } if (wait_count > 0) { wait_count -= 1; return; } if (stop_count >= max_stop_count) { if (IsMoveRouteOverwritten()) { MoveTypeCustom(); } else { // Only events UpdateSelfMovement(); } } }
void Game_Character::Update() { if (IsJumping()) { UpdateJump(); anime_count += (IsSpinning() ? 1.0 : 0); } else if (IsContinuous() || IsSpinning()) { UpdateMove(); UpdateStop(); } else { if (IsMoving()) { UpdateMove(); } else { UpdateStop(); } } if (anime_count > 36.0/(GetMoveSpeed()+1)) { if (IsSpinning()) { SetPrelockDirection((GetPrelockDirection() + 1) % 4); } else if (!IsContinuous() && IsStopping()) { pattern = original_pattern; last_pattern = last_pattern == RPG::EventPage::Frame_left ? RPG::EventPage::Frame_right : RPG::EventPage::Frame_left; } else { if (last_pattern == RPG::EventPage::Frame_left) { if (pattern == RPG::EventPage::Frame_right) { pattern = RPG::EventPage::Frame_middle; last_pattern = RPG::EventPage::Frame_right; } else { pattern = RPG::EventPage::Frame_right; } } else { if (pattern == RPG::EventPage::Frame_left) { pattern = RPG::EventPage::Frame_middle; last_pattern = RPG::EventPage::Frame_left; } else { pattern = RPG::EventPage::Frame_left; } } } anime_count = 0; } if (wait_count > 0) { wait_count -= 1; return; } if (stop_count >= ((GetMoveFrequency() > 7) ? 0 : pow(2.0, 9 - GetMoveFrequency()))) { if (IsMoveRouteOverwritten()) { MoveTypeCustom(); } else if (Game_Message::GetContinueEvents() || !Game_Message::message_waiting) { UpdateSelfMovement(); } } }
void Game_Character::Update() { if (wait_count == 0 && stop_count >= max_stop_count) { if (IsMoveRouteOverwritten()) { MoveTypeCustom(); } else { // Only events UpdateSelfMovement(); } } if (wait_count > 0) { --wait_count; } }
void Game_Character::ForceMoveRoute(RPG::MoveRoute* new_route, int frequency, Game_Interpreter* owner) { if (original_move_route == NULL) { original_move_route = move_route; original_move_route_index = move_route_index; original_move_frequency = move_frequency; } move_route = new_route; move_route_index = 0; move_route_forcing = true; move_frequency = frequency; move_route_owner = owner; prelock_direction = -1; wait_count = 0; MoveTypeCustom(); }
void Game_Character::Update() { /*if (IsJumping()) UpdateJump(); else*/ if (IsMoving()) UpdateMove(); else UpdateStop(); if (anime_count > 18 - move_speed * 2) { if (!step_anime && stop_count > 0) { pattern = original_pattern; last_pattern = last_pattern == RPG::EventPage::Frame_left ? RPG::EventPage::Frame_right : RPG::EventPage::Frame_left; } else { if (last_pattern == RPG::EventPage::Frame_left) { if (pattern == RPG::EventPage::Frame_right) { pattern = RPG::EventPage::Frame_middle; last_pattern = RPG::EventPage::Frame_right; } else { pattern = RPG::EventPage::Frame_right; } } else { if (pattern == RPG::EventPage::Frame_left) { pattern = RPG::EventPage::Frame_middle; last_pattern = RPG::EventPage::Frame_left; } else { pattern = RPG::EventPage::Frame_left; } } } anime_count = 0; } /*if (wait_count > 0) { wait_count -= 1 return; }*/ if (move_route_forcing) { MoveTypeCustom(); } else if (!locked) { UpdateSelfMovement(); } }
void Game_Character::UpdateSelfMovement() { switch (move_type) { case RPG::EventPage::MoveType_random: MoveTypeRandom(); break; case RPG::EventPage::MoveType_vertical: MoveTypeCycleUpDown(); break; case RPG::EventPage::MoveType_horizontal: MoveTypeCycleLeftRight(); break; case RPG::EventPage::MoveType_toward: MoveTypeTowardsPlayer(); break; case RPG::EventPage::MoveType_away: MoveTypeAwayFromPlayer(); break; case RPG::EventPage::MoveType_custom: MoveTypeCustom(); break; } }