diff options
Diffstat (limited to 'Source/Panel.h')
-rw-r--r-- | Source/Panel.h | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/Source/Panel.h b/Source/Panel.h index 565b4c3..b8e67df 100644 --- a/Source/Panel.h +++ b/Source/Panel.h | |||
@@ -45,7 +45,7 @@ enum IntersectionFlags { | |||
45 | IS_ENDPOINT = 0x1, | 45 | IS_ENDPOINT = 0x1, |
46 | IS_STARTPOINT = 0x2, | 46 | IS_STARTPOINT = 0x2, |
47 | IS_GAP = 0x10000, | 47 | IS_GAP = 0x10000, |
48 | HAS_DOT = 0x20, | 48 | HAS_DOT = 0x40020, |
49 | DOT_IS_BLUE = 0x100, | 49 | DOT_IS_BLUE = 0x100, |
50 | DOT_IS_ORANGE = 0x200, | 50 | DOT_IS_ORANGE = 0x200, |
51 | DOT_IS_INVISIBLE = 0x1000, | 51 | DOT_IS_INVISIBLE = 0x1000, |
@@ -110,7 +110,7 @@ public: | |||
110 | 110 | ||
111 | private: | 111 | private: |
112 | // For testing | 112 | // For testing |
113 | Panel(); | 113 | Panel() = default; |
114 | 114 | ||
115 | void ReadIntersections(int id); | 115 | void ReadIntersections(int id); |
116 | void WriteIntersections(int id); | 116 | void WriteIntersections(int id); |
@@ -121,8 +121,11 @@ private: | |||
121 | // TODO: Decoration colors | 121 | // TODO: Decoration colors |
122 | 122 | ||
123 | std::tuple<int, int> loc_to_xy(int location) { | 123 | std::tuple<int, int> loc_to_xy(int location) { |
124 | int x = 2 * (location % ((_width + 1) / 2)); | 124 | int height2 = (_height - 1) / 2; |
125 | int y = (_height - 1) - 2 * (location / ((_width + 1) / 2)); | 125 | int width2 = (_width + 1) / 2; |
126 | |||
127 | int x = 2 * (location % width2); | ||
128 | int y = 2 * (height2 - location / width2); | ||
126 | return {x, y}; | 129 | return {x, y}; |
127 | } | 130 | } |
128 | 131 | ||
@@ -134,7 +137,24 @@ private: | |||
134 | return rowsFromBottom * width2 + x/2; | 137 | return rowsFromBottom * width2 + x/2; |
135 | } | 138 | } |
136 | 139 | ||
137 | Memory _memory = Memory("witness64_d3d11.exe"); | 140 | std::tuple<int, int> dloc_to_xy(int location) { |
141 | int height2 = (_height - 3) / 2; | ||
142 | int width2 = (_width - 1) / 2; | ||
143 | |||
144 | int x = 2 * (location % width2) + 1; | ||
145 | int y = 2 * (height2 - location / width2) + 1; | ||
146 | return {x, y}; | ||
147 | } | ||
148 | |||
149 | int xy_to_dloc(int x, int y) { | ||
150 | int height2 = (_height - 3) / 2; | ||
151 | int width2 = (_width - 1) / 2; | ||
152 | |||
153 | int rowsFromBottom = height2 - (y - 1)/2; | ||
154 | return rowsFromBottom * width2 + (x - 1)/2; | ||
155 | } | ||
156 | |||
157 | std::shared_ptr<Memory> _memory; | ||
138 | 158 | ||
139 | int _width, _height; | 159 | int _width, _height; |
140 | 160 | ||