diff --git a/src/veh_appliance.cpp b/src/veh_appliance.cpp index 4ee24aec3966b..903a5010e8fe6 100644 --- a/src/veh_appliance.cpp +++ b/src/veh_appliance.cpp @@ -418,7 +418,8 @@ void veh_app_interact::rename() void veh_app_interact::remove() { - vehicle_part &vp = veh->part( veh->part_at( a_point ) ); + int const part = veh->part_at( a_point ); + vehicle_part &vp = veh->part( part >= 0 ? part : 0 ); const vpart_info &vpinfo = vp.info(); const requirement_data reqs = vpinfo.removal_requirements(); Character &you = get_player_character(); diff --git a/src/veh_interact.cpp b/src/veh_interact.cpp index 1cfda33f1e63e..4e04b066bed86 100644 --- a/src/veh_interact.cpp +++ b/src/veh_interact.cpp @@ -3500,6 +3500,8 @@ void veh_interact::complete_vehicle( Character &you ) } } veh->part_removal_cleanup(); + //always stop after removing an appliance + you.activity.set_to_null(); } if( veh->part_count() < 2 ) { diff --git a/src/vehicle_use.cpp b/src/vehicle_use.cpp index ce8e529d9a606..7aeb98b1c0f8b 100644 --- a/src/vehicle_use.cpp +++ b/src/vehicle_use.cpp @@ -2415,7 +2415,7 @@ void vehicle::interact_with( const vpart_position &vp, bool with_pickup ) } case EXAMINE: { if( is_appliance ) { - g->exam_appliance( *this ); + g->exam_appliance( *this, vp.mount() ); } else { g->exam_vehicle( *this ); }