-
Notifications
You must be signed in to change notification settings - Fork 89
/
mutation.h
41 lines (33 loc) · 976 Bytes
/
mutation.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
#ifndef _MUTATION_H_
#define _MUTATION_H_
#include "pldata.h" // See pldata.h for mutations--they're actually pl_flags
#include <vector>
enum mutation_category
{
MUTCAT_NULL = 0,
MUTCAT_LIZARD,
MUTCAT_BIRD,
MUTCAT_FISH,
MUTCAT_BEAST,
MUTCAT_CATTLE,
MUTCAT_INSECT,
MUTCAT_PLANT,
MUTCAT_SLIME,
MUTCAT_TROGLO,
MUTCAT_CEPHALOPOD,
MUTCAT_SPIDER,
MUTCAT_RAT,
NUM_MUTATION_CATEGORIES
};
// mutations_from_category() defines the lists; see mutation_data.cpp
std::vector<pl_flag> mutations_from_category(mutation_category cat);
struct mutation_branch
{
bool valid; // True if this is a valid mutation (only used for flags < PF_MAX)
std::vector<pl_flag> prereqs; // Prerequisites; Only one is required
std::vector<pl_flag> cancels; // Mutations that conflict with this one
std::vector<pl_flag> replacements; // Mutations that replace this one
std::vector<pl_flag> additions; // Mutations that add to this one
mutation_branch() { valid = false; };
};
#endif