Skip to content

Commit

Permalink
Set owner for new appliances
Browse files Browse the repository at this point in the history
  • Loading branch information
sparr committed Oct 28, 2024
1 parent 2d90bfe commit 2509ca0
Show file tree
Hide file tree
Showing 8 changed files with 16 additions and 14 deletions.
8 changes: 4 additions & 4 deletions src/construction.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1720,14 +1720,14 @@ void construct::done_vehicle( const tripoint_bub_ms &p, Character & )
here.add_vehicle_to_cache( veh );
}

void construct::done_wiring( const tripoint_bub_ms &p, Character &/*who*/ )
void construct::done_wiring( const tripoint_bub_ms &p, Character &who )
{
get_map().partial_con_remove( p );

place_appliance( p, vpart_from_item( itype_wall_wiring ) );
place_appliance( p, vpart_from_item( itype_wall_wiring ), who );
}

void construct::done_appliance( const tripoint_bub_ms &p, Character & )
void construct::done_appliance( const tripoint_bub_ms &p, Character &who )
{
map &here = get_map();

Expand All @@ -1748,7 +1748,7 @@ void construct::done_appliance( const tripoint_bub_ms &p, Character & )
const item &base = components.front();
const vpart_id &vpart = vpart_appliance_from_item( base.typeId() );

place_appliance( p, vpart, base );
place_appliance( p, vpart, who, base );
}

void construct::done_deconstruct( const tripoint_bub_ms &p, Character &player_character )
Expand Down
4 changes: 2 additions & 2 deletions src/iexamine_actors.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ void appliance_convert_examine_actor::load( const JsonObject &jo, const std::str
mandatory( jo, false, "item", appliance_item );
}

void appliance_convert_examine_actor::call( Character &, const tripoint_bub_ms &examp ) const
void appliance_convert_examine_actor::call( Character &you, const tripoint_bub_ms &examp ) const
{
if( !query_yn( _( "Connect %s to grid?" ), item::nname( appliance_item ) ) ) {
return;
Expand All @@ -37,7 +37,7 @@ void appliance_convert_examine_actor::call( Character &, const tripoint_bub_ms &
here.ter_set( examp, *ter_set );
}

place_appliance( examp, vpart_appliance_from_item( appliance_item ) );
place_appliance( examp, vpart_appliance_from_item( appliance_item ), you );
}

void appliance_convert_examine_actor::finalize() const
Expand Down
2 changes: 1 addition & 1 deletion src/iuse_actor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1215,7 +1215,7 @@ std::optional<int> deploy_appliance_actor::use( Character *p, item &it, const tr

it.spill_contents( suitable.value() );
if( !place_appliance( tripoint_bub_ms( suitable.value() ),
vpart_appliance_from_item( appliance_base ), it ) ) {
vpart_appliance_from_item( appliance_base ), *p, it ) ) {
// failed to place somehow, cancel!!
return 0;
}
Expand Down
5 changes: 3 additions & 2 deletions src/veh_appliance.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -55,15 +55,15 @@ vpart_id vpart_appliance_from_item( const itype_id &item_id )
}

bool place_appliance( const tripoint_bub_ms &p, const vpart_id &vpart,
const std::optional<item> &base )
const Character &owner, const std::optional<item> &base )
{

const vpart_info &vpinfo = vpart.obj();
map &here = get_map();
vehicle *veh = here.add_vehicle( vehicle_prototype_none, p, 0_degrees, 0, 0 );

if( !veh ) {
debugmsg( "error constructing vehicle" );
debugmsg( "error constructing appliance" );
return false;
}

Expand Down Expand Up @@ -123,6 +123,7 @@ bool place_appliance( const tripoint_bub_ms &p, const vpart_id &vpart,
if( vpinfo.has_flag( flag_HALF_CIRCLE_LIGHT ) && partnum != -1 ) {
orient_part( veh, vpinfo, partnum );
}
veh->set_owner( owner );
return true;
}

Expand Down
2 changes: 1 addition & 1 deletion src/veh_appliance.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ class ui_adaptor;

vpart_id vpart_appliance_from_item( const itype_id &item_id );
bool place_appliance( const tripoint_bub_ms &p, const vpart_id &vpart,
const std::optional<item> &base = std::nullopt );
const Character &owner, const std::optional<item> &base = std::nullopt );

/**
* Appliance interaction UI. Works similarly to veh_interact, but has
Expand Down
2 changes: 1 addition & 1 deletion tests/crafting_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -451,7 +451,7 @@ static void prep_craft( const recipe_id &rid, const std::vector<item> &tools,

const tripoint_bub_ms battery_pos = test_origin + tripoint_north;
std::optional<item> battery_item( "test_storage_battery" );
place_appliance( battery_pos, vpart_ap_test_storage_battery, battery_item );
place_appliance( battery_pos, vpart_ap_test_storage_battery, player_character, battery_item );

give_tools( tools, plug_in_tools );
const inventory &crafting_inv = player_character.crafting_inventory();
Expand Down
2 changes: 1 addition & 1 deletion tests/vehicle_interact_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ static void test_repair( const std::vector<item> &tools, bool plug_in_tools, boo

const tripoint_bub_ms battery_pos = test_origin + tripoint_north_west;
std::optional<item> battery_item( "test_storage_battery" );
place_appliance( battery_pos, vpart_ap_test_storage_battery, battery_item );
place_appliance( battery_pos, vpart_ap_test_storage_battery, player_character, battery_item );

for( const item &gear : tools ) {
item_location added_tool = player_character.i_add( gear );
Expand Down
5 changes: 3 additions & 2 deletions tests/vehicle_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -443,15 +443,16 @@ TEST_CASE( "power_cable_stretch_disconnect" )
clear_map();
clear_avatar();
map &m = get_map();
Character &player_character = get_player_character();
const int max_displacement = 50;
const std::optional<item> stand_lamp1( "test_standing_lamp" );
const std::optional<item> stand_lamp2( "test_standing_lamp" );

const tripoint_bub_ms app1_pos( HALF_MAPSIZE_X + 2, HALF_MAPSIZE_Y + 2, 0 );
const tripoint_bub_ms app2_pos( app1_pos + tripoint( 2, 2, 0 ) );

place_appliance( app1_pos, vpart_ap_test_standing_lamp, stand_lamp1 );
place_appliance( app2_pos, vpart_ap_test_standing_lamp, stand_lamp2 );
place_appliance( app1_pos, vpart_ap_test_standing_lamp, player_character, stand_lamp1 );
place_appliance( app2_pos, vpart_ap_test_standing_lamp, player_character, stand_lamp2 );

optional_vpart_position app1_part = m.veh_at( app1_pos );
optional_vpart_position app2_part = m.veh_at( app2_pos );
Expand Down

0 comments on commit 2509ca0

Please sign in to comment.