aboutsummaryrefslogtreecommitdiff
path: root/src/lua/embed/boot.lua.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lua/embed/boot.lua.h')
-rw-r--r--src/lua/embed/boot.lua.h274
1 files changed, 133 insertions, 141 deletions
diff --git a/src/lua/embed/boot.lua.h b/src/lua/embed/boot.lua.h
index e1b8b34..bd2574a 100644
--- a/src/lua/embed/boot.lua.h
+++ b/src/lua/embed/boot.lua.h
@@ -1,143 +1,135 @@
/* boot.lua */
-static const char boot_lua[] =
-{45,45,91,91,32,13,10,32,32,32,32,112,114,111,103,114,97,109,32,101,110,116,
-114,121,13,10,93,93,32,32,13,10,13,10,108,111,99,97,108,32,102,117,110,99,116,
-105,111,110,32,95,111,110,69,118,101,110,116,40,101,41,32,13,10,32,32,32,32,
-45,45,32,117,112,100,97,116,101,32,107,101,121,98,111,97,114,100,32,115,116,
-97,116,117,115,32,13,10,32,32,32,32,105,102,32,101,46,116,121,112,101,32,61,
-61,32,34,107,101,121,100,111,119,110,34,32,116,104,101,110,32,13,10,32,32,32,
-32,32,32,32,32,106,105,110,46,107,101,121,98,111,97,114,100,46,115,101,116,40,
-101,46,107,101,121,44,32,116,114,117,101,41,32,13,10,32,32,32,32,101,108,115,
-101,105,102,32,101,46,116,121,112,101,32,61,61,32,34,107,101,121,117,112,34,
-32,116,104,101,110,32,13,10,32,32,32,32,32,32,32,32,106,105,110,46,107,101,
-121,98,111,97,114,100,46,115,101,116,40,101,46,107,101,121,44,32,102,97,108,
-115,101,41,13,10,32,32,32,32,101,110,100,32,13,10,13,10,32,32,32,32,45,45,32,
-99,97,108,108,32,117,115,101,114,32,111,110,69,118,101,110,116,32,102,117,110,
-99,116,105,111,110,32,13,10,32,32,32,32,105,102,32,106,105,110,46,99,111,114,
-101,46,111,110,69,118,101,110,116,32,116,104,101,110,32,13,10,32,32,32,32,32,
-32,32,32,106,105,110,46,99,111,114,101,46,111,110,69,118,101,110,116,40,101,
-41,32,13,10,32,32,32,32,101,110,100,13,10,101,110,100,32,13,10,13,10,45,45,45,
-45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,13,10,45,45,32,
-105,110,105,116,32,102,105,108,101,32,115,121,115,116,101,109,32,13,10,45,45,
-45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,13,10,106,105,
-110,46,95,97,114,103,118,91,50,93,32,61,32,106,105,110,46,95,97,114,103,118,
-91,50,93,32,111,114,32,39,46,39,13,10,106,105,110,46,102,105,108,101,115,121,
-115,116,101,109,46,105,110,105,116,40,41,13,10,106,105,110,46,102,105,108,101,
-115,121,115,116,101,109,46,109,111,117,110,116,40,106,105,110,46,95,97,114,
-103,118,91,50,93,41,13,10,13,10,45,45,32,99,111,110,102,105,103,13,10,108,111,
-99,97,108,32,99,111,110,102,32,61,32,123,125,32,13,10,105,102,32,106,105,110,
-46,102,105,108,101,115,121,115,116,101,109,46,101,120,105,115,116,40,34,99,
-111,110,102,105,103,46,108,117,97,34,41,32,116,104,101,110,32,13,10,9,99,111,
-110,102,32,61,32,114,101,113,117,105,114,101,32,34,99,111,110,102,105,103,34,
-9,13,10,101,110,100,32,13,10,99,111,110,102,46,119,105,100,116,104,32,61,32,
-99,111,110,102,46,119,105,100,116,104,32,111,114,32,54,48,48,32,13,10,99,111,
-110,102,46,104,101,105,103,104,116,32,61,32,99,111,110,102,46,104,101,105,103,
-104,116,32,111,114,32,53,48,48,32,13,10,99,111,110,102,46,102,112,115,32,61,
-32,99,111,110,102,46,102,112,115,32,111,114,32,54,48,13,10,99,111,110,102,46,
-116,105,116,108,101,32,61,32,99,111,110,102,46,116,105,116,108,101,32,111,114,
-32,40,34,106,105,110,32,118,34,32,46,46,32,106,105,110,46,118,101,114,115,105,
-111,110,40,41,41,13,10,13,10,45,45,32,105,110,105,116,32,118,105,100,101,111,
-32,115,117,98,115,121,115,116,101,109,32,13,10,106,105,110,46,103,114,97,112,
-104,105,99,115,46,105,110,105,116,40,99,111,110,102,46,119,105,100,116,104,44,
-99,111,110,102,46,104,101,105,103,104,116,44,99,111,110,102,46,116,105,116,
-108,101,41,13,10,13,10,45,45,32,111,112,101,110,32,100,101,98,117,103,32,109,
-111,100,101,44,32,109,117,115,116,32,97,102,116,101,114,32,106,105,110,46,103,
-114,97,112,104,105,99,115,46,105,110,105,116,13,10,105,102,32,106,105,110,46,
-95,97,114,103,118,91,51,93,32,61,61,32,39,45,100,39,32,116,104,101,110,32,13,
-10,9,106,105,110,46,100,101,98,117,103,46,105,110,105,116,40,41,13,10,101,110,
-100,13,10,13,10,102,117,110,99,116,105,111,110,32,106,105,110,46,99,111,114,
-101,46,114,117,110,40,41,13,10,32,32,32,32,108,111,99,97,108,32,110,111,119,
-32,61,32,106,105,110,46,116,105,109,101,46,115,101,99,111,110,100,40,41,13,10,
-32,32,32,32,108,111,99,97,108,32,108,97,115,116,32,61,32,110,111,119,13,10,32,
-32,32,32,108,111,99,97,108,32,102,115,101,99,32,61,32,49,47,99,111,110,102,46,
-102,112,115,13,10,32,32,32,32,45,45,32,102,111,114,32,108,111,97,100,105,110,
-103,32,114,101,115,111,117,114,99,101,115,13,10,32,32,32,32,105,102,32,106,
-105,110,46,99,111,114,101,46,108,111,97,100,32,116,104,101,110,32,13,10,32,32,
-32,32,32,32,32,32,106,105,110,46,99,111,114,101,46,108,111,97,100,40,41,32,13,
-10,32,32,32,32,101,110,100,13,10,32,32,32,32,119,104,105,108,101,40,106,105,
-110,46,99,111,114,101,46,114,117,110,110,105,110,103,40,41,41,32,100,111,13,
-10,32,32,32,32,32,32,32,32,45,45,32,102,114,97,109,101,32,99,111,110,116,114,
-111,108,101,13,10,32,32,32,32,32,32,32,32,108,97,115,116,32,61,32,110,111,119,
-13,10,32,32,32,32,32,32,32,32,110,111,119,32,61,32,106,105,110,46,116,105,109,
-101,46,115,101,99,111,110,100,40,41,13,10,32,32,32,32,32,32,32,32,105,102,32,
-40,110,111,119,32,45,32,108,97,115,116,41,32,60,32,102,115,101,99,32,116,104,
-101,110,32,13,10,32,32,32,32,32,32,32,32,32,32,32,32,106,105,110,46,116,105,
-109,101,46,115,108,101,101,112,40,102,115,101,99,32,45,32,110,111,119,32,43,
-32,108,97,115,116,41,13,10,32,32,32,32,32,32,32,32,101,110,100,13,10,13,10,32,
-32,32,32,32,32,32,32,45,45,32,104,97,110,100,108,101,32,101,118,101,110,116,
-115,32,32,32,32,32,13,10,32,32,32,32,32,32,32,32,102,111,114,32,95,44,32,101,
-32,105,110,32,112,97,105,114,115,40,106,105,110,46,101,118,101,110,116,46,112,
-111,108,108,40,41,41,32,100,111,32,13,10,32,32,32,32,32,32,32,32,32,32,32,32,
-105,102,32,95,111,110,69,118,101,110,116,32,116,104,101,110,13,10,32,32,32,32,
-32,32,32,32,32,32,32,32,32,32,32,32,95,111,110,69,118,101,110,116,40,101,41,
-13,10,32,32,32,32,32,32,32,32,32,32,32,32,101,110,100,13,10,32,32,32,32,32,32,
-32,32,101,110,100,13,10,13,10,32,32,32,32,32,32,32,32,45,45,32,117,112,100,97,
-116,101,13,10,32,32,32,32,32,32,32,32,108,111,99,97,108,32,100,116,32,61,32,
-110,111,119,32,45,32,108,97,115,116,13,10,32,32,32,32,32,32,32,32,105,102,32,
-100,116,32,60,32,102,115,101,99,32,116,104,101,110,32,13,10,32,32,32,32,32,32,
-32,32,32,32,32,32,100,116,32,61,32,102,115,101,99,32,13,10,32,32,32,32,32,32,
-32,32,101,110,100,13,10,32,32,32,32,32,32,32,32,105,102,32,106,105,110,46,99,
-111,114,101,46,111,110,85,112,100,97,116,101,32,116,104,101,110,13,10,32,32,
-32,32,32,32,32,32,32,32,32,32,106,105,110,46,99,111,114,101,46,111,110,85,112,
-100,97,116,101,40,100,116,41,13,10,32,32,32,32,32,32,32,32,101,110,100,13,10,
-32,32,32,32,32,32,32,32,13,10,9,9,45,45,32,98,105,110,100,32,116,111,32,100,
-101,102,97,117,108,116,32,114,101,110,100,101,114,32,98,117,102,102,101,114,
-32,13,10,9,9,106,105,110,46,103,114,97,112,104,105,99,115,46,98,105,110,100,
-40,41,32,13,10,9,9,106,105,110,46,103,114,97,112,104,105,99,115,46,99,108,101,
-97,114,40,41,32,13,10,9,9,106,105,110,46,103,114,97,112,104,105,99,115,46,99,
-111,108,111,114,40,41,13,10,9,9,106,105,110,46,103,114,97,112,104,105,99,115,
-46,115,116,117,100,121,40,41,13,10,13,10,9,9,45,45,32,99,117,115,116,111,109,
-32,100,114,97,119,105,110,103,13,10,9,9,105,102,32,106,105,110,46,99,111,114,
-101,46,111,110,68,114,97,119,32,116,104,101,110,32,13,10,32,32,32,32,32,32,32,
-32,32,32,32,32,106,105,110,46,99,111,114,101,46,111,110,68,114,97,119,40,41,
-32,13,10,32,32,32,32,32,32,32,32,101,110,100,13,10,9,9,13,10,9,9,45,45,32,114,
-101,110,100,101,114,32,100,101,98,117,103,32,119,105,110,100,111,119,13,10,9,
-9,105,102,32,106,105,110,46,100,101,98,117,103,46,115,116,97,116,117,115,40,
-41,32,116,104,101,110,32,13,10,9,9,9,106,105,110,46,100,101,98,117,103,46,114,
-101,110,100,101,114,40,41,13,10,9,9,101,110,100,32,9,9,13,10,13,10,32,32,32,
-32,32,32,32,32,45,45,32,115,119,97,112,32,119,105,110,100,111,119,32,98,117,
-102,102,101,114,32,13,10,32,32,32,32,32,32,32,32,106,105,110,46,103,114,97,
-112,104,105,99,115,46,112,114,101,115,101,110,116,40,41,13,10,13,10,32,32,32,
-32,101,110,100,13,10,101,110,100,13,10,13,10,108,111,99,97,108,32,102,117,110,
-99,116,105,111,110,32,111,110,69,114,114,111,114,40,109,115,103,41,32,13,10,9,
-108,111,99,97,108,32,116,97,98,32,61,32,39,32,32,32,32,39,13,10,9,112,114,105,
-110,116,40,34,69,114,114,111,114,58,92,110,34,32,46,46,32,109,115,103,41,13,
-10,9,102,117,110,99,116,105,111,110,32,106,105,110,46,99,111,114,101,46,111,
-110,69,118,101,110,116,40,101,41,32,13,10,9,9,105,102,32,101,46,116,121,112,
-101,32,61,61,32,39,113,117,105,116,39,32,116,104,101,110,32,13,10,9,9,9,106,
-105,110,46,99,111,114,101,46,113,117,105,116,40,41,13,10,9,9,101,110,100,13,
-10,9,101,110,100,13,10,9,108,111,99,97,108,32,119,119,44,32,119,104,32,61,32,
-106,105,110,46,103,114,97,112,104,105,99,115,46,115,105,122,101,40,41,32,13,
-10,9,102,117,110,99,116,105,111,110,32,106,105,110,46,99,111,114,101,46,111,
-110,68,114,97,119,40,41,32,13,10,9,9,106,105,110,46,103,114,97,112,104,105,99,
-115,46,119,114,105,116,101,40,34,69,114,114,111,114,58,32,34,44,32,49,48,44,
-32,49,48,44,32,51,48,44,32,51,44,32,51,48,41,13,10,9,9,106,105,110,46,103,114,
-97,112,104,105,99,115,46,119,114,105,116,101,40,109,115,103,44,32,49,48,44,32,
-53,48,41,32,13,10,9,101,110,100,13,10,101,110,100,13,10,13,10,105,102,32,106,
-105,110,46,102,105,108,101,115,121,115,116,101,109,46,101,120,105,115,116,40,
-34,109,97,105,110,46,108,117,97,34,41,32,116,104,101,110,32,13,10,9,45,45,32,
-114,101,113,117,105,114,101,32,109,97,105,110,32,103,97,109,101,32,115,99,114,
-105,112,116,13,10,9,120,112,99,97,108,108,40,102,117,110,99,116,105,111,110,
-40,41,32,114,101,113,117,105,114,101,34,109,97,105,110,34,32,101,110,100,44,
-32,111,110,69,114,114,111,114,41,13,10,9,106,105,110,46,99,111,114,101,46,114,
-117,110,40,41,13,10,101,108,115,101,32,13,10,9,45,45,32,110,111,32,103,97,109,
-101,32,13,10,9,102,117,110,99,116,105,111,110,32,106,105,110,46,99,111,114,
-101,46,111,110,69,118,101,110,116,40,101,41,32,13,10,9,9,105,102,32,101,46,
-116,121,112,101,32,61,61,32,39,113,117,105,116,39,32,116,104,101,110,32,13,10,
-9,9,9,106,105,110,46,99,111,114,101,46,113,117,105,116,40,41,13,10,9,9,101,
-110,100,13,10,9,101,110,100,13,10,9,102,117,110,99,116,105,111,110,32,106,105,
-110,46,99,111,114,101,46,111,110,68,114,97,119,40,41,32,13,10,9,9,106,105,110,
-46,103,114,97,112,104,105,99,115,46,99,108,101,97,114,40,49,49,49,44,32,49,51,
-52,44,32,49,50,53,44,32,50,53,53,41,32,13,10,9,9,108,111,99,97,108,32,119,119,
-44,32,119,104,32,61,32,106,105,110,46,103,114,97,112,104,105,99,115,46,115,
-105,122,101,40,41,32,13,10,9,9,108,111,99,97,108,32,102,119,44,32,102,104,32,
-61,32,106,105,110,46,103,114,97,112,104,105,99,115,46,98,111,120,40,34,110,
-111,32,103,97,109,101,34,44,32,50,48,44,32,49,44,32,50,48,41,13,10,9,9,106,
-105,110,46,103,114,97,112,104,105,99,115,46,119,114,105,116,101,40,34,110,111,
-32,103,97,109,101,34,44,32,119,119,32,47,50,32,45,32,102,119,32,47,32,50,44,
-32,119,104,32,42,32,50,47,51,44,32,49,54,44,32,49,44,32,49,56,41,13,10,9,101,
-110,100,13,10,9,106,105,110,46,99,111,114,101,46,114,117,110,40,41,13,10,101,
-110,100,13,10};
+static const char* boot_lua = R"(
+--[[
+ program entry
+]]
+local function _onEvent(e)
+ -- update keyboard status
+ if e.type == "keydown" then
+ jin.keyboard.set(e.key, true)
+ elseif e.type == "keyup" then
+ jin.keyboard.set(e.key, false)
+ end
+
+ -- call user onEvent function
+ if jin.core.onEvent then
+ jin.core.onEvent(e)
+ end
+end
+
+-------------------------------------------------
+-- init file system
+-------------------------------------------------
+jin._argv[2] = jin._argv[2] or '.'
+jin.filesystem.init()
+jin.filesystem.mount(jin._argv[2])
+
+-- config
+local conf = {}
+if jin.filesystem.exist("config.lua") then
+ conf = require "config"
+end
+conf.width = conf.width or 600
+conf.height = conf.height or 500
+conf.fps = conf.fps or 60
+conf.title = conf.title or ("jin v" .. jin.version())
+
+-- init video subsystem
+jin.graphics.init(conf.width,conf.height,conf.title)
+
+-- open debug mode, must after jin.graphics.init
+if jin._argv[3] == '-d' then
+ jin.debug.init()
+end
+
+function jin.core.run()
+ local now = jin.time.second()
+ local last = now
+ local fsec = 1/conf.fps
+ -- for loading resources
+ if jin.core.load then
+ jin.core.load()
+ end
+ local dt = 0
+ while(jin.core.running()) do
+ -- frame controle
+ last = now
+ now = jin.time.second()
+ if (now - last) < fsec then
+ jin.time.sleep(fsec - now + last)
+ end
+
+ -- handle events
+ for _, e in pairs(jin.event.poll()) do
+ if _onEvent then
+ _onEvent(e)
+ end
+ end
+
+ -- update
+ dt = now - last
+ if dt < fsec then
+ dt = fsec
+ end
+ if jin.core.onUpdate then
+ jin.core.onUpdate(dt)
+ end
+
+ -- bind to default render buffer
+ jin.graphics.bind()
+ jin.graphics.clear()
+ jin.graphics.color()
+ jin.graphics.study()
+
+ -- custom drawing
+ if jin.core.onDraw then
+ jin.core.onDraw()
+ end
+
+ -- render debug window
+ if jin.debug.status() then
+ jin.debug.render()
+ end
+
+ -- swap window buffer
+ jin.graphics.present()
+
+ end
+end
+
+local function onError(msg)
+ local tab = ' '
+ print("Error:\n" .. msg)
+ function jin.core.onEvent(e)
+ if e.type == 'quit' then
+ jin.core.quit()
+ end
+ end
+ local ww, wh = jin.graphics.size()
+ function jin.core.onDraw()
+ jin.graphics.write("Error: ", 10, 10, 30, 3, 30)
+ jin.graphics.write(msg, 10, 50)
+ end
+end
+
+if jin.filesystem.exist("main.lua") then
+ -- require main game script
+ xpcall(function() require"main" end, onError)
+ jin.core.run()
+else
+ -- no game
+ function jin.core.onEvent(e)
+ if e.type == 'quit' then
+ jin.core.quit()
+ end
+ end
+ function jin.core.onDraw()
+ jin.graphics.clear(111, 134, 125, 255)
+ local ww, wh = jin.graphics.size()
+ local fw, fh = jin.graphics.box("no game", 20, 1, 20)
+ jin.graphics.write("no game", ww /2 - fw / 2, wh * 2/3, 16, 1, 18)
+ end
+ jin.core.run()
+end
+)";