Divergent/mods/PDA To Previous Weapon/gamedata/scripts/pda_to_previous_weapon.script

41 lines
1.1 KiB
Plaintext

local previous_slot
function toggle_pda()
-- PDA Map
local pda3d = get_console_cmd(1, "g_3d_pda")
if not pda3d then return end
local pda_menu = ActorMenu.get_pda_menu()
if not pda_menu:IsShown() and db.actor:item_in_slot(8) then
-- printf("save slot %s", db.actor:active_slot())
previous_slot = db.actor:active_slot()
elseif pda_menu:IsShown() and previous_slot then
-- Postpone on next tick
CreateTimeEvent("pda_restore_slot", "pda_restore_slot", 0, function()
-- printf("restore slot %s", previous_slot)
db.actor:activate_slot(previous_slot)
previous_slot = nil
return true
end)
end
end
function on_key_press(key)
if key == DIK_keys.DIK_ESCAPE or dik_to_bind(key) == 51 then
toggle_pda()
end
end
-- Special case for map key
function on_key_release(key)
if dik_to_bind(key) == key_bindings.kCUSTOM20 then
toggle_pda()
end
end
function on_game_start()
RegisterScriptCallback("on_key_press", on_key_press)
RegisterScriptCallback("on_key_release", on_key_release)
end