bool Game_Player::GetOnOffVehicle() { if (!IsMovable()) return false; if (InVehicle()) return GetOffVehicle(); return GetOnVehicle(); }
void Game_Player::PerformTeleport() { if (!teleporting) return; teleporting = false; // Finish (un)boarding process if (location.boarding) { location.boarding = false; location.aboard = true; } else if (location.unboarding) { location.unboarding = false; location.aboard = false; } // Reset sprite if it was changed by a move // Even when target is the same map Refresh(); if (Game_Map::GetMapId() != new_map_id) { pattern = RPG::EventPage::Frame_middle; Game_Map::Setup(new_map_id); last_pan_x = 0; last_pan_y = 0; } SetOpacity(255); MoveTo(new_x, new_y); if (new_direction >= 0) { SetDirection(new_direction); SetSpriteDirection(new_direction); } if (InVehicle()) GetVehicle()->MoveTo(new_x, new_y); }
void Game_Player::PerformTeleport() { if (!teleporting) return; teleporting = false; if (Game_Map::GetMapId() != new_map_id) { Refresh(); // Reset sprite if it was changed by a move Game_Map::Update(); // Execute remaining events (e.g. ones listed after a teleport) Game_Map::Setup(new_map_id); last_pan_x = 0; last_pan_y = 0; } SetOpacity(255); MoveTo(new_x, new_y); if (new_direction >= 0) { SetDirection(new_direction); SetSpriteDirection(new_direction); } if (InVehicle()) GetVehicle()->MoveTo(new_x, new_y); }
void Game_Player::PerformTeleport() { if (!teleporting) return; teleporting = false; if (Game_Map::GetMapId() != new_map_id) { Refresh(); // Reset sprite if it was changed by a move pattern = RPG::EventPage::Frame_middle; Game_Map::Setup(new_map_id); last_pan_x = 0; last_pan_y = 0; } SetOpacity(255); MoveTo(new_x, new_y); if (new_direction >= 0) { SetDirection(new_direction); SetSpriteDirection(new_direction); } if (InVehicle()) GetVehicle()->MoveTo(new_x, new_y); }