Files
cacaus-arcade/data/opcions_input.lua
JailGamer 8b516a6a26 [WIP] Triggers
- Algo de neteja de codi
2026-04-03 20:09:30 +02:00

127 lines
3.5 KiB
Lua

local input_type=controller.input.kb
local input_keys={}
local menu_opt = 0
function opcions_teclat_init()
input_type=controller.input.kb
-- definició de tecles a configurar en ordre
input_keys = controller.kb_keys
opcions_input_init()
end
function opcions_gamepad_init()
input_type=controller.input.pad
-- definició de botons a configurar en ordre
input_keys = controller.pad_keys
opcions_input_init()
end
function opcions_input_init()
surf.target(0)
surf.cls(16)
menu_opt = 1
flow:next()
end
function opcions_input_draw()
surf.target(0)
surf.cls(16)
local s=""
if input_type==controller.input.kb then
s="PULSA TECLA PER A "
if menu_opt==1 then
arc_textB(s.."AMUNT", 40, 48, 13)
elseif menu_opt==2 then
arc_textB(s.."AVALL", 40, 48, 13)
elseif menu_opt==3 then
arc_textB(s.."ESQUERRA", 28, 48, 13)
elseif menu_opt==4 then
arc_textB(s.."DRETA", 40, 48, 13)
elseif menu_opt==5 then
arc_textB(s.."BOTAR", 40, 48, 13)
elseif menu_opt==6 then
arc_textB(s.."DISPAR", 36, 48, 13)
end
elseif input_type==controller.input.pad then
s="PULSA BOTÓ PER A "
if menu_opt==1 then
arc_textB(s.."AMUNT", 44, 48, 13)
elseif menu_opt==2 then
arc_textB(s.."AVALL", 44, 48, 13)
elseif menu_opt==3 then
arc_textB(s.."ESQUERRA", 32, 48, 13)
elseif menu_opt==4 then
arc_textB(s.."DRETA", 44, 48, 13)
elseif menu_opt==5 then
arc_textB(s.."BOTAR", 44, 48, 13)
elseif menu_opt==6 then
arc_textB(s.."DISPAR", 40, 48, 13)
elseif menu_opt==7 then
arc_textB(s.."GPS ARRERE", 28, 48, 13)
elseif menu_opt==8 then
arc_textB(s.."GPS AVANT", 28, 48, 13)
elseif menu_opt==9 then
arc_textB(s.."PAUSA", 44, 48, 13)
end
end
end
function opcions_input_update()
local curr_key = input_keys[menu_opt]
if key.press(key.ESCAPE) then
flow:next()
return
end
if input_type==controller.input.kb then
local k = key.press()
if k ~= 0 and k~=key.ESCAPE then
print(k..", "..curr_key.name..", "..curr_key.code)
config_key(curr_key, k)
menu_opt = menu_opt+1
end
elseif input_type==controller.input.pad then
local btn = pad.press();
if btn ~= -1 then
config_key(curr_key, btn)
menu_opt = menu_opt+1
end
end
if menu_opt >#input_keys then menu_opt=1 end
end
function opcions_input_show()
opcions_input_draw()
opcions_input_update()
end
function opcions_input_end()
menu_opt = 0
flow:finish()
end
function config_key(def_key, k)
local end_setup=false
local valid_key = true
if (input_type==controller.input.kb and def_key.name=="shoot")
or (input_type==controller.input.pad and def_key.name=="pause") then
end_setup = true
end
if not controller:define(def_key.code, k) then valid_key=false end
if valid_key then
print("DEFINED > "..def_key.name..", "..def_key.code.." = "..k)
config.key(def_key.code, k)
else
print("ERROR AL DEFINIR")
end
if end_setup then flow:next() end
end
flow:registrar("opcions_teclat", { opcions_teclat_init, opcions_input_show, opcions_input_end } )
flow:registrar("opcions_gamepad", { opcions_gamepad_init, opcions_input_show, opcions_input_end } )