R_meter = 0
local Respect_level = 0
local Respect_pct = 0
local Respect_total = 0
local RESPECT_PER_LEVEL = 7000
local Input_tracker
Bugs_mouse_Input_tracker = -1
local LIST_SIZE = 400
local LIST_ITEMS = 10
local LIST_SCALE = .8
Bugs_megalist = {}
List_data = {}
function vint_bugs_init()
local doc_h = vint_document_find("vint_bugs")
debug_print("vint", "doc_h" .. doc_h .. "\n")
R_meter = Vdo_respect_meter:new("r_object", 0, 0, "vint_bugs.lua", "R_meter")
Respect_level = 0
Respect_pct = 0
Respect_total = 0
r_update_respect()
for i = 1, 20 do
List_data[i] = {id = i, type = TYPE_BUTTON, label = "MENU ITEM " .. i, is_new = true}
end
Bugs_megalist = Vdo_mega_list:new("bugs_megalist", 0, doc_h)
Bugs_megalist:set_highlight_color(COLOR_CHEATS_PRIMARY, COLOR_CHEATS_SECONDARY)
Bugs_megalist:draw_items(List_data, 1, LIST_SIZE, LIST_ITEMS, .9, false)
Input_tracker = Vdo_input_tracker:new()
Input_tracker:add_input("select", "r_add_respect", 50)
Input_tracker:add_input("back", "r_remove_respect", 50)
Input_tracker:add_input("nav_up", "megalist_nav_up", 50)
Input_tracker:add_input("nav_down", "megalist_nav_down", 50)
Input_tracker:add_input("alt_select", "r_add_respect_double", 50)
Input_tracker:add_input("exit", "r_remove_respect_double", 50)
Input_tracker:subscribe(true)
if game_get_platform() == "PC" then
Bugs_mouse_Input_tracker = Vdo_input_tracker:new()
Bugs_megalist:add_mouse_inputs("vint_bugs", Bugs_mouse_Input_tracker)
Bugs_mouse_Input_tracker:subscribe(true)
debug_print("vint", "HELLO: " .. var_to_string(Bugs_mouse_Input_tracker) .. "\n")
end
local text_grp_1_h = vint_object_find("text_grp_1")
local text_1_h = vint_object_find("text_1_txt", text_grp_1_h)
local text_1_bg_h = vint_object_find("text_1_bg")
local width, height = element_get_actual_size(text_1_h)
element_set_actual_size(text_1_bg_h, width, height)
local text_grp_2_h = vint_object_find("text_grp_2")
local text_2_h = vint_object_find("text_2_txt", text_grp_2_h)
local text_2_bg_h = vint_object_find("text_2_bg")
local width, height = element_get_actual_size(text_2_h)
element_set_actual_size(text_2_bg_h, width, height)
local text_grp_3_h = vint_object_find("text_grp_3")
local text_3_h = vint_object_find("text_3_txt", text_grp_3_h)
local text_3_bg_h = vint_object_find("text_3_bg")
local width, height = element_get_actual_size(text_3_h)
element_set_actual_size(text_3_bg_h, width, height)
end
function vint_bugs_cleanup()
Input_tracker:subscribe(false)
end
-------------------------------------------------------------------------------
-- Mouse Inputs
--
function vint_bugs_mouse_click(event, target_handle)
-- If the target_handle matches a button, activate it
local new_index = Bugs_megalist:get_button_index(target_handle)
if new_index ~= 0 then
-- Enter an option if the target_handle is in the List
Bugs_megalist:set_selection(new_index)
--Click event?
end
end
function vint_bugs_mouse_move(event, target_handle)
local new_index = Bugs_megalist:get_button_index(target_handle)
if new_index ~= 0 then
-- Set the button as the new selected highlight
Bugs_megalist:set_selection(new_index)
local current_data = Bugs_megalist:return_selected_data()
debug_print("vint", "new_index:" .. new_index .. "\n")
Bugs_megalist:move_cursor(0, true)
if current_data.is_new then
Bugs_mouse_Input_tracker:remove_all()
Bugs_megalist:remove_new_flag(new_index)
Bugs_megalist:move_cursor(0, true)
--Re add inputs...
if game_get_platform() == "PC" then
Bugs_mouse_Input_tracker:remove_all()
Bugs_megalist:add_mouse_inputs("vint_bugs", Bugs_mouse_Input_tracker)
Bugs_mouse_Input_tracker:subscribe(true)
end
end
end
end
function vint_bugs_mouse_scroll(event, target_handle, mouse_x, mouse_y, scroll_lines)
if scroll_lines ~= 0 then
if Bugs_megalist:get_scroll_region_handle() == target_handle then
Bugs_megalist:scroll_list(scroll_lines * -1)
Bugs_megalist:update_mouse_inputs("vint_bugs", Bugs_mouse_Input_tracker)
end
end
end
function vint_bugs_mouse_drag(event, target_handle, mouse_x, mouse_y)
if Bugs_megalist.scrollbar.tab.handle == target_handle then
local new_start_index = Bugs_megalist.scrollbar:drag_scrolltab(mouse_y, Bugs_megalist.num_buttons - (Bugs_megalist.max_buttons - 1))
Bugs_megalist:scroll_list(0, new_start_index)
end
end
function vint_bugs_mouse_drag_release(event, target_handle, mouse_x, mouse_y)
if Bugs_megalist.scrollbar.tab.handle == target_handle then
local start_index = Bugs_megalist:get_visible_indices()
Bugs_megalist.scrollbar:release_scrolltab(start_index, Bugs_megalist.num_buttons - (Bugs_megalist.max_buttons - 1))
Bugs_megalist:update_mouse_inputs("vint_bugs", Bugs_mouse_Input_tracker)
end
end
function r_update_respect()
R_meter:update_respect(Respect_total, Respect_pct, Respect_level, Show_upgrade)
debug_print("vint", "Respect_total: " .. var_to_string(Respect_total) .. "\n")
debug_print("vint", "Respect_pct: " .. var_to_string(Respect_pct) .. "\n")
debug_print("vint", "Respect_level: " .. var_to_string(Respect_level) .. "\n")
debug_print("vint", "SHOW UPGRADE: " .. var_to_string(Show_upgrade) .. "\n")
end
Show_upgrade = false
Show_upgrade_thread = 0
function show_upgrade_func()
thread_yield(3)
Show_upgrade = false
R_meter:game_is_finished_showing_upgrades()
r_update_respect()
Show_upgrade_thread = 0
end
function respect_total_update(respect)
Respect_total = Respect_total + respect
if Respect_total > 400000 or Respect_total < 0 then
Respect_total = 1
debug_print("vint", "RELOAD DOC!! reset\n")
end
local current_level = Respect_level
Respect_level = floor(Respect_total / RESPECT_PER_LEVEL)
if current_level < Respect_level then
if Show_upgrade_thread == 0 then
Show_upgrade = true
Show_upgrade_thread = thread_new("show_upgrade_func")
end
end
Respect_pct = (Respect_total % RESPECT_PER_LEVEL) / RESPECT_PER_LEVEL
end
function r_add_respect()
respect_total_update(1000)
r_update_respect()
end
function r_add_respect_double()
respect_total_update(4000)
r_update_respect()
end
function r_remove_respect()
respect_total_update(-1000)
r_update_respect()
end
function r_remove_respect_double()
respect_total_update(-4000)
r_update_respect()
end
function megalist_nav_up()
Bugs_megalist:move_cursor(-1)
end
function megalist_nav_down()
Bugs_megalist:move_cursor(1)
end
function test_numbers()
local text_field_h = vint_object_find("text_field")
for i = 1000, 2000 do
vint_set_property(text_field_h, "text_tag", i)
thread_yield()
end
end
function test_numbers_commas()
local text_field_h = vint_object_find("text_field")
local do_test = true
local value = 0
while do_test do
value = value + rand_int(60,99)
local formated_value = format_cash(value)
vint_set_property(text_field_h, "text_tag", formated_value)
thread_yield()
if value > 40000 then
do_test = false
end
end
end
function test_numbers_periods()
local text_field_h = vint_object_find("text_field")
local do_test = true
local value_1 = 0
local value_2 = 0
local value_3 = 0
while do_test do
value_1 = value_1 + rand_int(1,99)
value_2 = value_2 + rand_int(1,99)
value_3 = value_3 + rand_int(1,99)
local formated_value = value_1 .. "." .. value_2 .. "." .. value_2
vint_set_property(text_field_h, "text_tag", formated_value)
thread_yield()
if value_1 + value_2 + value_3 > 100000 then
do_test = false
end
end
end
function test_timer()
local text_field_h = vint_object_find("text_field")
local do_test = true
local value = 0
while do_test do
value = value + 1
local formated_value = format_clock(value)
vint_set_property(text_field_h, "text_tag", formated_value)
thread_yield()
if value > 3000 then
do_test = false
end
end
end