From 58cb48fa756750af512b1f170a7462f4946f5267 Mon Sep 17 00:00:00 2001 From: KikooDX Date: Wed, 16 Sep 2020 11:19:21 +0200 Subject: [PATCH] [generate_c.lua] now supports the layer system --- levels/0.jtmm2 | 299 ++++++++++++++++++++++++++++-------------- levels/generate_c.lua | 35 +++-- 2 files changed, 226 insertions(+), 108 deletions(-) diff --git a/levels/0.jtmm2 b/levels/0.jtmm2 index 6a15174..6a10d14 100644 --- a/levels/0.jtmm2 +++ b/levels/0.jtmm2 @@ -1,102 +1,203 @@ 10 51 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +n +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +1 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 diff --git a/levels/generate_c.lua b/levels/generate_c.lua index 415b65c..fa5d1ad 100755 --- a/levels/generate_c.lua +++ b/levels/generate_c.lua @@ -1,12 +1,13 @@ -#!/usr/bin/env lua +#!/usr/bin/env luajit local function read_level(id) local file = io.open(id..".jtmm2") if not file then return nil else - local content = {width = nil, height = nil, tiles = {}} + local content = {width = nil, height = nil, layers = {{}}} local line_nb = 0 + local layer_nb = 1 for line in file:lines() do line_nb = line_nb + 1 if line_nb < 3 then @@ -16,7 +17,12 @@ local function read_level(id) content.width = tonumber(line) end else - table.insert(content.tiles, line) + if line == "n" then + layer_nb = layer_nb + 1 + table.insert(content.layers, {}) + else + table.insert(content.layers[layer_nb], line) + end end end file:close() @@ -27,17 +33,28 @@ end local function create_structure_c(id) local content = read_level(id) if content then - -- tiles - io.write("const unsigned char tiles_", id, "[] = {") - for i, v in ipairs(content.tiles) do - io.write(v, ", ") + -- layers + for i, layer in ipairs(content.layers) do + io.write("const unsigned char tiles_", id, "_", i, "[] = {\n\t") + for i, v in ipairs(layer) do + io.write(v, ", ") + if i % 14 == 0 and i ~= #layer then + io.write("\n\t") + end + end + io.write("\n};\n"); end - io.write("};\n"); + -- array + io.write("const unsigned char *layers_", id, "[] = {") + for i = 1, #content.layers, 1 do + io.write("tiles_", id, "_", i, ", ") + end + io.write("};\n") -- structure io.write("const Level level_", id, " = {\n") io.write("\t.width = ", content.width, ",\n") io.write("\t.height = ", content.height, ",\n") - io.write("\t.tiles = &tiles_", id, "\n") + io.write("\t.layers = &layers_", id, "\n") io.write("};\n") end end