diff options
author | jbzdarkid <jbzdarkid@gmail.com> | 2018-11-01 20:56:56 -0700 |
---|---|---|
committer | jbzdarkid <jbzdarkid@gmail.com> | 2018-11-01 20:56:56 -0700 |
commit | 5de975b03c7200cc66188a4b1a76e1213524975d (patch) | |
tree | e3ed982a0dd4fee4db402532aeda2e6bf5e66344 /Source/Panel.h | |
parent | 3557f0ba80942397a9d963208695b4fa80290cb0 (diff) | |
download | witness-tutorializer-5de975b03c7200cc66188a4b1a76e1213524975d.tar.gz witness-tutorializer-5de975b03c7200cc66188a4b1a76e1213524975d.tar.bz2 witness-tutorializer-5de975b03c7200cc66188a4b1a76e1213524975d.zip |
pain and suffering, but I can read/write decorations & dots.
Diffstat (limited to 'Source/Panel.h')
-rw-r--r-- | Source/Panel.h | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/Source/Panel.h b/Source/Panel.h new file mode 100644 index 0000000..fa3f750 --- /dev/null +++ b/Source/Panel.h | |||
@@ -0,0 +1,85 @@ | |||
1 | #pragma once | ||
2 | #include "json.hpp" | ||
3 | #include "RandomizerCore.h" | ||
4 | |||
5 | class Decoration | ||
6 | { | ||
7 | public: | ||
8 | enum Shape { | ||
9 | Stone = 100, | ||
10 | Star = 200, | ||
11 | Poly = 400, | ||
12 | Eraser = 500, | ||
13 | Triangle = 600, | ||
14 | }; | ||
15 | |||
16 | Decoration() = default; | ||
17 | explicit Decoration(int shape); | ||
18 | |||
19 | int GetValue(); | ||
20 | |||
21 | //private: | ||
22 | int _shape; | ||
23 | }; | ||
24 | |||
25 | class Intersection | ||
26 | { | ||
27 | public: | ||
28 | enum Flags { | ||
29 | IS_ENDPOINT = 0x1, | ||
30 | IS_STARTPOINT = 0x2, | ||
31 | IS_GAP = 0x10000, | ||
32 | HAS_DOT = 0x8, | ||
33 | DOT_IS_BLUE = 0x100, | ||
34 | DOT_IS_ORANGE = 0x200, | ||
35 | DOT_IS_INVISIBLE = 0x1000, | ||
36 | }; | ||
37 | |||
38 | Intersection() = default; | ||
39 | explicit Intersection(float x, float y, int flags); | ||
40 | |||
41 | int GetValue(); | ||
42 | |||
43 | // private: | ||
44 | float _x, _y; | ||
45 | int _flags; | ||
46 | }; | ||
47 | |||
48 | class Panel | ||
49 | { | ||
50 | public: | ||
51 | explicit Panel(int id); | ||
52 | void Write(int id); | ||
53 | |||
54 | void Random(); | ||
55 | |||
56 | enum Style { | ||
57 | SYMMETRICAL = 0x2, | ||
58 | IS_2COLOR = 0x10, | ||
59 | HAS_DOTS = 0x4, | ||
60 | HAS_STARS = 0x40, | ||
61 | HAS_STONES = 0x100, | ||
62 | HAS_ERASERS = 0x1000, | ||
63 | HAS_SHAPERS = 0x2000, | ||
64 | }; | ||
65 | |||
66 | private: | ||
67 | void ReadIntersections(int id); | ||
68 | void WriteIntersections(int id); | ||
69 | void ReadDecorations(int id); | ||
70 | void WriteDecorations(int id); | ||
71 | |||
72 | // TODO: Reflection data | ||
73 | // TODO: Decoration colors | ||
74 | |||
75 | |||
76 | Memory _memory = Memory("witness64_d3d11.exe"); | ||
77 | |||
78 | int _width, _height; | ||
79 | |||
80 | std::vector<std::vector<Decoration>> _decorations; | ||
81 | std::vector<std::vector<Intersection>> _intersections; | ||
82 | std::vector<Intersection> _endpoints; | ||
83 | std::vector<Intersection> _gaps; | ||
84 | int _style; | ||
85 | }; \ No newline at end of file | ||