1[[block]]
2struct buf0 {
3  resolution : vec2<f32>;
4};
5
6var<private> gl_FragCoord : vec4<f32>;
7
8[[group(0), binding(0)]] var<uniform> x_7 : buf0;
9
10var<private> map : array<i32, 256>;
11
12var<private> x_GLF_color : vec4<f32>;
13
14fn main_1() {
15  var pos : vec2<f32>;
16  var ipos : vec2<i32>;
17  var i : i32;
18  var p : vec2<i32>;
19  var canwalk : bool;
20  var v : i32;
21  var directions : i32;
22  var j : i32;
23  var d : i32;
24  let x_57 : vec4<f32> = gl_FragCoord;
25  let x_60 : vec2<f32> = x_7.resolution;
26  pos = (vec2<f32>(x_57.x, x_57.y) / x_60);
27  let x_63 : f32 = pos.x;
28  let x_67 : f32 = pos.y;
29  ipos = vec2<i32>(i32((x_63 * 16.0)), i32((x_67 * 16.0)));
30  i = 0;
31  loop {
32    let x_75 : i32 = i;
33    if ((x_75 < 256)) {
34    } else {
35      break;
36    }
37    let x_78 : i32 = i;
38    map[x_78] = 0;
39
40    continuing {
41      let x_80 : i32 = i;
42      i = (x_80 + 1);
43    }
44  }
45  p = vec2<i32>(0, 0);
46  canwalk = true;
47  v = 0;
48  loop {
49    var x_102 : bool;
50    var x_122 : bool;
51    var x_142 : bool;
52    var x_162 : bool;
53    var x_103_phi : bool;
54    var x_123_phi : bool;
55    var x_143_phi : bool;
56    var x_163_phi : bool;
57    let x_86 : i32 = v;
58    v = (x_86 + 1);
59    directions = 0;
60    let x_89 : i32 = p.x;
61    let x_90 : bool = (x_89 > 0);
62    x_103_phi = x_90;
63    if (x_90) {
64      let x_94 : i32 = p.x;
65      let x_97 : i32 = p.y;
66      let x_101 : i32 = map[((x_94 - 2) + (x_97 * 16))];
67      x_102 = (x_101 == 0);
68      x_103_phi = x_102;
69    }
70    let x_103 : bool = x_103_phi;
71    if (x_103) {
72      let x_106 : i32 = directions;
73      directions = (x_106 + 1);
74    }
75    let x_109 : i32 = p.y;
76    let x_110 : bool = (x_109 > 0);
77    x_123_phi = x_110;
78    if (x_110) {
79      let x_114 : i32 = p.x;
80      let x_116 : i32 = p.y;
81      let x_121 : i32 = map[(x_114 + ((x_116 - 2) * 16))];
82      x_122 = (x_121 == 0);
83      x_123_phi = x_122;
84    }
85    let x_123 : bool = x_123_phi;
86    if (x_123) {
87      let x_126 : i32 = directions;
88      directions = (x_126 + 1);
89    }
90    let x_129 : i32 = p.x;
91    let x_130 : bool = (x_129 < 14);
92    x_143_phi = x_130;
93    if (x_130) {
94      let x_134 : i32 = p.x;
95      let x_137 : i32 = p.y;
96      let x_141 : i32 = map[((x_134 + 2) + (x_137 * 16))];
97      x_142 = (x_141 == 0);
98      x_143_phi = x_142;
99    }
100    let x_143 : bool = x_143_phi;
101    if (x_143) {
102      let x_146 : i32 = directions;
103      directions = (x_146 + 1);
104    }
105    let x_149 : i32 = p.y;
106    let x_150 : bool = (x_149 < 14);
107    x_163_phi = x_150;
108    if (x_150) {
109      let x_154 : i32 = p.x;
110      let x_156 : i32 = p.y;
111      let x_161 : i32 = map[(x_154 + ((x_156 + 2) * 16))];
112      x_162 = (x_161 == 0);
113      x_163_phi = x_162;
114    }
115    let x_163 : bool = x_163_phi;
116    if (x_163) {
117      let x_166 : i32 = directions;
118      directions = (x_166 + 1);
119    }
120    var x_227 : bool;
121    var x_240 : bool;
122    var x_279 : bool;
123    var x_292 : bool;
124    var x_331 : bool;
125    var x_344 : bool;
126    var x_383 : bool;
127    var x_396 : bool;
128    var x_228_phi : bool;
129    var x_241_phi : bool;
130    var x_280_phi : bool;
131    var x_293_phi : bool;
132    var x_332_phi : bool;
133    var x_345_phi : bool;
134    var x_384_phi : bool;
135    var x_397_phi : bool;
136    let x_168 : i32 = directions;
137    if ((x_168 == 0)) {
138      canwalk = false;
139      i = 0;
140      loop {
141        let x_177 : i32 = i;
142        if ((x_177 < 8)) {
143        } else {
144          break;
145        }
146        j = 0;
147        loop {
148          let x_184 : i32 = j;
149          if ((x_184 < 8)) {
150          } else {
151            break;
152          }
153          let x_187 : i32 = j;
154          let x_189 : i32 = i;
155          let x_194 : i32 = map[((x_187 * 2) + ((x_189 * 2) * 16))];
156          if ((x_194 == 0)) {
157            let x_198 : i32 = j;
158            p.x = (x_198 * 2);
159            let x_201 : i32 = i;
160            p.y = (x_201 * 2);
161            canwalk = true;
162          }
163
164          continuing {
165            let x_204 : i32 = j;
166            j = (x_204 + 1);
167          }
168        }
169
170        continuing {
171          let x_206 : i32 = i;
172          i = (x_206 + 1);
173        }
174      }
175      let x_209 : i32 = p.x;
176      let x_211 : i32 = p.y;
177      map[(x_209 + (x_211 * 16))] = 1;
178    } else {
179      let x_215 : i32 = v;
180      let x_216 : i32 = directions;
181      d = (x_215 % x_216);
182      let x_218 : i32 = directions;
183      let x_219 : i32 = v;
184      v = (x_219 + x_218);
185      let x_221 : i32 = d;
186      let x_222 : bool = (x_221 >= 0);
187      x_228_phi = x_222;
188      if (x_222) {
189        let x_226 : i32 = p.x;
190        x_227 = (x_226 > 0);
191        x_228_phi = x_227;
192      }
193      let x_228 : bool = x_228_phi;
194      x_241_phi = x_228;
195      if (x_228) {
196        let x_232 : i32 = p.x;
197        let x_235 : i32 = p.y;
198        let x_239 : i32 = map[((x_232 - 2) + (x_235 * 16))];
199        x_240 = (x_239 == 0);
200        x_241_phi = x_240;
201      }
202      let x_241 : bool = x_241_phi;
203      if (x_241) {
204        let x_244 : i32 = d;
205        d = (x_244 - 1);
206        let x_247 : i32 = p.x;
207        let x_249 : i32 = p.y;
208        map[(x_247 + (x_249 * 16))] = 1;
209        let x_254 : i32 = p.x;
210        let x_257 : i32 = p.y;
211        map[((x_254 - 1) + (x_257 * 16))] = 1;
212        let x_262 : i32 = p.x;
213        let x_265 : i32 = p.y;
214        map[((x_262 - 2) + (x_265 * 16))] = 1;
215        let x_270 : i32 = p.x;
216        p.x = (x_270 - 2);
217      }
218      let x_273 : i32 = d;
219      let x_274 : bool = (x_273 >= 0);
220      x_280_phi = x_274;
221      if (x_274) {
222        let x_278 : i32 = p.y;
223        x_279 = (x_278 > 0);
224        x_280_phi = x_279;
225      }
226      let x_280 : bool = x_280_phi;
227      x_293_phi = x_280;
228      if (x_280) {
229        let x_284 : i32 = p.x;
230        let x_286 : i32 = p.y;
231        let x_291 : i32 = map[(x_284 + ((x_286 - 2) * 16))];
232        x_292 = (x_291 == 0);
233        x_293_phi = x_292;
234      }
235      let x_293 : bool = x_293_phi;
236      if (x_293) {
237        let x_296 : i32 = d;
238        d = (x_296 - 1);
239        let x_299 : i32 = p.x;
240        let x_301 : i32 = p.y;
241        map[(x_299 + (x_301 * 16))] = 1;
242        let x_306 : i32 = p.x;
243        let x_308 : i32 = p.y;
244        map[(x_306 + ((x_308 - 1) * 16))] = 1;
245        let x_314 : i32 = p.x;
246        let x_316 : i32 = p.y;
247        map[(x_314 + ((x_316 - 2) * 16))] = 1;
248        let x_322 : i32 = p.y;
249        p.y = (x_322 - 2);
250      }
251      let x_325 : i32 = d;
252      let x_326 : bool = (x_325 >= 0);
253      x_332_phi = x_326;
254      if (x_326) {
255        let x_330 : i32 = p.x;
256        x_331 = (x_330 < 14);
257        x_332_phi = x_331;
258      }
259      let x_332 : bool = x_332_phi;
260      x_345_phi = x_332;
261      if (x_332) {
262        let x_336 : i32 = p.x;
263        let x_339 : i32 = p.y;
264        let x_343 : i32 = map[((x_336 + 2) + (x_339 * 16))];
265        x_344 = (x_343 == 0);
266        x_345_phi = x_344;
267      }
268      let x_345 : bool = x_345_phi;
269      if (x_345) {
270        let x_348 : i32 = d;
271        d = (x_348 - 1);
272        let x_351 : i32 = p.x;
273        let x_353 : i32 = p.y;
274        map[(x_351 + (x_353 * 16))] = 1;
275        let x_358 : i32 = p.x;
276        let x_361 : i32 = p.y;
277        map[((x_358 + 1) + (x_361 * 16))] = 1;
278        let x_366 : i32 = p.x;
279        let x_369 : i32 = p.y;
280        map[((x_366 + 2) + (x_369 * 16))] = 1;
281        let x_374 : i32 = p.x;
282        p.x = (x_374 + 2);
283      }
284      let x_377 : i32 = d;
285      let x_378 : bool = (x_377 >= 0);
286      x_384_phi = x_378;
287      if (x_378) {
288        let x_382 : i32 = p.y;
289        x_383 = (x_382 < 14);
290        x_384_phi = x_383;
291      }
292      let x_384 : bool = x_384_phi;
293      x_397_phi = x_384;
294      if (x_384) {
295        let x_388 : i32 = p.x;
296        let x_390 : i32 = p.y;
297        let x_395 : i32 = map[(x_388 + ((x_390 + 2) * 16))];
298        x_396 = (x_395 == 0);
299        x_397_phi = x_396;
300      }
301      let x_397 : bool = x_397_phi;
302      if (x_397) {
303        let x_400 : i32 = d;
304        d = (x_400 - 1);
305        let x_403 : i32 = p.x;
306        let x_405 : i32 = p.y;
307        map[(x_403 + (x_405 * 16))] = 1;
308        let x_410 : i32 = p.x;
309        let x_412 : i32 = p.y;
310        map[(x_410 + ((x_412 + 1) * 16))] = 1;
311        let x_418 : i32 = p.x;
312        let x_420 : i32 = p.y;
313        map[(x_418 + ((x_420 + 2) * 16))] = 1;
314        let x_426 : i32 = p.y;
315        p.y = (x_426 + 2);
316      }
317    }
318    let x_430 : i32 = ipos.y;
319    let x_433 : i32 = ipos.x;
320    let x_436 : i32 = map[((x_430 * 16) + x_433)];
321    if ((x_436 == 1)) {
322      x_GLF_color = vec4<f32>(1.0, 1.0, 1.0, 1.0);
323      return;
324    }
325
326    continuing {
327      let x_440 : bool = canwalk;
328      if (x_440) {
329      } else {
330        break;
331      }
332    }
333  }
334  x_GLF_color = vec4<f32>(0.0, 0.0, 0.0, 1.0);
335  return;
336}
337
338struct main_out {
339  [[location(0)]]
340  x_GLF_color_1 : vec4<f32>;
341};
342
343[[stage(fragment)]]
344fn main([[builtin(position)]] gl_FragCoord_param : vec4<f32>) -> main_out {
345  gl_FragCoord = gl_FragCoord_param;
346  main_1();
347  return main_out(x_GLF_color);
348}
349