use 8 pixel tiles i guess
Signed-off-by: Xe Iaso <me@christine.website>
This commit is contained in:
parent
3492329649
commit
6c35dc1503
|
@ -13,6 +13,8 @@ fn mapgen(b: *std.build.Step) !void {
|
||||||
var deno = std.ChildProcess.init(&.{"deno", "run", "-A", "./src/tools/genmap.js", map[0], map[1]}, alloc);
|
var deno = std.ChildProcess.init(&.{"deno", "run", "-A", "./src/tools/genmap.js", map[0], map[1]}, alloc);
|
||||||
try deno.spawn();
|
try deno.spawn();
|
||||||
_ = try deno.wait();
|
_ = try deno.wait();
|
||||||
|
|
||||||
|
std.log.info("generated map {s}", .{map[1]});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,6 +25,8 @@ fn release(b: *std.build.Step) !void {
|
||||||
var rel = std.ChildProcess.init(&.{"bash", "./release.sh"}, alloc);
|
var rel = std.ChildProcess.init(&.{"bash", "./release.sh"}, alloc);
|
||||||
try rel.spawn();
|
try rel.spawn();
|
||||||
_ = try rel.wait();
|
_ = try rel.wait();
|
||||||
|
|
||||||
|
std.log.info("generated release assets in dist/{s}", .{""});
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn build(b: *std.build.Builder) !void {
|
pub fn build(b: *std.build.Builder) !void {
|
||||||
|
@ -31,6 +35,7 @@ pub fn build(b: *std.build.Builder) !void {
|
||||||
|
|
||||||
const release_step = b.step("release", "generate release binaries");
|
const release_step = b.step("release", "generate release binaries");
|
||||||
release_step.makeFn = release;
|
release_step.makeFn = release;
|
||||||
|
release_step.dependOn(map_step);
|
||||||
|
|
||||||
const mode = b.standardReleaseOptions();
|
const mode = b.standardReleaseOptions();
|
||||||
const lib = b.addSharedLibrary("cart", "src/main.zig", .unversioned);
|
const lib = b.addSharedLibrary("cart", "src/main.zig", .unversioned);
|
||||||
|
|
|
@ -1,25 +1,35 @@
|
||||||
{ "compressionlevel":-1,
|
{ "compressionlevel":-1,
|
||||||
"height":10,
|
"height":20,
|
||||||
"infinite":false,
|
"infinite":false,
|
||||||
"layers":[
|
"layers":[
|
||||||
{
|
{
|
||||||
"data":[1, 1, 1, 18, 1, 19, 20, 21, 1, 18,
|
"data":[1, 2, 137, 138, 1, 2, 137, 138, 1, 2, 71, 72, 73, 74, 75, 76, 1, 2, 137, 138,
|
||||||
69, 1, 35, 52, 1, 36, 53, 38, 35, 52,
|
35, 36, 171, 172, 35, 36, 171, 172, 35, 36, 105, 106, 107, 108, 109, 110, 35, 36, 171, 172,
|
||||||
1, 18, 1, 18, 86, 88, 104, 1, 18, 17,
|
69, 70, 205, 206, 69, 70, 205, 206, 69, 70, 139, 140, 207, 208, 143, 144, 69, 70, 205, 206,
|
||||||
35, 52, 35, 52, 105, 1, 18, 35, 92, 1,
|
103, 104, 239, 240, 103, 104, 239, 240, 103, 104, 173, 174, 241, 242, 177, 178, 103, 104, 239, 240,
|
||||||
18, 69, 1, 1, 105, 35, 52, 1, 81, 1,
|
137, 138, 137, 138, 1, 2, 137, 138, 1, 2, 137, 138, 1, 2, 137, 138, 1, 2, 33, 34,
|
||||||
52, 35, 1, 18, 105, 67, 66, 97, 98, 99,
|
171, 172, 171, 172, 35, 36, 171, 172, 35, 36, 171, 172, 35, 36, 171, 172, 35, 36, 67, 68,
|
||||||
1, 68, 35, 52, 105, 66, 67, 114, 115, 116,
|
205, 206, 205, 206, 69, 70, 205, 206, 69, 70, 205, 206, 69, 70, 205, 206, 69, 70, 205, 206,
|
||||||
18, 103, 88, 88, 106, 1, 1, 100, 118, 101,
|
239, 240, 239, 240, 103, 104, 239, 240, 103, 104, 239, 240, 103, 104, 239, 240, 103, 104, 239, 240,
|
||||||
52, 1, 1, 1, 103, 88, 88, 88, 107, 88,
|
1, 2, 137, 138, 1, 2, 137, 138, 1, 2, 137, 138, 1, 2, 137, 138, 1, 2, 137, 138,
|
||||||
11, 13, 1, 12, 1, 69, 1, 18, 35, 52],
|
35, 36, 171, 172, 35, 36, 171, 172, 35, 36, 171, 172, 35, 36, 171, 172, 331, 332, 171, 172,
|
||||||
"height":10,
|
69, 70, 205, 206, 69, 70, 205, 206, 69, 70, 235, 236, 233, 234, 205, 364, 365, 366, 367, 206,
|
||||||
|
103, 104, 239, 240, 103, 104, 239, 240, 103, 104, 269, 270, 267, 268, 397, 398, 399, 400, 401, 402,
|
||||||
|
1, 2, 237, 238, 1, 2, 137, 138, 1, 2, 233, 234, 235, 236, 431, 432, 433, 434, 435, 436,
|
||||||
|
35, 36, 271, 272, 35, 353, 354, 172, 35, 36, 267, 268, 269, 270, 465, 466, 467, 468, 469, 470,
|
||||||
|
69, 70, 351, 352, 69, 387, 388, 206, 347, 348, 349, 350, 343, 344, 499, 500, 439, 440, 503, 504,
|
||||||
|
103, 104, 385, 386, 103, 104, 239, 240, 381, 382, 383, 384, 377, 378, 403, 404, 473, 474, 405, 406,
|
||||||
|
1, 2, 409, 410, 345, 346, 345, 346, 417, 418, 417, 418, 417, 418, 345, 346, 417, 418, 345, 346,
|
||||||
|
35, 36, 443, 444, 379, 380, 379, 380, 451, 452, 451, 452, 451, 452, 379, 380, 451, 452, 379, 380,
|
||||||
|
69, 57, 58, 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, 103, 104, 239, 240],
|
||||||
|
"height":20,
|
||||||
"id":1,
|
"id":1,
|
||||||
"name":"map",
|
"name":"map",
|
||||||
"opacity":1,
|
"opacity":1,
|
||||||
"type":"tilelayer",
|
"type":"tilelayer",
|
||||||
"visible":true,
|
"visible":true,
|
||||||
"width":10,
|
"width":20,
|
||||||
"x":0,
|
"x":0,
|
||||||
"y":0
|
"y":0
|
||||||
},
|
},
|
||||||
|
@ -138,7 +148,6 @@
|
||||||
"x":120.727,
|
"x":120.727,
|
||||||
"y":86.9091
|
"y":86.9091
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"class":"",
|
"class":"",
|
||||||
"height":7.09091,
|
"height":7.09091,
|
||||||
|
@ -315,14 +324,14 @@
|
||||||
"orientation":"orthogonal",
|
"orientation":"orthogonal",
|
||||||
"renderorder":"right-down",
|
"renderorder":"right-down",
|
||||||
"tiledversion":"1.9.0",
|
"tiledversion":"1.9.0",
|
||||||
"tileheight":16,
|
"tileheight":8,
|
||||||
"tilesets":[
|
"tilesets":[
|
||||||
{
|
{
|
||||||
"firstgid":1,
|
"firstgid":1,
|
||||||
"source":"..\/sprites\/kenney_rpg.tsx"
|
"source":"..\/sprites\/kenney_rpg.tsx"
|
||||||
}],
|
}],
|
||||||
"tilewidth":16,
|
"tilewidth":8,
|
||||||
"type":"map",
|
"type":"map",
|
||||||
"version":"1.9",
|
"version":"1.9",
|
||||||
"width":10
|
"width":20
|
||||||
}
|
}
|
|
@ -1,21 +1,31 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<map version="1.9" tiledversion="1.9.0" orientation="orthogonal" renderorder="right-down" width="10" height="10" tilewidth="16" tileheight="16" infinite="0" nextlayerid="5" nextobjectid="34">
|
<map version="1.9" tiledversion="1.9.0" orientation="orthogonal" renderorder="right-down" width="20" height="20" tilewidth="8" tileheight="8" infinite="0" nextlayerid="5" nextobjectid="34">
|
||||||
<editorsettings>
|
<editorsettings>
|
||||||
<export target="RPGmap.json" format="json"/>
|
<export target="RPGmap.json" format="json"/>
|
||||||
</editorsettings>
|
</editorsettings>
|
||||||
<tileset firstgid="1" source="../sprites/kenney_rpg.tsx"/>
|
<tileset firstgid="1" source="../sprites/kenney_rpg.tsx"/>
|
||||||
<layer id="1" name="map" width="10" height="10">
|
<layer id="1" name="map" width="20" height="20">
|
||||||
<data encoding="csv">
|
<data encoding="csv">
|
||||||
1,1,1,18,1,19,20,21,1,18,
|
1,2,137,138,1,2,137,138,1,2,71,72,73,74,75,76,1,2,137,138,
|
||||||
69,1,35,52,1,36,53,38,35,52,
|
35,36,171,172,35,36,171,172,35,36,105,106,107,108,109,110,35,36,171,172,
|
||||||
1,18,1,18,86,88,104,1,18,17,
|
69,70,205,206,69,70,205,206,69,70,139,140,207,208,143,144,69,70,205,206,
|
||||||
35,52,35,52,105,1,18,35,92,1,
|
103,104,239,240,103,104,239,240,103,104,173,174,241,242,177,178,103,104,239,240,
|
||||||
18,69,1,1,105,35,52,1,81,1,
|
137,138,137,138,1,2,137,138,1,2,137,138,1,2,137,138,1,2,33,34,
|
||||||
52,35,1,18,105,67,66,97,98,99,
|
171,172,171,172,35,36,171,172,35,36,171,172,35,36,171,172,35,36,67,68,
|
||||||
1,68,35,52,105,66,67,114,115,116,
|
205,206,205,206,69,70,205,206,69,70,205,206,69,70,205,206,69,70,205,206,
|
||||||
18,103,88,88,106,1,1,100,118,101,
|
239,240,239,240,103,104,239,240,103,104,239,240,103,104,239,240,103,104,239,240,
|
||||||
52,1,1,1,103,88,88,88,107,88,
|
1,2,137,138,1,2,137,138,1,2,137,138,1,2,137,138,1,2,137,138,
|
||||||
11,13,1,12,1,69,1,18,35,52
|
35,36,171,172,35,36,171,172,35,36,171,172,35,36,171,172,331,332,171,172,
|
||||||
|
69,70,205,206,69,70,205,206,69,70,235,236,233,234,205,364,365,366,367,206,
|
||||||
|
103,104,239,240,103,104,239,240,103,104,269,270,267,268,397,398,399,400,401,402,
|
||||||
|
1,2,237,238,1,2,137,138,1,2,233,234,235,236,431,432,433,434,435,436,
|
||||||
|
35,36,271,272,35,353,354,172,35,36,267,268,269,270,465,466,467,468,469,470,
|
||||||
|
69,70,351,352,69,387,388,206,347,348,349,350,343,344,499,500,439,440,503,504,
|
||||||
|
103,104,385,386,103,104,239,240,381,382,383,384,377,378,403,404,473,474,405,406,
|
||||||
|
1,2,409,410,345,346,345,346,417,418,417,418,417,418,345,346,417,418,345,346,
|
||||||
|
35,36,443,444,379,380,379,380,451,452,451,452,451,452,379,380,451,452,379,380,
|
||||||
|
69,57,58,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,103,104,239,240
|
||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
<objectgroup id="2" name="coll">
|
<objectgroup id="2" name="coll">
|
||||||
|
|
|
@ -1,73 +0,0 @@
|
||||||
{ "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
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"draworder":"topdown",
|
|
||||||
"id":2,
|
|
||||||
"name":"coll",
|
|
||||||
"objects":[
|
|
||||||
{
|
|
||||||
"height":80,
|
|
||||||
"id":3,
|
|
||||||
"name":"",
|
|
||||||
"rotation":0,
|
|
||||||
"type":"",
|
|
||||||
"visible":true,
|
|
||||||
"width":160,
|
|
||||||
"x":0,
|
|
||||||
"y":80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"height":32,
|
|
||||||
"id":4,
|
|
||||||
"name":"",
|
|
||||||
"rotation":0,
|
|
||||||
"type":"",
|
|
||||||
"visible":true,
|
|
||||||
"width":16,
|
|
||||||
"x":80,
|
|
||||||
"y":48
|
|
||||||
}],
|
|
||||||
"opacity":1,
|
|
||||||
"type":"objectgroup",
|
|
||||||
"visible":true,
|
|
||||||
"x":0,
|
|
||||||
"y":0
|
|
||||||
}],
|
|
||||||
"nextlayerid":3,
|
|
||||||
"nextobjectid":5,
|
|
||||||
"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
|
|
||||||
}
|
|
|
@ -1,25 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<map version="1.4" tiledversion="1.4.3" orientation="orthogonal" renderorder="right-down" width="10" height="10" tilewidth="16" tileheight="16" infinite="0" nextlayerid="3" nextobjectid="5">
|
|
||||||
<editorsettings>
|
|
||||||
<export target="TestMap.json" format="json"/>
|
|
||||||
</editorsettings>
|
|
||||||
<tileset firstgid="1" source="../sprites/Cave.tsx"/>
|
|
||||||
<layer id="1" name="map" width="10" height="10">
|
|
||||||
<data encoding="csv">
|
|
||||||
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
|
|
||||||
</data>
|
|
||||||
</layer>
|
|
||||||
<objectgroup id="2" name="coll">
|
|
||||||
<object id="3" x="0" y="80" width="160" height="80"/>
|
|
||||||
<object id="4" x="80" y="48" width="16" height="32"/>
|
|
||||||
</objectgroup>
|
|
||||||
</map>
|
|
|
@ -4,10 +4,9 @@ set -ex
|
||||||
|
|
||||||
mkdir -p dist
|
mkdir -p dist
|
||||||
rm -rf dist/*
|
rm -rf dist/*
|
||||||
zig build mapgen
|
|
||||||
zig build -Drelease-small=true
|
zig build -Drelease-small=true
|
||||||
|
wasm-strip ./zig-out/lib/cart.wasm
|
||||||
wasm-opt -Oz --strip-producers --dce ./zig-out/lib/cart.wasm -o ./dist/tamamo.wasm
|
wasm-opt -Oz --strip-producers --dce ./zig-out/lib/cart.wasm -o ./dist/tamamo.wasm
|
||||||
wasm-strip ./dist/tamamo.wasm
|
|
||||||
w4 bundle \
|
w4 bundle \
|
||||||
--windows ./dist/tamamo.exe \
|
--windows ./dist/tamamo.exe \
|
||||||
--mac ./dist/tamamo.macOS \
|
--mac ./dist/tamamo.macOS \
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<tileset version="1.4" tiledversion="1.4.3" name="kenney_rpg" tilewidth="16" tileheight="16" tilecount="136" columns="17">
|
<tileset version="1.9" tiledversion="1.9.0" name="kenney_rpg" tilewidth="8" tileheight="8" tilecount="544" columns="34">
|
||||||
<image source="kenney_rpg.png" width="272" height="128"/>
|
<image source="kenney_rpg.png" width="272" height="128"/>
|
||||||
</tileset>
|
</tileset>
|
||||||
|
|
39
src/main.zig
39
src/main.zig
|
@ -20,27 +20,16 @@ var mara_box: Rect = Rect{.base = map.start_point, .width = 16, .height = 16};
|
||||||
var mara_speed: u16 = 0;
|
var mara_speed: u16 = 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 = 10;
|
const screen_width = 20;
|
||||||
const screen_height = 10;
|
const screen_height = 20;
|
||||||
var camera: [screen_height * screen_width]u8 = [_]u8{0} ** (screen_height * screen_width);
|
|
||||||
|
|
||||||
var sound_timer: u8 = 0;
|
var sound_timer: u8 = 0;
|
||||||
|
|
||||||
var textBuf: [160]u8 = undefined;
|
var textBuf: [160]u8 = undefined;
|
||||||
var done: bool = true;
|
var done: bool = false;
|
||||||
|
|
||||||
export fn start() void {
|
export fn start() void {
|
||||||
palette.mist();
|
palette.mist();
|
||||||
|
|
||||||
var col: u32 = 0;
|
|
||||||
while(col < screen_width) {
|
|
||||||
defer col += 1;
|
|
||||||
var row: u32 = 0;
|
|
||||||
while(row < screen_height) {
|
|
||||||
defer row += 1;
|
|
||||||
camera[row * screen_width + col] = map.data[row * screen_width + col];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn bonk() void {
|
fn bonk() void {
|
||||||
|
@ -85,23 +74,23 @@ fn drawMap() !void {
|
||||||
while (row < screen_height) {
|
while (row < screen_height) {
|
||||||
defer row += 1;
|
defer row += 1;
|
||||||
|
|
||||||
var tile = camera[col * map.width + row];
|
var tile = map.data[col * map.width + row];
|
||||||
var tileX = tile % map.ts_width;
|
var tileX = tile % map.ts_width;
|
||||||
var tileY = tile / map.ts_width;
|
var tileY = tile / map.ts_width;
|
||||||
|
|
||||||
// if (!done) {
|
if (!done) {
|
||||||
// var buf = fmt.bufPrint(&textBuf, "{},{}: {}: {},{}", .{col, row, tile, tileX, tileY}) catch unreachable;
|
var buf = fmt.bufPrint(&textBuf, "{},{}: {}: {},{}", .{col, row, tile, tileX, tileY}) catch unreachable;
|
||||||
// w4.trace(buf);
|
w4.trace(buf);
|
||||||
// }
|
}
|
||||||
|
|
||||||
w4.blitSub(
|
w4.blitSub(
|
||||||
&sprites.kenney_rpg,
|
&sprites.kenney_rpg,
|
||||||
row * 16,
|
row * 8,
|
||||||
col * 16,
|
col * 8,
|
||||||
16,
|
8,
|
||||||
16,
|
8,
|
||||||
@intCast(u32, tileX) * 16,
|
@intCast(u32, tileX) * 8,
|
||||||
@intCast(u32, tileY) * 16,
|
@intCast(u32, tileY) * 8,
|
||||||
sprites.kenney_rpg_width,
|
sprites.kenney_rpg_width,
|
||||||
w4.BlitFlags{.two_bits = true},
|
w4.BlitFlags{.two_bits = true},
|
||||||
);
|
);
|
||||||
|
|
|
@ -3,26 +3,58 @@
|
||||||
const sh0rk = @import("../sh0rk.zig");
|
const sh0rk = @import("../sh0rk.zig");
|
||||||
const Direction = sh0rk.Direction;
|
const Direction = sh0rk.Direction;
|
||||||
const Point = sh0rk.Point;
|
const Point = sh0rk.Point;
|
||||||
|
const Tileset = sh0rk.Tileset;
|
||||||
const Trigger = sh0rk.Trigger;
|
const Trigger = sh0rk.Trigger;
|
||||||
const Rect = sh0rk.Rect;
|
const Rect = sh0rk.Rect;
|
||||||
|
|
||||||
pub const width = 10;
|
pub const width = 20;
|
||||||
pub const height = 10;
|
pub const height = 20;
|
||||||
|
|
||||||
pub const ts_width = 17;
|
pub const tileset: Tileset = .Rpg;
|
||||||
pub const ts_height = 8;
|
pub const ts_width = 34;
|
||||||
|
pub const ts_height = 16;
|
||||||
|
|
||||||
pub const data = [100]u8{
|
pub const data = [400]u9{
|
||||||
0, 0, 0, 17, 0, 18, 19, 20, 0, 17, 68,
|
0, 1, 136, 137, 0, 1, 136, 137, 0, 1, 70,
|
||||||
0, 34, 51, 0, 35, 52, 37, 34, 51, 0,
|
71, 72, 73, 74, 75, 0, 1, 136, 137, 34,
|
||||||
17, 0, 17, 85, 87, 103, 0, 17, 16, 34,
|
35, 170, 171, 34, 35, 170, 171, 34, 35, 104,
|
||||||
51, 34, 51, 104, 0, 17, 34, 91, 0, 17,
|
105, 106, 107, 108, 109, 34, 35, 170, 171, 68,
|
||||||
68, 0, 0, 104, 34, 51, 0, 80, 0, 51,
|
69, 204, 205, 68, 69, 204, 205, 68, 69, 138,
|
||||||
34, 0, 17, 104, 66, 65, 96, 97, 98, 0,
|
139, 206, 207, 142, 143, 68, 69, 204, 205, 102,
|
||||||
67, 34, 51, 104, 65, 66, 113, 114, 115, 17,
|
103, 238, 239, 102, 103, 238, 239, 102, 103, 172,
|
||||||
102, 87, 87, 105, 0, 0, 99, 117, 100, 51,
|
173, 240, 241, 176, 177, 102, 103, 238, 239, 136,
|
||||||
0, 0, 0, 102, 87, 87, 87, 106, 87, 10,
|
137, 136, 137, 0, 1, 136, 137, 0, 1, 136,
|
||||||
12, 0, 11, 0, 68, 0, 17, 34, 51,
|
137, 0, 1, 136, 137, 0, 1, 32, 33, 170,
|
||||||
|
171, 170, 171, 34, 35, 170, 171, 34, 35, 170,
|
||||||
|
171, 34, 35, 170, 171, 34, 35, 66, 67, 204,
|
||||||
|
205, 204, 205, 68, 69, 204, 205, 68, 69, 204,
|
||||||
|
205, 68, 69, 204, 205, 68, 69, 204, 205, 238,
|
||||||
|
239, 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, 34,
|
||||||
|
35, 170, 171, 34, 35, 170, 171, 34, 35, 170,
|
||||||
|
171, 34, 35, 170, 171, 330, 331, 170, 171, 68,
|
||||||
|
69, 204, 205, 68, 69, 204, 205, 68, 69, 234,
|
||||||
|
235, 232, 233, 204, 363, 364, 365, 366, 205, 102,
|
||||||
|
103, 238, 239, 102, 103, 238, 239, 102, 103, 268,
|
||||||
|
269, 266, 267, 396, 397, 398, 399, 400, 401, 0,
|
||||||
|
1, 236, 237, 0, 1, 136, 137, 0, 1, 232,
|
||||||
|
233, 234, 235, 430, 431, 432, 433, 434, 435, 34,
|
||||||
|
35, 270, 271, 34, 352, 353, 171, 34, 35, 266,
|
||||||
|
267, 268, 269, 464, 465, 466, 467, 468, 469, 68,
|
||||||
|
69, 350, 351, 68, 386, 387, 205, 346, 347, 348,
|
||||||
|
349, 342, 343, 498, 499, 438, 439, 502, 503, 102,
|
||||||
|
103, 384, 385, 102, 103, 238, 239, 380, 381, 382,
|
||||||
|
383, 376, 377, 402, 403, 472, 473, 404, 405, 0,
|
||||||
|
1, 408, 409, 344, 345, 344, 345, 416, 417, 416,
|
||||||
|
417, 416, 417, 344, 345, 416, 417, 344, 345, 34,
|
||||||
|
35, 442, 443, 378, 379, 378, 379, 450, 451, 450,
|
||||||
|
451, 450, 451, 378, 379, 450, 451, 378, 379, 68,
|
||||||
|
56, 57, 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, 102, 103, 238, 239,
|
||||||
};
|
};
|
||||||
|
|
||||||
pub const coll = [_]Rect{
|
pub const coll = [_]Rect{
|
||||||
|
|
|
@ -3,16 +3,18 @@
|
||||||
const sh0rk = @import("../sh0rk.zig");
|
const sh0rk = @import("../sh0rk.zig");
|
||||||
const Direction = sh0rk.Direction;
|
const Direction = sh0rk.Direction;
|
||||||
const Point = sh0rk.Point;
|
const Point = sh0rk.Point;
|
||||||
|
const Tileset = sh0rk.Tileset;
|
||||||
const Trigger = sh0rk.Trigger;
|
const Trigger = sh0rk.Trigger;
|
||||||
const Rect = sh0rk.Rect;
|
const Rect = sh0rk.Rect;
|
||||||
|
|
||||||
pub const width = 20;
|
pub const width = 20;
|
||||||
pub const height = 20;
|
pub const height = 20;
|
||||||
|
|
||||||
pub const ts_width = 17;
|
pub const tileset: Tileset = .Rpg;
|
||||||
pub const ts_height = 8;
|
pub const ts_width = 34;
|
||||||
|
pub const ts_height = 16;
|
||||||
|
|
||||||
pub const data = [400]u8{
|
pub const data = [400]u9{
|
||||||
0, 0, 0, 17, 0, 18, 19, 20, 0, 17, 0,
|
0, 0, 0, 17, 0, 18, 19, 20, 0, 17, 0,
|
||||||
17, 18, 67, 20, 17, 0, 17, 19, 17, 68,
|
17, 18, 67, 20, 17, 0, 17, 19, 17, 68,
|
||||||
0, 34, 51, 0, 35, 52, 37, 34, 51, 34,
|
0, 34, 51, 0, 35, 52, 37, 34, 51, 34,
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
// Generated by ./src/tools/genmap.js ./maps/TestMap.json, DO NOT EDIT
|
|
||||||
|
|
||||||
const sh0rk = @import("../sh0rk.zig");
|
|
||||||
const Direction = sh0rk.Direction;
|
|
||||||
const Point = sh0rk.Point;
|
|
||||||
const Trigger = sh0rk.Trigger;
|
|
||||||
const Rect = sh0rk.Rect;
|
|
||||||
|
|
||||||
pub const width = 10;
|
|
||||||
pub const height = 10;
|
|
||||||
|
|
||||||
pub const ts_width = 10;
|
|
||||||
pub const ts_height = 5;
|
|
||||||
|
|
||||||
pub const coll = [_]Rect{
|
|
||||||
Rect{.base = Point{.x = 0, .y = 80}, .width = 160, .height = 80},
|
|
||||||
Rect{.base = Point{.x = 80, .y = 48}, .width = 16, .height = 32},
|
|
||||||
};
|
|
||||||
|
|
|
@ -47,7 +47,8 @@ pub const Trigger = struct {
|
||||||
dialogue: []const u8,
|
dialogue: []const u8,
|
||||||
};
|
};
|
||||||
|
|
||||||
pub const Tile = packed struct {
|
pub const Tileset = enum(u2) {
|
||||||
x: u4,
|
Cave,
|
||||||
y: u4,
|
Rpg,
|
||||||
|
Dungeon,
|
||||||
};
|
};
|
|
@ -17,6 +17,7 @@ out += `const sh0rk = @import("../sh0rk.zig");\n`;
|
||||||
|
|
||||||
out += `const Direction = sh0rk.Direction;\n`;
|
out += `const Direction = sh0rk.Direction;\n`;
|
||||||
out += `const Point = sh0rk.Point;\n`;
|
out += `const Point = sh0rk.Point;\n`;
|
||||||
|
out += `const Tileset = sh0rk.Tileset;\n`;
|
||||||
out += `const Trigger = sh0rk.Trigger;\n`;
|
out += `const Trigger = sh0rk.Trigger;\n`;
|
||||||
out += `const Rect = sh0rk.Rect;\n\n`;
|
out += `const Rect = sh0rk.Rect;\n\n`;
|
||||||
|
|
||||||
|
@ -33,24 +34,27 @@ let tilesheet = {
|
||||||
map.tilesets.forEach(tset => {
|
map.tilesets.forEach(tset => {
|
||||||
if (tset.source.includes("kenney")) {
|
if (tset.source.includes("kenney")) {
|
||||||
tilesheet = {
|
tilesheet = {
|
||||||
width: 17,
|
width: 34,
|
||||||
height: 8,
|
height: 16,
|
||||||
|
name: "Rpg",
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tset.source.includes("Cave")) {
|
if (tset.source.includes("Cave")) {
|
||||||
tilesheet = {
|
tilesheet = {
|
||||||
width: 10,
|
width: 14,
|
||||||
height: 5,
|
height: 5,
|
||||||
|
name: "Cave",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
out += `pub const tileset: Tileset = .${tilesheet.name};\n`;
|
||||||
out += `pub const ts_width = ${tilesheet.width};\n`;
|
out += `pub const ts_width = ${tilesheet.width};\n`;
|
||||||
out += `pub const ts_height = ${tilesheet.height};\n\n`;
|
out += `pub const ts_height = ${tilesheet.height};\n\n`;
|
||||||
|
|
||||||
const genMap = (tiles) => {
|
const genMap = (tiles) => {
|
||||||
out += `pub const data = [${tiles.data.length}]u8{\n `;
|
out += `pub const data = [${tiles.data.length}]u9{\n `;
|
||||||
|
|
||||||
tiles.data.forEach((tile, index) => {
|
tiles.data.forEach((tile, index) => {
|
||||||
tile -= 1;
|
tile -= 1;
|
||||||
|
|
Loading…
Reference in New Issue