Skip to content

Commit

Permalink
logic for mission arrow id
Browse files Browse the repository at this point in the history
  • Loading branch information
KorGgenT committed Aug 26, 2020
1 parent bf87aad commit e02e092
Showing 1 changed file with 38 additions and 1 deletion.
39 changes: 38 additions & 1 deletion src/sdltiles.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1074,7 +1074,7 @@ cata::optional<std::pair<tripoint_abs_omt, std::string>> get_mission_arrow(
const std::vector<tripoint> mission_trajectory = line_to( center.raw(), mission_target.raw() );

cata::optional<tripoint> prev;
int z;
int z = 0;
for( const tripoint &traj_pt : mission_trajectory ) {
if( !overmap_area.contains( traj_pt ) ) {
z = prev->z - traj_pt.z;
Expand All @@ -1088,6 +1088,43 @@ cata::optional<std::pair<tripoint_abs_omt, std::string>> get_mission_arrow(
return cata::nullopt;
}

const int north_border_y = ( overmap_area.p_max.y - overmap_area.p_min.y ) / 3;
const int south_border_y = north_border_y * 2;
const int west_border_x = ( overmap_area.p_max.x - overmap_area.p_min.x ) / 3;
const int east_border_x = west_border_x * 2;

tripoint north_pmax( overmap_area.p_max );
north_pmax.y += north_border_y;
tripoint south_pmin( overmap_area.p_min );
south_pmin.y += south_border_y;
tripoint west_pmax( overmap_area.p_max );
west_pmax.x += west_border_x;
tripoint east_pmin( overmap_area.p_min );
east_pmin.x += east_border_x;

const inclusive_cuboid<tripoint> north_sector( overmap_area.p_min, north_pmax );
const inclusive_cuboid<tripoint> south_sector( south_pmin, overmap_area.p_max );
const inclusive_cuboid<tripoint> west_sector( overmap_area.p_min, west_pmax );
const inclusive_cuboid<tripoint> east_sector( east_pmin, overmap_area.p_max );

mission_arrow_variant = "mission_arrow_";
if( z == 0 ) {
if( north_sector.contains( *prev ) ) {
mission_arrow_variant += 'n';
} else if( south_sector.contains( *prev ) ) {
mission_arrow_variant += 's';
}
if( west_sector.contains( *prev ) ) {
mission_arrow_variant += 'w';
} else if( east_sector.contains( *prev ) ) {
mission_arrow_variant += 'e';
}
} else if( z < 0 ) {
mission_arrow_variant += "down";
} else {
mission_arrow_variant += "up";
}

return std::make_pair( tripoint_abs_omt( *prev ), mission_arrow_variant );
}

Expand Down

0 comments on commit e02e092

Please sign in to comment.