1 // This file is part of Golly.
2 // See docs/License.html for the copyright notice.
3 
4 #ifndef _CONTROL_H_
5 #define _CONTROL_H_
6 
7 #include "bigint.h"     // for bigint
8 #include "algos.h"      // for algo_type
9 
10 #include <string>		// for std::string
11 #include <list>		    // for std::list
12 
13 // Data and routines for generating patterns:
14 
15 extern bool generating;     // currently generating pattern?
16 extern int minexpo;         // step exponent at maximum delay (must be <= 0)
17 
18 bool StartGenerating();
19 void StopGenerating();
20 void NextGeneration(bool useinc);
21 void ResetPattern(bool resetundo = true);
22 void RestorePattern(bigint& gen, const char* filename,
23                     bigint& x, bigint& y, int mag, int base, int expo);
24 void SetMinimumStepExponent();
25 void SetStepExponent(int newexpo);
26 void SetGenIncrement();
27 const char* ChangeGenCount(const char* genstring, bool inundoredo = false);
28 void ClearOutsideGrid();
29 void ReduceCellStates(int newmaxstate);
30 void ChangeRule(const std::string& rulestring);
31 void ChangeAlgorithm(algo_type newalgotype, const char* newrule = "", bool inundoredo = false);
32 std::string CreateRuleFiles(std::list<std::string>& deprecated,
33                             std::list<std::string>& keeprules);
34 
35 #endif
36