Skip to content

Commit

Permalink
Fix GetOnOffVehicle behavior
Browse files Browse the repository at this point in the history
* Allow GetOnOff commands in more situations - like RPG_RT
* Fixes: EasyRPG#1429
  • Loading branch information
fmatthew5876 committed Feb 16, 2019
1 parent 82cf015 commit 23d6aec
Showing 1 changed file with 16 additions and 5 deletions.
21 changes: 16 additions & 5 deletions src/game_player.cpp
Expand Up @@ -431,9 +431,6 @@ void Game_Player::Refresh() {
}

bool Game_Player::GetOnOffVehicle() {
if (!IsMovable())
return false;

if (InVehicle())
return GetOffVehicle();
return GetOnVehicle();
Expand All @@ -453,6 +450,16 @@ bool Game_Player::GetOnVehicle() {
else
return false;

auto* vehicle = Game_Map::GetVehicle(type);

if (vehicle->IsAscendingOrDescending()) {
return false;
}

if (type == Game_Vehicle::Airship && (IsMoving() || IsJumping())) {
return false;
}

data()->vehicle = type;
data()->preboard_move_speed = GetMoveSpeed();
if (type != Game_Vehicle::Airship) {
Expand All @@ -466,7 +473,6 @@ bool Game_Player::GetOnVehicle() {
}
} else {
data()->aboard = true;
auto* vehicle = GetVehicle();
if (vehicle->IsMoveRouteOverwritten()) {
vehicle->CancelMoveRoute();
}
Expand All @@ -491,8 +497,13 @@ bool Game_Player::GetOffVehicle() {
&& !Game_Map::GetVehicle(Game_Vehicle::Ship)->IsInPosition(front_x, front_y))
return false;
}
auto* vehicle = GetVehicle();

if (vehicle->IsAscendingOrDescending()) {
return false;
}

GetVehicle()->GetOff();
vehicle->GetOff();
return true;
}

Expand Down

0 comments on commit 23d6aec

Please sign in to comment.