Scripting: Allow display input script to work even if overlay does not work initially
This commit is contained in:
parent
90057703b5
commit
11ebe11c8e
@ -44,27 +44,25 @@ local state = {
|
|||||||
[C.PLATFORM.GB] = 7,
|
[C.PLATFORM.GB] = 7,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
state.overlay = canvas:newLayer(32, 16)
|
|
||||||
state.painter = image.newPainter(state.overlay.image)
|
|
||||||
state.painter:setBlend(false)
|
|
||||||
state.painter:setFill(true)
|
|
||||||
|
|
||||||
function state.update()
|
function state.create()
|
||||||
local keys = util.expandBitmask(emu:getKeys())
|
if state.overlay ~= nil then
|
||||||
local maxKey = state.maxKey[emu:platform()]
|
return true
|
||||||
|
|
||||||
for key = 0, maxKey do
|
|
||||||
if emu:getKey(key) ~= 0 then
|
|
||||||
state.painter:setFillColor(0x80FFFFFF)
|
|
||||||
else
|
|
||||||
state.painter:setFillColor(0x40404040)
|
|
||||||
end
|
|
||||||
state.drawButton[key](state)
|
|
||||||
end
|
end
|
||||||
state.overlay:update()
|
if canvas == nil then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
state.overlay = canvas:newLayer(32, 16)
|
||||||
|
if state.overlay == nil then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
state.painter = image.newPainter(state.overlay.image)
|
||||||
|
state.painter:setBlend(false)
|
||||||
|
state.painter:setFill(true)
|
||||||
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
function state.reset()
|
function state.update()
|
||||||
local endX = canvas:screenWidth() - 32
|
local endX = canvas:screenWidth() - 32
|
||||||
local endY = canvas:screenHeight() - 16
|
local endY = canvas:screenHeight() - 16
|
||||||
|
|
||||||
@ -112,11 +110,32 @@ function state.reset()
|
|||||||
pos.y = pos.y + input_display.offset.y;
|
pos.y = pos.y + input_display.offset.y;
|
||||||
|
|
||||||
state.overlay:setPosition(pos.x, pos.y);
|
state.overlay:setPosition(pos.x, pos.y);
|
||||||
|
|
||||||
|
local keys = util.expandBitmask(emu:getKeys())
|
||||||
|
local maxKey = state.maxKey[emu:platform()]
|
||||||
|
|
||||||
|
for key = 0, maxKey do
|
||||||
|
if emu:getKey(key) ~= 0 then
|
||||||
|
state.painter:setFillColor(0x80FFFFFF)
|
||||||
|
else
|
||||||
|
state.painter:setFillColor(0x40404040)
|
||||||
|
end
|
||||||
|
state.drawButton[key](state)
|
||||||
|
end
|
||||||
|
state.overlay:update()
|
||||||
|
end
|
||||||
|
|
||||||
|
function state.reset()
|
||||||
|
if not state.create() then
|
||||||
|
return
|
||||||
|
end
|
||||||
state.painter:setFillColor(0x40808080)
|
state.painter:setFillColor(0x40808080)
|
||||||
state.painter:drawRectangle(0, 0, 32, 16)
|
state.painter:drawRectangle(0, 0, 32, 16)
|
||||||
state.overlay:update()
|
state.overlay:update()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
input_display.state = state
|
||||||
|
|
||||||
state.reset()
|
state.reset()
|
||||||
callbacks:add("frame", state.update)
|
callbacks:add("frame", state.update)
|
||||||
callbacks:add("start", state.reset)
|
callbacks:add("start", state.reset)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user