Skip to content
Snippets Groups Projects
Commit 6201b170 authored by DarkGod's avatar DarkGod
Browse files

Made the zone load tips look nicer

parent 433c9cc6
No related branches found
No related tags found
No related merge requests found
......@@ -822,9 +822,9 @@ end
function _M:getLoadTips()
if self.load_tips then
local l = rng.table(self.load_tips)
return l.text
return "#{italic}##ANTIQUE_WHITE#"..l.text.."#WHITE##{normal}#"
else
return ""
return nil
end
end
......@@ -845,7 +845,7 @@ function _M:getLevel(game, lev, old_lev, no_close)
-- Load persistent level?
if type(level_data.persistent) == "string" and level_data.persistent == "zone_temporary" then
forceprint("Loading zone temporary level", self.short_name, lev)
local popup = Dialog:simpleWaiter("Loading level", "Please wait while loading the level... "..self:getLoadTips(), nil, 10000)
local popup = Dialog:simpleWaiterTip("Loading level", "Please wait while loading the level... ", self:getLoadTips(), nil, 10000)
core.display.forceRedraw()
self.temp_memory_levels = self.temp_memory_levels or {}
......@@ -861,7 +861,7 @@ function _M:getLevel(game, lev, old_lev, no_close)
popup:done()
elseif type(level_data.persistent) == "string" and level_data.persistent == "zone" and not self.save_per_level then
forceprint("Loading zone persistance level", self.short_name, lev)
local popup = Dialog:simpleWaiter("Loading level", "Please wait while loading the level... "..self:getLoadTips(), nil, 10000)
local popup = Dialog:simpleWaiterTip("Loading level", "Please wait while loading the level... ", self:getLoadTips(), nil, 10000)
core.display.forceRedraw()
self.memory_levels = self.memory_levels or {}
......@@ -877,7 +877,7 @@ function _M:getLevel(game, lev, old_lev, no_close)
popup:done()
elseif type(level_data.persistent) == "string" and level_data.persistent == "memory" then
forceprint("Loading memory persistance level", self.short_name, lev)
local popup = Dialog:simpleWaiter("Loading level", "Please wait while loading the level... "..self:getLoadTips(), nil, 10000)
local popup = Dialog:simpleWaiterTip("Loading level", "Please wait while loading the level... ", self:getLoadTips(), nil, 10000)
core.display.forceRedraw()
game.memory_levels = game.memory_levels or {}
......@@ -893,7 +893,7 @@ function _M:getLevel(game, lev, old_lev, no_close)
popup:done()
elseif level_data.persistent then
forceprint("Loading level persistance level", self.short_name, lev)
local popup = Dialog:simpleWaiter("Loading level", "Please wait while loading the level... "..self:getLoadTips(), nil, 10000)
local popup = Dialog:simpleWaiterTip("Loading level", "Please wait while loading the level... ", self:getLoadTips(), nil, 10000)
core.display.forceRedraw()
-- Try to load from a savefile
......@@ -909,7 +909,7 @@ function _M:getLevel(game, lev, old_lev, no_close)
-- In any cases, make one if none was found
if not level then
forceprint("Creating level", self.short_name, lev)
local popup = Dialog:simpleWaiter("Generating level", "Please wait while generating the level... "..self:getLoadTips(), nil, 10000)
local popup = Dialog:simpleWaiterTip("Generating level", "Please wait while generating the level... ", self:getLoadTips(), nil, 10000)
core.display.forceRedraw()
level = self:newLevel(level_data, lev, old_lev, game)
......
......@@ -29,11 +29,17 @@ module(..., package.seeall, class.inherit(Base))
--- Requests a simple waiter dialog
function _M:simpleWaiter(title, text, width, count, max)
width = width or 400
local w, h = self.font:size(text)
local _, th = self.font:size(title)
local d = new(title, 1, 1)
local max_h = 9999
local textzone = require("engine.ui.Textzone").new{width=width+10, auto_height=true, scrollbar=true, text=text}
if textzone.h > max_h then textzone.h = max_h
else textzone.scrollbar = nil
end
local wait = require("engine.ui.Waiter").new{size=width, known_max=max}
d:loadUI{
{left = 3, top = 3, ui=require("engine.ui.Textzone").new{width=w+10, height=h+5, text=text}},
{left = 3, top = 3, ui=textzone},
{left = 3, bottom = 3, ui=wait},
}
d:setupUI(true, true)
......@@ -50,6 +56,37 @@ function _M:simpleWaiter(title, text, width, count, max)
return d
end
--- Requests a simple waiter dialog
function _M:simpleWaiterTip(title, text, tip, width, count, max)
if not tip then return self:simpleWaiter(title, text, width, count, max) end
width = width or 400
local _, th = self.font:size(title)
local d = new(title, 1, 1)
local wait = require("engine.ui.Waiter").new{size=width, known_max=max}
local textzone = require("engine.ui.Textzone").new{width=wait.w, auto_height=true, scrollbar=false, text=text}
local tipzone = require("engine.ui.Textzone").new{width=wait.w, auto_height=true, scrollbar=false, text=tip}
local split = require("engine.ui.Separator").new{dir="vertical", size=wait.w - 12}
d:loadUI{
{left = 3, top = 3, ui=textzone},
{left = 3+6, top = 3+textzone.h, ui=split},
{left = 3, top = 3+textzone.h+split.h, ui=tipzone},
{left = 3, bottom = 3, ui=wait},
}
d:setupUI(true, true)
d.done = function(self) game:unregisterDialog(self) end
d.timeout = function(self, secs, cb) wait:setTimeout(secs, function() cb() local done = self.done self.done = function()end done(self) end) end
d.manual = function(self, ...) wait:manual(...) end
d.manualStep = function(self, ...) wait:manualStep(...) end
game:registerDialog(d)
core.wait.enable(count, wait:getWaitDisplay(d))
return d
end
--- Requests a simple, press any key, dialog
function _M:listPopup(title, text, list, w, h, fct)
......
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