Functions and fields are cached, part names added, part name language support added.

This commit is contained in:
GreenComfyTea
2022-02-09 20:08:34 +02:00
parent 54c55155e8
commit 1c9174ca38
17 changed files with 974 additions and 261 deletions

View File

@@ -5,7 +5,9 @@ local screen = require("MHR_Overlay.Game_Handler.screen");
local singletons = require("MHR_Overlay.Game_Handler.singletons"); local singletons = require("MHR_Overlay.Game_Handler.singletons");
local config = require("MHR_Overlay.Misc.config"); local config = require("MHR_Overlay.Misc.config");
local language = require("MHR_Overlay.Misc.language");
local table_helpers = require("MHR_Overlay.Misc.table_helpers"); local table_helpers = require("MHR_Overlay.Misc.table_helpers");
local part_names = require("MHR_Overlay.Misc.part_names");
local player = require("MHR_Overlay.Damage_Meter.player"); local player = require("MHR_Overlay.Damage_Meter.player");
local damage_hook = require("MHR_Overlay.Damage_Meter.damage_hook"); local damage_hook = require("MHR_Overlay.Damage_Meter.damage_hook");
@@ -35,8 +37,10 @@ screen.init_module();
singletons.init_module(); singletons.init_module();
table_helpers.init_module(); table_helpers.init_module();
language.init_module();
config.init_module(); config.init_module();
quest_status.init_module(); quest_status.init_module();
part_names.init_module();
damage_UI_entity.init_module(); damage_UI_entity.init_module();
health_UI_entity.init_module(); health_UI_entity.init_module();
@@ -85,7 +89,7 @@ re.on_frame(function()
end); end);
re.on_frame(function() re.on_frame(function()
draw.text("x: " .. tostring(x), 450, 50, 0xFFFFFFFF); --draw.text("x: " .. tostring(x), 450, 50, 0xFFFFFFFF);
end); end);
-- #endregion -- #endregion
--------------------------RE_IMGUI--------------------------- --------------------------RE_IMGUI---------------------------

View File

