forked from cataclysmbnteam/Cataclysm-BN
-
Notifications
You must be signed in to change notification settings - Fork 0
/
faction_camp.h
60 lines (51 loc) · 1.87 KB
/
faction_camp.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#pragma once
#ifndef CATA_SRC_FACTION_CAMP_H
#define CATA_SRC_FACTION_CAMP_H
#include <string>
#include <vector>
#include <utility>
#include "coordinates.h"
namespace catacurses
{
class window;
} // namespace catacurses
class npc;
struct point;
struct tripoint;
struct mission_entry;
namespace base_camps
{
enum tab_mode : int;
} // namespace base_camps
enum class farm_ops {
plow = 1,
plant = 2,
harvest = 4
};
inline bool operator&( const farm_ops &rhs, const farm_ops &lhs )
{
return static_cast<int>( rhs ) & static_cast<int>( lhs );
}
std::string get_mission_action_string( const std::string &input_mission );
namespace talk_function
{
void basecamp_mission( npc & );
///Changes an NPC follower to a camp manager
void become_overseer( npc & );
///Changes an NPC follower to a camp manager, displays camp warnings, and sets the current OM tile to a camp survey
void start_camp( npc & );
///Changes an NPC follower to a camp manager of an existing camp.
void recover_camp( npc & );
///Changes an NPC camp manager to a follower
void remove_overseer( npc & );
void draw_camp_tabs( const catacurses::window &win, base_camps::tab_mode cur_tab,
const std::vector<std::vector<mission_entry>> &entries );
std::string name_mission_tabs( const tripoint_abs_omt &omt_pos, const std::string &role_id,
const std::string &cur_title, base_camps::tab_mode cur_tab );
/// Returns the OM tiles surrounding the camp, @ref purge removes all tiles that aren't expansions
std::vector<std::pair<std::string, tripoint_abs_omt>> om_building_region(
const tripoint_abs_omt &omt_pos, int range, bool purge = false );
/// Returns the x and y coordinates of ( omt_tar - omt_pos ), clamped to [-1, 1]
point om_simple_dir( const tripoint_abs_omt &omt_pos, const tripoint_abs_omt &omt_tar );
} // namespace talk_function
#endif // CATA_SRC_FACTION_CAMP_H