From ea5e635635c579a8b2cccdbb26697ca069352dc8 Mon Sep 17 00:00:00 2001 From: Xe Iaso Date: Sat, 2 Jul 2022 08:49:59 -0400 Subject: [PATCH] get basic camera logic working Signed-off-by: Xe Iaso --- src/main.zig | 132 +++++++++++------ src/maps/dungeon.zig | 80 +++++------ src/maps/overworld.zig | 320 ++++++++++++++++++++--------------------- src/tools/genmap.js | 1 - 4 files changed, 292 insertions(+), 241 deletions(-) diff --git a/src/main.zig b/src/main.zig index 43fc898..e636545 100644 --- a/src/main.zig +++ b/src/main.zig @@ -16,20 +16,21 @@ const map = @import("./maps/overworld.zig"); var frame_count: u32 = 0; var mara_direction: Direction = Direction.Right; var mara_frame: bool = false; -var mara_box: Rect = Rect{.base = map.start_point, .width = 16, .height = 16}; +var mara_box: Rect = Rect{ .base = map.start_point, .width = 16, .height = 16 }; var mara_speed: i16 = 0; var old_speed: i16 = 0; -var screen = Rect{.base = Point{.x = 0, .y = 0}, .width = 160, .height = 160}; +var screen = Rect{ .base = Point{ .x = 0, .y = 0 }, .width = 160, .height = 160 }; const screen_width = 20; const screen_height = 20; +const tile_size: i16 = 8; var sound_timer: u8 = 0; var textBuf: [160]u8 = undefined; var done: bool = false; -var camera = Point{.x = 0, .y = 0}; +var camera = Point{ .x = 0, .y = 0 }; var state: sh0rk.State = .Gameplay; @@ -51,7 +52,7 @@ fn bonk() void { } w4.tone( - w4.Tone.Frequency{.start = 220, .end = 40}, + w4.Tone.Frequency{ .start = 220, .end = 40 }, w4.Tone.Duration{ .attack = 0, .decay = 0, @@ -79,52 +80,103 @@ fn drawMap() !void { ._3 = .p0, }; - var col: u32 = 0; - while (col < screen_width) { - var row: u32 = 0; - defer col += 1; + if (!done) { + var buf = fmt.bufPrint(&textBuf, "camera: {},{}", .{ camera.x, camera.y }) catch unreachable; + w4.trace(buf); + } - while (row < screen_height) { + var startCol: i32 = @divTrunc(camera.x, screen_width); + var endCol = startCol + screen_width; + var startRow: i32 = @divTrunc(camera.y, screen_height); + var endRow = startRow + screen_height; + + var offsetX = -camera.x + startCol * tile_size; + var offsetY = -camera.y + startRow * tile_size; + + if (!done) { + var buf = fmt.bufPrint(&textBuf, "{},{}: {},{}", .{ startCol, startRow, endCol, endRow }) catch unreachable; + w4.trace(buf); + } + + var col: i32 = startCol; + while (col < endCol) { + var row: i32 = startRow; + defer col += 1; + while (row < endRow) { defer row += 1; - var tile = map.data[col * map.width + row]; + var tile = map.data[@intCast(usize, col) * map.width + @intCast(usize, row)]; - // if (!done) { - // var buf = fmt.bufPrint(&textBuf, "{},{}: {}: {},{}", .{col, row, tile, tileX, tileY}) catch unreachable; - // w4.trace(buf); - // } + var x = (row - startCol) * tile_size + offsetX; + var y = (col - startRow) * tile_size + offsetY; - draw_tile(tile, row * 8, col * 8); + if (!done) { + var buf = fmt.bufPrint(&textBuf, "{},{}: {}: {},{}", .{ col, row, tile, x, y }) catch unreachable; + w4.trace(buf); + } + + var tileX = (tile - 1) % map.ts_width; + var tileY = (tile - 1) / map.ts_width; + + switch (map.tileset) { + .Rpg => w4.blitSub( + &sprites.kenney_rpg, + @intCast(u32, x), + @intCast(u32, y), + 8, + 8, + @intCast(u32, tileX) * 8, + @intCast(u32, tileY) * 8, + sprites.kenney_rpg_width, + w4.BlitFlags{ .two_bits = true }, + ), + .Dungeon => w4.blitSub( + &sprites.dungeon, + @intCast(u32, x), + @intCast(u32, y), + 8, + 8, + @intCast(u32, tileX) * 8, + @intCast(u32, tileY) * 8, + sprites.dungeon_width, + w4.BlitFlags{ .two_bits = true }, + ), + } } } } fn draw_tile(tile: u32, x: u32, y: u32) void { - var tileX = tile % map.ts_width; - var tileY = tile / map.ts_width; - + if (tile == 0) { + w4.rect(x, y, 8, 8); + return; + } + + var tileX = (tile - 1) % map.ts_width; + var tileY = (tile - 1) / map.ts_width; + switch (map.tileset) { .Rpg => w4.blitSub( - &sprites.kenney_rpg, + &sprites.kenney_rpg, x, y, - 8, + 8, 8, @intCast(u32, tileX) * 8, @intCast(u32, tileY) * 8, - sprites.kenney_rpg_width, - w4.BlitFlags{.two_bits = true}, + sprites.kenney_rpg_width, + w4.BlitFlags{ .two_bits = true }, ), .Dungeon => w4.blitSub( - &sprites.dungeon, + &sprites.dungeon, x, y, - 8, + 8, 8, @intCast(u32, tileX) * 8, @intCast(u32, tileY) * 8, - sprites.dungeon_width, - w4.BlitFlags{.two_bits = true}, + sprites.dungeon_width, + w4.BlitFlags{ .two_bits = true }, ), } } @@ -175,8 +227,8 @@ fn title() !void { w4.m.colors._2 = .p2; w4.m.colors._3 = .p3; - w4.blit(&sprites.tamamotitle, 48, 60, sprites.tamamotitle_width, sprites.tamamotitle_height, w4.BlitFlags{.two_bits = true}); - + w4.blit(&sprites.tamamotitle, 48, 60, sprites.tamamotitle_width, sprites.tamamotitle_height, w4.BlitFlags{ .two_bits = true }); + const gamepad = w4.m.gamepads[0]; if (gamepad.a or gamepad.b) { state = .StoryDump; @@ -187,12 +239,12 @@ const story = "After defeating\nthe evil mage,\nMalto was at\npeace.\n\nOne day var story_idx: usize = 0; var story_counter: u8 = 4; -fn storydump() !void { +fn storydump() !void { w4.m.colors._0 = .p3; w4.m.colors._1 = .p0; w4.text(story[0..story_idx], 4, 4); - + const gamepad = w4.m.gamepads[0]; if (gamepad.b) { state = .Gameplay; @@ -209,9 +261,9 @@ fn storydump() !void { if (story_counter == 0) { story_idx += 1; story_counter = 4; - + w4.tone( - w4.Tone.Frequency{.start = 280, .end = 310}, + w4.Tone.Frequency{ .start = 280, .end = 310 }, w4.Tone.Duration{ .attack = 0, .decay = 0, @@ -233,12 +285,12 @@ fn storydump() !void { state = .Gameplay; palette.mist(); } - } + } } export fn update() void { defer frame_count += 1; - + switch (state) { .Title => title() catch unreachable, .StoryDump => storydump() catch unreachable, @@ -293,7 +345,7 @@ fn gameplay() !void { mara_box.base.x = 0; bonk(); } - + if (mara_box.base.y <= 0) { mara_box.base.y = 0; bonk(); @@ -310,12 +362,12 @@ fn draw_glaceon(p: Point) void { ._2 = .p3, ._3 = .transparent, }; - - w4.blit(&sprites.glaceon, p.x, p.y, sprites.glaceon_width, sprites.glaceon_height, w4.BlitFlags{.two_bits = true}); + + w4.blit(&sprites.glaceon, p.x, p.y, sprites.glaceon_width, sprites.glaceon_height, w4.BlitFlags{ .two_bits = true }); } fn draw_mara() void { - var flags: w4.BlitFlags = w4.BlitFlags { + var flags: w4.BlitFlags = w4.BlitFlags{ .two_bits = true, }; @@ -331,7 +383,7 @@ fn draw_mara() void { } if (frame_count % 32 == 0 and mara_speed > 0) { - mara_frame = !mara_frame; + mara_frame = !mara_frame; } var frame: u32 = switch (mara_direction) { @@ -343,4 +395,4 @@ fn draw_mara() void { var step: u32 = if (mara_frame) 1 else 0; w4.blitSub(&sprites.Mara, @intCast(u32, mara_box.base.x), @intCast(u32, mara_box.base.y), 16, 16, 16 * (frame + step), 0, 96, flags); -} \ No newline at end of file +} diff --git a/src/maps/dungeon.zig b/src/maps/dungeon.zig index 1117da2..afb7162 100644 --- a/src/maps/dungeon.zig +++ b/src/maps/dungeon.zig @@ -15,46 +15,46 @@ pub const ts_width = 14; pub const ts_height = 13; pub const data = [400]u9{ - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 57, 58, 70, 58, 17, 58, 17, - 14, 15, 16, 58, 75, 42, 42, 42, 42, 42, - 42, 42, 42, 71, 78, 31, 72, 31, 72, 31, - 28, 29, 30, 56, 89, 42, 42, 42, 42, 42, - 42, 42, 42, 104, 105, 104, 105, 104, 105, 104, - 105, 104, 105, 104, 105, 42, 42, 42, 42, 42, - 42, 42, 42, 116, 117, 116, 117, 116, 117, 116, - 117, 116, 117, 116, 117, 42, 42, 42, 42, 42, - 42, 42, 42, 130, 131, 102, 103, 102, 103, 102, - 103, 102, 103, 102, 103, 42, 42, 42, 42, 42, - 42, 42, 42, 144, 145, 116, 117, 116, 117, 116, - 117, 116, 117, 116, 117, 42, 42, 42, 42, 42, - 42, 42, 42, 104, 105, 102, 103, 102, 103, 102, - 103, 102, 103, 102, 103, 42, 42, 42, 42, 42, - 42, 42, 42, 116, 117, 116, 117, 116, 117, 116, - 117, 116, 117, 136, 137, 42, 42, 42, 42, 42, - 42, 42, 42, 102, 103, 102, 103, 102, 103, 102, - 103, 102, 103, 150, 151, 42, 42, 42, 42, 42, - 42, 42, 42, 116, 117, 116, 117, 116, 117, 116, - 117, 116, 117, 116, 117, 42, 42, 42, 42, 42, - 42, 42, 42, 92, 93, 120, 93, 120, 93, 120, - 93, 120, 93, 120, 93, 42, 42, 42, 42, 42, - 42, 42, 42, 106, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 42, 42, 42, 42, 42, - 42, 42, 42, 122, 121, 122, 121, 122, 121, 122, - 121, 122, 121, 121, 122, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 58, 59, 71, 59, 18, 59, 18, + 15, 16, 17, 59, 76, 43, 43, 43, 43, 43, + 43, 43, 43, 72, 79, 32, 73, 32, 73, 32, + 29, 30, 31, 57, 90, 43, 43, 43, 43, 43, + 43, 43, 43, 105, 106, 105, 106, 105, 106, 105, + 106, 105, 106, 105, 106, 43, 43, 43, 43, 43, + 43, 43, 43, 117, 118, 117, 118, 117, 118, 117, + 118, 117, 118, 117, 118, 43, 43, 43, 43, 43, + 43, 43, 43, 131, 132, 103, 104, 103, 104, 103, + 104, 103, 104, 103, 104, 43, 43, 43, 43, 43, + 43, 43, 43, 145, 146, 117, 118, 117, 118, 117, + 118, 117, 118, 117, 118, 43, 43, 43, 43, 43, + 43, 43, 43, 105, 106, 103, 104, 103, 104, 103, + 104, 103, 104, 103, 104, 43, 43, 43, 43, 43, + 43, 43, 43, 117, 118, 117, 118, 117, 118, 117, + 118, 117, 118, 137, 138, 43, 43, 43, 43, 43, + 43, 43, 43, 103, 104, 103, 104, 103, 104, 103, + 104, 103, 104, 151, 152, 43, 43, 43, 43, 43, + 43, 43, 43, 117, 118, 117, 118, 117, 118, 117, + 118, 117, 118, 117, 118, 43, 43, 43, 43, 43, + 43, 43, 43, 93, 94, 121, 94, 121, 94, 121, + 94, 121, 94, 121, 94, 43, 43, 43, 43, 43, + 43, 43, 43, 107, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 43, 43, 43, 43, 43, + 43, 43, 43, 123, 122, 123, 122, 123, 122, 123, + 122, 123, 122, 122, 123, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, }; pub const coll = [_]Rect{ diff --git a/src/maps/overworld.zig b/src/maps/overworld.zig index 979bd08..ed4e26c 100644 --- a/src/maps/overworld.zig +++ b/src/maps/overworld.zig @@ -15,166 +15,166 @@ pub const ts_width = 34; pub const ts_height = 16; pub const data = [1600]u9{ - 0, 1, 38, 39, 0, 1, 136, 137, 0, 1, 70, - 71, 72, 73, 74, 75, 0, 1, 136, 137, 0, - 1, 136, 137, 0, 1, 136, 137, 0, 1, 136, - 137, 0, 1, 136, 137, 0, 1, 136, 137, 34, - 35, 72, 73, 34, 35, 170, 171, 34, 35, 104, - 105, 106, 107, 108, 109, 34, 38, 39, 171, 34, - 35, 170, 171, 34, 35, 170, 171, 34, 35, 170, - 171, 34, 35, 170, 171, 34, 35, 170, 171, 68, - 69, 204, 205, 68, 69, 204, 205, 68, 69, 138, - 139, 206, 207, 142, 143, 68, 72, 73, 205, 68, - 69, 204, 205, 68, 69, 204, 205, 68, 69, 204, - 205, 68, 69, 204, 205, 68, 69, 204, 205, 102, - 103, 238, 239, 102, 103, 238, 239, 102, 103, 172, - 173, 240, 241, 176, 177, 102, 103, 238, 239, 102, - 103, 238, 239, 102, 103, 238, 239, 102, 103, 238, - 239, 102, 103, 238, 239, 102, 103, 238, 239, 136, - 137, 136, 137, 306, 273, 136, 137, 340, 341, 344, - 345, 410, 411, 136, 137, 0, 1, 32, 33, 0, - 1, 136, 137, 0, 1, 136, 137, 0, 1, 136, - 137, 0, 1, 136, 137, 0, 1, 136, 137, 170, - 171, 170, 171, 306, 306, 170, 171, 374, 375, 378, - 379, 444, 445, 170, 171, 34, 35, 66, 67, 34, - 35, 170, 171, 34, 35, 170, 171, 34, 35, 170, - 171, 34, 35, 170, 171, 34, 35, 170, 171, 204, - 205, 204, 205, 68, 69, 204, 205, 412, 413, 38, - 39, 68, 69, 204, 205, 68, 69, 204, 205, 68, - 69, 204, 205, 68, 69, 204, 205, 68, 69, 204, - 205, 68, 69, 204, 205, 68, 69, 204, 205, 238, - 239, 238, 239, 102, 103, 38, 39, 446, 447, 72, - 73, 306, 103, 238, 273, 102, 103, 238, 239, 102, - 103, 238, 239, 102, 103, 238, 239, 102, 103, 238, - 239, 102, 103, 238, 239, 102, 103, 238, 239, 0, - 1, 136, 306, 0, 1, 72, 73, 412, 413, 136, - 38, 39, 1, 136, 137, 0, 1, 136, 137, 0, - 1, 136, 137, 0, 1, 136, 137, 0, 1, 136, - 137, 0, 1, 136, 137, 0, 1, 136, 137, 34, - 35, 170, 171, 34, 35, 170, 171, 446, 447, 170, - 72, 73, 35, 170, 171, 330, 331, 170, 171, 34, - 35, 170, 171, 34, 35, 170, 171, 34, 35, 170, - 171, 34, 35, 170, 171, 34, 35, 170, 171, 68, - 69, 204, 205, 68, 69, 273, 205, 412, 413, 234, - 235, 232, 233, 204, 363, 364, 365, 366, 205, 68, - 69, 204, 205, 68, 69, 204, 205, 68, 69, 204, - 205, 68, 69, 204, 205, 68, 69, 204, 205, 102, - 103, 238, 239, 38, 39, 238, 239, 446, 447, 268, - 269, 266, 267, 396, 397, 398, 399, 400, 401, 102, - 103, 238, 239, 102, 103, 238, 239, 102, 103, 238, - 239, 102, 103, 238, 239, 102, 103, 238, 239, 0, - 1, 236, 237, 72, 73, 136, 137, 412, 413, 232, - 233, 234, 235, 430, 431, 432, 433, 434, 435, 0, - 1, 136, 137, 0, 1, 136, 137, 0, 1, 136, - 137, 0, 1, 136, 137, 0, 1, 136, 137, 34, - 35, 270, 271, 34, 352, 353, 171, 446, 447, 266, - 267, 268, 269, 464, 465, 466, 467, 468, 469, 34, - 35, 170, 171, 34, 35, 170, 171, 34, 35, 170, - 171, 34, 35, 170, 171, 34, 35, 170, 171, 68, - 69, 350, 351, 68, 386, 387, 205, 346, 347, 348, - 349, 342, 343, 498, 499, 438, 439, 502, 503, 68, - 69, 204, 205, 68, 69, 204, 205, 68, 69, 204, - 205, 68, 69, 204, 205, 68, 69, 204, 205, 102, - 103, 384, 385, 102, 103, 238, 239, 380, 120, 120, - 120, 120, 377, 402, 403, 472, 473, 404, 405, 102, - 103, 238, 239, 102, 103, 238, 239, 102, 103, 238, - 239, 102, 103, 238, 239, 102, 103, 238, 239, 0, - 1, 408, 409, 344, 345, 344, 345, 416, 120, 120, - 120, 120, 417, 344, 345, 416, 417, 344, 345, 344, - 345, 344, 345, 344, 345, 344, 345, 344, 345, 344, - 345, 344, 345, 344, 345, 344, 345, 344, 345, 34, - 35, 442, 443, 378, 379, 378, 379, 450, 451, 450, - 451, 450, 451, 378, 379, 450, 451, 378, 379, 378, - 379, 378, 379, 378, 379, 378, 379, 378, 379, 378, - 379, 378, 379, 378, 379, 378, 379, 378, 379, 68, - 56, 57, 205, 68, 69, 204, 205, 68, 306, 204, - 205, 68, 69, 204, 205, 38, 39, 204, 205, 68, - 69, 204, 205, 68, 69, 204, 205, 68, 69, 204, - 205, 68, 69, 204, 205, 68, 69, 204, 205, 89, - 90, 91, 92, 102, 103, 56, 57, 102, 103, 238, - 239, 102, 103, 238, 239, 72, 73, 238, 239, 102, - 103, 238, 239, 102, 103, 238, 239, 102, 103, 238, - 239, 102, 103, 238, 239, 102, 103, 238, 239, 90, - 91, 90, 91, 90, 91, 90, 91, 92, 20, 136, - 137, 0, 1, 136, 137, 0, 1, 136, 137, 0, - 1, 136, 137, 0, 1, 136, 137, 0, 1, 136, - 137, 0, 1, 136, 137, 0, 1, 136, 137, 124, - 125, 124, 125, 124, 125, 124, 125, 126, 93, 170, - 171, 34, 35, 170, 171, 34, 35, 170, 171, 34, - 35, 170, 171, 34, 35, 170, 171, 34, 35, 170, - 171, 34, 35, 170, 171, 34, 35, 170, 171, 158, - 159, 158, 159, 158, 159, 158, 159, 69, 25, 204, - 205, 68, 69, 204, 205, 68, 69, 204, 205, 68, - 69, 204, 205, 68, 69, 204, 205, 68, 69, 204, - 205, 68, 69, 204, 205, 68, 69, 204, 205, 102, - 103, 238, 239, 102, 103, 238, 239, 102, 103, 238, - 239, 102, 103, 238, 239, 102, 103, 238, 239, 102, - 103, 238, 239, 102, 103, 238, 239, 102, 103, 238, - 239, 102, 103, 238, 239, 102, 103, 238, 239, 0, - 1, 136, 137, 0, 1, 136, 137, 0, 1, 136, - 137, 0, 1, 136, 137, 0, 1, 136, 137, 0, - 1, 136, 137, 0, 1, 136, 137, 0, 1, 136, - 137, 0, 1, 136, 137, 0, 1, 136, 137, 34, - 35, 170, 171, 34, 35, 170, 171, 34, 35, 170, - 171, 34, 35, 170, 171, 34, 35, 170, 171, 34, - 35, 170, 171, 34, 35, 170, 171, 34, 35, 170, - 171, 34, 35, 170, 171, 34, 35, 170, 171, 68, - 69, 204, 205, 68, 69, 204, 205, 68, 69, 204, - 205, 68, 69, 204, 205, 68, 69, 204, 205, 68, - 69, 204, 205, 68, 69, 204, 205, 68, 69, 204, - 205, 68, 69, 204, 205, 68, 69, 204, 205, 102, - 103, 238, 239, 102, 103, 238, 239, 102, 103, 238, - 239, 102, 103, 238, 239, 102, 103, 238, 239, 102, - 103, 238, 239, 102, 103, 238, 239, 102, 103, 238, - 239, 102, 103, 238, 239, 102, 103, 238, 239, 0, - 1, 136, 137, 0, 1, 136, 137, 0, 1, 136, - 137, 0, 1, 136, 137, 0, 1, 136, 137, 0, - 1, 136, 137, 0, 1, 136, 137, 0, 1, 136, - 137, 0, 1, 136, 137, 0, 1, 136, 137, 34, - 35, 170, 171, 34, 35, 170, 171, 34, 35, 170, - 171, 34, 35, 170, 171, 34, 35, 170, 171, 34, - 35, 170, 171, 34, 35, 170, 171, 34, 35, 170, - 171, 34, 35, 170, 171, 34, 35, 170, 171, 68, - 69, 204, 205, 68, 69, 204, 205, 68, 69, 204, - 205, 68, 69, 204, 205, 68, 69, 204, 205, 68, - 69, 204, 205, 68, 69, 204, 205, 68, 69, 204, - 205, 68, 69, 204, 205, 68, 69, 204, 205, 102, - 103, 238, 239, 102, 103, 238, 239, 102, 103, 238, - 239, 102, 103, 238, 239, 102, 103, 238, 239, 102, - 103, 238, 239, 102, 103, 238, 239, 102, 103, 238, - 239, 102, 103, 238, 239, 102, 103, 238, 239, 0, - 1, 136, 137, 0, 1, 136, 137, 0, 1, 136, - 137, 0, 1, 136, 137, 0, 1, 136, 137, 0, - 1, 136, 137, 0, 1, 136, 137, 0, 1, 136, - 137, 0, 1, 136, 137, 0, 1, 136, 137, 34, - 35, 170, 171, 34, 35, 170, 171, 34, 35, 170, - 171, 34, 35, 170, 171, 34, 35, 170, 171, 34, - 35, 170, 171, 34, 35, 170, 171, 34, 35, 170, - 171, 34, 35, 170, 171, 34, 35, 170, 171, 68, - 69, 204, 205, 68, 69, 204, 205, 68, 69, 204, - 205, 68, 69, 204, 205, 68, 69, 204, 205, 68, - 69, 204, 205, 68, 69, 204, 205, 68, 69, 204, - 205, 68, 69, 204, 205, 68, 69, 204, 205, 102, - 103, 238, 239, 102, 103, 238, 239, 102, 103, 238, - 239, 102, 103, 238, 239, 102, 103, 238, 239, 102, - 103, 238, 239, 102, 103, 238, 239, 102, 103, 238, - 239, 102, 103, 238, 239, 102, 103, 238, 239, 0, - 1, 136, 137, 0, 1, 136, 137, 0, 1, 136, - 137, 0, 1, 136, 137, 0, 1, 136, 137, 0, - 1, 136, 137, 0, 1, 136, 137, 0, 1, 136, - 137, 0, 1, 136, 137, 0, 1, 136, 137, 34, - 35, 170, 171, 34, 35, 170, 171, 34, 35, 170, - 171, 34, 35, 170, 171, 34, 35, 170, 171, 34, - 35, 170, 171, 34, 35, 170, 171, 34, 35, 170, - 171, 34, 35, 170, 171, 34, 35, 170, 171, 68, - 69, 204, 205, 68, 69, 204, 205, 68, 69, 204, - 205, 68, 69, 204, 205, 68, 69, 204, 205, 68, - 69, 204, 205, 68, 69, 204, 205, 68, 69, 204, - 205, 68, 69, 204, 205, 68, 69, 204, 205, 102, - 103, 238, 239, 102, 103, 238, 239, 102, 103, 238, - 239, 102, 103, 238, 239, 102, 103, 238, 239, 102, - 103, 238, 239, 102, 103, 238, 239, 102, 103, 238, - 239, 102, 103, 238, 239, 102, 103, 238, 239, + 1, 2, 39, 40, 1, 2, 137, 138, 1, 2, 71, + 72, 73, 74, 75, 76, 1, 2, 137, 138, 1, + 2, 137, 138, 1, 2, 137, 138, 1, 2, 137, + 138, 1, 2, 137, 138, 1, 2, 137, 138, 35, + 36, 73, 74, 35, 36, 171, 172, 35, 36, 105, + 106, 107, 108, 109, 110, 35, 39, 40, 172, 35, + 36, 171, 172, 35, 36, 171, 172, 35, 36, 171, + 172, 35, 36, 171, 172, 35, 36, 171, 172, 69, + 70, 205, 206, 69, 70, 205, 206, 69, 70, 139, + 140, 207, 208, 143, 144, 69, 73, 74, 206, 69, + 70, 205, 206, 69, 70, 205, 206, 69, 70, 205, + 206, 69, 70, 205, 206, 69, 70, 205, 206, 103, + 104, 239, 240, 103, 104, 239, 240, 103, 104, 173, + 174, 241, 242, 177, 178, 103, 104, 239, 240, 103, + 104, 239, 240, 103, 104, 239, 240, 103, 104, 239, + 240, 103, 104, 239, 240, 103, 104, 239, 240, 137, + 138, 137, 138, 307, 274, 137, 138, 341, 342, 345, + 346, 411, 412, 137, 138, 1, 2, 33, 34, 1, + 2, 137, 138, 1, 2, 137, 138, 1, 2, 137, + 138, 1, 2, 137, 138, 1, 2, 137, 138, 171, + 172, 171, 172, 307, 307, 171, 172, 375, 376, 379, + 380, 445, 446, 171, 172, 35, 36, 67, 68, 35, + 36, 171, 172, 35, 36, 171, 172, 35, 36, 171, + 172, 35, 36, 171, 172, 35, 36, 171, 172, 205, + 206, 205, 206, 69, 70, 205, 206, 413, 414, 39, + 40, 69, 70, 205, 206, 69, 70, 205, 206, 69, + 70, 205, 206, 69, 70, 205, 206, 69, 70, 205, + 206, 69, 70, 205, 206, 69, 70, 205, 206, 239, + 240, 239, 240, 103, 104, 39, 40, 447, 448, 73, + 74, 307, 104, 239, 274, 103, 104, 239, 240, 103, + 104, 239, 240, 103, 104, 239, 240, 103, 104, 239, + 240, 103, 104, 239, 240, 103, 104, 239, 240, 1, + 2, 137, 307, 1, 2, 73, 74, 413, 414, 137, + 39, 40, 2, 137, 138, 1, 2, 137, 138, 1, + 2, 137, 138, 1, 2, 137, 138, 1, 2, 137, + 138, 1, 2, 137, 138, 1, 2, 137, 138, 35, + 36, 171, 172, 35, 36, 171, 172, 447, 448, 171, + 73, 74, 36, 171, 172, 331, 332, 171, 172, 35, + 36, 171, 172, 35, 36, 171, 172, 35, 36, 171, + 172, 35, 36, 171, 172, 35, 36, 171, 172, 69, + 70, 205, 206, 69, 70, 274, 206, 413, 414, 235, + 236, 233, 234, 205, 364, 365, 366, 367, 206, 69, + 70, 205, 206, 69, 70, 205, 206, 69, 70, 205, + 206, 69, 70, 205, 206, 69, 70, 205, 206, 103, + 104, 239, 240, 39, 40, 239, 240, 447, 448, 269, + 270, 267, 268, 397, 398, 399, 400, 401, 402, 103, + 104, 239, 240, 103, 104, 239, 240, 103, 104, 239, + 240, 103, 104, 239, 240, 103, 104, 239, 240, 1, + 2, 237, 238, 73, 74, 137, 138, 413, 414, 233, + 234, 235, 236, 431, 432, 433, 434, 435, 436, 1, + 2, 137, 138, 1, 2, 137, 138, 1, 2, 137, + 138, 1, 2, 137, 138, 1, 2, 137, 138, 35, + 36, 271, 272, 35, 353, 354, 172, 447, 448, 267, + 268, 269, 270, 465, 466, 467, 468, 469, 470, 35, + 36, 171, 172, 35, 36, 171, 172, 35, 36, 171, + 172, 35, 36, 171, 172, 35, 36, 171, 172, 69, + 70, 351, 352, 69, 387, 388, 206, 347, 348, 349, + 350, 343, 344, 499, 500, 439, 440, 503, 504, 69, + 70, 205, 206, 69, 70, 205, 206, 69, 70, 205, + 206, 69, 70, 205, 206, 69, 70, 205, 206, 103, + 104, 385, 386, 103, 104, 239, 240, 381, 121, 121, + 121, 121, 378, 403, 404, 473, 474, 405, 406, 103, + 104, 239, 240, 103, 104, 239, 240, 103, 104, 239, + 240, 103, 104, 239, 240, 103, 104, 239, 240, 1, + 2, 409, 410, 345, 346, 345, 346, 417, 121, 121, + 121, 121, 418, 345, 346, 417, 418, 345, 346, 345, + 346, 345, 346, 345, 346, 345, 346, 345, 346, 345, + 346, 345, 346, 345, 346, 345, 346, 345, 346, 35, + 36, 443, 444, 379, 380, 379, 380, 451, 452, 451, + 452, 451, 452, 379, 380, 451, 452, 379, 380, 379, + 380, 379, 380, 379, 380, 379, 380, 379, 380, 379, + 380, 379, 380, 379, 380, 379, 380, 379, 380, 69, + 57, 58, 206, 69, 70, 205, 206, 69, 307, 205, + 206, 69, 70, 205, 206, 39, 40, 205, 206, 69, + 70, 205, 206, 69, 70, 205, 206, 69, 70, 205, + 206, 69, 70, 205, 206, 69, 70, 205, 206, 90, + 91, 92, 93, 103, 104, 57, 58, 103, 104, 239, + 240, 103, 104, 239, 240, 73, 74, 239, 240, 103, + 104, 239, 240, 103, 104, 239, 240, 103, 104, 239, + 240, 103, 104, 239, 240, 103, 104, 239, 240, 91, + 92, 91, 92, 91, 92, 91, 92, 93, 21, 137, + 138, 1, 2, 137, 138, 1, 2, 137, 138, 1, + 2, 137, 138, 1, 2, 137, 138, 1, 2, 137, + 138, 1, 2, 137, 138, 1, 2, 137, 138, 125, + 126, 125, 126, 125, 126, 125, 126, 127, 94, 171, + 172, 35, 36, 171, 172, 35, 36, 171, 172, 35, + 36, 171, 172, 35, 36, 171, 172, 35, 36, 171, + 172, 35, 36, 171, 172, 35, 36, 171, 172, 159, + 160, 159, 160, 159, 160, 159, 160, 70, 26, 205, + 206, 69, 70, 205, 206, 69, 70, 205, 206, 69, + 70, 205, 206, 69, 70, 205, 206, 69, 70, 205, + 206, 69, 70, 205, 206, 69, 70, 205, 206, 103, + 104, 239, 240, 103, 104, 239, 240, 103, 104, 239, + 240, 103, 104, 239, 240, 103, 104, 239, 240, 103, + 104, 239, 240, 103, 104, 239, 240, 103, 104, 239, + 240, 103, 104, 239, 240, 103, 104, 239, 240, 1, + 2, 137, 138, 1, 2, 137, 138, 1, 2, 137, + 138, 1, 2, 137, 138, 1, 2, 137, 138, 1, + 2, 137, 138, 1, 2, 137, 138, 1, 2, 137, + 138, 1, 2, 137, 138, 1, 2, 137, 138, 35, + 36, 171, 172, 35, 36, 171, 172, 35, 36, 171, + 172, 35, 36, 171, 172, 35, 36, 171, 172, 35, + 36, 171, 172, 35, 36, 171, 172, 35, 36, 171, + 172, 35, 36, 171, 172, 35, 36, 171, 172, 69, + 70, 205, 206, 69, 70, 205, 206, 69, 70, 205, + 206, 69, 70, 205, 206, 69, 70, 205, 206, 69, + 70, 205, 206, 69, 70, 205, 206, 69, 70, 205, + 206, 69, 70, 205, 206, 69, 70, 205, 206, 103, + 104, 239, 240, 103, 104, 239, 240, 103, 104, 239, + 240, 103, 104, 239, 240, 103, 104, 239, 240, 103, + 104, 239, 240, 103, 104, 239, 240, 103, 104, 239, + 240, 103, 104, 239, 240, 103, 104, 239, 240, 1, + 2, 137, 138, 1, 2, 137, 138, 1, 2, 137, + 138, 1, 2, 137, 138, 1, 2, 137, 138, 1, + 2, 137, 138, 1, 2, 137, 138, 1, 2, 137, + 138, 1, 2, 137, 138, 1, 2, 137, 138, 35, + 36, 171, 172, 35, 36, 171, 172, 35, 36, 171, + 172, 35, 36, 171, 172, 35, 36, 171, 172, 35, + 36, 171, 172, 35, 36, 171, 172, 35, 36, 171, + 172, 35, 36, 171, 172, 35, 36, 171, 172, 69, + 70, 205, 206, 69, 70, 205, 206, 69, 70, 205, + 206, 69, 70, 205, 206, 69, 70, 205, 206, 69, + 70, 205, 206, 69, 70, 205, 206, 69, 70, 205, + 206, 69, 70, 205, 206, 69, 70, 205, 206, 103, + 104, 239, 240, 103, 104, 239, 240, 103, 104, 239, + 240, 103, 104, 239, 240, 103, 104, 239, 240, 103, + 104, 239, 240, 103, 104, 239, 240, 103, 104, 239, + 240, 103, 104, 239, 240, 103, 104, 239, 240, 1, + 2, 137, 138, 1, 2, 137, 138, 1, 2, 137, + 138, 1, 2, 137, 138, 1, 2, 137, 138, 1, + 2, 137, 138, 1, 2, 137, 138, 1, 2, 137, + 138, 1, 2, 137, 138, 1, 2, 137, 138, 35, + 36, 171, 172, 35, 36, 171, 172, 35, 36, 171, + 172, 35, 36, 171, 172, 35, 36, 171, 172, 35, + 36, 171, 172, 35, 36, 171, 172, 35, 36, 171, + 172, 35, 36, 171, 172, 35, 36, 171, 172, 69, + 70, 205, 206, 69, 70, 205, 206, 69, 70, 205, + 206, 69, 70, 205, 206, 69, 70, 205, 206, 69, + 70, 205, 206, 69, 70, 205, 206, 69, 70, 205, + 206, 69, 70, 205, 206, 69, 70, 205, 206, 103, + 104, 239, 240, 103, 104, 239, 240, 103, 104, 239, + 240, 103, 104, 239, 240, 103, 104, 239, 240, 103, + 104, 239, 240, 103, 104, 239, 240, 103, 104, 239, + 240, 103, 104, 239, 240, 103, 104, 239, 240, 1, + 2, 137, 138, 1, 2, 137, 138, 1, 2, 137, + 138, 1, 2, 137, 138, 1, 2, 137, 138, 1, + 2, 137, 138, 1, 2, 137, 138, 1, 2, 137, + 138, 1, 2, 137, 138, 1, 2, 137, 138, 35, + 36, 171, 172, 35, 36, 171, 172, 35, 36, 171, + 172, 35, 36, 171, 172, 35, 36, 171, 172, 35, + 36, 171, 172, 35, 36, 171, 172, 35, 36, 171, + 172, 35, 36, 171, 172, 35, 36, 171, 172, 69, + 70, 205, 206, 69, 70, 205, 206, 69, 70, 205, + 206, 69, 70, 205, 206, 69, 70, 205, 206, 69, + 70, 205, 206, 69, 70, 205, 206, 69, 70, 205, + 206, 69, 70, 205, 206, 69, 70, 205, 206, 103, + 104, 239, 240, 103, 104, 239, 240, 103, 104, 239, + 240, 103, 104, 239, 240, 103, 104, 239, 240, 103, + 104, 239, 240, 103, 104, 239, 240, 103, 104, 239, + 240, 103, 104, 239, 240, 103, 104, 239, 240, }; pub const coll = [_]Rect{ diff --git a/src/tools/genmap.js b/src/tools/genmap.js index 5cf69e6..59c582b 100644 --- a/src/tools/genmap.js +++ b/src/tools/genmap.js @@ -65,7 +65,6 @@ const genMap = (tiles) => { out += `pub const data = [${tiles.data.length}]u9{\n `; tiles.data.forEach((tile, index) => { - tile -= 1; out += `${tile},`; if (index !== 0 && index % 10 === 0) { out += "\n ";