… | |
… | |
127 | #define MIN_RANDOM_MAP_SIZE 12 |
127 | #define MIN_RANDOM_MAP_SIZE 12 |
128 | |
128 | |
129 | struct MazeData : zero_initialised |
129 | struct MazeData : zero_initialised |
130 | { |
130 | { |
131 | char **col; |
131 | char **col; |
|
|
132 | int w, h; |
132 | |
133 | |
133 | MazeData (int xsize, int ysize); |
134 | MazeData (int w, int h); |
134 | ~MazeData (); |
135 | ~MazeData (); |
135 | |
136 | |
136 | operator char **() |
137 | operator char **() |
137 | { |
138 | { |
138 | return col; |
139 | return col; |
139 | } |
140 | } |
|
|
141 | |
|
|
142 | void clear (char fill = 0); |
|
|
143 | void border (char fill = '#'); |
140 | }; |
144 | }; |
141 | |
145 | |
142 | struct Maze |
146 | struct Maze |
143 | { |
147 | { |
144 | MazeData *ptr; |
148 | MazeData *ptr; |
… | |
… | |
160 | void free () |
164 | void free () |
161 | { |
165 | { |
162 | delete ptr; |
166 | delete ptr; |
163 | } |
167 | } |
164 | |
168 | |
|
|
169 | MazeData *operator ->() const |
|
|
170 | { |
|
|
171 | return ptr; |
|
|
172 | } |
|
|
173 | |
165 | operator char **() |
174 | operator char **() const |
166 | { |
175 | { |
167 | return *ptr; |
176 | return *ptr; |
|
|
177 | } |
|
|
178 | |
|
|
179 | void swap (Maze &maze) |
|
|
180 | { |
|
|
181 | MazeData *p = maze.ptr; |
|
|
182 | maze.ptr = ptr; |
|
|
183 | ptr = p; |
168 | } |
184 | } |
169 | }; |
185 | }; |
170 | |
186 | |
171 | #endif |
187 | #endif |
172 | |
188 | |