this repo has no description
13
fork

Configure Feed

Select the types of activity you want to include in your feed.

at 5e39d991f73f59df546c0e0c467a34c2df4e0822 355 lines 59 kB view raw
1const std = @import("std"); 2const log = std.log.scoped(.main); 3const mem = std.mem; 4const process = std.process; 5 6const vaxis = @import("vaxis"); 7const View = vaxis.widgets.View; 8const Cell = vaxis.Cell; 9const border = vaxis.widgets.border; 10 11const Event = union(enum) { 12 key_press: vaxis.Key, 13 winsize: vaxis.Winsize, 14}; 15 16pub fn main(init: std.process.Init) !void { 17 const io = init.io; 18 const alloc = init.gpa; 19 20 var world_map: []const u8 = lg_world_map; 21 var map_width = lg_map_width; 22 var map_height = lg_map_height; 23 var use_sm_map = false; 24 var use_mini_view = false; 25 26 var x: u16 = 0; 27 var y: u16 = 0; 28 var h: u16 = 0; 29 var w: u16 = 0; 30 defer log.info( 31 \\Results: 32 \\ - Map Size: {d}x{d} 33 \\ - Screen Size: {d}x{d} 34 \\ - Position: {d}, {d} 35 , .{ 36 map_width, map_height, 37 w, h, 38 x, y, 39 }); 40 41 var buffer: [1024]u8 = undefined; 42 var tty: vaxis.Tty = try .init(io, &buffer); 43 defer tty.deinit(); 44 45 const writer = tty.writer(); 46 47 // Initialize Vaxis 48 var vx = try vaxis.init(io, alloc, init.environ_map, .{ 49 .kitty_keyboard_flags = .{ .report_events = true }, 50 }); 51 defer vx.deinit(alloc, tty.writer()); 52 var loop: vaxis.Loop(Event) = .init(io, &tty, &vx); 53 try loop.start(); 54 defer loop.stop(); 55 try vx.enterAltScreen(writer); 56 try writer.flush(); 57 try vx.queryTerminal(tty.writer(), .fromSeconds(20)); 58 59 // Initialize Views 60 // - Large Map 61 var lg_map_view = try View.init(alloc, .{ .width = lg_map_width, .height = lg_map_height }); 62 defer lg_map_view.deinit(); 63 //w = lg_map_view.screen.width; 64 //h = lg_map_view.screen.height; 65 var lg_map_buf: [lg_map_width * lg_map_height]u8 = undefined; 66 _ = mem.replace(u8, lg_world_map, "\n", "", lg_map_buf[0..]); 67 _ = lg_map_view.printSegment(.{ .text = lg_map_buf[0..] }, .{ .wrap = .grapheme }); 68 // - Small Map 69 var sm_map_view = try View.init(alloc, .{ .width = sm_map_width, .height = sm_map_height }); 70 defer sm_map_view.deinit(); 71 w = sm_map_view.screen.width; 72 h = sm_map_view.screen.height; 73 var sm_map_buf: [sm_map_width * sm_map_height]u8 = undefined; 74 _ = mem.replace(u8, sm_world_map, "\n", "", sm_map_buf[0..]); 75 _ = sm_map_view.printSegment(.{ .text = sm_map_buf[0..] }, .{ .wrap = .grapheme }); 76 // - Active Map 77 var map_view = lg_map_view; 78 79 // TUI Loop 80 while (true) { 81 const event = try loop.nextEvent(); 82 switch (event) { 83 .key_press => |key| { 84 // Close Demo 85 if (key.matches('c', .{ .ctrl = true })) break; 86 // Scroll 87 if (key.matches(vaxis.Key.left, .{})) x -|= 1; 88 if (key.matches(vaxis.Key.right, .{})) x +|= 1; 89 if (key.matches(vaxis.Key.up, .{})) y -|= 1; 90 if (key.matches(vaxis.Key.down, .{})) y +|= 1; 91 // Quick Scroll 92 if (key.matches(vaxis.Key.left, .{ .ctrl = true })) x -|= 30; 93 if (key.matches(vaxis.Key.right, .{ .ctrl = true })) x +|= 30; 94 if (key.matches(vaxis.Key.up, .{ .ctrl = true })) y -|= 10; 95 if (key.matches(vaxis.Key.down, .{ .ctrl = true })) y +|= 10; 96 // Goto Side 97 if (key.matches(vaxis.Key.left, .{ .shift = true })) x -|= map_width; 98 if (key.matches(vaxis.Key.right, .{ .shift = true })) x +|= map_width; 99 if (key.matches(vaxis.Key.up, .{ .shift = true })) y -|= map_height; 100 if (key.matches(vaxis.Key.down, .{ .shift = true })) y +|= map_height; 101 // Change Zoom (Swap Map Views) 102 if (key.matches('z', .{})) { 103 if (use_sm_map) { 104 world_map = lg_world_map; 105 map_width = lg_map_width; 106 map_height = lg_map_height; 107 map_view = lg_map_view; 108 } else { 109 world_map = sm_world_map; 110 map_width = sm_map_width; 111 map_height = sm_map_height; 112 map_view = sm_map_view; 113 } 114 use_sm_map = !use_sm_map; 115 w = map_width; 116 h = map_height; 117 } 118 // Mini View (Forced Width & Height Limits) 119 if (key.matches('m', .{})) use_mini_view = !use_mini_view; 120 }, 121 .winsize => |ws| try vx.resize(alloc, tty.writer(), ws), 122 } 123 124 const win = vx.window(); 125 win.clear(); 126 127 const controls_win = win.child(.{ 128 .height = 1, 129 }); 130 _ = controls_win.print( 131 if (win.width >= 112) &.{ 132 .{ .text = "Controls:", .style = .{ .bold = true, .ul_style = .single } }, 133 .{ .text = " Exit: ctrl + c | Scroll: dpad | Quick Scroll: ctrl + dpad | Goto Side: shift + dpad | Zoom: z | Mini: m" }, 134 } else if (win.width >= 25) &.{ 135 .{ .text = "Controls:", .style = .{ .bold = true, .ul_style = .single } }, 136 .{ .text = " Win too small!" }, 137 } else &.{ 138 .{ .text = "" }, 139 }, 140 .{ .wrap = .none }, 141 ); 142 143 // Views require a Window to render to. 144 const map_win = if (use_mini_view) 145 win.child(.{ 146 .y_off = controls_win.height, 147 .border = .{ .where = .top }, 148 .width = 45, 149 .height = 15, 150 }) 151 else 152 win.child(.{ 153 .y_off = controls_win.height, 154 .border = .{ .where = .top }, 155 }); 156 157 // Clamp x and y 158 x = @min(x, map_width -| map_win.width); 159 y = @min(y, map_height -| map_win.height); 160 161 map_view.draw(map_win, .{ 162 .x_off = x, 163 .y_off = y, 164 }); 165 if (use_mini_view) { 166 _ = win.printSegment( 167 .{ .text = "This is a mini portion of the View." }, 168 .{ .row_offset = 16, .col_offset = 5, .wrap = .word }, 169 ); 170 } 171 172 // Render the screen 173 try vx.render(writer); 174 try writer.flush(); 175 } 176} 177 178const sm_world_map = 179 \\ +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN+ 180 \\ W................................................................................................E 181 \\ W................................................................................................E 182 \\ W............................ @:::::::::@ ..................... .............................E 183 \\ W..... . ..... ::: ...::::::: ........ ...... %@%...........:*%@ . ..............E 184 \\ W..@:::::::::::::::::::: ::: ::::@ @@ ..... %#%%%%%%%%%%%%...........................* .......E 185 \\ W ::::@::::::::::::: .. :: ... * ....... . %%% %%%%%%%%%%%%%..................... ..* .........E 186 \\ W .....@::::::::::::.=::::: ........... @% @. %% %%%-...................:%% @. ..........E 187 \\ W...... :::%@@:@:::::::::@ :-........... @%%%%%%%%%%%%%%%%........................ .. ..........E 188 \\ W......@::::@@@.=-:::::=: ............. %@%%@# %%%%%%%..%%%.........@............ @=............E 189 \\ W..... :::::::::::::: ................. %%% @ % ........................... . . .............E 190 \\ W..... #:::::::::::@ .................. @=====@ .........................@ .= ............E 191 \\ W...... :::::@ @ ................... ============== .... ..................... .. .............E 192 \\ W....... .::=.. :# ................. ================ ...... ............... .................E 193 \\ W......... ::::... @-............... ================- ....@ ...-... . ....@ .. ...............E 194 \\ W............. :=.. % ...............==================+ ......@. .... ... .. @ ..............E 195 \\ W............... ######@ ............ ========@=@@@======@........ @.... . .. ................E 196 \\ W................ ######### ................. ===========@............... .@ ..@ =..............E 197 \\ W............... #############= ............. ========== ................. . ..*. . --- .......E 198 \\ W................ ###@@@#@#####%.............. ======== .................... @.@.... .*-=- ......E 199 \\ W................. ##@##@@#@### .............. ========-. -...................... -- + ........E 200 \\ W................... ##########................=======% *= .................... @-------- .......E 201 \\ W................... #######* ................-====== .-+....................#-@--@-@#--- ......E 202 \\ W................... ####### .................. ====- ........................@----------- ......E 203 \\ W................... ###### ....................@-* .......................... = ----:..... .E 204 \\ W....................####@ ......................................................... - .... -@ E 205 \\ W.................... ###.................................................................%-@ ...E 206 \\ W..................... #@........................................................................E 207 \\ W...................... ......................................................................E 208 \\ +SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+ 209 \\ 210; 211const sm_map_width = mapWidth: { 212 @setEvalBranchQuota(100_000); 213 break :mapWidth mem.indexOfScalar(u8, sm_world_map, '\n').?; 214}; 215const sm_map_height = mapHeight: { 216 @setEvalBranchQuota(100_000); 217 break :mapHeight mem.count(u8, sm_world_map, "\n"); 218}; 219 220const lg_world_map = 221 \\ +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN+ 222 \\ W...........................................................................................................................................................................................................................................................................................................................................................................................................E 223 \\ W...........................................................................................................................................................................................................................................................................................................................................................................................................E 224 \\ W...........................................................................................................................................................................................................................................................................................................................................................................................................E 225 \\ W...........................................................................................................................................................................................................................................................................................................................................................................................................E 226 \\ W...........................................................................................................................................................................................................................................................................................................................................................................................................E 227 \\ W...........................................................................................................................................................................................................................................................................................................................................................................................................E 228 \\ W...........................................................................................................................................................................................................................................................................................................................................................................................................E 229 \\ W...........................................................................................................................................................................................................................................................................................................................................................................................................E 230 \\ W........................................................................................................................................................ ............................................................................................................................................................................................................................................E 231 \\ W................................................................................................................................ ................................................................................................................................................................................................................................E 232 \\ W........................................................................................................................... @@@@@@@@%-::::---::::::=#@@@@.... ................................................................................................................................................................................................................................E 233 \\ W..................................................................................................................... .@@@@:::::::::::::::::::::::::::::::::::::-@@ ...............................................................................................................................................................................................................................E 234 \\ W.................................................................................................................... %@@@#:::::::::::::::::::::::::::::::::::::@@- ...................................................................................... .........................................................................................................................E 235 \\ W................................................................................................................... @:::::::::::::::::::::::::::::::::::::::::@ .................................................................................... .@....@@: .......................................................................................................................E 236 \\ W............................................................................................... .... +:::::::::::::::::::::::::::::::::- ........................................................................... .. #@-.................@ ......................................................................................................E 237 \\ W......................................................................................... +@@@@@@@@@@ .... @:::::::::::::::::::::::::::::::@: ........................................................................ @@...........................%%%%*....%%@@= ..................................................................................E 238 \\ W........................ ... .................... @:::::::::::::@ ........ @::::::::::::::::::::::::::::+% ............................... ....................... @%%%%@@@%%%............................................-@@ %@@*******@@ .. ............................................................E 239 \\ W................... *@@#+++++++++@@%=== ======== ... @@::@ +::::::::::::::::-@ ....... *:::::::::::::::::::::::::::%@ ............................. %@@@@@= .. :@%%%%%%%%%%#.........................................................................+@= ................................................E 240 \\ W................ :@%=:::::::::::::::::::::::%%%-.:::::::::::::+%@@ =:::::--:::::@##%%::::::::@ ..... @:::::::::::::::::::::::%@+ ............................ @@%#%%%%%%%%%%#@@* +***@@%%%%%%%%%%%%%##..........................................................................................-%@@@@@+ .........................................E 241 \\ W............. .*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%@@@=:::::::::::::::@@ @::::::::@ .... @:::::::::::::::::::@@. ...................... @%%%%%%%%%%%%%%%#%%%%%%%@@%%%%@@@%%%%%%%%%#%%%%%%%%%%%%=.....................................................................................................@@@%. ....................................E 242 \\ W............ =#-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::=@* @+:::::=:::+@ ... @::::::::::::::::@. @@@@@%%@@@ ................... @@%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%%%%%%%%%%%%%%............................................................................................................@@@ ...................................E 243 \\ W......... *::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::@ *%::::::::::@ @@ ... *::::::::::@@@ ... %%%%%%%%@ ................ @@%%%%%##%* -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%%......................................................................................................* @...@ ...................................E 244 \\ W....... =@@=::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::@ =@@@@ @:::::=@ ..... *:::::::::@ ....... :=@%%@ ............. %@%%%%%%%%%@: @%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#=.......................................................................................................@ ...................................E 245 \\ W...... @:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::@: @:::-@ @@* ........ @::::::@- .............. ............... @@@%%%%%%%%%%@ @%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.....................................................................................................+@@ .......................................E 246 \\ W..... :@::::::::::::::::#%*::::::::::::::::::::::::::::::::::::::::::::::::::::@ ...... @:::::::@ .......... ..@:@: .............................. .... *@%%%%%%%%%%%@* +@%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%....................................................................................@ .@.=@.........@ .........................................E 247 \\ W.... @::::::::::=%@@ #%:::::::::::::::::::::::::::::::::::::::::::::- ........ @::::::::@:@=::@ ........... ................................ -@@ .. @%%%@@%%%%%%%=# @%%%%%%%%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.........................................................................%@@@@@####@# +....#% ............................................E 248 \\ W. -@-:::*@- .. @::::::::::::::::::::::::::::::::::::::::::::@+ ..... @:::::::::::::::.- ................................................... @%%%@% ... @%%%@# #@%%% : : - %= :: : +%%%%%%%%%%%%%%%%%%%%%%.......................................................................-. @.....@ ...............................................E 249 \\ W @:::::%@ ............. ::::::::::::::::::::::::::::::::::::::::::::::::%+ +@:::::::::::::::::@ ............................................... %@%%%= ... %@ @%%%@ @%%%%% %. . - : . . +%%%%%%%%%%%%%%%#*%##%-.......................................................................:* ..... @......@: ..............................................E 250 \\ W@::::+@ .................. ::::::::::::::::::::::::::::::::::::::::::::::::::.+@ @*::::::::::::::::::::@ ........................................... :@@ @%%@# . #%%- @@@%%%%%% . . - # : . *#%%%%%%%%%%%#...............................................................................-@%% .... @........ ..............................................E 251 \\ W ...................... :::::::::::::::::::::::::::::::::::::::::::::::::::-. @::::::::::::::::::::::::* ........................................... @%%%@ @%%%@ @@@%%%%%%%%%%%%%%%%%%% @. . - : *#. *%%%%%%%%%%%%%#.........................................................................................@ .... @.....% ..............................................E 252 \\ W.. ......................... ::::::::::@:@:@@@:%@@%%@@@@@=@:::::::::::::::::::::= #=:::::::::::::::::::::::@ ........................................... :@%%%@ #%%%%%@ @@%%%%%%%%%%%%%%%%%%%%%% % % . .* += *%: -%%%%%%%%%#%............................................................................................@ ... +@..# ..............................................E 253 \\ W............................... .@.::::::::@#@.@+@@%@*@:%@:@@#@:::::::::::::::::::::::::::::::::::::::::::::::::@ ........................................... @@@ @@%@@@@ @@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%...............................................................................................@- .... @ ..............................................E 254 \\ W............................... @::::::::::@@@:@+@%%@%@:%@:@@@@:::::::::::::::::::::::::::::::::::::::%@@ @:::::@ ........................................... @@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.................................................................................................@ ..... ...............................................E 255 \\ W............................... @:::::::::@=@:@*@#%@+@:%@:@@=@::::::::::::::::::::::::::::::::::::::*@ @::::::* ................................................ .@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%##%%%%%%%%%%%%%.............................................................................................@@=.-: .........................................................E 256 \\ W............................... @:::::::::::::::::::::::::::.::::::::::::::::::::::::::::::::::::::. @@@:@-:+= ................................................ @%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%#.......*%##%%%%%%%#%...........................................................................................- @.@ .........................................................E 257 \\ W.............................. @::::::::.:@@::@@:@@+@@.@@@:@*:@@*:@@*:::::::::::::::::::::::::::::::::@ ............................................. . @%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%%#............%%%%%%%%%%..............................@@.+@-@.@.@@@................................................@ .....................................................E 258 \\ W............................ -=:::::::::::@@*:@@*@@+@::@:@:@*@@=@:@@@::::::::::::::::::::::::::::::@@@ ..................................................... @%%%%%%%%%#%%%%%%@-@@%%%#%%%%%%%%%%%%%%%%%%%%##%#.........%#%%%%%%%%%=...........................@@=.@@..@.@.@...............................................@ *@@ ....................................................E 259 \\ W........................... @:::::::::::::@=@:@@@%@+@@.@@@:@*@@:::@.@:::::::::::::::::::::@@# :%@ ...................................................... @%%%%%%%%%%%%%@@@@@- *@%#@- .@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%........#%%%%%%%%%%..........................*@@@.:*@.@.@+@..............................................@ =....# ....................................................E 260 \\ W.......................... @:::::::::::::+@@@:@=@%@+@::@.@:@*#@=@:@@@:::::::::::::::::::.@ ........................................................ @%%%%%%%%%%%%%%@ #@%%@@ .@%%%%%%%%%%%%%%%#%%%%%%%%%%..........%%%%%%%#%=.........................@@=@.@@@.@.@.@............................................@ . =..++ .....................................................E 261 \\ W......................... @::::::::::::::-=:=:=:--=:==:=:=:=::*@::=:=::::::::::::::::@# ................................................................. @%%%%%%%%%%%@@- .... .@@%%@* @%%%%@@@***%%%#......................%%%%%%%%%..................................................................................% ... .....................................................E 262 \\ W......................... @.:::::::::::::::::::::::::::::::::::::::::::::::::::::::-% ................................................................... @%%%%%%%%%%%@ ....... @%@ @%%#@ -...............................#%%%%#.........................................................................% #*@@....+ ..... ..@ .....................................................E 263 \\ W......................... @::::::::::::::::::::::::::::::::::::::::::::::::::::::@ ....................................................................... @%%%%%%%%%@: @%%%%@ :%%% .@.............................................................................................................@ @....@ ... ...@ .....................................................E 264 \\ W.......................... @:::::::::::::::::::::::::::::::::::::::::::::::::::::- .......................................................................... ==-@@@@@ .@@+--*#####@# @%@ @@@ @................................................................................................................= @... +...@ .....................................................E 265 \\ W.......................... @::::::::::::::::::::::::::::::::::::::::::::::::::::.@ ........................................................................... %@@@@@@=-============@ . @+.=.....................................................................................................@ #..@ @@%....@ .....................................................E 266 \\ W.......................... =@::::::::::::::::::::::::::::::::::::::::::::::::::@ ........................................................................... @=====================@ .. ...... @......................................................................................................@ +- @.....@ .....................................................E 267 \\ W........................... *::::::::::::::::::::::::::::::::::::::::::::::@= ............................................................................ @-======================-@+.. ... @.......................................................................................................@ .@...%*+ .......................................................E 268 \\ W............................ *:::::::::::::::::::::::::::::::::::::::::::@ ............................................................................. :*-============================-@:. +====-@@@@@@@@* %.........................................................................................................@ .. @..-@ @@ .........................................................E 269 \\ W............................ @:::@@::::::::::::::::::::::::::::-*=:::::=. ............................................................................... @==================================--===============-@#..........................................................................................................- .. *@ @.@ .........................................................E 270 \\ W............................. @:@ @:::::::::::::::::::.@...... #@::: ............................................................................. ##=====================================================@ *................- #.....................................................................................= ... :.. .........................................................E 271 \\ W.............................. @:@ @::::::::::::::::@ :-:: ............................................................................ @@-======================================================% -...............@ @..................................................................................+. ... ............................................................E 272 \\ W.............................. @::@ %::::::::::::::+ ........... @.: .......................................................................... @=========================================================-@ %.................@# @.:@@:...........................................................................@ ...... ..............................................................E 273 \\ W.............................. @:.- *-:::::::::::.@ ............ .@ ......................................................................... @============================================================-= *+.................@ . ==@@......................................................................:. .........................................................................E 274 \\ W............................... =@:+% @::::::::::.@ ........... ........................................................................ @-============================================================-@. @................:%%:..:@ :+-...........................................................% .........................................................................E 275 \\ W................................ =.@ -@::::::::.% ..... -@::::*@@ .................................................................... #-===============================================================:@ @:........................+ .. %........................................................@% ...........................................................................E 276 \\ W................................. =::::::::.@ ... #@ @: -@:::@@: ............................................................. @=================================================================% @........................@ ...... @ .....................-@@-@.........................** ............................................................................E 277 \\ W....................................... @:::::::::.@ #::% *:::=: ........................................................... *-=================================================================- @.......................@ ........ ...................@ @..................@ -@@ ....... ....................................................................E 278 \\ W....................................... +@.:::::::::%@@@@@@:::@ ..... @::::@ .......................................................... @-=================================================================@. @....................@ ............ :@...............@ . :-...............- ........ ..................................................................E 279 \\ W........................................ -@::::::::::::::::@ ....... .-+@@-: ........................................................... :==================================================================-@ @.................@ ............. @..............@ .... *................+@ ......... @..@ ..................................................................E 280 \\ W.......................................... @@**+:.::::::::@ ......... ........................................................... @====================================================================-+ @.............@+ ............... :*..........*@ ....... +.................@ ........ +:..- .................................................................E 281 \\ W............................................. *%::::::::::@ ............................................................................. +-=====================================================================*@ #........-#@ .................. #........** ........ @..............- ....... @:..@# ................................................................E 282 \\ W.................................................... -@::::::::% ......... .............................................................. +-========================================================================% @...:@@ ...................... @.......@ ............. =.............+ ....... @@..# ...............................................................E 283 \\ W........................................................ @+::::@ ...... :+: ....................................................... @-========================================================================-@ =%- ....................... @......* ............... ..............@ ......... *@@ ...............................................................E 284 \\ W.......................................................... @:::@ ... @@%####@. ................................................... %+===================================@@=-@@=@@@-@@-@@@-@@@=================. .#@+-=@ ........................ @.....: ................ ..= @.......-= ........... ................................................................E 285 \\ W............................................................. -::+@ ###################@ ................................................... #-================================-@%%-@--@=@+@@=@-@-@+@-=========================@ .......................... @...@- ................ ..@ @...@@ ..................................................................................E 286 \\ W............................................................. -@@:+@@@#######################@ ................................................... *-================================@=@-@=-@=@+@@=@-=-@:@=========================@ ........................... @.% ................ ...@ @@: ........ ........................................................................E 287 \\ W............................................................... @%########################@ ............................................... --==============================*@*@-@--@=@+@@-@-@-@+@========================-* ............................. @+ ............. @...@ ......... : ......................................................................E 288 \\ W................................................................... =###########################@@* .............................................. @-================---========================================================@ ............................... *.- ........... %%...@ ......... #.@ ....................................................................E 289 \\ W....................................................................... .##############################+@ ............................................. @%=---=-*+--%@ @-====================================================-@ .................................. ........... @.@ @...@ ....... @#....-: ....................................................................E 290 \\ W...................................................................... @################################=@ ............................................... @-==============================================-@ .................................... .............. @..@ @..@ ... =@.....@ .. ..............................................................E 291 \\ W..................................................................... @##################################@ ................................................................... +============================================--* ......................................................... *...@ @.@ @........@ .............................................................E 292 \\ W.................................................................... @####################################@ .................................................................. *===========================================%# ............................................................ @..#@@ @............@ .++#@.@ .... ....................................................E 293 \\ W................................................................... @######################################@+ ............................................................. @==========================================-@ ............................................................... +....@ @..........@# *.....% .. ............................................E 294 \\ W................................................................... @#############################################%@+ ......................................................... @-========================================-@ .................................................................. @-...@- @.........+: @...*@ .. @---+: .......................................E 295 \\ W................................................................... @##################################################@@ ...................................................... =-=====================================-@ .................................................................... @....% @........@ @....# .... #+--+##---=@% .....................................E 296 \\ W................................................................... %##############%@@@#@@@#@%@%@@@#@%@@#################@. ..................................................... @-===================================-@ ........................................................................ %@..@ @@@@#@ .....+ ..... @+=-----------+@ ..................................E 297 \\ W................................................................... @###############@@###@#@#@%@%#@%#@@@@####################@= .................................................... @-==================================@ .......................................................................... @..@ .:@@@@ ...... @------------#@ .................................E 298 \\ W................................................................... +%################@@#@#@#@%@%#@%#@@@@#####################* ..................................................... :-=================================@ ............................................................................. *...:@@@@# ........... #-----------@ ................................E 299 \\ W.................................................................... @#############%@%@#@#@#@%@##@%#@%@@#####################@ ...................................................... @=================================@ .............................................................................. @........@# ...................... @------------@ ...............................E 300 \\ W..................................................................... #######################################################. ....................................................... @=================================@ .............................................................................. @@%.++@ ............... .. :+:@---@ @--*% ..............................E 301 \\ W..................................................................... @############@@#%@%%@%@@@#@@@#@#%@@%#@@##############% ........................................................ .*=================================== .................................................................................. .............. @%%@@ .............................E 302 \\ W....................................................................... @###########@@#%@@@@%@@##@#@#@#@%@@#@@@#############* ........................................................ %=================================-# .... ................................................................................................. %=@@@@= . :@ .............................E 303 \\ W........................................................................ @#########%@@@%@@@@%@@@%@@@#@#@%###@%@###########@ ........................................................ @-=================================% ... :*@ ........................................................................................ @------+ . -=-@ .... ...............................E 304 \\ W......................................................................... @########@@@@%@@@@%@@#%@#@#@#@%@@%@@@########### ......................................................... @===================================% @-=+ ....................................................................................... #@@@@%@--------: @--+ .....................................E 305 \\ W.......................................................................... @############################%#################+ ......................................................... ===================================-@ =@@===+ .................................................................................... %=--------------= .=---=+ ....................................E 306 \\ W........................................................................... @@#########################################** ......................................................... ==================================-@ @-======@ ................................................................................... %+------------------*@= @-----# ....................................E 307 \\ W.............................................................................. @#######################################@ ......................................................... +===============================-@ =======% ................................................................................. .@-----------------------------# ....................................E 308 \\ W................................................................................. =#######################################@ ......................................................... -+============================-@ . @=====+ ................................................................................ :@--------------------------------%* ..................................E 309 \\ W................................................................................. @#####################################@ ........................................................... --==========================@ .. @====-@ .............................................................................. @--------------------------------------@ .................................E 310 \\ W.................................................................................. @#####################################@ ............................................................. %==========================@ ... @-=====@ ............................................................................. @-----------------------------------------% ................................E 311 \\ W.................................................................................. @*#################################%@ .............................................................. %=========================@ ... +-====* ............................................................................. @-----+@@-@*@@-@@@*@@@*@@#-@@=-@--@-*@@-----=@ ...............................E 312 \\ W.................................................................................. :*############################+@* ................................................................ %========================-@ ... @-==-@ .............................................................................. *-----@+@-@*@@+@---#@-*@*@-@*#-@--@-@+@-------* ..............................E 313 \\ W.................................................................................. :*###########################@ ..................................................................... @-=======================* ..... @@-@ .............................................................................. *-----@-@-@*@@--@@-#@-*@%@-@=@-@--@-@-@-------@ ..............................E 314 \\ W.................................................................................. :*########################### ........................................................................ =+=====================@ ....... ............................................................................... @-----@#@+@#@@+@-@-#@-*@+@*@%@-@--@-@#@+------@ ..............................E 315 \\ W.................................................................................. :############################@ ........................................................................ #===================*. ................................................................................................ @---------------------------------------------= ...............................E 316 \\ W.................................................................................. %##########################@ ......................................................................... +================-@ ................................................................................................ =--------------------------------------------# ...............................E 317 \\ W.................................................................................. @#########################@ ........................................................................... @================@ .................................................................................................. @-------------------------------------------@ ................................E 318 \\ W................................................................................... @#######################%* ............................................................................. @-===========-@: .................................................................................................... *----------------------------------------+@ .................................E 319 \\ W................................................................................... @#######################* ............................................................................... *:=========-@* ...................................................................................................... *----% @--------------------@ .................. ..........E 320 \\ W................................................................................... @#####################%= ................................................................................ .@-=-#%%%%@ ........................................................................................................ :*... @------------------@ .................. @@ ..........E 321 \\ W................................................................................... @####################@ ................................................................................. ........................................................................................................... ........... @--------------@ .................... @--@ .........E 322 \\ W................................................................................... %#################### ..................................................................................... ...................................................................................................................................... @-----------=. ..................... @---@: .......E 323 \\ W................................................................................... @##################% ................................................................................................................................................................................................................................... .%=---------@ .................... @#-----@ .......E 324 \\ W.................................................................................... @##############%@- .................................................................................................................................................................................................................................... @@@ .................. ==----=@ .......E 325 \\ W.................................................................................... @#############@ ......................................................................................................................................................................................................................................... ................... @+----@ .........E 326 \\ W..................................................................................... @############ .................................................................................................................................................................................................................................................................... %@----*@: .............E 327 \\ W...................................................................................... %##########= ................................................................................................................................................................................................................................................................. @-----@ ...............E 328 \\ W...................................................................................... @#########@ ................................................................................................................................................................................................................................................................. =@-----#@# ..................E 329 \\ W....................................................................................... %#######@ ................................................................................................................................................................................................................................................................. %--+@#% ....................E 330 \\ W....................................................................................... @#######@@. ................................................................................................................................................................................................................................................................. ........................E 331 \\ W........................................................................................ @########@ .................................................................................................................................................................................................................................................................. .............................E 332 \\ W......................................................................................... @#####%. ....................................................................................................................................................................................................................................................................................................E 333 \\ W.......................................................................................... @#####+ ....................................................................................................................................................................................................................................................................................................E 334 \\ W........................................................................................... @#####@ .................................................................................................................................................................................................................................................................................................E 335 \\ W............................................................................................ +@@@##%@# ...............................................................................................................................................................................................................................................................................................E 336 \\ W............................................................................................. +@@@@@ ...............................................................................................................................................................................................................................................................................................E 337 \\ W................................................................................................. ................................................................................................................................................................................................................................................................................................E 338 \\ W...........................................................................................................................................................................................................................................................................................................................................................................................................E 339 \\ W...........................................................................................................................................................................................................................................................................................................................................................................................................E 340 \\ W...........................................................................................................................................................................................................................................................................................................................................................................................................E 341 \\ +SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+ 342 \\ 343; 344const lg_map_width: u16 = mapWidth: { 345 @setEvalBranchQuota(100_000); 346 break :mapWidth @intCast(mem.indexOfScalar(u8, lg_world_map, '\n').?); 347}; 348const lg_map_height: u16 = mapHeight: { 349 @setEvalBranchQuota(100_000); 350 break :mapHeight @intCast(mem.count(u8, lg_world_map, "\n")); 351}; 352 353test { 354 std.testing.refAllDecls(@This()); 355}