@@ -2,11 +2,21 @@ local damage_hook = {};
local quest_status; local quest_status;
local player; local player;
local enemy_character_base_type_def = sdk.find_type_definition("snow.enemy.EnemyCharacterBase"); local enemy_character_base_type_def = sdk.find_type_definition("snow.enemy.EnemyCharacterBase");
local enemy_character_base_after_calc_damage_damage_side = enemy_character_base_type_def:get_method("afterCalcDamage_DamageSide"); local enemy_character_base_after_calc_damage_damage_side = enemy_character_base_type_def:get_method("afterCalcDamage_DamageSide");
local is_boss_enemy_method = enemy_character_base_type_def:get_method("get_isBossEnemy");
local check_die_method = enemy_character_base_type_def:get_method("checkDie");
local enemy_calc_damage_info_type_def = sdk.find_type_definition("snow.hit.EnemyCalcDamageInfo.AfterCalcInfo_DamageSide");
local get_attacker_id_method = enemy_calc_damage_info_type_def:get_method("get_AttackerID");
local get_damage_attacker_type_method = enemy_calc_damage_info_type_def:get_method("get_DamageAttackerType");
local get_total_damage_method = enemy_calc_damage_info_type_def:get_method("get_TotalDamage");
local get_physical_damage_method = enemy_calc_damage_info_type_def:get_method("get_PhysicalDamage");
local get_elemental_damage_method = enemy_calc_damage_info_type_def:get_method("get_ElementDamage");
local get_condition_damage_method = enemy_calc_damage_info_type_def:get_method("get_ConditionDamage");
sdk.hook(enemy_character_base_after_calc_damage_damage_side, function(args) sdk.hook(enemy_character_base_after_calc_damage_damage_side, function(args)
damage_hook.update_damage(args); damage_hook.update_damage(args);
end, function(retval) end, function(retval)
@@ -19,12 +29,13 @@ function damage_hook.update_damage(args)
return; return;
end end
local is_large_monster = enemy:call("get_isBossEnemy"); local is_large_monster = is_boss_enemy_method:call(enemy);
if is_large_monster == nil then if is_large_monster == nil then
return; return;
end end
local dead_or_captured = enemy:call("checkDie"); local dead_or_captured = check_die_method:call(enemy);
if dead_or_captured == nil then if dead_or_captured == nil then
return; return;
end end
@@ -34,8 +45,8 @@ function damage_hook.update_damage(args)
end end
local enemy_calc_damage_info = sdk.to_managed_object(args[3]); -- snow.hit.EnemyCalcDamageInfo.AfterCalcInfo_DamageSide local enemy_calc_damage_info = sdk.to_managed_object(args[3]); -- snow.hit.EnemyCalcDamageInfo.AfterCalcInfo_DamageSide
local attacker_id = enemy_calc_damage_info:call("get_AttackerID"); local attacker_id = get_attacker_id_method:call(enemy_calc_damage_info);
local attacker_type = enemy_calc_damage_info:call("get_DamageAttackerType"); local attacker_type = get_damage_attacker_type_method:call(enemy_calc_damage_info);
if attacker_id >= 100 then if attacker_id >= 100 then
return; return;
@@ -47,10 +58,10 @@ function damage_hook.update_damage(args)
end end
local damage_object = {} local damage_object = {}
damage_object.total_damage = enemy_calc_damage_info:call("get_TotalDamage"); damage_object.total_damage = get_total_damage_method:call(enemy_calc_damage_info);
damage_object.physical_damage = enemy_calc_damage_info:call("get_PhysicalDamage"); damage_object.physical_damage = get_physical_damage_method:call(enemy_calc_damage_info);
damage_object.elemental_damage = enemy_calc_damage_info:call("get_ElementDamage"); damage_object.elemental_damage = get_elemental_damage_method:call(enemy_calc_damage_info);
damage_object.ailment_damage = enemy_calc_damage_info:call("get_ConditionDamage"); damage_object.ailment_damage = get_condition_damage_method:call(enemy_calc_damage_info);
-- -1 - bombs -- -1 - bombs
-- 0 - player -- 0 - player

View File

@@ -177,8 +177,6 @@ function player.update_display(_player)
end end
end end
if config.current_config.damage_meter_UI.tracked_monster_types.large_monsters then if config.current_config.damage_meter_UI.tracked_monster_types.large_monsters then
if config.current_config.damage_meter_UI.tracked_damage_types.player_damage then if config.current_config.damage_meter_UI.tracked_damage_types.player_damage then
player.merge_damage(_player.display, _player.large_monsters); player.merge_damage(_player.display, _player.large_monsters);
@@ -215,31 +213,38 @@ function player.merge_damage(first, second)
return first; return first;
end end
local player_manager_type_def = sdk.find_type_definition("snow.player.PlayerManager");
local find_master_player_method = player_manager_type_def:get_method("findMasterPlayer");
local get_game_object_method = sdk.find_type_definition("via.Component"):get_method("get_GameObject")
local get_transform_method = sdk.find_type_definition("via.GameObject"):get_method("get_Transform")
local get_position_method = sdk.find_type_definition("via.Transform"):get_method("get_Position")
function player.update_myself_position() function player.update_myself_position()
if singletons.player_manager == nil then if singletons.player_manager == nil then
customization_menu.status = "No player manager"; customization_menu.status = "No player manager";
return; return;
end end
local master_player = singletons.player_manager:call("findMasterPlayer") local master_player = find_master_player_method:call(singletons.player_manager);
if master_player == nil then if master_player == nil then
customization_menu.status = "No master player"; customization_menu.status = "No master player";
return; return;
end end
local master_player_game_object = master_player:call("get_GameObject") local master_player_game_object = get_game_object_method:call(master_player);
if master_player_game_object == nil then if master_player_game_object == nil then
customization_menu.status = "No master player game object"; customization_menu.status = "No master player game object";
return; return;
end end
local master_player_transform = master_player_game_object:call("get_Transform") local master_player_transform = get_transform_method:call(master_player_game_object);
if not master_player_transform then if not master_player_transform then
customization_menu.status = "No master player transform"; customization_menu.status = "No master player transform";
return; return;
end end
local master_player_position = master_player_transform:call("get_Position") local master_player_position = get_position_method:call(master_player_transform);
if master_player_position == nil then if master_player_position == nil then
customization_menu.status = "No masterplayer position"; customization_menu.status = "No masterplayer position";
return; return;

View File

@@ -12,6 +12,9 @@ quest_status.is_training_area = false;
local quest_manager_type_definition = sdk.find_type_definition("snow.QuestManager"); local quest_manager_type_definition = sdk.find_type_definition("snow.QuestManager");
local on_changed_game_status = quest_manager_type_definition:get_method("onChangedGameStatus"); local on_changed_game_status = quest_manager_type_definition:get_method("onChangedGameStatus");
local village_area_manager_type_def = sdk.find_type_definition("snow.VillageAreaManager");
local check_current_area_training_area_method = village_area_manager_type_def:get_method("checkCurrentArea_TrainingArea");
sdk.hook(on_changed_game_status, function(args) sdk.hook(on_changed_game_status, function(args)
local new_quest_status = sdk.to_int64(args[3]); local new_quest_status = sdk.to_int64(args[3]);
if new_quest_status ~= nil then if new_quest_status ~= nil then
@@ -66,7 +69,7 @@ function quest_status.update_is_training_area()
return; return;
end end
local _is_training_area = singletons.village_area_manager:call("checkCurrentArea_TrainingArea"); local _is_training_area = check_current_area_training_area_method:call(singletons.village_area_manager);
if _is_training_area == nil then if _is_training_area == nil then
return; return;
end end

View File

@@ -1,11 +1,14 @@
local config = {}; local config = {};
local table_helpers; local table_helpers;
local language;
config.current_config = nil; config.current_config = nil;
config.config_file_name = "MHR Overlay/config.json"; config.config_file_name = "MHR Overlay/config.json";
config.default_config = { config.default_config = {
global_settings = { global_settings = {
language = "en-us",
module_visibility = { module_visibility = {
during_quest = { during_quest = {
small_monster_UI = true, small_monster_UI = true,
@@ -552,7 +555,7 @@ config.default_config = {
}, },
parts = { parts = {
visibility = false, visibility = true,
offset = { offset = {
x = 0, x = 0,
@@ -565,7 +568,7 @@ config.default_config = {
}, },
settings = { settings = {
hide_undamaged_parts = true, hide_undamaged_parts = false,
}, },
sorting = { sorting = {
@@ -578,7 +581,7 @@ config.default_config = {
text = "%s", text = "%s",
include = { include = {
part_name = false, part_name = true,
break_count = true break_count = true
}, },
@@ -586,7 +589,7 @@ config.default_config = {
x = 15, x = 15,
y = 61 y = 61
}, },
color = 0xF1F4A3CC, color = 0xFFf9d9ff,
shadow = { shadow = {
visibility = true, visibility = true,
@@ -603,7 +606,7 @@ config.default_config = {
text = "HP:", text = "HP:",
offset = { offset = {
x = -15, x = -15,
y = 71 y = 69
}, },
color = 0xF1F4A3CC, color = 0xF1F4A3CC,
@@ -622,7 +625,7 @@ config.default_config = {
text = "%.0f/%.0f", -- current_health/max_health text = "%.0f/%.0f", -- current_health/max_health
offset = { offset = {
x = 55, x = 55,
y = 78 y = 74
}, },
color = 0xFFFFFFFF, color = 0xFFFFFFFF,
@@ -637,12 +640,12 @@ config.default_config = {
}, },
percentage_label = { percentage_label = {
visibility = false, visibility = true,
text = "%5.1f%%", text = "%5.1f%%",
offset = { offset = {
x = 145, x = 145,
y = 78 y = 74
}, },
color = 0xFFFFFFFF, color = 0xFFFFFFFF,
@@ -660,7 +663,7 @@ config.default_config = {
visibility = true, visibility = true,
offset = { offset = {
x = 10, x = 10,
y = 78 y = 75
}, },
size = { size = {
@@ -669,7 +672,7 @@ config.default_config = {
}, },
colors = { colors = {
foreground = 0xF4D0A3CC, foreground = 0xB9ca85cc,
background = 0x88000000 background = 0x88000000
} }
} }
@@ -971,9 +974,7 @@ config.default_config = {
}, },
parts = { parts = {
visibility = true, visibility = false,
offset = { offset = {
x = 0, x = 0,
@@ -999,7 +1000,7 @@ config.default_config = {
text = "%s", text = "%s",
include = { include = {
part_name = false, part_name = true,
break_count = true break_count = true
}, },
@@ -1007,7 +1008,7 @@ config.default_config = {
x = 15, x = 15,
y = 61 y = 61
}, },
color = 0xF1F4A3CC, color = 0xFFf9d9ff,
shadow = { shadow = {
visibility = true, visibility = true,
@@ -1024,7 +1025,7 @@ config.default_config = {
text = "HP:", text = "HP:",
offset = { offset = {
x = -15, x = -15,
y = 71 y = 69
}, },
color = 0xF1F4A3CC, color = 0xF1F4A3CC,
@@ -1043,7 +1044,7 @@ config.default_config = {
text = "%.0f/%.0f", -- current_health/max_health text = "%.0f/%.0f", -- current_health/max_health
offset = { offset = {
x = 55, x = 55,
y = 78 y = 74
}, },
color = 0xFFFFFFFF, color = 0xFFFFFFFF,
@@ -1063,7 +1064,7 @@ config.default_config = {
offset = { offset = {
x = 145, x = 145,
y = 78 y = 74
}, },
color = 0xFFFFFFFF, color = 0xFFFFFFFF,
@@ -1081,7 +1082,7 @@ config.default_config = {
visibility = true, visibility = true,
offset = { offset = {
x = 10, x = 10,
y = 78 y = 75
}, },
size = { size = {
@@ -1090,7 +1091,7 @@ config.default_config = {
}, },
colors = { colors = {
foreground = 0xF4D0A3CC, foreground = 0xB9ca85cc,
background = 0x88000000 background = 0x88000000
} }
} }
@@ -1347,7 +1348,10 @@ end
function config.init_module() function config.init_module()
table_helpers = require("MHR_Overlay.Misc.table_helpers"); table_helpers = require("MHR_Overlay.Misc.table_helpers");
language = require("MHR_Overlay.Misc.language");
config.load(); config.load();
language.update(table_helpers.find_index(language.language_names, config.current_config.global_settings.language, false));
config.current_config.version = "v1.7"; config.current_config.version = "v1.7";
end end

View File

@@ -0,0 +1,110 @@
local language = {};
local table_helpers;
language.current_language = {};
language.language_names = {};
language.languages = {};
language.language_folder = "MHR Overlay\\languages\\";
language.default_language = {
parts = {
head = "Head",
neck = "Neck",
body = "Body",
torso = "Torso",
abdomen = "Abdomen",
back = "Back",
tail = "Tail",
upper_body = "Upper Body",
lower_body = "Lower Body",
upper_back = "Upper Back",
lower_back = "Lower Back",
left_wing = "Wing L",
right_wing = "Wing R",
wings = "Wings",
left_leg = "Leg L",
right_leg = "Leg R",
legs = "Legs",
left_legs = "Legs L",
right_legs = "Legs R",
left_arm = "Arm L",
right_arm = "Arm R",
arms = "Arms",
left_arm_ice = "Arm L (Ice)",
right_arm_ice = "Arm R (Ice)",
left_cutwing = "Cutwing L",
right_cutwing = "Cutwing R",
head_mud = "Head (Mud)",
tail_mud = "Tail (Mud)",
tail_windsac = "Tail (Windsac)",
chest_windsac = "Chest (Windsac)",
back_windsac = "Back (Windsac)",
large_mudbulb = "Large Mudbulb",
mane = "Mane",
rear = "Rear",
claw = "Claw",
dorsal_fin = "Dorsal Fin",
carapace = "Carapace",
spinning = "Spinning",
rock = "Rock"
}
};
function language.load()
local language_files = fs.glob([[MHR Overlay\\languages\\.*json]]);
if language_files == nil then
return;
end
for i, language_file in ipairs(language_files) do
local language_name = language_file:gsub(language.language_folder, ""):gsub(".json", "");
-- v will be something like `my-cool-mod\config-file-1.json`;
local loaded_language = json.load_file(language.language_folder .. "en-us.json");
if loaded_language ~= nil then
log.info("[MHR Overlay] " .. language_name .. ".json loaded successfully");
table.insert(language.language_names, language_name);
table.insert(language.languages, loaded_language);
else
log.error("[MHR Overlay] Failed to load " .. language_name .. ".json");
end
end
end
function language.save_default()
-- save current config to disk, replacing any existing file
local success = json.dump_file(language.language_folder .. "en-us.json", language.default_language);
if success then
log.info('[MHR Overlay] en-us.json saved successfully');
else
log.error('[MHR Overlay] Failed to save en-us.json');
end
end
function language.update(index)
language.current_language = table_helpers.deep_copy(language.languages[index]);
end
function language.init_module()
table_helpers = require("MHR_Overlay.Misc.table_helpers");
language.save_default();
language.load();
end
return language;

View File

@@ -0,0 +1,476 @@
local part_names = {};
local language;
local table_helpers;
part_names.list = {};
function part_names.init()
part_names.list = {
[98] = -- Great Izuchi+ 98
{
language.current_language.parts.head,
language.current_language.parts.body,
language.current_language.parts.arms,
language.current_language.parts.tail,
},
[54] = -- Great Baggi+ 54
{
language.current_language.parts.head,
language.current_language.parts.torso,
language.current_language.parts.tail
},
[107] = -- Kulu-Ya-Ku+ 107 boulders are cut out
{
language.current_language.parts.head,
language.current_language.parts.arms,
language.current_language.parts.body,
language.current_language.parts.tail,
language.current_language.parts.rock,
language.current_language.parts.rock
},
[59] = -- Great Wroggi+ 59
{
language.current_language.parts.head,
language.current_language.parts.torso,
language.current_language.parts.tail
},
[60] = -- Arzuros+ 60 Unknown parts
{
language.current_language.parts.head,
language.current_language.parts.upper_body,
language.current_language.parts.arms,
language.current_language.parts.rear,
language.current_language.parts.lower_body
},
[61] = -- Lagombi+ 61
{
language.current_language.parts.head,
language.current_language.parts.upper_body,
language.current_language.parts.arms,
language.current_language.parts.rear,
language.current_language.parts.lower_body
},
[62] = -- Volvidon+ 62
{
language.current_language.parts.upper_back,
language.current_language.parts.upper_body,
language.current_language.parts.arms,
language.current_language.parts.lower_back,
language.current_language.parts.lower_body,
language.current_language.parts.spinning
},
[91] = -- Aknosom+ 91
{
language.current_language.parts.head,
language.current_language.parts.neck,
language.current_language.parts.left_wing,
language.current_language.parts.right_wing,
language.current_language.parts.body,
language.current_language.parts.tail,
language.current_language.parts.legs
},
[47] = -- Royal Ludroth+ 47
{
language.current_language.parts.head,
language.current_language.parts.mane,
language.current_language.parts.torso,
language.current_language.parts.left_legs,
language.current_language.parts.right_legs,
language.current_language.parts.tail
},
[44] = -- Barroth+ 44
{
language.current_language.parts.head,
language.current_language.parts.body,
language.current_language.parts.arms,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.tail
},
[3] = -- Khezu+ 3
{
language.current_language.parts.head,
language.current_language.parts.neck,
language.current_language.parts.torso,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.left_wing,
language.current_language.parts.right_wing,
language.current_language.parts.tail
},
[92] = -- Tetranadon+ 92
{
language.current_language.parts.head,
language.current_language.parts.right_arm,
language.current_language.parts.left_arm,
language.current_language.parts.right_leg,
language.current_language.parts.left_leg,
language.current_language.parts.carapace,
language.current_language.parts.torso,
language.current_language.parts.tail
},
[90] = -- Bishaten+ 90
{
language.current_language.parts.head,
language.current_language.parts.torso,
language.current_language.parts.right_arm,
language.current_language.parts.left_arm,
language.current_language.parts.right_leg,
language.current_language.parts.left_leg,
language.current_language.parts.tail
},
[102] = -- Pukei-Pukei+ 102
{
language.current_language.parts.head,
language.current_language.parts.torso,
language.current_language.parts.left_wing,
language.current_language.parts.right_wing,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.tail
},
[108] = -- Jyuratodus+ 108 missing mud parts
{
language.current_language.parts.head,
language.current_language.parts.torso,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.tail,
language.current_language.parts.head_mud,
language.current_language.parts.tail_mud
},
[4] = -- Basarios+ 4
{
language.current_language.parts.torso,
language.current_language.parts.left_wing,
language.current_language.parts.right_wing,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.head,
language.current_language.parts.abdomen,
language.current_language.parts.tail
},
[93] = -- Somnacanth+ 93
{
language.current_language.parts.body,
language.current_language.parts.head,
language.current_language.parts.neck,
language.current_language.parts.left_arm,
language.current_language.parts.right_arm,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.tail
},
[1] = -- Rathian+ 1
{
language.current_language.parts.head,
language.current_language.parts.body,
language.current_language.parts.left_wing,
language.current_language.parts.right_wing,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.tail
},
[42] = -- Barioth+ 42
{
language.current_language.parts.head,
language.current_language.parts.body,
language.current_language.parts.left_wing,
language.current_language.parts.right_wing,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.tail
},
[109] = -- Tobi-Kadachi+ 109
{
language.current_language.parts.head,
language.current_language.parts.torso,
language.current_language.parts.back,
language.current_language.parts.arms,
language.current_language.parts.legs,
language.current_language.parts.tail
},
[89] = -- Magnamalo+ 89
{
language.current_language.parts.head,
language.current_language.parts.torso,
language.current_language.parts.right_arm,
language.current_language.parts.left_arm,
language.current_language.parts.back,
language.current_language.parts.tail,
language.current_language.parts.legs
},
[100] = -- Anjanath+ 100 (missing parts)
{
language.current_language.parts.head,
language.current_language.parts.body,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.tail,
language.current_language.parts.left_wing,
language.current_language.parts.right_wing
},
[37] = -- Nargacuga+ 37
{
language.current_language.parts.head,
language.current_language.parts.body,
language.current_language.parts.left_cutwing,
language.current_language.parts.tail,
language.current_language.parts.arms,
language.current_language.parts.left_leg,
language.current_language.parts.right_cutwing,
language.current_language.parts.right_leg
},
[82] = -- Mizutsune+ 82
{
language.current_language.parts.head,
language.current_language.parts.left_arm,
language.current_language.parts.right_arm,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.body,
language.current_language.parts.tail,
language.current_language.parts.dorsal_fin
},
[97] = -- Goss Harag+ 97
{
language.current_language.parts.head,
language.current_language.parts.back,
language.current_language.parts.left_arm,
language.current_language.parts.left_arm_ice,
language.current_language.parts.right_arm,
language.current_language.parts.right_arm_ice,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.body
},
[2] = -- Rathalos+ 2
{
language.current_language.parts.body,
language.current_language.parts.left_wing,
language.current_language.parts.right_wing,
language.current_language.parts.left_wing,
language.current_language.parts.right_wing,
language.current_language.parts.neck,
language.current_language.parts.head,
language.current_language.parts.tail
},
[95] = -- Almudron+ 95
{
language.current_language.parts.head,
language.current_language.parts.body,
language.current_language.parts.left_arm,
language.current_language.parts.right_arm,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.tail,
language.current_language.parts.large_mudbulb,
language.current_language.parts.large_mudbulb,
},
[57] = -- Zinogre+ 57
{
language.current_language.parts.head,
language.current_language.parts.body,
language.current_language.parts.back,
language.current_language.parts.left_arm,
language.current_language.parts.right_arm,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.tail
},
[32] = -- Tigrex+ 32
{
language.current_language.parts.head,
language.current_language.parts.body,
language.current_language.parts.left_arm,
language.current_language.parts.right_arm,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.tail
},
[7] = -- Diablos+ 7
{
language.current_language.parts.head,
language.current_language.parts.body,
language.current_language.parts.left_wing,
language.current_language.parts.right_wing,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.tail
},
[94] = -- Rakna-Kadaki+ 94 (?)
{
language.current_language.parts.head,
language.current_language.parts.claw,
language.current_language.parts.left_arm,
language.current_language.parts.right_arm,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.abdomen,
language.current_language.parts.left_arm,
language.current_language.parts.right_arm -- mb abdomen_cocooned)
},
[24] = -- Kushala Daora+ 24
{
language.current_language.parts.head,
language.current_language.parts.back,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.wings,
language.current_language.parts.tail
},
[25] = -- Chameleos+ 25
{
language.current_language.parts.head,
language.current_language.parts.abdomen,
language.current_language.parts.left_arm,
language.current_language.parts.right_arm,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.tail,
language.current_language.parts.wings
},
[27] = -- Teostra+ 27
{
language.current_language.parts.head,
language.current_language.parts.body,
language.current_language.parts.arms,
language.current_language.parts.legs,
language.current_language.parts.wings,
language.current_language.parts.tail
},
[23] = -- Rajang+ 23
{
language.current_language.parts.head,
language.current_language.parts.body,
language.current_language.parts.left_arm,
language.current_language.parts.right_arm,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.tail
},
[118] = -- Bazelgeuse+ 118
{
language.current_language.parts.head,
language.current_language.parts.body,
language.current_language.parts.legs,
language.current_language.parts.left_wing,
language.current_language.parts.right_wing,
language.current_language.parts.tail
},
[96] = -- Wind Serpent Ibushi+ 96 (missing parts)
{
language.current_language.parts.head,
language.current_language.parts.right_arm,
language.current_language.parts.left_arm,
language.current_language.parts.torso,
language.current_language.parts.back,
language.current_language.parts.tail,
language.current_language.parts.tail_windsac,
language.current_language.parts.chest_windsac,
language.current_language.parts.back_windsac
},
[99] = -- Thunder Serpent Narwa+ 99 (no parts?)
{},
[1379] = -- Narwa the Allmother+ 1379 (no parts?)
{},
[1366] = -- Crimson Glow Valstrax+ 1366
{
language.current_language.parts.head,
language.current_language.parts.body,
language.current_language.parts.left_wing,
language.current_language.parts.right_wing,
language.current_language.parts.left_arm,
language.current_language.parts.right_arm,
language.current_language.parts.tail,
language.current_language.parts.legs,
language.current_language.parts.chest_windsac
},
[1852] = -- Apex Arzuros+ 1852
{
language.current_language.parts.head,
language.current_language.parts.upper_body,
language.current_language.parts.arms,
language.current_language.parts.rear,
language.current_language.parts.lower_body
},
[1793] = -- Apex Rathian+ 1793
{
language.current_language.parts.head,
language.current_language.parts.body,
language.current_language.parts.left_wing,
language.current_language.parts.right_wing,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.tail
},
[1874] = -- Apex Mizutsune+ 1874
{
language.current_language.parts.head,
language.current_language.parts.left_arm,
language.current_language.parts.right_arm,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.body,
language.current_language.parts.tail,
language.current_language.parts.dorsal_fin
},
[1794] = -- Apex Rathalos+ 1794
{
language.current_language.parts.body,
language.current_language.parts.left_wing,
language.current_language.parts.right_wing,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.neck,
language.current_language.parts.head,
language.current_language.parts.tail
},
[1799] = -- Apex Diablos+ 1799
{
language.current_language.parts.head,
language.current_language.parts.body,
language.current_language.parts.left_wing,
language.current_language.parts.right_wing,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.tail
},
[1849] = -- Apex Zinogre+ 1849
{
language.current_language.parts.head,
language.current_language.parts.body,
language.current_language.parts.back,
language.current_language.parts.left_arm,
language.current_language.parts.right_arm,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.tail
}
};
end
function part_names.get_part_name(monster_id, part_id)
local monster_parts = part_names.list[monster_id];
if monster_parts == nil then
return "";
end
local part_name = monster_parts[part_id];
if part_name == nil then
return "";
end
return part_name;
end
function part_names.init_module()
language = require("MHR_Overlay.Misc.language");
table_helpers = require("MHR_Overlay.Misc.table_helpers");
part_names.init();
end
return part_names;

View File

@@ -62,82 +62,18 @@ function table_helpers.merge(...)
end end
function table_helpers.tostring(table) function table_helpers.tostring(table)
local cache, stack, output = {}, {}, {}; if type(table) == 'table' then
local depth = 1; local s = '{ \n';
local output_string = "{\n"; for k,v in pairs(table) do
if type(k) ~= 'number' then
while true do k = '"' .. k .. '"';
local size = 0;
for key, value in pairs(table) do
size = size + 1;
end end
s = s .. '\t['..k..'] = ' .. table_helpers.tostring(v) .. ',\n';
local current_index = 1;
for key, value in pairs(table) do
if (cache[table] == nil) or (current_index >= cache[table]) then
if (string.find(output_string, "}", output_string:len())) then
output_string = output_string .. ",\n";
elseif not (string.find(output_string, "\n",output_string:len())) then
output_string = output_string .. "\n";
end end
return s .. '} \n';
-- This is necessary for working with HUGE tables otherwise we run out of memory using concat on huge strings
table.insert(output, output_string);
output_string = "";
local key;
if (type(key) == "number" or type(key) == "boolean") then
key = "[" .. tostring(key) .. "]";
else else
key = "['" .. tostring(key) .. "']"; return tostring(table);
end end
if (type(value) == "number" or type(value) == "boolean") then
output_string = output_string .. string.rep('\t', depth) .. key .. " = " .. tostring(value);
elseif (type(value) == "table") then
output_string = output_string .. string.rep('\t', depth) .. key .. " = {\n";
table.insert(stack, table);
table.insert(stack, value);
cache[table] = current_index + 1;
break
else
output_string = output_string .. string.rep('\t', depth) .. key .. " = '" .. tostring(value) .. "'";
end
if (current_index == size) then
output_string = output_string .. "\n" .. string.rep('\t', depth - 1) .. "}";
else
output_string = output_string .. ",";
end
else
-- close the table
if (current_index == size) then
output_string = output_string .. "\n" .. string.rep('\t', depth - 1) .. "}";
end
end
current_index = current_index + 1;
end
if (size == 0) then
output_string = output_string .. "\n" .. string.rep('\t', depth - 1) .. "}";
end
if (#stack > 0) then
table = stack[#stack];
stack[#stack] = nil;
depth = cache[table] == nil and depth + 1 or depth - 1;
else
break;
end
end
-- This is necessary for working with HUGE tables otherwise we run out of memory using concat on huge strings
table.insert(output, output_string);
output_string = table.concat(output);
return output_string;
end end
function table_helpers.init_module() function table_helpers.init_module()

View File

@@ -9,10 +9,11 @@ local rage_UI_entity;
local body_part_UI_entity; local body_part_UI_entity;
local screen; local screen;
local drawing; local drawing;
local part_names;
body_part.list = {}; body_part.list = {};
function body_part.new(REpart, id) function body_part.new(REpart, name, id)
local part = {}; local part = {};
part.REpart = REpart; part.REpart = REpart;
@@ -22,7 +23,7 @@ function body_part.new(REpart, id)
part.max_health = 99999; part.max_health = 99999;
part.health_percentage = 0; part.health_percentage = 0;
part.name = "??"; part.name = name;
part.break_count = 0; part.break_count = 0;
body_part.init_dynamic_UI(part); body_part.init_dynamic_UI(part);
@@ -90,6 +91,7 @@ function body_part.init_module()
body_part_UI_entity = require("MHR_Overlay.UI.UI_Entities.body_part_UI_entity"); body_part_UI_entity = require("MHR_Overlay.UI.UI_Entities.body_part_UI_entity");
screen = require("MHR_Overlay.Game_Handler.screen"); screen = require("MHR_Overlay.Game_Handler.screen");
drawing = require("MHR_Overlay.UI.drawing"); drawing = require("MHR_Overlay.UI.drawing");
part_names = require("MHR_Overlay.Misc.part_names");
end end
return body_part; return body_part;

View File

@@ -9,6 +9,7 @@ local rage_UI_entity;
local screen; local screen;
local drawing; local drawing;
local body_part; local body_part;
local part_names;
large_monster.list = {}; large_monster.list = {};
@@ -213,7 +214,7 @@ local anger_param_get_timer_method = anger_param_type:get_method("get_Timer")
local get_timer_anger_method = anger_param_type:get_method("get_TimerAnger") local get_timer_anger_method = anger_param_type:get_method("get_TimerAnger")
local get_count_anger_method = anger_param_type:get_method("get_CountAnger") local get_count_anger_method = anger_param_type:get_method("get_CountAnger")
local get_gameobject_method = sdk.find_type_definition("via.Component"):get_method("get_GameObject") local get_game_object_method = sdk.find_type_definition("via.Component"):get_method("get_GameObject")
local get_transform_method = sdk.find_type_definition("via.GameObject"):get_method("get_Transform") local get_transform_method = sdk.find_type_definition("via.GameObject"):get_method("get_Transform")
local get_position_method = sdk.find_type_definition("via.Transform"):get_method("get_Position") local get_position_method = sdk.find_type_definition("via.Transform"):get_method("get_Position")
@@ -230,7 +231,7 @@ function large_monster.update_position(enemy)
-- as these are pretty much guaranteed to stay constant -- as these are pretty much guaranteed to stay constant
-- as long as the enemy is alive -- as long as the enemy is alive
if monster.game_object == nil then if monster.game_object == nil then
monster.game_object = get_gameobject_method:call(enemy) monster.game_object = get_game_object_method:call(enemy)
if monster.game_object == nil then if monster.game_object == nil then
customization_menu.status = "No enemy game object"; customization_menu.status = "No enemy game object";
return; return;
@@ -354,10 +355,6 @@ function large_monster.update(enemy)
goto continue; goto continue;
end end
if part_health == last_REpart_health then
break;
end
local part_max_health = REpart:call("get_Max"); local part_max_health = REpart:call("get_Max");
if part_max_health == nil or part_max_health <= 0 then if part_max_health == nil or part_max_health <= 0 then
goto continue; goto continue;
@@ -365,9 +362,13 @@ function large_monster.update(enemy)
local part = monster.parts[REpart]; local part = monster.parts[REpart];
if part == nil then if part == nil then
part = body_part.new(REpart, part_id); local part_name = part_names.get_part_name(monster.id, part_id);
if part_name ~= "" then
part = body_part.new(REpart, part_name, part_id);
monster.parts[REpart] = part; monster.parts[REpart] = part;
end end
end
body_part.update(part, part_health, part_max_health); body_part.update(part, part_health, part_max_health);
@@ -473,7 +474,7 @@ function large_monster.draw_dynamic(monster, position_on_screen, opacity_scale)
100 * monster.big_border, 100 * monster.king_border); 100 * monster.big_border, 100 * monster.king_border);
end end
drawing.draw_label(monster.dynamic_name_label, position_on_screen, opacity_scale, monster_name_text .. " " .. tostring(monster.id)); drawing.draw_label(monster.dynamic_name_label, position_on_screen, opacity_scale, monster_name_text);
health_UI_entity.draw(monster, monster.health_dynamic_UI, position_on_screen, opacity_scale); health_UI_entity.draw(monster, monster.health_dynamic_UI, position_on_screen, opacity_scale);
stamina_UI_entity.draw(monster, monster.stamina_dynamic_UI, position_on_screen, opacity_scale); stamina_UI_entity.draw(monster, monster.stamina_dynamic_UI, position_on_screen, opacity_scale);
@@ -550,7 +551,7 @@ function large_monster.draw_static(monster, position_on_screen, opacity_scale)
100 * monster.big_border, 100 * monster.king_border); 100 * monster.big_border, 100 * monster.king_border);
end end
drawing.draw_label(monster.static_name_label, position_on_screen, opacity_scale, monster_name_text .. " " .. tostring(monster.id)); drawing.draw_label(monster.static_name_label, position_on_screen, opacity_scale, monster_name_text);
health_UI_entity.draw(monster, monster.health_static_UI, position_on_screen, opacity_scale); health_UI_entity.draw(monster, monster.health_static_UI, position_on_screen, opacity_scale);
stamina_UI_entity.draw(monster, monster.stamina_static_UI, position_on_screen, opacity_scale); stamina_UI_entity.draw(monster, monster.stamina_static_UI, position_on_screen, opacity_scale);
@@ -624,6 +625,7 @@ function large_monster.init_module()
rage_UI_entity = require("MHR_Overlay.UI.UI_Entities.rage_UI_entity"); rage_UI_entity = require("MHR_Overlay.UI.UI_Entities.rage_UI_entity");
screen = require("MHR_Overlay.Game_Handler.screen"); screen = require("MHR_Overlay.Game_Handler.screen");
drawing = require("MHR_Overlay.UI.drawing"); drawing = require("MHR_Overlay.UI.drawing");
part_names = require("MHR_Overlay.Misc.part_names");
end end
return large_monster; return large_monster;

View File

@@ -5,13 +5,14 @@ local large_monster;
local enemy_character_base_type_def = sdk.find_type_definition("snow.enemy.EnemyCharacterBase"); local enemy_character_base_type_def = sdk.find_type_definition("snow.enemy.EnemyCharacterBase");
local enemy_character_base_type_def_update_method = enemy_character_base_type_def:get_method("update"); local enemy_character_base_type_def_update_method = enemy_character_base_type_def:get_method("update");
local is_boss_enemy_method = sdk.find_type_definition("snow.enemy.EnemyCharacterBase"):get_method("get_isBossEnemy");
sdk.hook(enemy_character_base_type_def_update_method, function(args) sdk.hook(enemy_character_base_type_def_update_method, function(args)
monster.update_monster(sdk.to_managed_object(args[2])); monster.update_monster(sdk.to_managed_object(args[2]));
end, function(retval) end, function(retval)
return retval; return retval;
end); end);
local is_boss_enemy_method = sdk.find_type_definition("snow.enemy.EnemyCharacterBase"):get_method("get_isBossEnemy");
local tick_count = 0 local tick_count = 0
local last_update_tick = 0 local last_update_tick = 0
local recorded_monsters = {} local recorded_monsters = {}
@@ -30,21 +31,18 @@ local MAX_UPDATES_PER_TICK = 2
-- the reason for this is that the hooks on all the monsters' update functions -- the reason for this is that the hooks on all the monsters' update functions
-- causes a HUGE performance hit (adds ~3+ ms to UpdateBehavior and frame time) -- causes a HUGE performance hit (adds ~3+ ms to UpdateBehavior and frame time)
re.on_pre_application_entry("UpdateBehavior", function() re.on_pre_application_entry("UpdateBehavior", function()
tick_count = tick_count + 1 tick_count = tick_count + 1;
updates_this_tick = 0 updates_this_tick = 0;
if num_known_monsters ~= 0 and if num_known_monsters ~= 0 and num_updated_monsters >= num_known_monsters or tick_count >= num_known_monsters * 2 then
num_updated_monsters >= num_known_monsters or recorded_monsters = {};
tick_count >= num_known_monsters * 2 updated_monsters = {};
then known_big_monsters = {};
recorded_monsters = {} last_update_tick = 0;
updated_monsters = {} tick_count = 0;
known_big_monsters = {} num_known_monsters = 0;
last_update_tick = 0 num_updated_monsters = 0;
tick_count = 0 updates_this_tick = 0;
num_known_monsters = 0
num_updated_monsters = 0
updates_this_tick = 0
end end
end) end)

View File

@@ -9,6 +9,28 @@ local drawing;
damage_meter_UI.last_displayed_players = {}; damage_meter_UI.last_displayed_players = {};
local lobby_manager_type_def = sdk.find_type_definition("snow.LobbyManager");
local my_hunter_info_field = lobby_manager_type_def:get_field("_myHunterInfo");
local myself_index_field = lobby_manager_type_def:get_field("_myselfIndex");
local myself_quest_index_field = lobby_manager_type_def:get_field("_myselfQuestIndex");
local quest_hunter_info_field = lobby_manager_type_def:get_field("_questHunterInfo");
local my_hunter_info_type_def = my_hunter_info_field:get_type();
local name_field = my_hunter_info_type_def:get_field("_name");
local quest_hunter_info_type_def = quest_hunter_info_field:get_type();
local get_count_method = quest_hunter_info_type_def:get_method("get_Count");
local get_item_method = quest_hunter_info_type_def:get_method("get_Item");
local hunter_info_type_def = sdk.find_type_definition("snow.LobbyManager.HunterInfo");
local member_index_field = hunter_info_type_def:get_field("_memberIndex");
local hunter_rank_field = hunter_info_type_def:get_field("_hunterRank");
--local name_field = hunter_info_type_def:get_field("_name");
local progress_manager_type_def = sdk.find_type_definition("snow.progress.ProgressManager");
local get_hunter_rank_method = progress_manager_type_def:get_method("get_HunterRank");
function damage_meter_UI.draw() function damage_meter_UI.draw()
if player.total.display.total_damage == 0 and config.current_config.damage_meter_UI.settings.hide_module_if_total_damage_is_zero then if player.total.display.total_damage == 0 and config.current_config.damage_meter_UI.settings.hide_module_if_total_damage_is_zero then
@@ -24,40 +46,38 @@ function damage_meter_UI.draw()
end end
-- myself player -- myself player
local myself_player_info = singletons.lobby_manager:get_field("_myHunterInfo"); local myself_player_info = my_hunter_info_field:get_data(singletons.lobby_manager);
if myself_player_info == nil then if myself_player_info == nil then
customization_menu.status = "No myself player info list"; customization_menu.status = "No myself player info list";
return; return;
end end
local myself_player_name = myself_player_info:get_field("_name"); local myself_player_name = name_field:get_data(myself_player_info);
if myself_player_name == nil then if myself_player_name == nil then
customization_menu.status = "No myself player name"; customization_menu.status = "No myself player name";
return; return;
end end
if quest_status.is_online then if quest_status.is_online then
player.myself_id = singletons.lobby_manager:get_field("_myselfQuestIndex"); player.myself_id = myself_quest_index_field:get_data(singletons.lobby_manager);
if player.myself_id == nil then if player.myself_id == nil then
customization_menu.status = "No myself player id"; customization_menu.status = "No myself player id";
return; return;
end end
else else
player.myself_id = singletons.lobby_manager:get_field("_myselfIndex"); player.myself_id = myself_index_field:get_data(singletons.lobby_manager);
if player.myself_id == nil then if player.myself_id == nil then
customization_menu.status = "No myself player id"; customization_menu.status = "No myself player id";
return; return;
end end
end end
local myself_hunter_rank = singletons.progress_manager:call("get_HunterRank"); local myself_hunter_rank = get_hunter_rank_method:call(singletons.progress_manager);
if myself_hunter_rank == nil then if myself_hunter_rank == nil then
customization_menu.status = "No myself hunter rank"; customization_menu.status = "No myself hunter rank";
myself_hunter_rank = 0; myself_hunter_rank = 0;
end end
x = singletons.lobby_manager:get_field("_myselfIndex");
if player.list[player.myself_id] == nil then if player.list[player.myself_id] == nil then
player.list[player.myself_id] = player.new(player.myself_id, myself_player_name, myself_hunter_rank); player.list[player.myself_id] = player.new(player.myself_id, myself_player_name, myself_hunter_rank);
player.myself = player.list[player.myself_id]; player.myself = player.list[player.myself_id];
@@ -71,12 +91,12 @@ function damage_meter_UI.draw()
quest_players = damage_meter_UI.last_displayed_players; quest_players = damage_meter_UI.last_displayed_players;
else else
-- other players -- other players
local player_info_list = singletons.lobby_manager:get_field("_questHunterInfo"); local player_info_list = quest_hunter_info_field:get_data(singletons.lobby_manager);
if player_info_list == nil then if player_info_list == nil then
customization_menu.status = "No player info list"; customization_menu.status = "No player info list";
end end
local count = player_info_list:call("get_Count"); local count = get_count_method:call(player_info_list);
if count == nil then if count == nil then
customization_menu.status = "No player info list count"; customization_menu.status = "No player info list count";
return; return;
@@ -84,17 +104,17 @@ function damage_meter_UI.draw()
for i = 0, count - 1 do for i = 0, count - 1 do
local player_info = player_info_list:call("get_Item", i); local player_info = get_item_method:call(player_info_list, i);
if player_info == nil then if player_info == nil then
goto continue goto continue
end end
local player_id = player_info:get_field("_memberIndex"); local player_id = member_index_field:get_data(player_info)
if player_id == nil then if player_id == nil then
goto continue goto continue
end end
local player_hunter_rank = player_info:get_field("_hunterRank"); local player_hunter_rank = hunter_rank_field:get_data(player_info);
if player_hunter_rank == nil then if player_hunter_rank == nil then
goto continue goto continue
end end
@@ -104,7 +124,7 @@ function damage_meter_UI.draw()
goto continue goto continue
end end
local player_name = player_info:get_field("_name"); local player_name = name_field:get_data(player_info);
if player_name == nil then if player_name == nil then
goto continue goto continue
end end

View File

@@ -11,6 +11,10 @@ local health_UI_entity;
local stamina_UI_entity; local stamina_UI_entity;
local rage_UI_entity; local rage_UI_entity;
local enemy_manager_type_def = sdk.find_type_definition("snow.enemy.EnemyManager");
local get_boss_enemy_count_method = enemy_manager_type_def:get_method("getBossEnemyCount");
local get_boss_enemy_method = enemy_manager_type_def:get_method("getBossEnemy");
function large_monster_UI.draw(dynamic_enabled, static_enabled) function large_monster_UI.draw(dynamic_enabled, static_enabled)
if singletons.enemy_manager == nil then if singletons.enemy_manager == nil then
return; return;
@@ -18,13 +22,13 @@ function large_monster_UI.draw(dynamic_enabled, static_enabled)
local displayed_monsters = {}; local displayed_monsters = {};
local enemy_count = singletons.enemy_manager:call("getBossEnemyCount"); local enemy_count = get_boss_enemy_count_method:call(singletons.enemy_manager);
if enemy_count == nil then if enemy_count == nil then
return; return;
end end
for i = 0, enemy_count - 1 do for i = 0, enemy_count - 1 do
local enemy = singletons.enemy_manager:call("getBossEnemy", i); local enemy = get_boss_enemy_method:call(singletons.enemy_manager, i);
if enemy == nil then if enemy == nil then
customization_menu.status = "No enemy"; customization_menu.status = "No enemy";
break break

View File

@@ -10,6 +10,10 @@ local table_helpers;
local health_UI_entity; local health_UI_entity;
local stamina_UI_entity; local stamina_UI_entity;
local enemy_manager_type_def = sdk.find_type_definition("snow.enemy.EnemyManager");
local get_zako_enemy_count_method = enemy_manager_type_def:get_method("getZakoEnemyCount");
local get_zako_enemy_method = enemy_manager_type_def:get_method("getZakoEnemy");
function small_monster_UI.draw() function small_monster_UI.draw()
if singletons.enemy_manager == nil then if singletons.enemy_manager == nil then
return; return;
@@ -17,14 +21,14 @@ function small_monster_UI.draw()
local displayed_monsters = {}; local displayed_monsters = {};
local enemy_count = singletons.enemy_manager:call("getZakoEnemyCount"); local enemy_count = get_zako_enemy_count_method:call(singletons.enemy_manager);
if enemy_count == nil then if enemy_count == nil then
customization_menu.status = "No enemy count"; customization_menu.status = "No enemy count";
return; return;
end end
for i = 0, enemy_count - 1 do for i = 0, enemy_count - 1 do
local enemy = singletons.enemy_manager:call("getZakoEnemy", i); local enemy = get_zako_enemy_method:call(singletons.enemy_manager, i);
if enemy == nil then if enemy == nil then
customization_menu.status = "No enemy"; customization_menu.status = "No enemy";
break break

View File

@@ -5,20 +5,22 @@ local screen;
local config; local config;
local drawing; local drawing;
local quest_manager_type_def = sdk.find_type_definition("snow.QuestManager");
local get_quest_elapsed_time_min_method = quest_manager_type_def:get_method("getQuestElapsedTimeMin");
local get_quest_elapseD_time_sec_method = quest_manager_type_def:get_method("getQuestElapsedTimeSec");
function time_UI.draw() function time_UI.draw()
if singletons.quest_manager == nil then if singletons.quest_manager == nil then
return; return;
end end
local quest_time_elapsed_minutes = get_quest_elapsed_time_min_method:call( singletons.quest_manager);
local quest_time_elapsed_minutes = singletons.quest_manager:call("getQuestElapsedTimeMin");
if quest_time_elapsed_minutes == nil then if quest_time_elapsed_minutes == nil then
customization_menu.status = "No quest time elapsed minutes"; customization_menu.status = "No quest time elapsed minutes";
return; return;
end end
local quest_time_total_elapsed_seconds = singletons.quest_manager:call("getQuestElapsedTimeSec"); local quest_time_total_elapsed_seconds = get_quest_elapseD_time_sec_method:call(singletons.quest_manager);
if quest_time_total_elapsed_seconds == nil then if quest_time_total_elapsed_seconds == nil then
customization_menu.status = "No quest time total elapsed seconds"; customization_menu.status = "No quest time total elapsed seconds";
return; return;

View File

@@ -16,7 +16,6 @@ end
function health_UI_entity.draw(monster, health_UI, position_on_screen, opacity_scale) function health_UI_entity.draw(monster, health_UI, position_on_screen, opacity_scale)
if not health_UI.visibility then if not health_UI.visibility then
x = health_UI.visibility
return; return;
end end

View File

@@ -6,12 +6,15 @@ local screen;
local player; local player;
local large_monster; local large_monster;
local small_monster; local small_monster;
local language;
customization_menu.is_opened = false; customization_menu.is_opened = false;
customization_menu.status = "OK"; customization_menu.status = "OK";
customization_menu.window_flags = 0x10120; customization_menu.window_flags = 0x10120;
customization_menu.color_picker_flags = 327680; customization_menu.color_picker_flags = 327680;
customization_menu.selected_language_index = 1;
customization_menu.orientation_types = {"Horizontal", "Vertical"}; customization_menu.orientation_types = {"Horizontal", "Vertical"};
customization_menu.anchor_types = {"Top-left", "Top-Right", "Bottom-Left", "Bottom-Right"}; customization_menu.anchor_types = {"Top-left", "Top-Right", "Bottom-Left", "Bottom-Right"};
@@ -35,25 +38,25 @@ customization_menu.fonts = {"Arial", "Arial Black", "Bahnschrift", "Calibri", "C
"Segoe UI Symbol", "SimSun", "Sitka", "Sylfaen", "Symbol", "Tahoma", "Times New Roman", "Segoe UI Symbol", "SimSun", "Sitka", "Sylfaen", "Symbol", "Tahoma", "Times New Roman",
"Trebuchet MS", "Verdana", "Webdings", "Wingdings", "Yu Gothic"}; "Trebuchet MS", "Verdana", "Webdings", "Wingdings", "Yu Gothic"};
customization_menu.small_monster_UI_orientation_index = 0; customization_menu.small_monster_UI_orientation_index = 1;
customization_menu.small_monster_UI_sorting_type_index = 0; customization_menu.small_monster_UI_sorting_type_index = 1;
customization_menu.large_monster_UI_orientation_index = 0; customization_menu.large_monster_UI_orientation_index = 1;
customization_menu.large_monster_UI_sorting_type_index = 0; customization_menu.large_monster_UI_sorting_type_index = 1;
customization_menu.large_monster_dynamic_UI_parts_sorting_type_index = 0; customization_menu.large_monster_dynamic_UI_parts_sorting_type_index = 1;
customization_menu.large_monster_static_UI_parts_sorting_type_index = 0; customization_menu.large_monster_static_UI_parts_sorting_type_index = 1;
customization_menu.damage_meter_UI_orientation_index = 0; customization_menu.damage_meter_UI_orientation_index = 1;
customization_menu.damage_meter_UI_sorting_type_index = 0; customization_menu.damage_meter_UI_sorting_type_index = 1;
customization_menu.damage_meter_UI_highlighted_bar_index = 0; customization_menu.damage_meter_UI_highlighted_bar_index = 1;
customization_menu.damage_meter_UI_damage_bar_relative_index = 0; customization_menu.damage_meter_UI_damage_bar_relative_index = 1;
customization_menu.damage_meter_UI_my_damage_bar_location_index = 0; customization_menu.damage_meter_UI_my_damage_bar_location_index = 1;
customization_menu.small_monster_UI_anchor_index = 0; customization_menu.small_monster_UI_anchor_index = 1;
customization_menu.large_monster_UI_anchor_index = 0; customization_menu.large_monster_UI_anchor_index = 1;
customization_menu.time_UI_anchor_index = 0; customization_menu.time_UI_anchor_index = 1;
customization_menu.damage_meter_UI_anchor_index = 0; customization_menu.damage_meter_UI_anchor_index = 1;
customization_menu.selected_font_index = 9; customization_menu.selected_font_index = 9;
@@ -65,10 +68,12 @@ function customization_menu.init()
customization_menu.monster_UI_sorting_types, config.current_config.large_monster_UI.static.sorting.type, false); customization_menu.monster_UI_sorting_types, config.current_config.large_monster_UI.static.sorting.type, false);
customization_menu.large_monster_dynamic_UI_parts_sorting_type_index = table_helpers.find_index( customization_menu.large_monster_dynamic_UI_parts_sorting_type_index = table_helpers.find_index(
customization_menu.large_monster_UI_parts_sorting_types, config.current_config.large_monster_UI.dynamic.parts.sorting.type, false); customization_menu.large_monster_UI_parts_sorting_types,
config.current_config.large_monster_UI.dynamic.parts.sorting.type, false);
customization_menu.large_monster_static_UI_parts_sorting_type_index = table_helpers.find_index( customization_menu.large_monster_static_UI_parts_sorting_type_index = table_helpers.find_index(
customization_menu.large_monster_UI_parts_sorting_types, config.current_config.large_monster_UI.static.parts.sorting.type, false); customization_menu.large_monster_UI_parts_sorting_types,
config.current_config.large_monster_UI.static.parts.sorting.type, false);
customization_menu.damage_meter_UI_orientation_index = table_helpers.find_index(customization_menu.orientation_types, customization_menu.damage_meter_UI_orientation_index = table_helpers.find_index(customization_menu.orientation_types,
config.current_config.damage_meter_UI.settings.orientation, false); config.current_config.damage_meter_UI.settings.orientation, false);
@@ -143,6 +148,27 @@ function customization_menu.draw()
end end
if imgui.tree_node("Global Settings") then if imgui.tree_node("Global Settings") then
changed, customization_menu.selected_language_index = imgui.combo("Language", customization_menu.selected_language_index, language.language_names);
config_changed = config_changed or changed;
if changed then
config.current_config.global_settings.language = language.language_names[customization_menu.selected_font_index];
language.update(customization_menu.selected_language_index);
for _, monster in pairs(small_monster.list) do
small_monster.init_UI(monster);
end
for _, monster in pairs(large_monster.list) do
large_monster.init_dynamic_UI(monster);
large_monster.init_static_UI(monster);
end
for _, _player in pairs(player.list) do
player.init_UI(_player);
end
end
if imgui.tree_node("Module Visibility on Different Screens") then if imgui.tree_node("Module Visibility on Different Screens") then
if imgui.tree_node("During Quest") then if imgui.tree_node("During Quest") then
@@ -150,13 +176,15 @@ function customization_menu.draw()
"Small Monster UI", config.current_config.global_settings.module_visibility.during_quest.small_monster_UI); "Small Monster UI", config.current_config.global_settings.module_visibility.during_quest.small_monster_UI);
config_changed = config_changed or changed; config_changed = config_changed or changed;
changed, config.current_config.global_settings.module_visibility.during_quest.large_monster_dynamic_UI = imgui.checkbox( changed, config.current_config.global_settings.module_visibility.during_quest.large_monster_dynamic_UI =
"Large Monster Dynamic UI", config.current_config.global_settings.module_visibility.during_quest.large_monster_dynamic_UI); imgui.checkbox("Large Monster Dynamic UI",
config.current_config.global_settings.module_visibility.during_quest.large_monster_dynamic_UI);
config_changed = config_changed or changed; config_changed = config_changed or changed;
imgui.same_line(); imgui.same_line();
changed, config.current_config.global_settings.module_visibility.during_quest.large_monster_static_UI = imgui.checkbox( changed, config.current_config.global_settings.module_visibility.during_quest.large_monster_static_UI =
"Large Monster Static UI", config.current_config.global_settings.module_visibility.during_quest.large_monster_static_UI); imgui.checkbox("Large Monster Static UI",
config.current_config.global_settings.module_visibility.during_quest.large_monster_static_UI);
config_changed = config_changed or changed; config_changed = config_changed or changed;
changed, config.current_config.global_settings.module_visibility.during_quest.time_UI = imgui.checkbox("Time UI", changed, config.current_config.global_settings.module_visibility.during_quest.time_UI = imgui.checkbox("Time UI",
@@ -172,36 +200,45 @@ function customization_menu.draw()
end end
if imgui.tree_node("Quest Summary Screen") then if imgui.tree_node("Quest Summary Screen") then
changed, config.current_config.global_settings.module_visibility.quest_summary_screen.small_monster_UI = imgui.checkbox( changed, config.current_config.global_settings.module_visibility.quest_summary_screen.small_monster_UI =
"Small Monster UI", config.current_config.global_settings.module_visibility.quest_summary_screen.small_monster_UI); imgui.checkbox("Small Monster UI",
config.current_config.global_settings.module_visibility.quest_summary_screen.small_monster_UI);
config_changed = config_changed or changed; config_changed = config_changed or changed;
changed, config.current_config.global_settings.module_visibility.quest_summary_screen.large_monster_dynamic_UI = imgui.checkbox( changed, config.current_config.global_settings.module_visibility.quest_summary_screen.large_monster_dynamic_UI =
"Large Monster Dynamic UI", config.current_config.global_settings.module_visibility.quest_summary_screen.large_monster_dynamic_UI); imgui.checkbox("Large Monster Dynamic UI", config.current_config.global_settings.module_visibility
.quest_summary_screen.large_monster_dynamic_UI);
config_changed = config_changed or changed; config_changed = config_changed or changed;
imgui.same_line(); imgui.same_line();
changed, config.current_config.global_settings.module_visibility.quest_summary_screen.large_monster_static_UI = imgui.checkbox("Large Monster Static UI", config.current_config.global_settings.module_visibility.quest_summary_screen.large_monster_static_UI); changed, config.current_config.global_settings.module_visibility.quest_summary_screen.large_monster_static_UI =
imgui.checkbox("Large Monster Static UI", config.current_config.global_settings.module_visibility
.quest_summary_screen.large_monster_static_UI);
config_changed = config_changed or changed; config_changed = config_changed or changed;
changed, config.current_config.global_settings.module_visibility.quest_summary_screen.time_UI = imgui.checkbox("Time UI", config.current_config.global_settings.module_visibility.quest_summary_screen.time_UI); changed, config.current_config.global_settings.module_visibility.quest_summary_screen.time_UI = imgui.checkbox(
"Time UI", config.current_config.global_settings.module_visibility.quest_summary_screen.time_UI);
config_changed = config_changed or changed; config_changed = config_changed or changed;
imgui.same_line(); imgui.same_line();
changed, config.current_config.global_settings.module_visibility.quest_summary_screen.damage_meter_UI = imgui.checkbox("Damage Meter UI", config.current_config.global_settings.module_visibility.quest_summary_screen.damage_meter_UI); changed, config.current_config.global_settings.module_visibility.quest_summary_screen.damage_meter_UI =
imgui.checkbox("Damage Meter UI",
config.current_config.global_settings.module_visibility.quest_summary_screen.damage_meter_UI);
config_changed = config_changed or changed; config_changed = config_changed or changed;
imgui.tree_pop(); imgui.tree_pop();
end end
if imgui.tree_node("Training Area") then if imgui.tree_node("Training Area") then
changed, config.current_config.global_settings.module_visibility.training_area.large_monster_dynamic_UI = imgui.checkbox( changed, config.current_config.global_settings.module_visibility.training_area.large_monster_dynamic_UI =
"Large Monster Dynamic UI", config.current_config.global_settings.module_visibility.training_area.large_monster_dynamic_UI); imgui.checkbox("Large Monster Dynamic UI",
config.current_config.global_settings.module_visibility.training_area.large_monster_dynamic_UI);
config_changed = config_changed or changed; config_changed = config_changed or changed;
imgui.same_line(); imgui.same_line();
changed, config.current_config.global_settings.module_visibility.training_area.large_monster_static_UI = imgui.checkbox( changed, config.current_config.global_settings.module_visibility.training_area.large_monster_static_UI =
"Large Monster Static UI", config.current_config.global_settings.module_visibility.training_area.large_monster_static_UI); imgui.checkbox("Large Monster Static UI",
config.current_config.global_settings.module_visibility.training_area.large_monster_static_UI);
config_changed = config_changed or changed; config_changed = config_changed or changed;
changed, config.current_config.global_settings.module_visibility.training_area.damage_meter_UI = imgui.checkbox( changed, config.current_config.global_settings.module_visibility.training_area.damage_meter_UI = imgui.checkbox(
@@ -249,8 +286,9 @@ function customization_menu.draw()
config_changed = config_changed or changed; config_changed = config_changed or changed;
if imgui.tree_node("Settings") then if imgui.tree_node("Settings") then
changed, customization_menu.small_monster_UI_orientation_index = imgui.combo("Static Orientation", changed, customization_menu.small_monster_UI_orientation_index =
customization_menu.small_monster_UI_orientation_index, customization_menu.orientation_types); imgui.combo("Static Orientation", customization_menu.small_monster_UI_orientation_index,
customization_menu.orientation_types);
config_changed = config_changed or changed; config_changed = config_changed or changed;
if changed then if changed then
config.current_config.small_monster_UI.settings.orientation = config.current_config.small_monster_UI.settings.orientation =
@@ -422,8 +460,8 @@ function customization_menu.draw()
end end
if imgui.tree_node("Health") then if imgui.tree_node("Health") then
changed, config.current_config.small_monster_UI.health.visibility = imgui.checkbox("Visible", changed, config.current_config.small_monster_UI.health.visibility =
config.current_config.small_monster_UI.health.visibility); imgui.checkbox("Visible", config.current_config.small_monster_UI.health.visibility);
config_changed = config_changed or changed; config_changed = config_changed or changed;
small_monster_UI_changed = small_monster_UI_changed or changed; small_monster_UI_changed = small_monster_UI_changed or changed;
@@ -689,8 +727,8 @@ function customization_menu.draw()
end end
if imgui.tree_node("Stamina (Pointless: small monsters don't get tired)") then if imgui.tree_node("Stamina (Pointless: small monsters don't get tired)") then
changed, config.current_config.small_monster_UI.stamina.visibility = imgui.checkbox("Visible", changed, config.current_config.small_monster_UI.stamina.visibility =
config.current_config.small_monster_UI.stamina.visibility); imgui.checkbox("Visible", config.current_config.small_monster_UI.stamina.visibility);
config_changed = config_changed or changed; config_changed = config_changed or changed;
small_monster_UI_changed = small_monster_UI_changed or changed; small_monster_UI_changed = small_monster_UI_changed or changed;
@@ -980,7 +1018,8 @@ function customization_menu.draw()
large_monster_dynamic_UI_changed = large_monster_dynamic_UI_changed or changed; large_monster_dynamic_UI_changed = large_monster_dynamic_UI_changed or changed;
changed, config.current_config.large_monster_UI.dynamic.settings.max_distance = changed, config.current_config.large_monster_UI.dynamic.settings.max_distance =
imgui.drag_float("Max Distance", config.current_config.large_monster_UI.dynamic.settings.max_distance, 1, 0, 10000, "%.0f"); imgui.drag_float("Max Distance", config.current_config.large_monster_UI.dynamic.settings.max_distance, 1, 0, 10000,
"%.0f");
config_changed = config_changed or changed; config_changed = config_changed or changed;
large_monster_dynamic_UI_changed = large_monster_dynamic_UI_changed or changed; large_monster_dynamic_UI_changed = large_monster_dynamic_UI_changed or changed;
@@ -1940,8 +1979,8 @@ function customization_menu.draw()
end end
if imgui.tree_node("Body Parts") then if imgui.tree_node("Body Parts") then
changed, config.current_config.large_monster_UI.dynamic.parts.visibility = imgui.checkbox( changed, config.current_config.large_monster_UI.dynamic.parts.visibility = imgui.checkbox("Visible",
"Visible", config.current_config.large_monster_UI.dynamic.parts.visibility); config.current_config.large_monster_UI.dynamic.parts.visibility);
config_changed = config_changed or changed; config_changed = config_changed or changed;
large_monster_dynamic_UI_changed = large_monster_dynamic_UI_changed or changed; large_monster_dynamic_UI_changed = large_monster_dynamic_UI_changed or changed;
@@ -1974,8 +2013,8 @@ function customization_menu.draw()
end end
if imgui.tree_node("Settings") then if imgui.tree_node("Settings") then
changed, config.current_config.large_monster_UI.dynamic.parts.settings.hide_undamaged_parts = changed, config.current_config.large_monster_UI.dynamic.parts.settings.hide_undamaged_parts = imgui.checkbox(
imgui.checkbox("Hide Undamaged Parts", config.current_config.large_monster_UI.dynamic.parts.settings.hide_undamaged_parts); "Hide Undamaged Parts", config.current_config.large_monster_UI.dynamic.parts.settings.hide_undamaged_parts);
config_changed = config_changed or changed; config_changed = config_changed or changed;
large_monster_dynamic_UI_changed = large_monster_dynamic_UI_changed or changed; large_monster_dynamic_UI_changed = large_monster_dynamic_UI_changed or changed;
@@ -1984,7 +2023,8 @@ function customization_menu.draw()
if imgui.tree_node("Sorting") then if imgui.tree_node("Sorting") then
changed, customization_menu.large_monster_dynamic_UI_parts_sorting_type_index = imgui.combo("Type", changed, customization_menu.large_monster_dynamic_UI_parts_sorting_type_index = imgui.combo("Type",
customization_menu.large_monster_dynamic_UI_parts_sorting_type_index, customization_menu.large_monster_UI_parts_sorting_types); customization_menu.large_monster_dynamic_UI_parts_sorting_type_index,
customization_menu.large_monster_UI_parts_sorting_types);
config_changed = config_changed or changed; config_changed = config_changed or changed;
large_monster_dynamic_UI_changed = large_monster_dynamic_UI_changed or changed; large_monster_dynamic_UI_changed = large_monster_dynamic_UI_changed or changed;
if changed then if changed then
@@ -1992,8 +2032,8 @@ function customization_menu.draw()
customization_menu.large_monster_UI_parts_sorting_types[customization_menu.large_monster_dynamic_UI_parts_sorting_type_index]; customization_menu.large_monster_UI_parts_sorting_types[customization_menu.large_monster_dynamic_UI_parts_sorting_type_index];
end end
changed, config.current_config.large_monster_UI.dynamic.parts.sorting.reversed_order = changed, config.current_config.large_monster_UI.dynamic.parts.sorting.reversed_order = imgui.checkbox(
imgui.checkbox("Reversed Order", config.current_config.large_monster_UI.dynamic.parts.sorting.reversed_order); "Reversed Order", config.current_config.large_monster_UI.dynamic.parts.sorting.reversed_order);
config_changed = config_changed or changed; config_changed = config_changed or changed;
large_monster_dynamic_UI_changed = large_monster_dynamic_UI_changed or changed; large_monster_dynamic_UI_changed = large_monster_dynamic_UI_changed or changed;
@@ -2362,7 +2402,6 @@ function customization_menu.draw()
config_changed = config_changed or changed; config_changed = config_changed or changed;
large_monster_static_UI_changed = large_monster_static_UI_changed or changed; large_monster_static_UI_changed = large_monster_static_UI_changed or changed;
if imgui.tree_node("Settings") then if imgui.tree_node("Settings") then
changed, customization_menu.large_monster_UI_orientation_index = imgui.combo("Orientation", changed, customization_menu.large_monster_UI_orientation_index = imgui.combo("Orientation",
customization_menu.large_monster_UI_orientation_index, customization_menu.orientation_types); customization_menu.large_monster_UI_orientation_index, customization_menu.orientation_types);
@@ -3384,8 +3423,8 @@ function customization_menu.draw()
end end
if imgui.tree_node("Settings") then if imgui.tree_node("Settings") then
changed, config.current_config.large_monster_UI.static.parts.settings.hide_undamaged_parts = changed, config.current_config.large_monster_UI.static.parts.settings.hide_undamaged_parts = imgui.checkbox(
imgui.checkbox("Hide Undamaged Parts", config.current_config.large_monster_UI.static.parts.settings.hide_undamaged_parts); "Hide Undamaged Parts", config.current_config.large_monster_UI.static.parts.settings.hide_undamaged_parts);
config_changed = config_changed or changed; config_changed = config_changed or changed;
large_monster_static_UI_changed = large_monster_static_UI_changed or changed; large_monster_static_UI_changed = large_monster_static_UI_changed or changed;
@@ -3394,7 +3433,8 @@ function customization_menu.draw()
if imgui.tree_node("Sorting") then if imgui.tree_node("Sorting") then
changed, customization_menu.large_monster_static_UI_parts_sorting_type_index = imgui.combo("Type", changed, customization_menu.large_monster_static_UI_parts_sorting_type_index = imgui.combo("Type",
customization_menu.large_monster_static_UI_parts_sorting_type_index, customization_menu.large_monster_UI_parts_sorting_types); customization_menu.large_monster_static_UI_parts_sorting_type_index,
customization_menu.large_monster_UI_parts_sorting_types);
config_changed = config_changed or changed; config_changed = config_changed or changed;
large_monster_static_UI_changed = large_monster_static_UI_changed or changed; large_monster_static_UI_changed = large_monster_static_UI_changed or changed;
if changed then if changed then
@@ -3402,8 +3442,8 @@ function customization_menu.draw()
customization_menu.large_monster_UI_parts_sorting_types[customization_menu.large_monster_static_UI_parts_sorting_type_index]; customization_menu.large_monster_UI_parts_sorting_types[customization_menu.large_monster_static_UI_parts_sorting_type_index];
end end
changed, config.current_config.large_monster_UI.static.parts.sorting.reversed_order = changed, config.current_config.large_monster_UI.static.parts.sorting.reversed_order = imgui.checkbox(
imgui.checkbox("Reversed Order", config.current_config.large_monster_UI.static.parts.sorting.reversed_order); "Reversed Order", config.current_config.large_monster_UI.static.parts.sorting.reversed_order);
config_changed = config_changed or changed; config_changed = config_changed or changed;
large_monster_static_UI_changed = large_monster_static_UI_changed or changed; large_monster_static_UI_changed = large_monster_static_UI_changed or changed;
@@ -3778,8 +3818,8 @@ function customization_menu.draw()
0.1, 0, screen.height, "%.1f"); 0.1, 0, screen.height, "%.1f");
config_changed = config_changed or changed; config_changed = config_changed or changed;
changed, customization_menu.time_UI_anchor_index = imgui.combo("Anchor", changed, customization_menu.time_UI_anchor_index = imgui.combo("Anchor", customization_menu.time_UI_anchor_index,
customization_menu.time_UI_anchor_index, customization_menu.anchor_types); customization_menu.anchor_types);
config_changed = config_changed or changed; config_changed = config_changed or changed;
if changed then if changed then
config.current_config.time_UI.position.anchor = config.current_config.time_UI.position.anchor =
@@ -3850,34 +3890,40 @@ function customization_menu.draw()
end end
if imgui.tree_node("Damage Meter UI") then if imgui.tree_node("Damage Meter UI") then
local damage_meter_UI_changed = false;
changed, config.current_config.damage_meter_UI.enabled = imgui.checkbox("Enabled", changed, config.current_config.damage_meter_UI.enabled = imgui.checkbox("Enabled",
config.current_config.damage_meter_UI.enabled); config.current_config.damage_meter_UI.enabled);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
if imgui.tree_node("Settings") then if imgui.tree_node("Settings") then
changed, config.current_config.damage_meter_UI.settings.hide_module_if_total_damage_is_zero = imgui.checkbox( changed, config.current_config.damage_meter_UI.settings.hide_module_if_total_damage_is_zero = imgui.checkbox(
"Hide Module if Total Damage is 0", "Hide Module if Total Damage is 0",
config.current_config.damage_meter_UI.settings.hide_module_if_total_damage_is_zero); config.current_config.damage_meter_UI.settings.hide_module_if_total_damage_is_zero);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
changed, config.current_config.damage_meter_UI.settings.hide_player_if_player_damage_is_zero = imgui.checkbox( changed, config.current_config.damage_meter_UI.settings.hide_player_if_player_damage_is_zero = imgui.checkbox(
"Hide Player if Player Damage is 0", "Hide Player if Player Damage is 0",
config.current_config.damage_meter_UI.settings.hide_player_if_player_damage_is_zero); config.current_config.damage_meter_UI.settings.hide_player_if_player_damage_is_zero);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
changed, config.current_config.damage_meter_UI.settings.hide_total_if_total_damage_is_zero = imgui.checkbox( changed, config.current_config.damage_meter_UI.settings.hide_total_if_total_damage_is_zero = imgui.checkbox(
"Hide Total if Total Damage is 0", "Hide Total if Total Damage is 0", config.current_config.damage_meter_UI.settings.hide_total_if_total_damage_is_zero);
config.current_config.damage_meter_UI.settings.hide_total_if_total_damage_is_zero);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
changed, config.current_config.damage_meter_UI.settings.total_damage_offset_is_relative = imgui.checkbox( changed, config.current_config.damage_meter_UI.settings.total_damage_offset_is_relative = imgui.checkbox(
"Total Damage Offset is Relative", config.current_config.damage_meter_UI.settings.total_damage_offset_is_relative); "Total Damage Offset is Relative", config.current_config.damage_meter_UI.settings.total_damage_offset_is_relative);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
changed, customization_menu.damage_meter_UI_orientation_index = imgui.combo("Orientation", changed, customization_menu.damage_meter_UI_orientation_index = imgui.combo("Orientation",
customization_menu.damage_meter_UI_orientation_index, customization_menu.orientation_types); customization_menu.damage_meter_UI_orientation_index, customization_menu.orientation_types);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
if changed then if changed then
config.current_config.damage_meter_UI.settings.orientation = config.current_config.damage_meter_UI.settings.orientation =
customization_menu.orientation_types[customization_menu.damage_meter_UI_orientation_index]; customization_menu.orientation_types[customization_menu.damage_meter_UI_orientation_index];
@@ -3887,6 +3933,7 @@ function customization_menu.draw()
imgui.combo("Highlighted Bar", customization_menu.damage_meter_UI_highlighted_bar_index, imgui.combo("Highlighted Bar", customization_menu.damage_meter_UI_highlighted_bar_index,
customization_menu.damage_meter_UI_highlighted_bar_types); customization_menu.damage_meter_UI_highlighted_bar_types);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
if changed then if changed then
config.current_config.damage_meter_UI.settings.highlighted_bar = config.current_config.damage_meter_UI.settings.highlighted_bar =
customization_menu.damage_meter_UI_highlighted_bar_types[customization_menu.damage_meter_UI_highlighted_bar_index]; customization_menu.damage_meter_UI_highlighted_bar_types[customization_menu.damage_meter_UI_highlighted_bar_index];
@@ -3896,6 +3943,7 @@ function customization_menu.draw()
imgui.combo("Damage Bars are Relative to", customization_menu.damage_meter_UI_damage_bar_relative_index, imgui.combo("Damage Bars are Relative to", customization_menu.damage_meter_UI_damage_bar_relative_index,
customization_menu.damage_meter_UI_damage_bar_relative_types); customization_menu.damage_meter_UI_damage_bar_relative_types);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
if changed then if changed then
config.current_config.damage_meter_UI.settings.damage_bar_relative_to = config.current_config.damage_meter_UI.settings.damage_bar_relative_to =
customization_menu.damage_meter_UI_damage_bar_relative_types[customization_menu.damage_meter_UI_damage_bar_relative_index]; customization_menu.damage_meter_UI_damage_bar_relative_types[customization_menu.damage_meter_UI_damage_bar_relative_index];
@@ -3905,6 +3953,7 @@ function customization_menu.draw()
imgui.combo("My Damage Bar Location", customization_menu.damage_meter_UI_my_damage_bar_location_index, imgui.combo("My Damage Bar Location", customization_menu.damage_meter_UI_my_damage_bar_location_index,
customization_menu.damage_meter_UI_my_damage_bar_location_types); customization_menu.damage_meter_UI_my_damage_bar_location_types);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
if changed then if changed then
config.current_config.damage_meter_UI.settings.my_damage_bar_location = config.current_config.damage_meter_UI.settings.my_damage_bar_location =
customization_menu.damage_meter_UI_my_damage_bar_location_types[customization_menu.damage_meter_UI_my_damage_bar_location_index]; customization_menu.damage_meter_UI_my_damage_bar_location_types[customization_menu.damage_meter_UI_my_damage_bar_location_index];
@@ -3918,11 +3967,13 @@ function customization_menu.draw()
changed, config.current_config.damage_meter_UI.tracked_monster_types.small_monsters = imgui.checkbox( changed, config.current_config.damage_meter_UI.tracked_monster_types.small_monsters = imgui.checkbox(
"Small Monsters", config.current_config.damage_meter_UI.tracked_monster_types.small_monsters); "Small Monsters", config.current_config.damage_meter_UI.tracked_monster_types.small_monsters);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
tracked_monster_types_changed = tracked_monster_types_changed or changed; tracked_monster_types_changed = tracked_monster_types_changed or changed;
changed, config.current_config.damage_meter_UI.tracked_monster_types.large_monsters = imgui.checkbox( changed, config.current_config.damage_meter_UI.tracked_monster_types.large_monsters = imgui.checkbox(
"Large Monsters", config.current_config.damage_meter_UI.tracked_monster_types.large_monsters); "Large Monsters", config.current_config.damage_meter_UI.tracked_monster_types.large_monsters);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
tracked_monster_types_changed = tracked_monster_types_changed or changed; tracked_monster_types_changed = tracked_monster_types_changed or changed;
if tracked_monster_types_changed then if tracked_monster_types_changed then
@@ -3940,31 +3991,37 @@ function customization_menu.draw()
changed, config.current_config.damage_meter_UI.tracked_damage_types.player_damage = changed, config.current_config.damage_meter_UI.tracked_damage_types.player_damage =
imgui.checkbox("Player Damage", config.current_config.damage_meter_UI.tracked_damage_types.player_damage); imgui.checkbox("Player Damage", config.current_config.damage_meter_UI.tracked_damage_types.player_damage);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
tracked_damage_types_changed = tracked_damage_types_changed or changed; tracked_damage_types_changed = tracked_damage_types_changed or changed;
changed, config.current_config.damage_meter_UI.tracked_damage_types.bomb_damage = imgui.checkbox("Bomb Damage", changed, config.current_config.damage_meter_UI.tracked_damage_types.bomb_damage = imgui.checkbox("Bomb Damage",
config.current_config.damage_meter_UI.tracked_damage_types.bomb_damage); config.current_config.damage_meter_UI.tracked_damage_types.bomb_damage);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
tracked_damage_types_changed = tracked_damage_types_changed or changed; tracked_damage_types_changed = tracked_damage_types_changed or changed;
changed, config.current_config.damage_meter_UI.tracked_damage_types.kunai_damage = changed, config.current_config.damage_meter_UI.tracked_damage_types.kunai_damage =
imgui.checkbox("Kunai Damage", config.current_config.damage_meter_UI.tracked_damage_types.kunai_damage); imgui.checkbox("Kunai Damage", config.current_config.damage_meter_UI.tracked_damage_types.kunai_damage);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
tracked_damage_types_changed = tracked_damage_types_changed or changed; tracked_damage_types_changed = tracked_damage_types_changed or changed;
changed, config.current_config.damage_meter_UI.tracked_damage_types.installation_damage = imgui.checkbox( changed, config.current_config.damage_meter_UI.tracked_damage_types.installation_damage = imgui.checkbox(
"Installation Damage", config.current_config.damage_meter_UI.tracked_damage_types.installation_damage); "Installation Damage", config.current_config.damage_meter_UI.tracked_damage_types.installation_damage);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
tracked_damage_types_changed = tracked_damage_types_changed or changed; tracked_damage_types_changed = tracked_damage_types_changed or changed;
changed, config.current_config.damage_meter_UI.tracked_damage_types.otomo_damage = changed, config.current_config.damage_meter_UI.tracked_damage_types.otomo_damage =
imgui.checkbox("Otomo Damage", config.current_config.damage_meter_UI.tracked_damage_types.otomo_damage); imgui.checkbox("Otomo Damage", config.current_config.damage_meter_UI.tracked_damage_types.otomo_damage);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
tracked_damage_types_changed = tracked_damage_types_changed or changed; tracked_damage_types_changed = tracked_damage_types_changed or changed;
changed, config.current_config.damage_meter_UI.tracked_damage_types.monster_damage = changed, config.current_config.damage_meter_UI.tracked_damage_types.monster_damage =
imgui.checkbox("Monster Damage", config.current_config.damage_meter_UI.tracked_damage_types.monster_damage); imgui.checkbox("Monster Damage", config.current_config.damage_meter_UI.tracked_damage_types.monster_damage);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
tracked_damage_types_changed = tracked_damage_types_changed or changed; tracked_damage_types_changed = tracked_damage_types_changed or changed;
if tracked_damage_types_changed then if tracked_damage_types_changed then
@@ -3981,10 +4038,12 @@ function customization_menu.draw()
changed, config.current_config.damage_meter_UI.spacing.x = changed, config.current_config.damage_meter_UI.spacing.x =
imgui.drag_float("X", config.current_config.damage_meter_UI.spacing.x, 0.1, -screen.width, screen.width, "%.1f"); imgui.drag_float("X", config.current_config.damage_meter_UI.spacing.x, 0.1, -screen.width, screen.width, "%.1f");
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
changed, config.current_config.damage_meter_UI.spacing.y = changed, config.current_config.damage_meter_UI.spacing.y =
imgui.drag_float("Y", config.current_config.damage_meter_UI.spacing.y, 0.1, -screen.height, screen.height, "%.1f"); imgui.drag_float("Y", config.current_config.damage_meter_UI.spacing.y, 0.1, -screen.height, screen.height, "%.1f");
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop(); imgui.tree_pop();
end end
@@ -3993,14 +4052,17 @@ function customization_menu.draw()
changed, config.current_config.damage_meter_UI.position.x = changed, config.current_config.damage_meter_UI.position.x =
imgui.drag_float("X", config.current_config.damage_meter_UI.position.x, 0.1, 0, screen.width, "%.1f"); imgui.drag_float("X", config.current_config.damage_meter_UI.position.x, 0.1, 0, screen.width, "%.1f");
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
changed, config.current_config.damage_meter_UI.position.y = changed, config.current_config.damage_meter_UI.position.y =
imgui.drag_float("Y", config.current_config.damage_meter_UI.position.y, 0.1, 0, screen.height, "%.1f"); imgui.drag_float("Y", config.current_config.damage_meter_UI.position.y, 0.1, 0, screen.height, "%.1f");
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
changed, customization_menu.damage_meter_UI_anchor_index = imgui.combo("Anchor", changed, customization_menu.damage_meter_UI_anchor_index = imgui.combo("Anchor",
customization_menu.damage_meter_UI_anchor_index, customization_menu.anchor_types); customization_menu.damage_meter_UI_anchor_index, customization_menu.anchor_types);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
if changed then if changed then
config.current_config.damage_meter_UI.position.anchor = config.current_config.damage_meter_UI.position.anchor =
customization_menu.anchor_types[customization_menu.damage_meter_UI_anchor_index]; customization_menu.anchor_types[customization_menu.damage_meter_UI_anchor_index];
@@ -4013,6 +4075,7 @@ function customization_menu.draw()
changed, customization_menu.damage_meter_UI_sort_type_index = imgui.combo("Type", changed, customization_menu.damage_meter_UI_sort_type_index = imgui.combo("Type",
customization_menu.damage_meter_UI_sort_type_index, customization_menu.damage_meter_UI_sorting_types); customization_menu.damage_meter_UI_sort_type_index, customization_menu.damage_meter_UI_sorting_types);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
if changed then if changed then
config.current_config.damage_meter_UI.sorting.type = config.current_config.damage_meter_UI.sorting.type =
customization_menu.damage_meter_UI_sorting_types[customization_menu.damage_meter_UI_sort_type_index]; customization_menu.damage_meter_UI_sorting_types[customization_menu.damage_meter_UI_sort_type_index];
@@ -4021,6 +4084,7 @@ function customization_menu.draw()
changed, config.current_config.damage_meter_UI.sorting.reversed_order = changed, config.current_config.damage_meter_UI.sorting.reversed_order =
imgui.checkbox("Reversed Order", config.current_config.damage_meter_UI.sorting.reversed_order); imgui.checkbox("Reversed Order", config.current_config.damage_meter_UI.sorting.reversed_order);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop(); imgui.tree_pop();
end end
@@ -4029,24 +4093,29 @@ function customization_menu.draw()
changed, config.current_config.damage_meter_UI.player_name_label.visibility = imgui.checkbox("Visible", changed, config.current_config.damage_meter_UI.player_name_label.visibility = imgui.checkbox("Visible",
config.current_config.damage_meter_UI.player_name_label.visibility); config.current_config.damage_meter_UI.player_name_label.visibility);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
if imgui.tree_node("Include") then if imgui.tree_node("Include") then
if imgui.tree_node("Me") then if imgui.tree_node("Me") then
changed, config.current_config.damage_meter_UI.player_name_label.include.myself.hunter_rank = imgui.checkbox( changed, config.current_config.damage_meter_UI.player_name_label.include.myself.hunter_rank = imgui.checkbox(
"Hunter Rank", config.current_config.damage_meter_UI.player_name_label.include.myself.hunter_rank); "Hunter Rank", config.current_config.damage_meter_UI.player_name_label.include.myself.hunter_rank);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
changed, config.current_config.damage_meter_UI.player_name_label.include.myself.word_player = imgui.checkbox( changed, config.current_config.damage_meter_UI.player_name_label.include.myself.word_player = imgui.checkbox(
"Word \"Player\"", config.current_config.damage_meter_UI.player_name_label.include.myself.word_player); "Word \"Player\"", config.current_config.damage_meter_UI.player_name_label.include.myself.word_player);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
changed, config.current_config.damage_meter_UI.player_name_label.include.myself.player_id = imgui.checkbox( changed, config.current_config.damage_meter_UI.player_name_label.include.myself.player_id = imgui.checkbox(
"Player ID", config.current_config.damage_meter_UI.player_name_label.include.myself.player_id); "Player ID", config.current_config.damage_meter_UI.player_name_label.include.myself.player_id);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
changed, config.current_config.damage_meter_UI.player_name_label.include.myself.player_name = imgui.checkbox( changed, config.current_config.damage_meter_UI.player_name_label.include.myself.player_name = imgui.checkbox(
"Player Name", config.current_config.damage_meter_UI.player_name_label.include.myself.player_name); "Player Name", config.current_config.damage_meter_UI.player_name_label.include.myself.player_name);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop(); imgui.tree_pop();
end end
@@ -4055,18 +4124,22 @@ function customization_menu.draw()
changed, config.current_config.damage_meter_UI.player_name_label.include.others.hunter_rank = imgui.checkbox( changed, config.current_config.damage_meter_UI.player_name_label.include.others.hunter_rank = imgui.checkbox(
"Hunter Rank", config.current_config.damage_meter_UI.player_name_label.include.others.hunter_rank); "Hunter Rank", config.current_config.damage_meter_UI.player_name_label.include.others.hunter_rank);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
changed, config.current_config.damage_meter_UI.player_name_label.include.others.word_player = imgui.checkbox( changed, config.current_config.damage_meter_UI.player_name_label.include.others.word_player = imgui.checkbox(
"Word \"Player\"", config.current_config.damage_meter_UI.player_name_label.include.others.word_player); "Word \"Player\"", config.current_config.damage_meter_UI.player_name_label.include.others.word_player);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
changed, config.current_config.damage_meter_UI.player_name_label.include.others.player_id = imgui.checkbox( changed, config.current_config.damage_meter_UI.player_name_label.include.others.player_id = imgui.checkbox(
"Player ID", config.current_config.damage_meter_UI.player_name_label.include.others.player_id); "Player ID", config.current_config.damage_meter_UI.player_name_label.include.others.player_id);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
changed, config.current_config.damage_meter_UI.player_name_label.include.others.player_name = imgui.checkbox( changed, config.current_config.damage_meter_UI.player_name_label.include.others.player_name = imgui.checkbox(
"Player Name", config.current_config.damage_meter_UI.player_name_label.include.others.player_name); "Player Name", config.current_config.damage_meter_UI.player_name_label.include.others.player_name);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop(); imgui.tree_pop();
end end
@@ -4078,10 +4151,12 @@ function customization_menu.draw()
changed, config.current_config.damage_meter_UI.player_name_label.offset.x = imgui.drag_float("X", changed, config.current_config.damage_meter_UI.player_name_label.offset.x = imgui.drag_float("X",
config.current_config.damage_meter_UI.player_name_label.offset.x, 0.1, -screen.width, screen.width, "%.1f"); config.current_config.damage_meter_UI.player_name_label.offset.x, 0.1, -screen.width, screen.width, "%.1f");
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
changed, config.current_config.damage_meter_UI.player_name_label.offset.y = imgui.drag_float("Y", changed, config.current_config.damage_meter_UI.player_name_label.offset.y = imgui.drag_float("Y",
config.current_config.damage_meter_UI.player_name_label.offset.y, 0.1, -screen.height, screen.height, "%.1f"); config.current_config.damage_meter_UI.player_name_label.offset.y, 0.1, -screen.height, screen.height, "%.1f");
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop(); imgui.tree_pop();
end end
@@ -4089,6 +4164,7 @@ function customization_menu.draw()
if imgui.tree_node("Color") then if imgui.tree_node("Color") then
-- changed, config.current_config.damage_meter_UI.player_name_label.color = imgui.color_picker_argb("", config.current_config.damage_meter_UI.player_name_label.color, color_picker_flags); -- changed, config.current_config.damage_meter_UI.player_name_label.color = imgui.color_picker_argb("", config.current_config.damage_meter_UI.player_name_label.color, color_picker_flags);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop(); imgui.tree_pop();
end end
@@ -4097,16 +4173,19 @@ function customization_menu.draw()
changed, config.current_config.damage_meter_UI.player_name_label.shadow.visibility = imgui.checkbox("Enable", changed, config.current_config.damage_meter_UI.player_name_label.shadow.visibility = imgui.checkbox("Enable",
config.current_config.damage_meter_UI.player_name_label.shadow.visibility); config.current_config.damage_meter_UI.player_name_label.shadow.visibility);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
if imgui.tree_node("Offset") then if imgui.tree_node("Offset") then
changed, config.current_config.damage_meter_UI.player_name_label.shadow.offset.x = imgui.drag_float("X", changed, config.current_config.damage_meter_UI.player_name_label.shadow.offset.x = imgui.drag_float("X",
config.current_config.damage_meter_UI.player_name_label.shadow.offset.x, 0.1, -screen.width, screen.width, "%.1f"); config.current_config.damage_meter_UI.player_name_label.shadow.offset.x, 0.1, -screen.width, screen.width, "%.1f");
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
changed, config.current_config.damage_meter_UI.player_name_label.shadow.offset.y = imgui.drag_float("Y", changed, config.current_config.damage_meter_UI.player_name_label.shadow.offset.y = imgui.drag_float("Y",
config.current_config.damage_meter_UI.player_name_label.shadow.offset.y, 0.1, -screen.height, screen.height, config.current_config.damage_meter_UI.player_name_label.shadow.offset.y, 0.1, -screen.height, screen.height,
"%.1f"); "%.1f");
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop(); imgui.tree_pop();
end end
@@ -4114,6 +4193,7 @@ function customization_menu.draw()
if imgui.tree_node("Color") then if imgui.tree_node("Color") then
-- changed, config.current_config.damage_meter_UI.player_name_label.shadow.color = imgui.color_picker_argb("", config.current_config.damage_meter_UI.player_name_label.shadow.color, color_picker_flags); -- changed, config.current_config.damage_meter_UI.player_name_label.shadow.color = imgui.color_picker_argb("", config.current_config.damage_meter_UI.player_name_label.shadow.color, color_picker_flags);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop(); imgui.tree_pop();
end end
@@ -4128,6 +4208,7 @@ function customization_menu.draw()
changed, config.current_config.damage_meter_UI.damage_value_label.visibility = imgui.checkbox("Visible", changed, config.current_config.damage_meter_UI.damage_value_label.visibility = imgui.checkbox("Visible",
config.current_config.damage_meter_UI.damage_value_label.visibility); config.current_config.damage_meter_UI.damage_value_label.visibility);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
-- add text format -- add text format
@@ -4135,10 +4216,12 @@ function customization_menu.draw()
changed, config.current_config.damage_meter_UI.damage_value_label.offset.x = imgui.drag_float("X", changed, config.current_config.damage_meter_UI.damage_value_label.offset.x = imgui.drag_float("X",
config.current_config.damage_meter_UI.damage_value_label.offset.x, 0.1, -screen.width, screen.width, "%.1f"); config.current_config.damage_meter_UI.damage_value_label.offset.x, 0.1, -screen.width, screen.width, "%.1f");
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
changed, config.current_config.damage_meter_UI.damage_value_label.offset.y = imgui.drag_float("Y", changed, config.current_config.damage_meter_UI.damage_value_label.offset.y = imgui.drag_float("Y",
config.current_config.damage_meter_UI.damage_value_label.offset.y, 0.1, -screen.height, screen.height, "%.1f"); config.current_config.damage_meter_UI.damage_value_label.offset.y, 0.1, -screen.height, screen.height, "%.1f");
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop(); imgui.tree_pop();
end end
@@ -4146,6 +4229,7 @@ function customization_menu.draw()
if imgui.tree_node("Color") then if imgui.tree_node("Color") then
-- changed, config.current_config.damage_meter_UI.damage_value_label.color = imgui.color_picker_argb("", config.current_config.damage_meter_UI.damage_value_label.color, color_picker_flags); -- changed, config.current_config.damage_meter_UI.damage_value_label.color = imgui.color_picker_argb("", config.current_config.damage_meter_UI.damage_value_label.color, color_picker_flags);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop(); imgui.tree_pop();
end end
@@ -4154,16 +4238,19 @@ function customization_menu.draw()
changed, config.current_config.damage_meter_UI.damage_value_label.shadow.visibility = imgui.checkbox("Enable", changed, config.current_config.damage_meter_UI.damage_value_label.shadow.visibility = imgui.checkbox("Enable",
config.current_config.damage_meter_UI.damage_value_label.shadow.visibility); config.current_config.damage_meter_UI.damage_value_label.shadow.visibility);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
if imgui.tree_node("Offset") then if imgui.tree_node("Offset") then
changed, config.current_config.damage_meter_UI.damage_value_label.shadow.offset.x = imgui.drag_float("X", changed, config.current_config.damage_meter_UI.damage_value_label.shadow.offset.x = imgui.drag_float("X",
config.current_config.damage_meter_UI.damage_value_label.shadow.offset.x, 0.1, -screen.width, screen.width, "%.1f"); config.current_config.damage_meter_UI.damage_value_label.shadow.offset.x, 0.1, -screen.width, screen.width, "%.1f");
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
changed, config.current_config.damage_meter_UI.damage_value_label.shadow.offset.y = imgui.drag_float("Y", changed, config.current_config.damage_meter_UI.damage_value_label.shadow.offset.y = imgui.drag_float("Y",
config.current_config.damage_meter_UI.damage_value_label.shadow.offset.y, 0.1, -screen.height, screen.height, config.current_config.damage_meter_UI.damage_value_label.shadow.offset.y, 0.1, -screen.height, screen.height,
"%.1f"); "%.1f");
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop(); imgui.tree_pop();
end end
@@ -4171,6 +4258,7 @@ function customization_menu.draw()
if imgui.tree_node("Color") then if imgui.tree_node("Color") then
-- changed, config.current_config.damage_meter_UI.damage_value_label.shadow.color = imgui.color_picker_argb("", config.current_config.damage_meter_UI.damage_value_label.shadow.color, color_picker_flags); -- changed, config.current_config.damage_meter_UI.damage_value_label.shadow.color = imgui.color_picker_argb("", config.current_config.damage_meter_UI.damage_value_label.shadow.color, color_picker_flags);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop(); imgui.tree_pop();
end end
@@ -4185,6 +4273,7 @@ function customization_menu.draw()
changed, config.current_config.damage_meter_UI.damage_percentage_label.visibility = imgui.checkbox("Visible", changed, config.current_config.damage_meter_UI.damage_percentage_label.visibility = imgui.checkbox("Visible",
config.current_config.damage_meter_UI.damage_percentage_label.visibility); config.current_config.damage_meter_UI.damage_percentage_label.visibility);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
-- add text format -- add text format
@@ -4192,10 +4281,12 @@ function customization_menu.draw()
changed, config.current_config.damage_meter_UI.damage_percentage_label.offset.x = imgui.drag_float("X", changed, config.current_config.damage_meter_UI.damage_percentage_label.offset.x = imgui.drag_float("X",
config.current_config.damage_meter_UI.damage_percentage_label.offset.x, 0.1, -screen.width, screen.width, "%.1f"); config.current_config.damage_meter_UI.damage_percentage_label.offset.x, 0.1, -screen.width, screen.width, "%.1f");
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
changed, config.current_config.damage_meter_UI.damage_percentage_label.offset.y = imgui.drag_float("Y", changed, config.current_config.damage_meter_UI.damage_percentage_label.offset.y = imgui.drag_float("Y",
config.current_config.damage_meter_UI.damage_percentage_label.offset.y, 0.1, -screen.height, screen.height, "%.1f"); config.current_config.damage_meter_UI.damage_percentage_label.offset.y, 0.1, -screen.height, screen.height, "%.1f");
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop(); imgui.tree_pop();
end end
@@ -4203,6 +4294,7 @@ function customization_menu.draw()
if imgui.tree_node("Color") then if imgui.tree_node("Color") then
-- changed, config.current_config.damage_meter_UI.damage_percentage_label.color = imgui.color_picker_argb("", config.current_config.damage_meter_UI.damage_percentage_label.color, color_picker_flags); -- changed, config.current_config.damage_meter_UI.damage_percentage_label.color = imgui.color_picker_argb("", config.current_config.damage_meter_UI.damage_percentage_label.color, color_picker_flags);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop(); imgui.tree_pop();
end end
@@ -4211,17 +4303,20 @@ function customization_menu.draw()
changed, config.current_config.damage_meter_UI.damage_percentage_label.shadow.visibility = imgui.checkbox("Enable", changed, config.current_config.damage_meter_UI.damage_percentage_label.shadow.visibility = imgui.checkbox("Enable",
config.current_config.damage_meter_UI.damage_percentage_label.shadow.visibility); config.current_config.damage_meter_UI.damage_percentage_label.shadow.visibility);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
if imgui.tree_node("Offset") then if imgui.tree_node("Offset") then
changed, config.current_config.damage_meter_UI.damage_percentage_label.shadow.offset.x = imgui.drag_float("X", changed, config.current_config.damage_meter_UI.damage_percentage_label.shadow.offset.x = imgui.drag_float("X",
config.current_config.damage_meter_UI.damage_percentage_label.shadow.offset.x, 0.1, -screen.width, screen.width, config.current_config.damage_meter_UI.damage_percentage_label.shadow.offset.x, 0.1, -screen.width, screen.width,
"%.1f"); "%.1f");
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
changed, config.current_config.damage_meter_UI.damage_percentage_label.shadow.offset.y = imgui.drag_float("Y", changed, config.current_config.damage_meter_UI.damage_percentage_label.shadow.offset.y = imgui.drag_float("Y",
config.current_config.damage_meter_UI.damage_percentage_label.shadow.offset.y, 0.1, -screen.height, screen.height, config.current_config.damage_meter_UI.damage_percentage_label.shadow.offset.y, 0.1, -screen.height, screen.height,
"%.1f"); "%.1f");
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop(); imgui.tree_pop();
end end
@@ -4229,6 +4324,7 @@ function customization_menu.draw()
if imgui.tree_node("Color") then if imgui.tree_node("Color") then
-- changed, config.current_config.damage_meter_UI.damage_percentage_label.shadow.color = imgui.color_picker_argb("", config.current_config.damage_meter_UI.damage_percentage_label.shadow.color, color_picker_flags); -- changed, config.current_config.damage_meter_UI.damage_percentage_label.shadow.color = imgui.color_picker_argb("", config.current_config.damage_meter_UI.damage_percentage_label.shadow.color, color_picker_flags);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop(); imgui.tree_pop();
end end
@@ -4243,6 +4339,7 @@ function customization_menu.draw()
changed, config.current_config.damage_meter_UI.total_damage_label.visibility = imgui.checkbox("Visible", changed, config.current_config.damage_meter_UI.total_damage_label.visibility = imgui.checkbox("Visible",
config.current_config.damage_meter_UI.total_damage_label.visibility); config.current_config.damage_meter_UI.total_damage_label.visibility);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
-- add text format -- add text format
@@ -4250,10 +4347,12 @@ function customization_menu.draw()
changed, config.current_config.damage_meter_UI.total_damage_label.offset.x = imgui.drag_float("X", changed, config.current_config.damage_meter_UI.total_damage_label.offset.x = imgui.drag_float("X",
config.current_config.damage_meter_UI.total_damage_label.offset.x, 0.1, -screen.width, screen.width, "%.1f"); config.current_config.damage_meter_UI.total_damage_label.offset.x, 0.1, -screen.width, screen.width, "%.1f");
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
changed, config.current_config.damage_meter_UI.total_damage_label.offset.y = imgui.drag_float("Y", changed, config.current_config.damage_meter_UI.total_damage_label.offset.y = imgui.drag_float("Y",
config.current_config.damage_meter_UI.total_damage_label.offset.y, 0.1, -screen.height, screen.height, "%.1f"); config.current_config.damage_meter_UI.total_damage_label.offset.y, 0.1, -screen.height, screen.height, "%.1f");
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop(); imgui.tree_pop();
end end
@@ -4261,6 +4360,7 @@ function customization_menu.draw()
if imgui.tree_node("Color") then if imgui.tree_node("Color") then
-- changed, config.current_config.damage_meter_UI.total_damage_label.color = imgui.color_picker_argb("", config.current_config.damage_meter_UI.total_damage_label.color, color_picker_flags); -- changed, config.current_config.damage_meter_UI.total_damage_label.color = imgui.color_picker_argb("", config.current_config.damage_meter_UI.total_damage_label.color, color_picker_flags);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop(); imgui.tree_pop();
end end
@@ -4269,16 +4369,19 @@ function customization_menu.draw()
changed, config.current_config.damage_meter_UI.total_damage_label.shadow.visibility = imgui.checkbox("Enable", changed, config.current_config.damage_meter_UI.total_damage_label.shadow.visibility = imgui.checkbox("Enable",
config.current_config.damage_meter_UI.total_damage_label.shadow.visibility); config.current_config.damage_meter_UI.total_damage_label.shadow.visibility);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
if imgui.tree_node("Offset") then if imgui.tree_node("Offset") then
changed, config.current_config.damage_meter_UI.total_damage_label.shadow.offset.x = imgui.drag_float("X", changed, config.current_config.damage_meter_UI.total_damage_label.shadow.offset.x = imgui.drag_float("X",
config.current_config.damage_meter_UI.total_damage_label.shadow.offset.x, 0.1, -screen.width, screen.width, "%.1f"); config.current_config.damage_meter_UI.total_damage_label.shadow.offset.x, 0.1, -screen.width, screen.width, "%.1f");
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
changed, config.current_config.damage_meter_UI.total_damage_label.shadow.offset.y = imgui.drag_float("Y", changed, config.current_config.damage_meter_UI.total_damage_label.shadow.offset.y = imgui.drag_float("Y",
config.current_config.damage_meter_UI.total_damage_label.shadow.offset.y, 0.1, -screen.height, screen.height, config.current_config.damage_meter_UI.total_damage_label.shadow.offset.y, 0.1, -screen.height, screen.height,
"%.1f"); "%.1f");
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop(); imgui.tree_pop();
end end
@@ -4286,6 +4389,7 @@ function customization_menu.draw()
if imgui.tree_node("Color") then if imgui.tree_node("Color") then
-- changed, config.current_config.damage_meter_UI.total_damage_label.shadow.color = imgui.color_picker_argb("", config.current_config.damage_meter_UI.total_damage_label.shadow.color, color_picker_flags); -- changed, config.current_config.damage_meter_UI.total_damage_label.shadow.color = imgui.color_picker_argb("", config.current_config.damage_meter_UI.total_damage_label.shadow.color, color_picker_flags);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop(); imgui.tree_pop();
end end
@@ -4300,6 +4404,7 @@ function customization_menu.draw()
changed, config.current_config.damage_meter_UI.total_damage_value_label.visibility = imgui.checkbox("Visible", changed, config.current_config.damage_meter_UI.total_damage_value_label.visibility = imgui.checkbox("Visible",
config.current_config.damage_meter_UI.total_damage_value_label.visibility); config.current_config.damage_meter_UI.total_damage_value_label.visibility);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
-- add text format -- add text format
@@ -4307,10 +4412,12 @@ function customization_menu.draw()
changed, config.current_config.damage_meter_UI.total_damage_value_label.offset.x = imgui.drag_float("X", changed, config.current_config.damage_meter_UI.total_damage_value_label.offset.x = imgui.drag_float("X",
config.current_config.damage_meter_UI.total_damage_value_label.offset.x, 0.1, -screen.width, screen.width, "%.1f"); config.current_config.damage_meter_UI.total_damage_value_label.offset.x, 0.1, -screen.width, screen.width, "%.1f");
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
changed, config.current_config.damage_meter_UI.total_damage_value_label.offset.y = imgui.drag_float("Y", changed, config.current_config.damage_meter_UI.total_damage_value_label.offset.y = imgui.drag_float("Y",
config.current_config.damage_meter_UI.total_damage_value_label.offset.y, 0.1, -screen.height, screen.height, "%.1f"); config.current_config.damage_meter_UI.total_damage_value_label.offset.y, 0.1, -screen.height, screen.height, "%.1f");
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop(); imgui.tree_pop();
end end
@@ -4318,6 +4425,7 @@ function customization_menu.draw()
if imgui.tree_node("Color") then if imgui.tree_node("Color") then
-- changed, config.current_config.damage_meter_UI.total_damage_value_label.color = imgui.color_picker_argb("", config.current_config.damage_meter_UI.total_damage_value_label.color, color_picker_flags); -- changed, config.current_config.damage_meter_UI.total_damage_value_label.color = imgui.color_picker_argb("", config.current_config.damage_meter_UI.total_damage_value_label.color, color_picker_flags);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop(); imgui.tree_pop();
end end
@@ -4326,17 +4434,20 @@ function customization_menu.draw()
changed, config.current_config.damage_meter_UI.total_damage_value_label.shadow.visibility = imgui.checkbox("Enable", changed, config.current_config.damage_meter_UI.total_damage_value_label.shadow.visibility = imgui.checkbox("Enable",
config.current_config.damage_meter_UI.total_damage_value_label.shadow.visibility); config.current_config.damage_meter_UI.total_damage_value_label.shadow.visibility);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
if imgui.tree_node("Offset") then if imgui.tree_node("Offset") then
changed, config.current_config.damage_meter_UI.total_damage_value_label.shadow.offset.x = imgui.drag_float("X", changed, config.current_config.damage_meter_UI.total_damage_value_label.shadow.offset.x = imgui.drag_float("X",
config.current_config.damage_meter_UI.total_damage_value_label.shadow.offset.x, 0.1, -screen.width, screen.width, config.current_config.damage_meter_UI.total_damage_value_label.shadow.offset.x, 0.1, -screen.width, screen.width,
"%.1f"); "%.1f");
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
changed, config.current_config.damage_meter_UI.total_damage_value_label.shadow.offset.y = imgui.drag_float("Y", changed, config.current_config.damage_meter_UI.total_damage_value_label.shadow.offset.y = imgui.drag_float("Y",
config.current_config.damage_meter_UI.total_damage_value_label.shadow.offset.y, 0.1, -screen.height, config.current_config.damage_meter_UI.total_damage_value_label.shadow.offset.y, 0.1, -screen.height,
screen.height, "%.1f"); screen.height, "%.1f");
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop(); imgui.tree_pop();
end end
@@ -4344,6 +4455,7 @@ function customization_menu.draw()
if imgui.tree_node("Color") then if imgui.tree_node("Color") then
-- changed, config.current_config.damage_meter_UI.total_damage_value_label.shadow.color = imgui.color_picker_argb("", config.current_config.damage_meter_UI.total_damage_value_label.shadow.color, color_picker_flags); -- changed, config.current_config.damage_meter_UI.total_damage_value_label.shadow.color = imgui.color_picker_argb("", config.current_config.damage_meter_UI.total_damage_value_label.shadow.color, color_picker_flags);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop(); imgui.tree_pop();
end end
@@ -4358,17 +4470,20 @@ function customization_menu.draw()
changed, config.current_config.damage_meter_UI.damage_bar.visibility = imgui.checkbox("Visible", changed, config.current_config.damage_meter_UI.damage_bar.visibility = imgui.checkbox("Visible",
config.current_config.damage_meter_UI.damage_bar.visibility); config.current_config.damage_meter_UI.damage_bar.visibility);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
if imgui.tree_node("Offset") then if imgui.tree_node("Offset") then
changed, config.current_config.damage_meter_UI.damage_bar.offset.x = changed, config.current_config.damage_meter_UI.damage_bar.offset.x =
imgui.drag_float("X", config.current_config.damage_meter_UI.damage_bar.offset.x, 0.1, -screen.width, screen.width, imgui.drag_float("X", config.current_config.damage_meter_UI.damage_bar.offset.x, 0.1, -screen.width, screen.width,
"%.1f"); "%.1f");
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
changed, config.current_config.damage_meter_UI.damage_bar.offset.y = changed, config.current_config.damage_meter_UI.damage_bar.offset.y =
imgui.drag_float("Y", config.current_config.damage_meter_UI.damage_bar.offset.y, 0.1, -screen.height, imgui.drag_float("Y", config.current_config.damage_meter_UI.damage_bar.offset.y, 0.1, -screen.height,
screen.height, "%.1f"); screen.height, "%.1f");
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop(); imgui.tree_pop();
end end
@@ -4377,10 +4492,12 @@ function customization_menu.draw()
changed, config.current_config.damage_meter_UI.damage_bar.size.width = imgui.drag_float("Width", changed, config.current_config.damage_meter_UI.damage_bar.size.width = imgui.drag_float("Width",
config.current_config.damage_meter_UI.damage_bar.size.width, 0.1, 0, screen.width, "%.1f"); config.current_config.damage_meter_UI.damage_bar.size.width, 0.1, 0, screen.width, "%.1f");
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
changed, config.current_config.damage_meter_UI.damage_bar.size.height = imgui.drag_float("Height", changed, config.current_config.damage_meter_UI.damage_bar.size.height = imgui.drag_float("Height",
config.current_config.damage_meter_UI.damage_bar.size.height, 0.1, 0, screen.height, "%.1f"); config.current_config.damage_meter_UI.damage_bar.size.height, 0.1, 0, screen.height, "%.1f");
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop(); imgui.tree_pop();
end end
@@ -4389,6 +4506,7 @@ function customization_menu.draw()
if imgui.tree_node("Foreground") then if imgui.tree_node("Foreground") then
-- changed, config.current_config.damage_meter_UI.damage_bar.colors.foreground = imgui.color_picker_argb("", config.current_config.damage_meter_UI.damage_bar.colors.foreground, color_picker_flags); -- changed, config.current_config.damage_meter_UI.damage_bar.colors.foreground = imgui.color_picker_argb("", config.current_config.damage_meter_UI.damage_bar.colors.foreground, color_picker_flags);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop(); imgui.tree_pop();
end end
@@ -4396,6 +4514,7 @@ function customization_menu.draw()
if imgui.tree_node("Background") then if imgui.tree_node("Background") then
-- changed, config.current_config.damage_meter_UI.damage_bar.colors.background = imgui.color_picker_argb("", config.current_config.damage_meter_UI.damage_bar.colors.background, color_picker_flags); -- changed, config.current_config.damage_meter_UI.damage_bar.colors.background = imgui.color_picker_argb("", config.current_config.damage_meter_UI.damage_bar.colors.background, color_picker_flags);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop(); imgui.tree_pop();
end end
@@ -4410,15 +4529,18 @@ function customization_menu.draw()
changed, config.current_config.damage_meter_UI.highlighted_damage_bar.visibility = imgui.checkbox("Visible", changed, config.current_config.damage_meter_UI.highlighted_damage_bar.visibility = imgui.checkbox("Visible",
config.current_config.damage_meter_UI.highlighted_damage_bar.visibility); config.current_config.damage_meter_UI.highlighted_damage_bar.visibility);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
if imgui.tree_node("Offset") then if imgui.tree_node("Offset") then
changed, config.current_config.damage_meter_UI.highlighted_damage_bar.offset.x = imgui.drag_float("X", changed, config.current_config.damage_meter_UI.highlighted_damage_bar.offset.x = imgui.drag_float("X",
config.current_config.damage_meter_UI.highlighted_damage_bar.offset.x, 0.1, -screen.width, screen.width, "%.1f"); config.current_config.damage_meter_UI.highlighted_damage_bar.offset.x, 0.1, -screen.width, screen.width, "%.1f");
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
changed, config.current_config.damage_meter_UI.highlighted_damage_bar.offset.y = imgui.drag_float("Y", changed, config.current_config.damage_meter_UI.highlighted_damage_bar.offset.y = imgui.drag_float("Y",
config.current_config.damage_meter_UI.highlighted_damage_bar.offset.y, 0.1, -screen.height, screen.height, "%.1f"); config.current_config.damage_meter_UI.highlighted_damage_bar.offset.y, 0.1, -screen.height, screen.height, "%.1f");
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop(); imgui.tree_pop();
end end
@@ -4427,10 +4549,12 @@ function customization_menu.draw()
changed, config.current_config.damage_meter_UI.highlighted_damage_bar.size.width = imgui.drag_float("Width", changed, config.current_config.damage_meter_UI.highlighted_damage_bar.size.width = imgui.drag_float("Width",
config.current_config.damage_meter_UI.highlighted_damage_bar.size.width, 0.1, 0, screen.width, "%.1f"); config.current_config.damage_meter_UI.highlighted_damage_bar.size.width, 0.1, 0, screen.width, "%.1f");
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
changed, config.current_config.damage_meter_UI.highlighted_damage_bar.size.height = imgui.drag_float("Height", changed, config.current_config.damage_meter_UI.highlighted_damage_bar.size.height = imgui.drag_float("Height",
config.current_config.damage_meter_UI.highlighted_damage_bar.size.height, 0.1, 0, screen.height, "%.1f"); config.current_config.damage_meter_UI.highlighted_damage_bar.size.height, 0.1, 0, screen.height, "%.1f");
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop(); imgui.tree_pop();
end end
@@ -4439,6 +4563,7 @@ function customization_menu.draw()
if imgui.tree_node("Foreground") then if imgui.tree_node("Foreground") then
-- changed, config.current_config.damage_meter_UI.highlighted_damage_bar.colors.foreground = imgui.color_picker_argb("", config.current_config.damage_meter_UI.highlighted_damage_bar.colors.foreground, color_picker_flags); -- changed, config.current_config.damage_meter_UI.highlighted_damage_bar.colors.foreground = imgui.color_picker_argb("", config.current_config.damage_meter_UI.highlighted_damage_bar.colors.foreground, color_picker_flags);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop(); imgui.tree_pop();
end end
@@ -4446,6 +4571,7 @@ function customization_menu.draw()
if imgui.tree_node("Background") then if imgui.tree_node("Background") then
-- changed, config.current_config.damage_meter_UI.highlighted_damage_bar.colors.background = imgui.color_picker_argb("", config.current_config.damage_meter_UI.highlighted_damage_bar.colors.background, color_picker_flags); -- changed, config.current_config.damage_meter_UI.highlighted_damage_bar.colors.background = imgui.color_picker_argb("", config.current_config.damage_meter_UI.highlighted_damage_bar.colors.background, color_picker_flags);
config_changed = config_changed or changed; config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop(); imgui.tree_pop();
end end
@@ -4456,6 +4582,12 @@ function customization_menu.draw()
imgui.tree_pop(); imgui.tree_pop();
end end
if damage_meter_UI_changed then
for _, _player in pairs(player.list) do
player.init_UI(_player);
end
end
imgui.tree_pop(); imgui.tree_pop();
end end
@@ -4468,6 +4600,7 @@ end
function customization_menu.init_module() function customization_menu.init_module()
table_helpers = require("MHR_Overlay.Misc.table_helpers"); table_helpers = require("MHR_Overlay.Misc.table_helpers");
language = require("MHR_Overlay.Misc.language");
config = require("MHR_Overlay.Misc.config"); config = require("MHR_Overlay.Misc.config");
screen = require("MHR_Overlay.Game_Handler.screen"); screen = require("MHR_Overlay.Game_Handler.screen");
player = require("MHR_Overlay.Damage_Meter.player"); player = require("MHR_Overlay.Damage_Meter.player");