local zoom_in_iron = 0.4
local zoom_in_scop = 0.4
local zoom_bad_scop = 0.2
local default_hud_fov = ui_options.get("video/basic/hud_fov")

ini_fov = ini_file_ex("items\\weapon_fov_values.ltx")

function on_option_change()
	zoom_in_iron = scope_fov_mcm.get_config("iron_fov")
	zoom_in_scop = scope_fov_mcm.get_config("scop_fov")
	zoom_bad_scop = scope_fov_mcm.get_config("bad_scop_fov")
end

function zoom_in()
local weapon = db.actor:active_item()
local scope = utils_item.get_attached_scope(weapon)
local parent = ini_sys:r_string_ex(weapon:section(),"parent_section")
if not parent then
	parent = weapon:section()
	end
local sec_exist = ini_fov:section_exist(parent)
local iron_fov = ini_fov:r_string_ex(parent, "iron")
	if sec_exist and scope ~= nil then
	local scope_fov = ini_fov:r_string_ex(parent, scope)
		if scope and scope_fov then
			exec_console_cmd("hud_fov " .. scope_fov)
			return
		end
	end
	if sec_exist and scope == nil and iron_fov then
		exec_console_cmd("hud_fov " .. iron_fov)
		return
	end
	if scope then
		local scope_bad = ini_fov:r_string_ex("bad_scopes", scope)
		if scope_bad then
			exec_console_cmd("hud_fov " .. zoom_bad_scop)
		else exec_console_cmd("hud_fov " .. zoom_in_scop)
		end
	end
	if scope == nil then
	exec_console_cmd("hud_fov " .. zoom_in_iron)
	end
end

function zoom_out()
	exec_console_cmd("hud_fov " .. default_hud_fov)
end

function on_game_start()
	RegisterScriptCallback("actor_on_weapon_zoom_in", zoom_in)
	RegisterScriptCallback("actor_on_weapon_zoom_out", zoom_out)
	RegisterScriptCallback("on_option_change", on_option_change)
	on_option_change()
end