diff --git a/maps/TestMap.json b/maps/TestMap.json new file mode 100644 index 0000000..c728afe --- /dev/null +++ b/maps/TestMap.json @@ -0,0 +1,40 @@ +{ "compressionlevel":-1, + "editorsettings": + { + "export": + { + "format":"json", + "target":"TestMap.json" + } + }, + "height":10, + "infinite":false, + "layers":[ + { + "data":[29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 18, 29, 29, 29, 29, 29, 29, 29, 29, 29, 38, 29, 29, 29, 29, 1, 2, 3, 4, 2, 48, 4, 2, 3, 4, 6, 50, 50, 50, 50, 50, 50, 22, 50, 23, 16, 22, 50, 23, 50, 43, 50, 50, 50, 50, 26, 41, 50, 50, 50, 50, 50, 22, 50, 50, 6, 50, 50, 50, 22, 50, 50, 50, 42, 50], + "height":10, + "id":1, + "name":"Tile Layer 1", + "opacity":1, + "type":"tilelayer", + "visible":true, + "width":10, + "x":0, + "y":0 + }], + "nextlayerid":2, + "nextobjectid":1, + "orientation":"orthogonal", + "renderorder":"right-down", + "tiledversion":"1.4.3", + "tileheight":16, + "tilesets":[ + { + "firstgid":1, + "source":"..\/sprites\/Cave.tsx" + }], + "tilewidth":16, + "type":"map", + "version":1.4, + "width":10 +} \ No newline at end of file diff --git a/maps/TestMap.tmx b/maps/TestMap.tmx new file mode 100644 index 0000000..649336a --- /dev/null +++ b/maps/TestMap.tmx @@ -0,0 +1,21 @@ + + + + + + + + +29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,18,29,29,29,29, +29,29,29,29,29,38,29,29,29,29, +1,2,3,4,2,48,4,2,3,4, +6,50,50,50,50,50,50,22,50,23, +16,22,50,23,50,43,50,50,50,50, +26,41,50,50,50,50,50,22,50,50, +6,50,50,50,22,50,50,50,42,50 + + + diff --git a/sprites/Cave.png b/sprites/Cave.png new file mode 100644 index 0000000..f8f9b24 Binary files /dev/null and b/sprites/Cave.png differ diff --git a/sprites/Cave.tsx b/sprites/Cave.tsx new file mode 100644 index 0000000..40c99e7 --- /dev/null +++ b/sprites/Cave.tsx @@ -0,0 +1,4 @@ + + + + diff --git a/sprites/TownTiles.ase b/sprites/TownTiles.ase index 615a0b0..b33e998 100644 Binary files a/sprites/TownTiles.ase and b/sprites/TownTiles.ase differ diff --git a/sprites/testmap.png b/sprites/testmap.png new file mode 100644 index 0000000..3291219 Binary files /dev/null and b/sprites/testmap.png differ diff --git a/src/main.zig b/src/main.zig index 1bc9c02..22adb47 100644 --- a/src/main.zig +++ b/src/main.zig @@ -14,14 +14,153 @@ var mara_box: Rect = Rect{.base = Point{.x = 20, .y = 40}, .width = 16, .height var mara_speed: i32 = 0; var screen = Rect{.base = Point{.x = 0, .y = 0}, .width = 160, .height = 160}; +var textBuf: [160]u8 = undefined; + export fn start() void { palette.mist(); } +const Tile = packed struct { + x: u4, + y: u4, +}; + +pub const map = [100]Tile{ + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 7, .y = 1}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 7, .y = 3}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 8, .y = 2}, + Tile{.x = 0, .y = 0}, + Tile{.x = 1, .y = 0}, + Tile{.x = 2, .y = 0}, + Tile{.x = 3, .y = 0}, + Tile{.x = 1, .y = 0}, + Tile{.x = 7, .y = 4}, + Tile{.x = 3, .y = 0}, + Tile{.x = 1, .y = 0}, + Tile{.x = 2, .y = 0}, + Tile{.x = 3, .y = 0}, + Tile{.x = 5, .y = 0}, + Tile{.x = 9, .y = 4}, + Tile{.x = 9, .y = 4}, + Tile{.x = 9, .y = 4}, + Tile{.x = 9, .y = 4}, + Tile{.x = 9, .y = 4}, + Tile{.x = 9, .y = 4}, + Tile{.x = 1, .y = 2}, + Tile{.x = 9, .y = 4}, + Tile{.x = 2, .y = 2}, + Tile{.x = 5, .y = 1}, + Tile{.x = 1, .y = 2}, + Tile{.x = 9, .y = 4}, + Tile{.x = 2, .y = 2}, + Tile{.x = 9, .y = 4}, + Tile{.x = 2, .y = 4}, + Tile{.x = 9, .y = 4}, + Tile{.x = 9, .y = 4}, + Tile{.x = 9, .y = 4}, + Tile{.x = 9, .y = 4}, + Tile{.x = 5, .y = 2}, + Tile{.x = 0, .y = 4}, + Tile{.x = 9, .y = 4}, + Tile{.x = 9, .y = 4}, + Tile{.x = 9, .y = 4}, + Tile{.x = 9, .y = 4}, + Tile{.x = 9, .y = 4}, + Tile{.x = 1, .y = 2}, + Tile{.x = 9, .y = 4}, + Tile{.x = 9, .y = 4}, + Tile{.x = 5, .y = 0}, + Tile{.x = 9, .y = 4}, + Tile{.x = 9, .y = 4}, + Tile{.x = 9, .y = 4}, + Tile{.x = 1, .y = 2}, + Tile{.x = 9, .y = 4}, + Tile{.x = 9, .y = 4}, + Tile{.x = 9, .y = 4}, + Tile{.x = 1, .y = 4}, + Tile{.x = 9, .y = 4}, +}; + +fn drawMap() !void { + w4.m.colors.* = .{ + ._0 = .p0, + ._1 = .p1, + ._2 = .p2, + ._3 = .p3, + }; + + + for (map) |tile, i| { + var x: u32 = i % 10; + var y: u32 = i / 10; + + w4.blitSub( + &sprites.Cave, + x * 16, + y * 16, + 16, + 16, + @intCast(u32, tile.x) * 16, + @intCast(u32, tile.y) * 16, + sprites.Cave_width, + w4.BlitFlags{.two_bits = true}, + ); + } +} + export fn update() void { - w4.m.colors._0 = .p3; - w4.m.colors._1 = .p0; - w4.text("Mara 2:\nTamamo's Fury", 10, 10); + // w4.m.colors._0 = .p3; + // w4.m.colors._1 = .p0; + // w4.text("Mara 2:\nTamamo's Fury", 10, 10); + + drawMap() catch unreachable; const gamepad = w4.m.gamepads[0]; @@ -75,24 +214,26 @@ export fn update() void { .two_bits = true, }; - w4.m.colors._0 = .p0; - w4.m.colors._1 = .p1; - w4.m.colors._2 = .p2; - w4.m.colors._3 = .p3; + // w4.m.colors._0 = .p0; + // w4.m.colors._1 = .p1; + // w4.m.colors._2 = .p2; + // w4.m.colors._3 = .p3; - w4.blit(&sprites.tamamotitle, 60, 60, sprites.tamamotitle_width, sprites.tamamotitle_height, flags); + // w4.blit(&sprites.tamamotitle, 60, 60, sprites.tamamotitle_width, sprites.tamamotitle_height, flags); - w4.m.colors._0 = .p0; - w4.m.colors._1 = .p1; - w4.m.colors._2 = .p3; - w4.m.colors._3 = .transparent; + // w4.m.colors._0 = .p0; + // w4.m.colors._1 = .p1; + // w4.m.colors._2 = .p3; + // w4.m.colors._3 = .transparent; - w4.blit(&sprites.glaceon, 100, 128, sprites.glaceon_width, sprites.glaceon_height, flags); + // w4.blit(&sprites.glaceon, 100, 128, sprites.glaceon_width, sprites.glaceon_height, flags); - w4.m.colors._0 = .transparent; - w4.m.colors._1 = .p0; - w4.m.colors._2 = .p1; - w4.m.colors._3 = .p3; + w4.m.colors.* = .{ + ._0 = .transparent, + ._1 = .p0, + ._2 = .p1, + ._3 = .p3, + }; if (mara_direction == Direction.Left) { flags.flip_x = true; diff --git a/src/sprites.zig b/src/sprites.zig index 0935419..dfe825b 100644 --- a/src/sprites.zig +++ b/src/sprites.zig @@ -14,4 +14,16 @@ pub const tamamotitle = [1024]u8{ 0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0 pub const glaceon_width = 48; pub const glaceon_height = 32; pub const glaceon_flags = 1; // BLIT_2BPP -pub const glaceon = [384]u8{ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0xbf,0xff,0xff,0xff,0xab,0xff,0xff,0xbf,0xff,0xff,0xff,0xe4,0xbf,0xff,0xff,0xea,0x0b,0xff,0xfe,0x6f,0xff,0xff,0xff,0xe4,0x2f,0xff,0xfe,0x80,0x0b,0xff,0xf9,0x6f,0xff,0xff,0xff,0xe5,0x2f,0xff,0xf8,0x05,0x2f,0xff,0xe5,0x6f,0xff,0xff,0xff,0xf9,0x2f,0xff,0xf8,0x54,0x2f,0xff,0x95,0x6f,0xff,0xff,0xff,0xf9,0x2f,0xab,0xe1,0x54,0xbf,0xfe,0x55,0x6f,0xff,0xff,0xff,0xfe,0x0a,0x02,0x81,0x50,0xbf,0xfe,0x55,0xaf,0xff,0xff,0xff,0xff,0x86,0x20,0x85,0x02,0xff,0xfe,0x96,0x2f,0xff,0xff,0xff,0xfe,0x55,0x88,0x80,0x2b,0xff,0xfe,0x28,0xbf,0xff,0xff,0xff,0xf8,0x04,0x06,0x02,0xbf,0xff,0xfe,0x00,0xbf,0xff,0xff,0xff,0xf8,0x00,0x55,0x8b,0xff,0xff,0xf8,0x02,0xff,0xff,0xff,0xff,0xfe,0x95,0x42,0x82,0xff,0xff,0xf8,0x02,0xff,0xff,0xff,0xff,0xfe,0x2a,0xa9,0x96,0xff,0xff,0xf8,0x0b,0xff,0xff,0xff,0xff,0xf9,0x80,0x89,0x96,0xff,0xff,0xe0,0x2f,0xff,0xff,0xff,0xff,0xf9,0x80,0x99,0x66,0xff,0xff,0x80,0xbf,0xff,0xff,0xff,0xff,0xe6,0x00,0x02,0x6b,0xfe,0xae,0x0a,0xff,0xff,0xff,0xff,0xff,0x96,0x50,0x02,0x5b,0xa8,0x08,0xaf,0xff,0xff,0xff,0xff,0xfe,0x5b,0x95,0x11,0x96,0x00,0x02,0xff,0xff,0xff,0xff,0xff,0xf9,0x5b,0xea,0x56,0x95,0x80,0x02,0xff,0xff,0xff,0xff,0xff,0xf9,0x5b,0xff,0xa0,0x25,0xa0,0x02,0xff,0xff,0xff,0xff,0xff,0xf9,0x6f,0xff,0xf8,0x26,0x58,0x00,0xbf,0xff,0xff,0xff,0xff,0xf9,0xbf,0xff,0xf8,0x89,0x5a,0x80,0xbf,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xe0,0x82,0x5b,0xe4,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe6,0x02,0x9b,0xe5,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x96,0x4b,0xeb,0xe5,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x99,0x5b,0xff,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe9,0x6f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }; \ No newline at end of file +pub const glaceon = [384]u8{ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0xbf,0xff,0xff,0xff,0xab,0xff,0xff,0xbf,0xff,0xff,0xff,0xe4,0xbf,0xff,0xff,0xea,0x0b,0xff,0xfe,0x6f,0xff,0xff,0xff,0xe4,0x2f,0xff,0xfe,0x80,0x0b,0xff,0xf9,0x6f,0xff,0xff,0xff,0xe5,0x2f,0xff,0xf8,0x05,0x2f,0xff,0xe5,0x6f,0xff,0xff,0xff,0xf9,0x2f,0xff,0xf8,0x54,0x2f,0xff,0x95,0x6f,0xff,0xff,0xff,0xf9,0x2f,0xab,0xe1,0x54,0xbf,0xfe,0x55,0x6f,0xff,0xff,0xff,0xfe,0x0a,0x02,0x81,0x50,0xbf,0xfe,0x55,0xaf,0xff,0xff,0xff,0xff,0x86,0x20,0x85,0x02,0xff,0xfe,0x96,0x2f,0xff,0xff,0xff,0xfe,0x55,0x88,0x80,0x2b,0xff,0xfe,0x28,0xbf,0xff,0xff,0xff,0xf8,0x04,0x06,0x02,0xbf,0xff,0xfe,0x00,0xbf,0xff,0xff,0xff,0xf8,0x00,0x55,0x8b,0xff,0xff,0xf8,0x02,0xff,0xff,0xff,0xff,0xfe,0x95,0x42,0x82,0xff,0xff,0xf8,0x02,0xff,0xff,0xff,0xff,0xfe,0x2a,0xa9,0x96,0xff,0xff,0xf8,0x0b,0xff,0xff,0xff,0xff,0xf9,0x80,0x89,0x96,0xff,0xff,0xe0,0x2f,0xff,0xff,0xff,0xff,0xf9,0x80,0x99,0x66,0xff,0xff,0x80,0xbf,0xff,0xff,0xff,0xff,0xe6,0x00,0x02,0x6b,0xfe,0xae,0x0a,0xff,0xff,0xff,0xff,0xff,0x96,0x50,0x02,0x5b,0xa8,0x08,0xaf,0xff,0xff,0xff,0xff,0xfe,0x5b,0x95,0x11,0x96,0x00,0x02,0xff,0xff,0xff,0xff,0xff,0xf9,0x5b,0xea,0x56,0x95,0x80,0x02,0xff,0xff,0xff,0xff,0xff,0xf9,0x5b,0xff,0xa0,0x25,0xa0,0x02,0xff,0xff,0xff,0xff,0xff,0xf9,0x6f,0xff,0xf8,0x26,0x58,0x00,0xbf,0xff,0xff,0xff,0xff,0xf9,0xbf,0xff,0xf8,0x89,0x5a,0x80,0xbf,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xe0,0x82,0x5b,0xe4,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe6,0x02,0x9b,0xe5,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x96,0x4b,0xeb,0xe5,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x99,0x5b,0xff,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe9,0x6f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }; + +// Cave +pub const Cave_width = 160; +pub const Cave_height = 80; +pub const Cave_flags = 1; // BLIT_2BPP +pub const Cave = [3200]u8{ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc6,0x5b,0x6a,0xfb,0xff,0xda,0xb1,0x5b,0x44,0x44,0x44,0x44,0xbb,0xeb,0xbb,0xeb,0x40,0x40,0x40,0x40,0xfc,0x05,0xf0,0x7c,0x05,0xaf,0x05,0xf0,0x1b,0xc1,0x5f,0xc0,0x17,0xc0,0x56,0xf0,0x15,0xbf,0xc0,0x3f,0xd5,0x6b,0xaa,0xff,0xeb,0xda,0xb5,0x6b,0x5a,0x95,0x6a,0x55,0xeb,0xee,0xeb,0xee,0x51,0x51,0x51,0x51,0xf1,0x55,0x75,0xb5,0x56,0xac,0x55,0xb1,0x5a,0xc5,0x6b,0x65,0x56,0xc5,0x66,0xb1,0x55,0xaf,0x15,0x5f,0xe5,0x6b,0xeb,0xaf,0xff,0xea,0xae,0xab,0xa5,0x25,0x95,0x9a,0xac,0x3b,0xac,0x3b,0x55,0x55,0x55,0x55,0xc5,0x55,0x6d,0xb5,0x5a,0xb1,0x51,0xb5,0x6a,0xd5,0x5b,0x55,0x5a,0xd5,0x56,0xb5,0x56,0xac,0x51,0x5b,0xfa,0xac,0x7f,0x6b,0xff,0xfa,0xaf,0xeb,0x49,0x5a,0x95,0x25,0xec,0x3a,0xec,0x3a,0x55,0x95,0x55,0x95,0xc5,0x56,0x6e,0xbe,0xaa,0xf5,0x55,0xae,0xaf,0x56,0x5a,0xfa,0x5b,0x6a,0x55,0xba,0x5a,0xbc,0x55,0x9b,0xff,0xf1,0x6b,0xab,0xfa,0xfe,0xb0,0x7f,0x6a,0xa4,0x95,0x65,0xb0,0x0e,0xb0,0x0e,0x59,0x99,0x59,0x99,0xd5,0x95,0x6b,0xff,0xff,0x6e,0x56,0xaf,0xff,0x96,0x6a,0xff,0xaf,0x55,0x95,0xbf,0xab,0xfd,0x65,0x9b,0xf0,0x55,0x6b,0xef,0xfa,0xfe,0xb1,0x5b,0x94,0x65,0x95,0x9a,0xb0,0x1e,0xb0,0x1e,0x96,0xa5,0x96,0xa5,0xd5,0x65,0x5b,0xdf,0xd6,0xae,0x6a,0xaf,0xdb,0xa6,0x6b,0x6b,0xf6,0xd5,0x5a,0xbb,0xfd,0xbd,0x65,0x5b,0xc5,0x99,0xab,0xff,0xff,0xff,0xc4,0x5b,0x55,0x5a,0x6a,0x55,0xc1,0x57,0xc1,0x57,0xa6,0xa6,0xa6,0xa6,0xf5,0x59,0x6b,0x6b,0xea,0xab,0xaa,0xbf,0x6a,0xea,0xbd,0xab,0x5a,0xba,0xab,0xda,0xf6,0xad,0x59,0x5b,0xd5,0x95,0xad,0xbb,0xff,0xda,0xd5,0x1b,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xd5,0xab,0x6b,0xfe,0xaf,0xff,0xdb,0xaa,0xbf,0xef,0xab,0xaa,0xba,0xad,0xaa,0xfa,0xad,0x55,0x6b,0xd5,0x96,0xad,0xaf,0xff,0x6a,0xd5,0x6b,0xab,0x5a,0xab,0xf6,0xaa,0xf6,0xab,0xda,0xaf,0xda,0xf6,0x6a,0xf1,0x7e,0xbe,0xab,0xff,0xf6,0xfd,0xab,0xea,0xf5,0xab,0xaf,0xea,0xff,0xfe,0xaa,0xfe,0xae,0x56,0xab,0xe9,0x56,0xba,0xaf,0xef,0xaa,0xd9,0x6b,0xaa,0xea,0xaa,0xda,0xaa,0xda,0xab,0x6a,0xab,0x6a,0xae,0xaa,0xc5,0x6b,0xdb,0xaf,0xff,0xfa,0xba,0xaf,0xff,0xea,0xab,0xff,0xff,0xfd,0xaf,0xeb,0xef,0xff,0xaa,0xaf,0xfa,0xaa,0xba,0xaf,0xff,0xaa,0xd6,0x6b,0xaa,0xea,0xaa,0xea,0xab,0xea,0xab,0xaa,0xab,0xaa,0xaf,0xaa,0xd5,0x6b,0x6a,0xfe,0xfb,0xfe,0xba,0xbf,0xff,0xfa,0xaf,0xff,0xff,0xf6,0xab,0xff,0xff,0xff,0xab,0xff,0xff,0xff,0xfe,0xbf,0xff,0xeb,0xe5,0xab,0xff,0xea,0xaf,0xeb,0xff,0xea,0xaf,0xfa,0xaf,0xea,0xbf,0xfa,0xf5,0xae,0xaa,0xff,0xea,0xff,0xbf,0xff,0xeb,0xff,0xff,0xfb,0xff,0xfe,0xab,0xff,0xfb,0xf6,0xfc,0x0f,0xf1,0x7d,0x6b,0xff,0xff,0xfd,0xba,0xaf,0xfb,0xfa,0xff,0xff,0xff,0xfa,0xbf,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xbf,0xeb,0xfb,0xff,0xff,0xfb,0xfa,0xff,0xff,0xff,0xeb,0xff,0xff,0xfb,0xfb,0xda,0xb1,0x57,0xc5,0x6d,0xab,0xfe,0xfb,0xf6,0xaf,0xff,0xfa,0xff,0xff,0xff,0xef,0xff,0xff,0xbf,0xfe,0xff,0xfe,0xff,0xc1,0x6f,0xeb,0xff,0xff,0xbf,0xff,0xfb,0xff,0xfa,0xbf,0xef,0xfb,0xef,0xff,0xef,0xff,0xea,0xb1,0x9b,0xc6,0x5b,0xaa,0xfb,0xfe,0xfa,0xac,0x7f,0xfe,0xff,0xeb,0xff,0xab,0xfe,0xff,0xef,0xff,0xff,0xfa,0xbf,0xc5,0x6b,0xaa,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xef,0xff,0xff,0xea,0xb1,0x9b,0xc5,0x5b,0xaa,0xff,0xff,0xda,0xb1,0x5b,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xd5,0x6b,0x6a,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0xb1,0x5b,0xc5,0x6b,0xaa,0xff,0xff,0xea,0xb1,0x5b,0xff,0xff,0xff,0xff,0xee,0xee,0xaa,0xaa,0xff,0xff,0xff,0xff,0xd5,0x6b,0xaa,0xfb,0xfe,0xff,0xff,0xff,0xff,0xaf,0xfe,0xaf,0xfe,0xbf,0xff,0xfb,0xfb,0xfb,0xf5,0x5b,0xd6,0xaf,0xef,0xfe,0xff,0xea,0xb5,0x6f,0xf0,0x1f,0x01,0x7f,0xbb,0xbb,0xaa,0xaa,0xfb,0xb0,0x0f,0xff,0xd9,0x6f,0xaa,0xfa,0xfa,0xbf,0xff,0xff,0xff,0xff,0xff,0xaf,0xfe,0xff,0xfb,0xfe,0xfa,0xfe,0xb5,0x6b,0xff,0xfd,0xbf,0xff,0xfa,0xfa,0xb5,0xbf,0xc5,0x57,0x15,0x6b,0xee,0xee,0xba,0xaa,0xfb,0xf0,0x07,0xeb,0xd5,0xba,0xeb,0xfe,0xfe,0xff,0xfe,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xf6,0xae,0xab,0xf0,0x1d,0xaf,0xef,0xfe,0xfa,0xfa,0xeb,0xd6,0x56,0xda,0x5b,0xff,0xff,0xaa,0xaa,0xff,0xc1,0x17,0xfb,0xd5,0xbe,0xbd,0x7f,0xff,0xd6,0xbf,0xff,0xfd,0xab,0xff,0xff,0xff,0xda,0xff,0xff,0xff,0xfa,0xae,0xaf,0xc5,0x5d,0xaf,0xeb,0xff,0xff,0xff,0x1b,0xd9,0x96,0xd5,0x6b,0xbb,0xbb,0xaa,0xaa,0xff,0xc4,0x46,0xff,0xea,0xbf,0xfe,0xaf,0xff,0x6a,0xaf,0xff,0xfe,0xab,0xdb,0xff,0xff,0x6a,0xfd,0x9a,0xff,0xda,0xaf,0xff,0xc4,0x5b,0xaf,0xeb,0xff,0xf6,0xb0,0x5b,0xd5,0x5a,0xd5,0x5b,0xff,0xff,0xaa,0xab,0xff,0x01,0x16,0xff,0xeb,0xf1,0x6e,0xaa,0xbe,0xaa,0xaf,0x5a,0xbf,0xff,0xab,0xf6,0xaf,0xaa,0xfe,0x6a,0xaf,0x6a,0xbd,0x5f,0xd5,0x1b,0xaf,0xff,0xfb,0xf6,0xb1,0x5b,0xd5,0x6b,0xf9,0x6b,0xef,0xfb,0xaa,0xaa,0xbd,0x14,0x55,0xbd,0xfc,0x05,0x9b,0xa6,0xae,0xaf,0xff,0x6a,0xab,0xc3,0xef,0x5a,0xab,0xeb,0xab,0xaa,0xab,0xab,0xc5,0x9b,0xd9,0x5a,0xff,0xff,0xfa,0xea,0xc5,0x9b,0xe9,0x6d,0xae,0xaf,0xff,0xff,0xaa,0xaa,0xb5,0x55,0x56,0x6e,0xf1,0x55,0x9b,0xaa,0xaf,0xf0,0x07,0xaa,0xab,0x15,0x75,0xaa,0xab,0xff,0xab,0xea,0xaa,0xfc,0x15,0x5b,0xd6,0x5a,0xff,0xbf,0xfe,0xea,0xd5,0x9b,0xfa,0xb6,0xaf,0xff,0xaa,0xaa,0xaa,0xba,0xb5,0x69,0x59,0x9e,0xd5,0x55,0x5a,0xea,0xaf,0x05,0x56,0xea,0xaf,0x15,0x7a,0xaa,0xbc,0x16,0xfc,0x3e,0xaa,0xc1,0x55,0x5b,0xd5,0x6a,0xeb,0xef,0xff,0xea,0xd9,0x5b,0xff,0xfa,0xac,0x1f,0xaa,0xaa,0xaa,0xba,0xb5,0x55,0x56,0x6e,0xd1,0x56,0x5a,0xff,0xfd,0x55,0x5a,0xff,0xf6,0xd1,0x6e,0xaf,0xc1,0x6a,0xb1,0x57,0xfa,0xc5,0x5a,0x5b,0xe5,0xab,0x6a,0xff,0xff,0xff,0xd9,0x6b,0xf0,0x5f,0xf1,0x5b,0xaa,0xaa,0xaa,0xba,0xf5,0xa6,0x59,0xab,0xd5,0x59,0x6a,0xc0,0x57,0x56,0x56,0xc0,0x56,0xd5,0x6b,0xf0,0x55,0x56,0xb1,0x54,0x5f,0xd4,0x55,0xab,0xfa,0xab,0xaa,0xff,0xfb,0xfd,0xba,0xab,0xf1,0x5d,0xb5,0x6b,0xaa,0xaa,0xaa,0xaa,0x5e,0x9a,0x96,0xab,0xf5,0x15,0x6a,0xc5,0x56,0xd5,0x56,0xc5,0x56,0xd5,0x5b,0xc5,0x59,0x56,0xb5,0x95,0x57,0x55,0x55,0xab,0xff,0xeb,0xea,0xfb,0xea,0xfe,0xba,0xaf,0xd5,0x76,0xb5,0x5b,0xaa,0xaa,0xae,0xaa,0x6e,0xa6,0x9a,0xac,0xf5,0x55,0xab,0xd5,0x56,0xd1,0x5b,0x55,0x1b,0x55,0xaa,0xd5,0x55,0x5a,0xb5,0x65,0x57,0x59,0x5a,0xaf,0xf1,0x7f,0xff,0xff,0xfb,0xf6,0xaf,0xff,0xe5,0xba,0xad,0x9b,0xaa,0xaa,0xba,0xaa,0x6b,0xaa,0xaa,0xad,0xfd,0x6a,0xab,0xf5,0x6a,0xfa,0xab,0x55,0xaf,0xaa,0xab,0xf5,0x56,0xab,0xfd,0x5a,0x57,0xd5,0xaa,0xff,0xc5,0x6b,0xda,0xff,0xff,0xfa,0xad,0xaf,0xd9,0xba,0xad,0x9b,0xaa,0xaa,0xba,0xaa,0xab,0xea,0xaa,0xbd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc6,0x5b,0x6a,0xff,0xff,0xea,0xb1,0x5b,0xd5,0xba,0xad,0x5b,0xaa,0xaa,0xaa,0xaa,0xff,0xff,0xff,0xff,0xb5,0xea,0xab,0x47,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xc5,0x5b,0xaa,0xff,0xff,0xda,0xb1,0x5b,0xc5,0x5b,0xaa,0xfe,0xfb,0xea,0xb1,0x9b,0xd5,0xba,0xad,0x5b,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0xd5,0xff,0xff,0xc7,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0x15,0x6b,0xaa,0xfb,0xfe,0xea,0xb1,0x6f,0xfa,0xab,0xab,0xff,0xff,0xfa,0xb5,0x5b,0xd6,0xba,0xae,0xab,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0xd7,0x40,0x15,0x77,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0x55,0x6b,0xaa,0xfb,0xff,0xfa,0xf5,0x6d,0xff,0xff,0xaf,0xeb,0xff,0xfe,0xbd,0x6b,0xea,0xde,0xbf,0xeb,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0xdc,0x55,0x55,0x37,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0x56,0xaf,0xea,0xfb,0xfb,0xff,0xfa,0xad,0xf0,0x53,0xfa,0xfb,0xfe,0xff,0xfe,0xbf,0xef,0x17,0xec,0x7f,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0xdf,0xff,0xff,0xde,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaa,0xf6,0xfb,0xff,0xff,0xfd,0xbe,0xae,0xc5,0x96,0xea,0xef,0xfa,0xf6,0xbf,0xeb,0xf0,0x5d,0xac,0x5f,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0xc5,0xea,0xab,0x5e,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xda,0xbf,0xff,0xfe,0xf6,0xaf,0xfb,0xc6,0x56,0xeb,0xff,0xff,0xf6,0xb1,0x6b,0xc5,0x5e,0xb1,0x9b,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0xc5,0xea,0xab,0x5e,0xff,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xda,0xfa,0xaf,0xef,0xfe,0xfa,0xab,0x5a,0xd6,0x5a,0xff,0xff,0xff,0xda,0xb1,0x9b,0xd6,0x6f,0xf5,0x9b,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0xc7,0xff,0xff,0xd7,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0x6a,0xbe,0xaf,0xff,0xfa,0xbe,0xab,0xaa,0xd6,0x5a,0xea,0xff,0xff,0xea,0xc6,0x5b,0xd5,0x6d,0xb5,0x5b,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0xdd,0x45,0x55,0x77,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaa,0xaf,0xbf,0xff,0xfe,0xff,0xeb,0xeb,0xe4,0x5b,0xaa,0xbe,0xfb,0xfa,0xc5,0x5b,0xd5,0x6e,0xb9,0x5b,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0xdd,0x55,0x50,0x37,0xfe,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xea,0xbf,0xfe,0xbf,0xff,0xff,0xff,0xff,0xd5,0x5a,0xea,0xbe,0xff,0xff,0x65,0x6b,0xe5,0xae,0xb5,0x6b,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0xdf,0xff,0xff,0xd7,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xfa,0xff,0xfa,0xbf,0xff,0xfa,0xff,0xff,0xf5,0x6a,0xea,0xff,0xff,0xdb,0x95,0xab,0xd5,0xaf,0xfa,0xab,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0xd1,0xea,0xab,0x57,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xfa,0xbe,0xbf,0xfa,0xaa,0xff,0xff,0xff,0x6b,0x56,0xaf,0xea,0xbf,0x7f,0xeb,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0xd5,0xea,0xff,0xf7,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xfa,0xff,0xff,0xfe,0xff,0xfa,0xaf,0xff,0xeb,0x6f,0xfb,0xff,0xae,0xea,0xff,0xfa,0xff,0xac,0x7f,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0xdf,0xff,0x51,0x5f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xea,0xff,0xfb,0xff,0xff,0xff,0xff,0xc5,0xbf,0x6b,0xef,0xfb,0xf6,0xbf,0xaf,0xff,0x1d,0xac,0x5f,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0xdd,0x15,0x54,0x5f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xfe,0xbf,0xef,0xc5,0x6b,0xaa,0xff,0xfe,0xf6,0xb0,0x5b,0xf0,0x5e,0xad,0x5b,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0xdf,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc5,0x1b,0xaa,0xff,0xff,0xea,0xb1,0x5b,0xc5,0x7a,0xad,0x5b,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xd9,0xba,0xad,0x9b,0xaa,0xaa,0xaa,0xaa,0xff,0xff,0xff,0xff,0xf0,0x7c,0x05,0x6c,0x01,0xa5,0xab,0xc0,0x70,0x05,0x16,0xbf,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0x5b,0xc0,0x66,0xfc,0x05,0xbc,0x1f,0xc1,0xd5,0xaf,0xf5,0x5b,0xaa,0xaa,0xaa,0xaa,0xff,0xff,0xff,0xff,0xc5,0x6c,0x59,0x6c,0x55,0x51,0x6b,0x15,0x6c,0x59,0x56,0xc7,0xff,0xef,0xff,0xff,0xfe,0xfe,0xfe,0xff,0x5b,0x15,0x56,0xb1,0x55,0xb1,0x56,0xc5,0xd5,0xad,0xb5,0x6b,0xaa,0xaa,0xaa,0xaa,0xff,0xff,0xff,0xff,0xd9,0x6b,0x59,0xb5,0x69,0x55,0xab,0x59,0xad,0x59,0x6a,0xc7,0xff,0xaa,0xff,0xef,0xff,0xff,0xfa,0xbf,0x6b,0x19,0x5a,0xb5,0x16,0xb5,0x96,0xd5,0xd6,0xb6,0xbe,0xab,0xaa,0xaa,0xaa,0xaa,0xff,0xff,0xff,0xff,0xd6,0x6b,0x55,0xb9,0x55,0xaa,0xad,0x46,0xab,0xaa,0xaf,0x17,0xff,0xeb,0xff,0xff,0xff,0xff,0xff,0xff,0xad,0x55,0xaa,0xea,0xaa,0xff,0x5a,0xfa,0xea,0xfa,0xbf,0xaf,0xaa,0xaa,0xaa,0xaa,0xff,0xff,0xff,0xff,0xd5,0x6b,0xfa,0xaf,0xea,0xaf,0xf9,0x5b,0xff,0xfa,0xb0,0x57,0xff,0xff,0xaf,0xff,0xbe,0xaf,0xff,0xff,0xfa,0xaa,0xab,0xeb,0xeb,0xfe,0xeb,0xff,0xff,0xff,0xc1,0xff,0xaa,0xaa,0xaa,0xaa,0xff,0xff,0xff,0xff,0xfa,0xad,0xaf,0xae,0xbf,0xfd,0xae,0xad,0xab,0xef,0xd5,0x5b,0xaf,0xfe,0xab,0xff,0xbe,0xbf,0xd6,0xf5,0xae,0xff,0xff,0xfd,0xbd,0xba,0xfd,0xad,0xf1,0xfa,0xc5,0x5f,0xaa,0xaa,0xaa,0xaa,0xff,0xff,0xff,0xff,0xff,0xf6,0xaa,0xf6,0xad,0xbd,0xab,0xf6,0xaa,0xeb,0xd9,0x1b,0xad,0xaf,0xaf,0xff,0xff,0xff,0xea,0xba,0xab,0x6d,0xaf,0xda,0xb6,0xbb,0xae,0xae,0xc5,0xeb,0xd6,0x5b,0xaa,0xaa,0xaa,0xaa,0xff,0xff,0xff,0xff,0xc0,0x7a,0xaa,0xda,0xae,0xae,0xaa,0xfa,0xab,0xab,0xfd,0x5b,0xbe,0xaf,0xff,0xff,0xff,0xef,0x6a,0xba,0xab,0xae,0xae,0xaa,0xba,0xbf,0xee,0xba,0xd6,0x7e,0xf5,0x9b,0xaa,0xaa,0xaa,0xaa,0xff,0xff,0xff,0xff,0xc5,0x5f,0xff,0xea,0xbf,0xaf,0xeb,0xae,0xaf,0xff,0xc7,0x9b,0xbe,0xab,0xda,0xef,0xff,0xff,0xaa,0xbe,0xae,0xbf,0xff,0xaa,0xbf,0xc1,0xf7,0xfa,0xd5,0x6e,0xb6,0x5b,0xaa,0xaa,0xaa,0xaa,0xff,0xff,0xff,0xff,0xd5,0x5a,0xc5,0xbf,0xe6,0xf0,0x7e,0xaf,0xf0,0x1f,0x17,0x9b,0xff,0xaf,0x6a,0xeb,0xfb,0xff,0xea,0xff,0xff,0xc1,0x9b,0xff,0xd3,0xc5,0x55,0xaf,0xf5,0xaf,0xd5,0x6b,0xaa,0xaa,0xaa,0xaa,0xff,0xff,0xff,0xff,0xd6,0x66,0xc6,0xb0,0x56,0xc5,0x55,0xb0,0x1d,0x5b,0x56,0xeb,0x5b,0xfe,0xaa,0xfb,0xfb,0xf5,0xff,0x16,0x1c,0x15,0x5b,0x00,0x56,0xd6,0x66,0xb0,0xfa,0xb6,0xba,0xab,0xaa,0xaa,0xaa,0xaa,0xff,0xff,0xff,0xff,0xd6,0x56,0xb5,0xb5,0x5a,0xc5,0x16,0xb1,0x5d,0x5b,0x66,0xeb,0x6b,0x1f,0xab,0xff,0xfb,0xda,0xbc,0x59,0x5d,0x69,0x5b,0x15,0x96,0xb5,0x96,0xc5,0xff,0xfa,0xba,0xff,0xaa,0xaa,0xaa,0xaa,0xff,0xff,0xff,0xff,0xf9,0x5a,0xae,0xb5,0x6b,0x99,0x5a,0xe5,0x9b,0x6b,0x5a,0xef,0x6c,0x5b,0xff,0xff,0xff,0xea,0xb1,0x55,0x5b,0x55,0xaa,0xe5,0x6a,0xb9,0x5a,0xd5,0xc1,0xfa,0xfb,0x1f,0xaa,0xaa,0xaa,0xaa,0xff,0xff,0xff,0xff,0xff,0xaa,0xaf,0xfe,0xaf,0xea,0xab,0xd6,0xab,0xab,0xab,0xff,0xb1,0x5b,0xda,0xfb,0xff,0xea,0xb1,0x9a,0xab,0xea,0xaa,0xfa,0xaa,0xfe,0xaa,0xfa,0xc5,0xbf,0x6c,0x5b,0xaa,0xaa,0xaa,0xaa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc5,0x6b,0x6a,0xfb,0xff,0xea,0xb1,0x6b,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xd5,0xb6,0xad,0x5b,0xaa,0xaa,0xaa,0xaa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xaf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc5,0xea,0xab,0x47,0xab,0xaa,0xea,0xba,0xd5,0xba,0xad,0x67,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xfb,0xfb,0xff,0xfb,0xff,0xff,0xbf,0xf0,0x03,0xff,0x0f,0xfd,0x57,0xf5,0x5f,0xd7,0x7f,0xff,0xd7,0xab,0xaa,0xeb,0xae,0x59,0xba,0xad,0xa5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xae,0xff,0xaf,0xff,0xfe,0xaf,0xef,0xfb,0xea,0xff,0xff,0xc1,0x45,0xf0,0x17,0xd5,0xaa,0xd5,0xaf,0xd7,0x45,0x41,0xde,0xab,0xa6,0xeb,0xaa,0x66,0xbe,0xfd,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xbe,0xfb,0xfb,0xff,0xff,0xff,0xff,0xbf,0xab,0xff,0xc5,0x15,0xc0,0x57,0xda,0x6a,0xda,0xab,0xb3,0xff,0xd5,0xd7,0xeb,0xaa,0xab,0xaa,0x5a,0xbf,0x6e,0xa5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xbb,0xfb,0xff,0xfe,0xab,0xff,0xfe,0xff,0xfe,0xff,0xd5,0x5b,0x04,0x57,0xea,0xaa,0xfa,0xab,0xb1,0xea,0xbf,0x17,0xea,0xea,0xab,0xaa,0xab,0xfd,0xab,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xbb,0xbb,0xef,0xff,0xeb,0xfe,0xfb,0xfe,0xff,0xff,0xbf,0xd9,0x5c,0x14,0x5b,0xea,0xae,0xbb,0xbb,0xb5,0xea,0xab,0x5e,0xea,0xeb,0xaa,0xea,0xfd,0xbe,0xaa,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xbe,0xbf,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xbf,0xbb,0xd5,0xac,0x54,0x5b,0xea,0xbb,0xba,0xeb,0xd7,0xff,0xab,0x57,0xee,0xeb,0x9a,0xea,0xa6,0xae,0xaa,0xea,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xfe,0xff,0xfb,0xff,0xbe,0xfe,0xff,0xfb,0xff,0xbe,0xff,0xea,0xb5,0x95,0x5b,0xfe,0xee,0xfe,0xaf,0xdd,0x05,0xff,0xf7,0xea,0xeb,0xaa,0xea,0xaa,0xaf,0xab,0xea,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfa,0xfb,0xef,0xbf,0xfb,0xbe,0xfe,0xff,0xfe,0xfe,0xfb,0xff,0xfa,0xb5,0x55,0x6b,0xff,0xfb,0xff,0xff,0xdd,0x55,0x44,0x73,0xea,0xeb,0xae,0xea,0xea,0xbf,0xff,0xaa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0xfe,0xef,0xff,0xbf,0xfb,0xff,0xef,0xbf,0xef,0xff,0xff,0xd5,0xa5,0x6f,0xf6,0xbf,0x6f,0xff,0xc7,0xff,0x55,0xd7,0xaa,0xea,0xaa,0xea,0xff,0xff,0xff,0xab,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xef,0xff,0xeb,0xef,0xef,0xff,0xea,0xbf,0xaf,0xc3,0xd6,0xa6,0xaf,0xda,0xad,0xaa,0xdb,0xc5,0xea,0xff,0xd3,0xae,0xba,0xaa,0xee,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xab,0xef,0xef,0xfa,0xfe,0xbf,0xbb,0xea,0xff,0xfe,0xfb,0xc5,0xba,0xaa,0xbf,0xea,0xee,0xae,0xeb,0xc5,0xea,0xab,0x57,0xae,0xba,0xea,0xea,0xfe,0xbf,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xef,0xef,0xef,0xbf,0xfe,0xfb,0xef,0xbf,0xfb,0xfb,0xd5,0xbe,0xaf,0xef,0xfa,0xbe,0xbb,0xeb,0xcf,0xff,0xff,0xf7,0x6e,0xba,0xba,0xba,0xfe,0xaf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xfb,0xfb,0xbf,0xee,0xfe,0xfe,0xfb,0xfb,0xef,0xef,0xef,0xd9,0xaf,0xf1,0x6b,0xff,0xff,0xaf,0xff,0xdd,0x15,0x41,0x77,0xae,0xaa,0xba,0xba,0xff,0xff,0xff,0xaf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xaf,0xfe,0xff,0xfb,0xff,0xff,0xaf,0xfe,0xbf,0xfa,0xbf,0xfa,0xaf,0xd5,0xab,0xff,0xff,0xff,0xbf,0xd7,0x55,0xff,0xf7,0xab,0xaa,0xeb,0xba,0xff,0xef,0xfe,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xaf,0xfe,0xff,0xd7,0xff,0xab,0x47,0xab,0xaa,0xea,0xba,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }; + +// testmap +pub const testmap_width = 32; +pub const testmap_height = 32; +pub const testmap_flags = 1; // BLIT_2BPP +pub const testmap = [256]u8{ 0xff,0xff,0xff,0xff,0xaa,0xaa,0xaa,0xaa,0xff,0xff,0xff,0xff,0xaa,0xaa,0xaa,0xaa,0xff,0xff,0xff,0xff,0xaa,0xaa,0xaa,0xaa,0xff,0xff,0xff,0xff,0xaa,0xaa,0xaa,0xaa,0xff,0xff,0xff,0xff,0xaa,0xaa,0xaa,0xaa,0xff,0xff,0xff,0xff,0xaa,0xaa,0xaa,0xaa,0xff,0xff,0xff,0xff,0xaa,0xaa,0xaa,0xaa,0xff,0xff,0xff,0xff,0xaa,0xaa,0xaa,0xaa,0xff,0xff,0xff,0xff,0xaa,0xaa,0xaa,0xaa,0xff,0xff,0xff,0xff,0xaa,0xaa,0xaa,0xaa,0xff,0xff,0xff,0xff,0xaa,0xaa,0xaa,0xaa,0xff,0xff,0xff,0xff,0xaa,0xaa,0xaa,0xaa,0xff,0xff,0xff,0xff,0xaa,0xaa,0xaa,0xaa,0xff,0xff,0xff,0xff,0xaa,0xaa,0xaa,0xaa,0xff,0xff,0xff,0xff,0xaa,0xaa,0xaa,0xaa,0xff,0xff,0xff,0xff,0xaa,0xaa,0xaa,0xaa,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x00 }; \ No newline at end of file diff --git a/src/tools/genmap.js b/src/tools/genmap.js new file mode 100644 index 0000000..be87b6c --- /dev/null +++ b/src/tools/genmap.js @@ -0,0 +1,21 @@ +if (Deno.args.length !== 1) { + console.log("Usage: ./genmap.js "); + Deno.exit(1); +} + +const mapFile = Deno.args[0]; +const data = await Deno.readTextFile(mapFile); +const map = JSON.parse(data); + +let layer = map.layers[0]; + +console.log(`pub const map = [${layer.data.length}]Tile{`); + +layer.data.forEach((tile, index) => { + tile -= 1; + const tileY = Math.trunc(tile / layer.height); + const tileX = tile % layer.width; + console.log(` Tile{.x = ${tileX}, .y = ${tileY}},`); +}); + +console.log("};");