forked from CleverRaven/Cataclysm-DDA
-
Notifications
You must be signed in to change notification settings - Fork 0
/
behavior_oracle.h
31 lines (25 loc) · 865 Bytes
/
behavior_oracle.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
#pragma once
#ifndef CATA_SRC_BEHAVIOR_ORACLE_H
#define CATA_SRC_BEHAVIOR_ORACLE_H
#include <functional>
#include <iosfwd>
#include <string>
#include <unordered_map>
namespace behavior
{
enum class status_t : char;
/**
* An oracle is a class in charge of introspecting into a game entity in a particular way.
* The base class has trivial functionality, but provides a mechanism for aggregating oracle
* instances regardless of type.
* Specialized oracles, such as a character_oracle_t, provide some number of predicates to retrieve
* information about the referenced entity.
*/
class oracle_t
{
};
status_t return_running( const oracle_t *, const std::string & );
extern std::unordered_map<std::string, std::function<status_t( const oracle_t *, const std::string & )>>
predicate_map;
} // namespace behavior
#endif // CATA_SRC_BEHAVIOR_ORACLE_H