Skip to content
Snippets Groups Projects
Commit ed34e134 authored by dg's avatar dg
Browse files

T-Engine can now auto-update itself (as long as it is not an update to the...

T-Engine can now auto-update itself (as long as it is not an update to the exe) (this is disabled for now, will be activated later)


git-svn-id: http://svn.net-core.org/repos/t-engine4@1114 51575b47-30f0-44d4-a5cc-537603b46e54
parent fe90c5ab
No related branches found
No related tags found
No related merge requests found
......@@ -18,5 +18,15 @@
-- darkgod@te4.org
-- Engine Version
engine.version = {0,9,10,"te4"}
engine.version_id = "te4-0.9.10"
engine.version = {0,9,9,"te4"}
engine.version_id = "te4-0.9.9"
function engine.version_check(v)
local ev = engine.version
if v[4] ~= ev[4] then return "different engine" end
if v[1] > ev[1] then return "newer" end
if v[1] == ev[1] and v[2] > ev[2] then return "newer" end
if v[1] == ev[1] and v[2] == ev[2] and v[3] > ev[3] then return "newer" end
if v[1] == ev[1] and v[2] == ev[2] and v[3] == ev[3] then return "same" end
return "lower"
end
......@@ -201,6 +201,23 @@ function _M:selectStepMain()
if not self.news then
self.news = profile:getNews()
if self.news then
local f = loadstring(self.news.text)
if f then
local env = {}
setfenv(f, env)
pcall(f)
if env.text and env.version then
self.news.text = env.text
print("Latest engine version available: ", env.version[4], env.version[1], env.version[2], env.version[3])
self.latest_engine_version = env.version
else
self.news = nil
end
end
end
if not self.news then
self.news = {
title = 'Welcome to T-Engine and the Tales of Middle-earth',
......@@ -215,10 +232,13 @@ Remember that in most roguelikes death is usually permanent so be careful!
Now go and have some fun!]]
}
end
self.tooltip:set("#AQUAMARINE#%s#WHITE#\n---\n%s", self.news.title, self.news.text)
end
self.step.do_tooltip = true
self:installNewEngine()
if not self.firstrunchecked then
-- Check first time run for online profile
self.firstrunchecked = true
......@@ -455,3 +475,20 @@ function _M:selectStepOnlineProfile()
end, "Create", "Login")
end
end
function _M:installNewEngine()
if not self.latest_engine_version then return end
if engine.version_check(self.latest_engine_version) == "newer" then
local url = ("http://te4.org/dl/engines/%s-%d.%d.%d.teae"):format(self.latest_engine_version[4], self.latest_engine_version[1], self.latest_engine_version[2], self.latest_engine_version[3])
local d = DownloadDialog.new(("Downloading: T-Engine 4 %d.%d.%d"):format(self.latest_engine_version[1], self.latest_engine_version[2], self.latest_engine_version[3]), url, function(di, data)
fs.mkdir("/engines")
local f = fs.open(("/engines/%s-%d.%d.%d.teae"):format(self.latest_engine_version[4], self.latest_engine_version[1], self.latest_engine_version[2], self.latest_engine_version[3]), "w")
for i, v in ipairs(data) do f:write(v) end
f:close()
Dialog:simplePopup("Success!", "The new engine is installed, it will now restart using it.", function() util.showMainMenu() end)
end)
self:registerDialog(d)
d:startDownload()
end
end
......@@ -17,6 +17,10 @@
-- Nicolas Casalini "DarkGod"
-- darkgod@te4.org
-- Setup the user directory
local homepath = fs.getUserPath()..fs.getPathSeparator()..fs.getHomePath()..fs.getPathSeparator().."4.0"
fs.mount(homepath, "/")
-- Look for the required engine and load it
local args = {...}
local req_engine = args[1] or "te4"
......@@ -96,5 +100,7 @@ elseif use_engine.load_dir then
fs.mount(fs.getRealPath(use_engine.load_dir), "/")
end
fs.umount(homepath)
-- RUN engine RUN !!
dofile("/engine/init.lua")
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment