aboutsummaryrefslogtreecommitdiff
path: root/src/lua/embed/boot.lua
diff options
context:
space:
mode:
Diffstat (limited to 'src/lua/embed/boot.lua')
-rw-r--r--src/lua/embed/boot.lua118
1 files changed, 0 insertions, 118 deletions
diff --git a/src/lua/embed/boot.lua b/src/lua/embed/boot.lua
deleted file mode 100644
index e649737..0000000
--- a/src/lua/embed/boot.lua
+++ /dev/null
@@ -1,118 +0,0 @@
-jin._argv[2] = jin._argv[2] or '.'
-jin.filesystem.init()
-jin.filesystem.mount(jin._argv[2])
-
-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.vsync = conf.vsync or false
-conf.title = conf.title or ("jin v" .. jin.version())
-conf.resizable = conf.resizable or false
-conf.fullscreen = conf.fullscreen or false
-
--- initialize subsystems
-jin.graphics.init(conf)
-jin.audio.init()
-
--- open debug mode, must after jin.graphics.init
-if jin._argv[3] == '-d' then
- jin.debug.init()
-end
-
-local function safecall(func, ...)
- if func then
- func(...)
- end
-end
-
-function jin.core.run()
- safecall(jin.core.onLoad)
- local previous = jin.time.second()
- local SEC_PER_UPDATE = 1 / conf.fps
- local dt = SEC_PER_UPDATE
- local running = true
- while(jin.core.running()) do
- for _, e in pairs(jin.event.poll()) do
- if e.type == "keydown" then
- jin.keyboard.set(e.key, true)
- elseif e.type == "keyup" then
- jin.keyboard.set(e.key, false)
- end
- safecall(jin.core.onEvent, e)
- running = jin.core.running()
- if not running then break end
- end
- if not running then break end
-
- safecall(jin.core.onUpdate, dt)
-
- jin.graphics.unbind()
- jin.graphics.clear()
- jin.graphics.color()
- jin.graphics.study()
- safecall(jin.core.onDraw)
- if jin.debug.status() then
- jin.debug.render()
- end
- jin.graphics.present()
-
- local current = jin.time.second()
- dt = current - previous
- local wait = SEC_PER_UPDATE - dt
- previous = previous + SEC_PER_UPDATE
- if wait > 0 then
- dt = SEC_PER_UPDATE
- jin.time.sleep(wait)
- else
- previous = current
- end
- end
-end
-
-local function onError(msg)
- local tab = ' '
- print("Error:\n" .. msg)
- function jin.core.onEvent(e)
- if e.type == 'quit' then
- jin.core.stop()
- 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
-
-local function boot()
- 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.stop()
- 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
- -- quit subsystems
- jin.graphics.destroy()
- jin.audio.destroy()
- -- exit whole game
- jin.core.quit()
-end
-
-boot()