diff --git a/00 Dart Core (Required)/gamedata/configs/text/eng/dart.xml b/00 a - Dart Core (Required)/gamedata/configs/text/eng/dart.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/text/eng/dart.xml rename to 00 a - Dart Core (Required)/gamedata/configs/text/eng/dart.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/actor_menu.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/actor_menu.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/actor_menu.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/actor_menu.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/actor_menu_item.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/actor_menu_item.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/actor_menu_item.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/actor_menu_item.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/af_params.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/af_params.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/af_params.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/af_params.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/booster_params.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/booster_params.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/booster_params.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/booster_params.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/buy_menu_item.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/buy_menu_item.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/buy_menu_item.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/buy_menu_item.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/inventory_new.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/inventory_new.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/inventory_new.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/inventory_new.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/inventory_upgrade.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/inventory_upgrade.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/inventory_upgrade.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/inventory_upgrade.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/inventory_upgrade_info.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/inventory_upgrade_info.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/inventory_upgrade_info.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/inventory_upgrade_info.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/inventory_upgrade_outfit.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/inventory_upgrade_outfit.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/inventory_upgrade_outfit.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/inventory_upgrade_outfit.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/inventory_upgrade_weapons.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/inventory_upgrade_weapons.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/inventory_upgrade_weapons.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/inventory_upgrade_weapons.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/maingame.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/maingame.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/maingame.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/maingame.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/maingame_pda_msg.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/maingame_pda_msg.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/maingame_pda_msg.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/maingame_pda_msg.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/map_desc.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/map_desc.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/map_desc.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/map_desc.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/map_spots.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/map_spots.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/map_spots.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/map_spots.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/message_box.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/message_box.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/message_box.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/message_box.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/pda.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/pda.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/pda.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/pda.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/pda_contacts.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/pda_contacts.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/pda_contacts.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/pda_contacts.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/pda_dialog_character.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/pda_dialog_character.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/pda_dialog_character.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/pda_dialog_character.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/pda_encyclopedia.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/pda_encyclopedia.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/pda_encyclopedia.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/pda_encyclopedia.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/pda_glitched.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/pda_glitched.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/pda_glitched.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/pda_glitched.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/pda_logs.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/pda_logs.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/pda_logs.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/pda_logs.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/pda_npc.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/pda_npc.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/pda_npc.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/pda_npc.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/pda_radio.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/pda_radio.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/pda_radio.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/pda_radio.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/pda_ranking.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/pda_ranking.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/pda_ranking.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/pda_ranking.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/pda_relations.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/pda_relations.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/pda_relations.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/pda_relations.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/pda_taskboard.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/pda_taskboard.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/pda_taskboard.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/pda_taskboard.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/pda_tasks.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/pda_tasks.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/pda_tasks.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/pda_tasks.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/pda_warfare.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/pda_warfare.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/pda_warfare.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/pda_warfare.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/scopes.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/scopes.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/scopes.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/scopes.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/scroll_bar.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/scroll_bar.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/scroll_bar.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/scroll_bar.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/soulslike_ui_mm_gamemode.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/soulslike_ui_mm_gamemode.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/soulslike_ui_mm_gamemode.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/soulslike_ui_mm_gamemode.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/soulslike_ui_sleep_dialog.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/soulslike_ui_sleep_dialog.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/soulslike_ui_sleep_dialog.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/soulslike_ui_sleep_dialog.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/stalkers_ranking_character.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/stalkers_ranking_character.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/stalkers_ranking_character.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/stalkers_ranking_character.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/stats.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/stats.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/stats.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/stats.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/talk.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/talk.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/talk.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/talk.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/talk_character.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/talk_character.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/talk_character.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/talk_character.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_companion_inv.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_companion_inv.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_companion_inv.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_companion_inv.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_con_checker.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_con_checker.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_con_checker.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_con_checker.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_credits.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_credits.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_credits.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_credits.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_debug_launcher.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_debug_launcher.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_debug_launcher.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_debug_launcher.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_debug_lighting.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_debug_lighting.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_debug_lighting.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_debug_lighting.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_debug_weather.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_debug_weather.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_debug_weather.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_debug_weather.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_debug_wpn_hud.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_debug_wpn_hud.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_debug_wpn_hud.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_debug_wpn_hud.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_furniture_light_dialog.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_furniture_light_dialog.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_furniture_light_dialog.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_furniture_light_dialog.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_furniture_piano_dialog.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_furniture_piano_dialog.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_furniture_piano_dialog.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_furniture_piano_dialog.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_furniture_radio.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_furniture_radio.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_furniture_radio.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_furniture_radio.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_furniture_stove_dialog.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_furniture_stove_dialog.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_furniture_stove_dialog.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_furniture_stove_dialog.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_furniture_workshop_dialog.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_furniture_workshop_dialog.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_furniture_workshop_dialog.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_furniture_workshop_dialog.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_haruka_skills.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_haruka_skills.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_haruka_skills.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_haruka_skills.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_haruka_trade_stats.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_haruka_trade_stats.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_haruka_trade_stats.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_haruka_trade_stats.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_hf_placement_hud.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_hf_placement_hud.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_hf_placement_hud.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_hf_placement_hud.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_inv_btn_35.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_inv_btn_35.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_inv_btn_35.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_inv_btn_35.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_inventory.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_inventory.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_inventory.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_inventory.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_item_detail.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_item_detail.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_item_detail.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_item_detail.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_items_backpack.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_items_backpack.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_items_backpack.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_items_backpack.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_items_cook.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_items_cook.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_items_cook.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_items_cook.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_items_map.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_items_map.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_items_map.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_items_map.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_items_npc_pda.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_items_npc_pda.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_items_npc_pda.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_items_npc_pda.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_items_recipe.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_items_recipe.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_items_recipe.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_items_recipe.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_items_repair.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_items_repair.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_items_repair.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_items_repair.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_mcm.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_mcm.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_mcm.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_mcm.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_mm_faction_select.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_mm_faction_select.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_mm_faction_select.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_mm_faction_select.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_mm_load_dlg.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_mm_load_dlg.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_mm_load_dlg.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_mm_load_dlg.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_mm_main.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_mm_main.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_mm_main.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_mm_main.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_mm_save_dlg.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_mm_save_dlg.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_mm_save_dlg.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_mm_save_dlg.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_mod_elements.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_mod_elements.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_mod_elements.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_mod_elements.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_mp_awards.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_mp_awards.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_mp_awards.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_mp_awards.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_mutant_loot.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_mutant_loot.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_mutant_loot.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_mutant_loot.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_new_bars.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_new_bars.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_new_bars.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_new_bars.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_options.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_options.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_options.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_options.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_radial_menu.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_radial_menu.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_radial_menu.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_radial_menu.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_sleep_dialog.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_sleep_dialog.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_sleep_dialog.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_sleep_dialog.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_wheel_ammo.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_wheel_ammo.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_wheel_ammo.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_wheel_ammo.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_wheel_companion.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_wheel_companion.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_wheel_companion.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_wheel_companion.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/ui_workshop.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/ui_workshop.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/ui_workshop.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/ui_workshop.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/utils.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/utils.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/utils.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/utils.xml diff --git a/00 Dart Core (Required)/gamedata/configs/ui/zone_map.xml b/00 a - Dart Core (Required)/gamedata/configs/ui/zone_map.xml similarity index 100% rename from 00 Dart Core (Required)/gamedata/configs/ui/zone_map.xml rename to 00 a - Dart Core (Required)/gamedata/configs/ui/zone_map.xml diff --git a/00 Dart Core (Required)/gamedata/scripts/dart_core.script b/00 a - Dart Core (Required)/gamedata/scripts/dart_core.script similarity index 100% rename from 00 Dart Core (Required)/gamedata/scripts/dart_core.script rename to 00 a - Dart Core (Required)/gamedata/scripts/dart_core.script diff --git a/00 Dart Core (Required)/gamedata/scripts/dart_dxml.script b/00 a - Dart Core (Required)/gamedata/scripts/dart_dxml.script similarity index 100% rename from 00 Dart Core (Required)/gamedata/scripts/dart_dxml.script rename to 00 a - Dart Core (Required)/gamedata/scripts/dart_dxml.script diff --git a/00 Dart Core (Required)/gamedata/scripts/dart_mcm.script b/00 a - Dart Core (Required)/gamedata/scripts/dart_mcm.script similarity index 100% rename from 00 Dart Core (Required)/gamedata/scripts/dart_mcm.script rename to 00 a - Dart Core (Required)/gamedata/scripts/dart_mcm.script diff --git a/00 Dart Core (Required)/gamedata/scripts/dart_module.script b/00 a - Dart Core (Required)/gamedata/scripts/dart_module.script similarity index 100% rename from 00 Dart Core (Required)/gamedata/scripts/dart_module.script rename to 00 a - Dart Core (Required)/gamedata/scripts/dart_module.script diff --git a/00 Dart Core (Required)/gamedata/scripts/dart_utils.script b/00 a - Dart Core (Required)/gamedata/scripts/dart_utils.script similarity index 97% rename from 00 Dart Core (Required)/gamedata/scripts/dart_utils.script rename to 00 a - Dart Core (Required)/gamedata/scripts/dart_utils.script index 8476231..a74b98b 100644 --- a/00 Dart Core (Required)/gamedata/scripts/dart_utils.script +++ b/00 a - Dart Core (Required)/gamedata/scripts/dart_utils.script @@ -209,11 +209,11 @@ function correctX(x, targetRatio, settings) if x and align and align[1] and align[1] ~= anchor1 then if align[1] == "CENTER" then l = Dart.baseWidth / 2 - (r - l) / 2 - r = Dart.baseWidth / 2 + (r - l) / 2 + r = Dart.baseWidth / 2 + (r - bounds.l) / 2 x = x + (l - bounds.l) else l = Dart.baseWidth - r - r = Dart.baseWidth - l + r = Dart.baseWidth - bounds.l x = x + (l - bounds.l) end @@ -270,11 +270,11 @@ function correctY(y, targetRatio, settings) if y and align and align[2] and align[2] ~= anchor2 then if align[2] == "CENTER" then t = Dart.baseHeight / 2 - (b - t) / 2 - b = Dart.baseHeight / 2 + (b - t) / 2 + b = Dart.baseHeight / 2 + (b - bounds.t) / 2 y = y + (t - bounds.t) else - t = Dart.baseHeight - t - b = Dart.baseHeight - b + t = Dart.baseHeight - b + b = Dart.baseHeight - bounds.t y = y + (t - bounds.t) end diff --git a/01 (HUD) BHS/gamedata/configs/text/eng/dart_bhs.xml b/00 b - (HUD) BHS/gamedata/configs/text/eng/dart_bhs.xml similarity index 100% rename from 01 (HUD) BHS/gamedata/configs/text/eng/dart_bhs.xml rename to 00 b - (HUD) BHS/gamedata/configs/text/eng/dart_bhs.xml diff --git a/01 (HUD) BHS/gamedata/configs/unlocalizers/unlocalizer_dart_bhs.ltx b/00 b - (HUD) BHS/gamedata/configs/unlocalizers/unlocalizer_dart_bhs.ltx similarity index 100% rename from 01 (HUD) BHS/gamedata/configs/unlocalizers/unlocalizer_dart_bhs.ltx rename to 00 b - (HUD) BHS/gamedata/configs/unlocalizers/unlocalizer_dart_bhs.ltx diff --git a/01 (HUD) BHS/gamedata/scripts/dart_bhs_mcm.script b/00 b - (HUD) BHS/gamedata/scripts/dart_bhs_mcm.script similarity index 100% rename from 01 (HUD) BHS/gamedata/scripts/dart_bhs_mcm.script rename to 00 b - (HUD) BHS/gamedata/scripts/dart_bhs_mcm.script diff --git a/01 (HUD) BHS/gamedata/scripts/modxml_z_dart_bhs.script b/00 b - (HUD) BHS/gamedata/scripts/modxml_z_dart_bhs.script similarity index 100% rename from 01 (HUD) BHS/gamedata/scripts/modxml_z_dart_bhs.script rename to 00 b - (HUD) BHS/gamedata/scripts/modxml_z_dart_bhs.script diff --git a/02 (HUD) Companion List/gamedata/configs/text/eng/dart_companion_list.xml b/00 c - (HUD) Companion List/gamedata/configs/text/eng/dart_companion_list.xml similarity index 100% rename from 02 (HUD) Companion List/gamedata/configs/text/eng/dart_companion_list.xml rename to 00 c - (HUD) Companion List/gamedata/configs/text/eng/dart_companion_list.xml diff --git a/02 (HUD) Companion List/gamedata/configs/unlocalizers/unlocalizer_dart_companion_list.ltx b/00 c - (HUD) Companion List/gamedata/configs/unlocalizers/unlocalizer_dart_companion_list.ltx similarity index 100% rename from 02 (HUD) Companion List/gamedata/configs/unlocalizers/unlocalizer_dart_companion_list.ltx rename to 00 c - (HUD) Companion List/gamedata/configs/unlocalizers/unlocalizer_dart_companion_list.ltx diff --git a/02 (HUD) Companion List/gamedata/scripts/dart_companion_list_mcm.script b/00 c - (HUD) Companion List/gamedata/scripts/dart_companion_list_mcm.script similarity index 100% rename from 02 (HUD) Companion List/gamedata/scripts/dart_companion_list_mcm.script rename to 00 c - (HUD) Companion List/gamedata/scripts/dart_companion_list_mcm.script diff --git a/02 (HUD) Companion List/gamedata/scripts/modxml_z_dart_companion_list.script b/00 c - (HUD) Companion List/gamedata/scripts/modxml_z_dart_companion_list.script similarity index 100% rename from 02 (HUD) Companion List/gamedata/scripts/modxml_z_dart_companion_list.script rename to 00 c - (HUD) Companion List/gamedata/scripts/modxml_z_dart_companion_list.script diff --git a/02 (HUD) Companion List/gamedata/scripts/zzz_dart_companion_list.script b/00 c - (HUD) Companion List/gamedata/scripts/zzz_dart_companion_list.script similarity index 100% rename from 02 (HUD) Companion List/gamedata/scripts/zzz_dart_companion_list.script rename to 00 c - (HUD) Companion List/gamedata/scripts/zzz_dart_companion_list.script diff --git a/03 (HUD) Faction ID Patches/gamedata/configs/text/eng/dart_patches.xml b/00 d - (HUD) Faction ID Patches/gamedata/configs/text/eng/dart_patches.xml similarity index 100% rename from 03 (HUD) Faction ID Patches/gamedata/configs/text/eng/dart_patches.xml rename to 00 d - (HUD) Faction ID Patches/gamedata/configs/text/eng/dart_patches.xml diff --git a/03 (HUD) Faction ID Patches/gamedata/configs/unlocalizers/unlocalizer_dart_patches.ltx b/00 d - (HUD) Faction ID Patches/gamedata/configs/unlocalizers/unlocalizer_dart_patches.ltx similarity index 100% rename from 03 (HUD) Faction ID Patches/gamedata/configs/unlocalizers/unlocalizer_dart_patches.ltx rename to 00 d - (HUD) Faction ID Patches/gamedata/configs/unlocalizers/unlocalizer_dart_patches.ltx diff --git a/03 (HUD) Faction ID Patches/gamedata/scripts/dart_patches_mcm.script b/00 d - (HUD) Faction ID Patches/gamedata/scripts/dart_patches_mcm.script similarity index 100% rename from 03 (HUD) Faction ID Patches/gamedata/scripts/dart_patches_mcm.script rename to 00 d - (HUD) Faction ID Patches/gamedata/scripts/dart_patches_mcm.script diff --git a/03 (HUD) Faction ID Patches/gamedata/scripts/modxml_z_dart_patches.script b/00 d - (HUD) Faction ID Patches/gamedata/scripts/modxml_z_dart_patches.script similarity index 100% rename from 03 (HUD) Faction ID Patches/gamedata/scripts/modxml_z_dart_patches.script rename to 00 d - (HUD) Faction ID Patches/gamedata/scripts/modxml_z_dart_patches.script diff --git a/03 (HUD) Faction ID Patches/gamedata/scripts/zzz_dart_patches.script b/00 d - (HUD) Faction ID Patches/gamedata/scripts/zzz_dart_patches.script similarity index 100% rename from 03 (HUD) Faction ID Patches/gamedata/scripts/zzz_dart_patches.script rename to 00 d - (HUD) Faction ID Patches/gamedata/scripts/zzz_dart_patches.script diff --git a/04 (HUD) Status Icons/gamedata/configs/text/eng/dart_status_icons.xml b/00 e - (HUD) Status Icons/gamedata/configs/text/eng/dart_status_icons.xml similarity index 100% rename from 04 (HUD) Status Icons/gamedata/configs/text/eng/dart_status_icons.xml rename to 00 e - (HUD) Status Icons/gamedata/configs/text/eng/dart_status_icons.xml diff --git a/04 (HUD) Status Icons/gamedata/scripts/dart_status_icons_mcm.script b/00 e - (HUD) Status Icons/gamedata/scripts/dart_status_icons_mcm.script similarity index 91% rename from 04 (HUD) Status Icons/gamedata/scripts/dart_status_icons_mcm.script rename to 00 e - (HUD) Status Icons/gamedata/scripts/dart_status_icons_mcm.script index e891962..2788887 100644 --- a/04 (HUD) Status Icons/gamedata/scripts/dart_status_icons_mcm.script +++ b/00 e - (HUD) Status Icons/gamedata/scripts/dart_status_icons_mcm.script @@ -49,7 +49,12 @@ function mcmOnLoad(options) MCM.getOffsetXField({def = config.offset[1]}), MCM.getOffsetYField({def = config.offset[2]}), MCM.getLine(), - MCM.getSpacingField({hint = "dart_statusIcons_spacing", def = config.spacing}), + MCM.getSpacingField({ + hint = "dart_statusIcons_spacing", + def = config.spacing, + min = -128, + max = 128 + }), } } end diff --git a/04 (HUD) Status Icons/gamedata/scripts/modxml_z_dart_status_icons.script b/00 e - (HUD) Status Icons/gamedata/scripts/modxml_z_dart_status_icons.script similarity index 100% rename from 04 (HUD) Status Icons/gamedata/scripts/modxml_z_dart_status_icons.script rename to 00 e - (HUD) Status Icons/gamedata/scripts/modxml_z_dart_status_icons.script diff --git a/04 (HUD) Status Icons/gamedata/scripts/zzz_dart_status_icons.script b/00 e - (HUD) Status Icons/gamedata/scripts/zzz_dart_status_icons.script similarity index 100% rename from 04 (HUD) Status Icons/gamedata/scripts/zzz_dart_status_icons.script rename to 00 e - (HUD) Status Icons/gamedata/scripts/zzz_dart_status_icons.script diff --git a/05 (HUD) Messsages List/gamedata/configs/text/eng/dart_messages.xml b/00 f - (HUD) Messsages List/gamedata/configs/text/eng/dart_messages.xml similarity index 100% rename from 05 (HUD) Messsages List/gamedata/configs/text/eng/dart_messages.xml rename to 00 f - (HUD) Messsages List/gamedata/configs/text/eng/dart_messages.xml diff --git a/05 (HUD) Messsages List/gamedata/scripts/dart_messages_mcm.script b/00 f - (HUD) Messsages List/gamedata/scripts/dart_messages_mcm.script similarity index 100% rename from 05 (HUD) Messsages List/gamedata/scripts/dart_messages_mcm.script rename to 00 f - (HUD) Messsages List/gamedata/scripts/dart_messages_mcm.script diff --git a/05 (HUD) Messsages List/gamedata/scripts/modxml_z_dart_messages.script b/00 f - (HUD) Messsages List/gamedata/scripts/modxml_z_dart_messages.script similarity index 100% rename from 05 (HUD) Messsages List/gamedata/scripts/modxml_z_dart_messages.script rename to 00 f - (HUD) Messsages List/gamedata/scripts/modxml_z_dart_messages.script diff --git a/06 PDA Map Markers/gamedata/scripts/modxml_z_dart_markers.script b/00 g - (PDA) Map Markers/gamedata/scripts/modxml_z_dart_markers.script similarity index 100% rename from 06 PDA Map Markers/gamedata/scripts/modxml_z_dart_markers.script rename to 00 g - (PDA) Map Markers/gamedata/scripts/modxml_z_dart_markers.script diff --git a/11 PDA/gamedata/configs/text/eng/dart_pda.xml b/00 h - (PDA) Font Sizes/gamedata/configs/text/eng/dart_pda.xml similarity index 100% rename from 11 PDA/gamedata/configs/text/eng/dart_pda.xml rename to 00 h - (PDA) Font Sizes/gamedata/configs/text/eng/dart_pda.xml diff --git a/11 PDA/gamedata/configs/unlocalizers/unlocalizer_dart_pda.ltx b/00 h - (PDA) Font Sizes/gamedata/configs/unlocalizers/unlocalizer_dart_pda.ltx similarity index 100% rename from 11 PDA/gamedata/configs/unlocalizers/unlocalizer_dart_pda.ltx rename to 00 h - (PDA) Font Sizes/gamedata/configs/unlocalizers/unlocalizer_dart_pda.ltx diff --git a/11 PDA/gamedata/scripts/dart_pda_mcm.script b/00 h - (PDA) Font Sizes/gamedata/scripts/dart_pda_mcm.script similarity index 86% rename from 11 PDA/gamedata/scripts/dart_pda_mcm.script rename to 00 h - (PDA) Font Sizes/gamedata/scripts/dart_pda_mcm.script index 081dbe1..495ed88 100644 --- a/11 PDA/gamedata/scripts/dart_pda_mcm.script +++ b/00 h - (PDA) Font Sizes/gamedata/scripts/dart_pda_mcm.script @@ -26,7 +26,7 @@ end function mcmOnLoad(options) - options[11] = { + options[7] = { id = "dart_pda", sh = true, gr = { @@ -65,12 +65,21 @@ function onPreRefresh() ui_pda_contacts_tab.SINGLETON = null ui_pda_encyclopedia_tab.SINGLETON = null - ui_pda_glitched_tab.SINGLETON = null - ui_pda_npc_tab.SINGLETON = null - ui_pda_radio_tab.SINGLETON = null ui_pda_relations_tab.SINGLETON = null - ui_pda_taskboard_tab.SINGLETON = null - ui_pda_warfare_tab.SINGLETON = null + ui_pda_radio_tab.SINGLETON = null + ui_pda_npc_tab.SINGLETON = null + + if ui_pda_glitched_tab then + ui_pda_glitched_tab.SINGLETON = null + end + + if ui_pda_taskboard_tab then + ui_pda_taskboard_tab.SINGLETON = null + end + + if ui_pda_warfare_tab then + ui_pda_warfare_tab.SINGLETON = null + end end diff --git a/11 PDA/gamedata/scripts/modxml_z_dart_pda.script b/00 h - (PDA) Font Sizes/gamedata/scripts/modxml_z_dart_pda.script similarity index 100% rename from 11 PDA/gamedata/scripts/modxml_z_dart_pda.script rename to 00 h - (PDA) Font Sizes/gamedata/scripts/modxml_z_dart_pda.script diff --git a/11 PDA/gamedata/scripts/zzz_dart_pda.script b/00 h - (PDA) Font Sizes/gamedata/scripts/zzz_dart_pda.script similarity index 100% rename from 11 PDA/gamedata/scripts/zzz_dart_pda.script rename to 00 h - (PDA) Font Sizes/gamedata/scripts/zzz_dart_pda.script diff --git a/07 Circular Minimap/gamedata/configs/text/eng/dart_minimap.xml b/00 i - Minimap & Compass/gamedata/configs/text/eng/dart_minimap.xml similarity index 86% rename from 07 Circular Minimap/gamedata/configs/text/eng/dart_minimap.xml rename to 00 i - Minimap & Compass/gamedata/configs/text/eng/dart_minimap.xml index 29a3dec..6444cee 100644 --- a/07 Circular Minimap/gamedata/configs/text/eng/dart_minimap.xml +++ b/00 i - Minimap & Compass/gamedata/configs/text/eng/dart_minimap.xml @@ -34,4 +34,8 @@ Adjust the vertical position of the clock. Positive values move it down. Negative values move it up. + + + NOTE: this only affects the circular minimap because the clock position is fixed in the square minimap. + diff --git a/07 Circular Minimap/gamedata/scripts/dart_minimap_mcm.script b/00 i - Minimap & Compass/gamedata/scripts/dart_minimap_mcm.script similarity index 96% rename from 07 Circular Minimap/gamedata/scripts/dart_minimap_mcm.script rename to 00 i - Minimap & Compass/gamedata/scripts/dart_minimap_mcm.script index 2268f73..aa316e1 100644 --- a/07 Circular Minimap/gamedata/scripts/dart_minimap_mcm.script +++ b/00 i - Minimap & Compass/gamedata/scripts/dart_minimap_mcm.script @@ -53,7 +53,7 @@ end function mcmOnLoad(options) - options[7] = { + options[6] = { id = "dart_minimap", sh = true, gr = { @@ -81,6 +81,7 @@ function mcmOnLoad(options) hint = "dart_minimap_clockOffsetY", def = config.clockOffset[2] }), + MCM.getNote({text = "ui_mcm_dart_minimap_clockOffset_note"}), } } end diff --git a/00 i - Minimap & Compass/gamedata/scripts/modxml_z_dart_minimap.script b/00 i - Minimap & Compass/gamedata/scripts/modxml_z_dart_minimap.script new file mode 100644 index 0000000..dfbda91 --- /dev/null +++ b/00 i - Minimap & Compass/gamedata/scripts/modxml_z_dart_minimap.script @@ -0,0 +1,130 @@ +local Dart = dart_core +local Utils = dart_utils +local Module = dart_module + + +local mod = "minimap" + + +function parseCircularMap(XML, config) + local compass = XML:query("minimap > compass")[1] + local frame = XML:query("minimap > level_frame")[1] + local bg = XML:query("minimap > background")[1] + local clock = XML:query("minimap > clock_wnd")[1] + + local compassAttrs = XML:safeGetAttrs(compass) + local frameAttrs = XML:safeGetAttrs(frame) + local bgAttrs = XML:safeGetAttrs(bg) + + local scaleSettings = Utils.merge(config, { + bounds = { + l = (frameAttrs.x * Dart.baseHeight - compassAttrs.width / 2), + t = (frameAttrs.y * Dart.baseHeight - compassAttrs.height / 2), + r = (frameAttrs.x * Dart.baseHeight + compassAttrs.width / 2), + b = (frameAttrs.y * Dart.baseHeight + compassAttrs.height / 2), + } + }) + + XML:safeSetAttrs(frame, function(attrs) + local dumbUnits = Dart.baseHeight + return { + x = Utils.correctX(attrs.x * dumbUnits, XML.aspectRatio, scaleSettings) / dumbUnits, + y = Utils.correctY(attrs.y * dumbUnits, XML.aspectRatio, scaleSettings) / dumbUnits, + width = attrs.width * config.scale, + height = attrs.height * config.scale, + a = config.alpha, + } + end) + + XML:safeSetAttrs(compass, function(attrs) + return { + width = attrs.width * config.scale, + height = attrs.height * config.scale, + } + end) + + XML:safeSetAttrs(bg, function(attrs) + return { + width = attrs.width * config.scale, + height = attrs.height * config.scale, + } + end) + + XML:safeSetAttrs(clock, function(attrs) + local dumbUnits = bgAttrs.height * Dart.baseHeight + return { + x = (attrs.x * dumbUnits + config.clockOffset[1] / Utils.getAspectRatioVs(Dart.ratio4x3)) / dumbUnits, + y = (attrs.y * dumbUnits + config.clockOffset[2] / Utils.getAspectRatioVs(Dart.ratio4x3)) / dumbUnits, + } + end) +end + + +function parseSquareMap(XML, config) + local compass = XML:query("minimap > compass")[1] + local frame = XML:query("minimap > level_frame")[1] + local bg = XML:query("minimap > background")[1] + local counter = XML:query("minimap > static_counter")[1] + + local frameAttrs = XML:safeGetAttrs(frame) + local width = math.max(frameAttrs.width, frameAttrs.height) + local height = math.min(frameAttrs.width, frameAttrs.height) + + local scaleSettings = Utils.merge(config, { + anchor = {"LEFT", "TOP"}, + bounds = { + l = (frameAttrs.x - width / 2) * Dart.baseHeight, + r = (frameAttrs.x + width / 2) * Dart.baseHeight, + t = (frameAttrs.y - height / 2) * Dart.baseHeight, + b = (frameAttrs.y + height / 2) * Dart.baseHeight, + } + }) + + XML:safeSetAttrs(frame, function(attrs) + local dumbUnits = Dart.baseHeight + return { + x = Utils.correctX(attrs.x * dumbUnits, XML.aspectRatio, scaleSettings) / dumbUnits, + y = Utils.correctY(attrs.y * dumbUnits, XML.aspectRatio, scaleSettings) / dumbUnits, + width = width * config.scale * Dart.ratio4x3, + height = height * config.scale, + a = config.alpha, + ratio_mode = 1, + } + end) + + XML:safeSetAttrs(compass, function(attrs) + return { + width = attrs.width * config.scale, + height = attrs.height * config.scale, + } + end) + + XML:safeSetAttrs(bg, function(attrs) + return { + width = attrs.width * config.scale, + height = attrs.height * config.scale, + } + end) + + -- hide the engine-rendered counter + XML:safeSetAttrs(counter, {x = -9999, y = -9999}) +end + + +function parseZoneMap(XML, config) + local frame = XML:query("minimap > level_frame")[1] + local frameAttrs = XML:safeGetAttrs(frame) + + local isSquareMap = tostring(frameAttrs.rounded) == "0" + + if isSquareMap then + parseSquareMap(XML, config) + else + parseCircularMap(XML, config) + end +end + + +function on_xml_read() + Module.registerModule(mod, "zone_map", parseZoneMap) +end diff --git a/00 i - Minimap & Compass/gamedata/scripts/ui_minimap_counter.script b/00 i - Minimap & Compass/gamedata/scripts/ui_minimap_counter.script new file mode 100644 index 0000000..9a1f200 --- /dev/null +++ b/00 i - Minimap & Compass/gamedata/scripts/ui_minimap_counter.script @@ -0,0 +1,2 @@ +-- Disable the script-rendered map counter +local stub = true diff --git a/08 Ammo & Companion Wheels/gamedata/configs/text/eng/dart_ammo_wheel.xml b/00 j - Ammo & Companion Wheels/gamedata/configs/text/eng/dart_ammo_wheel.xml similarity index 100% rename from 08 Ammo & Companion Wheels/gamedata/configs/text/eng/dart_ammo_wheel.xml rename to 00 j - Ammo & Companion Wheels/gamedata/configs/text/eng/dart_ammo_wheel.xml diff --git a/08 Ammo & Companion Wheels/gamedata/configs/text/eng/dart_companion_wheel.xml b/00 j - Ammo & Companion Wheels/gamedata/configs/text/eng/dart_companion_wheel.xml similarity index 100% rename from 08 Ammo & Companion Wheels/gamedata/configs/text/eng/dart_companion_wheel.xml rename to 00 j - Ammo & Companion Wheels/gamedata/configs/text/eng/dart_companion_wheel.xml diff --git a/08 Ammo & Companion Wheels/gamedata/configs/unlocalizers/unlocalizer_dart_ammo_wheel.ltx b/00 j - Ammo & Companion Wheels/gamedata/configs/unlocalizers/unlocalizer_dart_ammo_wheel.ltx similarity index 100% rename from 08 Ammo & Companion Wheels/gamedata/configs/unlocalizers/unlocalizer_dart_ammo_wheel.ltx rename to 00 j - Ammo & Companion Wheels/gamedata/configs/unlocalizers/unlocalizer_dart_ammo_wheel.ltx diff --git a/08 Ammo & Companion Wheels/gamedata/configs/unlocalizers/unlocalizer_dart_companion_wheel.ltx b/00 j - Ammo & Companion Wheels/gamedata/configs/unlocalizers/unlocalizer_dart_companion_wheel.ltx similarity index 100% rename from 08 Ammo & Companion Wheels/gamedata/configs/unlocalizers/unlocalizer_dart_companion_wheel.ltx rename to 00 j - Ammo & Companion Wheels/gamedata/configs/unlocalizers/unlocalizer_dart_companion_wheel.ltx diff --git a/08 Ammo & Companion Wheels/gamedata/scripts/dart_ammo_wheel_mcm.script b/00 j - Ammo & Companion Wheels/gamedata/scripts/dart_ammo_wheel_mcm.script similarity index 100% rename from 08 Ammo & Companion Wheels/gamedata/scripts/dart_ammo_wheel_mcm.script rename to 00 j - Ammo & Companion Wheels/gamedata/scripts/dart_ammo_wheel_mcm.script diff --git a/08 Ammo & Companion Wheels/gamedata/scripts/dart_companion_wheel_mcm.script b/00 j - Ammo & Companion Wheels/gamedata/scripts/dart_companion_wheel_mcm.script similarity index 100% rename from 08 Ammo & Companion Wheels/gamedata/scripts/dart_companion_wheel_mcm.script rename to 00 j - Ammo & Companion Wheels/gamedata/scripts/dart_companion_wheel_mcm.script diff --git a/08 Ammo & Companion Wheels/gamedata/scripts/modxml_z_dart_ammo_wheel.script b/00 j - Ammo & Companion Wheels/gamedata/scripts/modxml_z_dart_ammo_wheel.script similarity index 100% rename from 08 Ammo & Companion Wheels/gamedata/scripts/modxml_z_dart_ammo_wheel.script rename to 00 j - Ammo & Companion Wheels/gamedata/scripts/modxml_z_dart_ammo_wheel.script diff --git a/08 Ammo & Companion Wheels/gamedata/scripts/modxml_z_dart_companion_wheel.script b/00 j - Ammo & Companion Wheels/gamedata/scripts/modxml_z_dart_companion_wheel.script similarity index 100% rename from 08 Ammo & Companion Wheels/gamedata/scripts/modxml_z_dart_companion_wheel.script rename to 00 j - Ammo & Companion Wheels/gamedata/scripts/modxml_z_dart_companion_wheel.script diff --git a/09 Scopes/gamedata/scripts/modxml_z_dart_scopes.script b/00 k - 2D Scopes/gamedata/scripts/modxml_z_dart_scopes.script similarity index 100% rename from 09 Scopes/gamedata/scripts/modxml_z_dart_scopes.script rename to 00 k - 2D Scopes/gamedata/scripts/modxml_z_dart_scopes.script diff --git a/09 Scopes/gamedata/textures/wpn_crosshair_bino.dds b/00 k - 2D Scopes/gamedata/textures/wpn_crosshair_bino.dds similarity index 100% rename from 09 Scopes/gamedata/textures/wpn_crosshair_bino.dds rename to 00 k - 2D Scopes/gamedata/textures/wpn_crosshair_bino.dds diff --git a/10 Inventory Icons/gamedata/configs/text/eng/dart_inventory.xml b/00 l - Inventory Icons/gamedata/configs/text/eng/dart_inventory.xml similarity index 73% rename from 10 Inventory Icons/gamedata/configs/text/eng/dart_inventory.xml rename to 00 l - Inventory Icons/gamedata/configs/text/eng/dart_inventory.xml index 82e273c..d121e65 100644 --- a/10 Inventory Icons/gamedata/configs/text/eng/dart_inventory.xml +++ b/00 l - Inventory Icons/gamedata/configs/text/eng/dart_inventory.xml @@ -15,6 +15,14 @@ Adjust the size of icons. Values greater than 1 make them larger. Values less than 1 make them smaller. + + Also Scale Icons for Equipped Items + + + + In addition to inventories, also scale the icons in the player's equipment slots (weapons, armor, belt, quick slots, etc.). + + Icon Spacing Scale diff --git a/10 Inventory Icons/gamedata/configs/unlocalizers/unlocalizer_dart_inventory.ltx b/00 l - Inventory Icons/gamedata/configs/unlocalizers/unlocalizer_dart_inventory.ltx similarity index 100% rename from 10 Inventory Icons/gamedata/configs/unlocalizers/unlocalizer_dart_inventory.ltx rename to 00 l - Inventory Icons/gamedata/configs/unlocalizers/unlocalizer_dart_inventory.ltx diff --git a/10 Inventory Icons/gamedata/scripts/dart_inventory_mcm.script b/00 l - Inventory Icons/gamedata/scripts/dart_inventory_mcm.script similarity index 58% rename from 10 Inventory Icons/gamedata/scripts/dart_inventory_mcm.script rename to 00 l - Inventory Icons/gamedata/scripts/dart_inventory_mcm.script index 96bc414..09a0af3 100644 --- a/10 Inventory Icons/gamedata/scripts/dart_inventory_mcm.script +++ b/00 l - Inventory Icons/gamedata/scripts/dart_inventory_mcm.script @@ -4,7 +4,7 @@ local Utils = dart_utils local config = { - scale = 0.75, + scale = 1, padScale = 0, } @@ -14,13 +14,18 @@ Dart.state.inventory = {} function mcmOnConfig(mcmConfig) - local scale = ui_mcm.get("dart/dart_inventory/scale") - local padScale = ui_mcm.get("dart/dart_inventory/padScale") + local scale = ui_mcm.get("dart/dart_inventory/scale") + local scaleEquipment = ui_mcm.get("dart/dart_inventory/scaleEquipment") + local padScale = ui_mcm.get("dart/dart_inventory/padScale") if scale then mcmConfig.inventory.scale = scale end + if scaleEquipment then + mcmConfig.inventory.scaleEquipment = scaleEquipment + end + if padScale then mcmConfig.inventory.padScale = padScale end @@ -28,13 +33,14 @@ end function mcmOnLoad(options) - options[10] = { + options[9] = { id = "dart_inventory", sh = true, gr = { MCM.getTitle(), MCM.getSubtitle({text = "ui_mcm_dart_inventory_title"}), MCM.getScaleField({hint = "dart_inventory_scale", def = config.scale}), + MCM.getCheckboxField({id = "scaleEquipment", hint = "dart_inventory_scaleEquipment"}), MCM.getLine(), MCM.getScaleField({ id = "padScale", @@ -49,27 +55,5 @@ function mcmOnLoad(options) end -function onPreRefresh() - if ui_inventory.GUI then - ui_inventory.GUI:actor_on_net_destroy() - end -end - - -function onPostRefresh() - if zzz_rax_sortingplus_mcm then - zzz_rax_sortingplus_mcm.actor_on_first_update() - end - if zz_ui_inventory_better_stats_bars then - zz_ui_inventory_better_stats_bars.on_option_change() - end - if custom_functor_autoinject then - custom_functor_autoinject.process_queue() - end -end - - RegisterScriptCallback("on_dart_mcm_load", mcmOnLoad) RegisterScriptCallback("on_dart_mcm_config", mcmOnConfig) -RegisterScriptCallback("on_dart_pre_refresh", onPreRefresh) -RegisterScriptCallback("on_dart_post_refresh", onPostRefresh) diff --git a/10 Inventory Icons/gamedata/scripts/modxml_z_dart_inventory.script b/00 l - Inventory Icons/gamedata/scripts/modxml_z_dart_inventory.script similarity index 100% rename from 10 Inventory Icons/gamedata/scripts/modxml_z_dart_inventory.script rename to 00 l - Inventory Icons/gamedata/scripts/modxml_z_dart_inventory.script diff --git a/10 Inventory Icons/gamedata/scripts/zzz_dart_inventory.script b/00 l - Inventory Icons/gamedata/scripts/zzz_dart_inventory.script similarity index 77% rename from 10 Inventory Icons/gamedata/scripts/zzz_dart_inventory.script rename to 00 l - Inventory Icons/gamedata/scripts/zzz_dart_inventory.script index b112d61..69fa0aa 100644 --- a/10 Inventory Icons/gamedata/scripts/zzz_dart_inventory.script +++ b/00 l - Inventory Icons/gamedata/scripts/zzz_dart_inventory.script @@ -7,10 +7,10 @@ local mod = "inventory" Module.createLogger(mod)("Monkey patching UICellContainer:InitControls()") --- only auto-resize these container IDs (just a best guess) +-- only auto-resize these container IDs (best guess) function shouldAutoResize(container) - return - container.ID == "actor_bag" + return nil + or container.ID == "actor_bag" or container.ID == "actor_trade" or container.ID == "actor_trade_bag" or container.ID == "npc_bag" @@ -19,6 +19,16 @@ function shouldAutoResize(container) end +function shouldScale(container) + local config = Module.config(mod) + + return config.scaleEquipment + or container.ID ~= "actor_equ" + and container.ID ~= "actor_belt" + and container.ID ~= "actor_quick" +end + + local InitControls = utils_ui.UICellContainer.InitControls function utils_ui.UICellContainer:InitControls(owner, prof, ele_base) @@ -48,8 +58,10 @@ function utils_ui.UICellContainer:InitControls(owner, prof, ele_base) end -- grid_size doesn't stretch to aspect ratio but grid_line does - self.grid_size = gridSize - self.grid_line = Utils.correctW(gridLine, xmlAspectRatio) + if shouldScale(self) then + self.grid_size = gridSize + self.grid_line = Utils.correctW(gridLine, xmlAspectRatio) + end return InitControls(self, owner, prof, ele_base) end diff --git a/12 Mask Tweaks (from GIRTH)/gamedata/shaders/r3/gasmask_common.h b/00 m - Mask Overlays/gamedata/shaders/r3/gasmask_common.h similarity index 100% rename from 12 Mask Tweaks (from GIRTH)/gamedata/shaders/r3/gasmask_common.h rename to 00 m - Mask Overlays/gamedata/shaders/r3/gasmask_common.h diff --git a/12 Mask Tweaks (from GIRTH)/gamedata/shaders/r3/gasmask_dudv.ps b/00 m - Mask Overlays/gamedata/shaders/r3/gasmask_dudv.ps similarity index 100% rename from 12 Mask Tweaks (from GIRTH)/gamedata/shaders/r3/gasmask_dudv.ps rename to 00 m - Mask Overlays/gamedata/shaders/r3/gasmask_dudv.ps diff --git a/13 Ammo Type HUD/gamedata/configs/text/eng/dart_ammo_type.xml b/01 n - Ammo Type HUD/gamedata/configs/text/eng/dart_ammo_type.xml similarity index 100% rename from 13 Ammo Type HUD/gamedata/configs/text/eng/dart_ammo_type.xml rename to 01 n - Ammo Type HUD/gamedata/configs/text/eng/dart_ammo_type.xml diff --git a/13 Ammo Type HUD/gamedata/scripts/dart_ammo_type_mcm.script b/01 n - Ammo Type HUD/gamedata/scripts/dart_ammo_type_mcm.script similarity index 100% rename from 13 Ammo Type HUD/gamedata/scripts/dart_ammo_type_mcm.script rename to 01 n - Ammo Type HUD/gamedata/scripts/dart_ammo_type_mcm.script diff --git a/13 Ammo Type HUD/gamedata/scripts/modxml_z_dart_ammo_type.script b/01 n - Ammo Type HUD/gamedata/scripts/modxml_z_dart_ammo_type.script similarity index 100% rename from 13 Ammo Type HUD/gamedata/scripts/modxml_z_dart_ammo_type.script rename to 01 n - Ammo Type HUD/gamedata/scripts/modxml_z_dart_ammo_type.script diff --git a/07 Circular Minimap/gamedata/scripts/modxml_z_dart_minimap.script b/07 Circular Minimap/gamedata/scripts/modxml_z_dart_minimap.script deleted file mode 100644 index 2c53569..0000000 --- a/07 Circular Minimap/gamedata/scripts/modxml_z_dart_minimap.script +++ /dev/null @@ -1,68 +0,0 @@ -local Dart = dart_core -local Utils = dart_utils -local Module = dart_module - - -local mod = "minimap" - - --- We can't use XML:correctElement() because: --- a. minimap elements are expressed in dumb units for no reason --- b. minimap element widths are aleady adjusted for aspect ratio -function parseZoneMap(XML, config) - local compass = XML:query("minimap > compass")[1] - local frame = XML:query("minimap > level_frame")[1] - local bg = XML:query("minimap > background")[1] - local clock = XML:query("minimap > clock_wnd")[1] - - local compassAttrs = XML:safeGetAttrs(compass) - local frameAttrs = XML:safeGetAttrs(frame) - local bgAttrs = XML:safeGetAttrs(bg) - - local scaleSettings = Utils.merge(config, { - bounds = { - l = (frameAttrs.x * Dart.baseHeight - compassAttrs.width / 2), - t = (frameAttrs.y * Dart.baseHeight - compassAttrs.height / 2), - r = (frameAttrs.x * Dart.baseHeight + compassAttrs.width / 2), - b = (frameAttrs.y * Dart.baseHeight + compassAttrs.height / 2), - } - }) - - XML:safeSetAttrs(frame, function(attrs) - local dumbUnits = Dart.baseHeight - return { - x = Utils.correctX(attrs.x * dumbUnits, XML.aspectRatio, scaleSettings) / dumbUnits, - y = Utils.correctY(attrs.y * dumbUnits, XML.aspectRatio, scaleSettings) / dumbUnits, - width = attrs.width * config.scale, - height = attrs.height * config.scale, - a = config.alpha, - } - end) - - XML:safeSetAttrs(compass, function(attrs) - return { - width = attrs.width * config.scale, - height = attrs.height * config.scale, - } - end) - - XML:safeSetAttrs(bg, function(attrs) - return { - width = attrs.width * config.scale, - height = attrs.height * config.scale, - } - end) - - XML:safeSetAttrs(clock, function(attrs) - local dumbUnits = bgAttrs.height * Dart.baseHeight - return { - x = (attrs.x * dumbUnits + config.clockOffset[1] / Utils.getAspectRatioVs(Dart.ratio4x3)) / dumbUnits, - y = (attrs.y * dumbUnits + config.clockOffset[2] / Utils.getAspectRatioVs(Dart.ratio4x3)) / dumbUnits, - } - end) -end - - -function on_xml_read() - Module.registerModule(mod, "zone_map", parseZoneMap) -end diff --git a/README.md b/README.md index 6f8a15c..3dd45df 100644 --- a/README.md +++ b/README.md @@ -1,29 +1,107 @@ # Dynamic Aspect Ratio Tweaks (DART) for GAMMA -A collection of UI fixes for non-16:9 displays. Each is modular, independent, and script-based for better compatibility and fewer conflicts. Adjustments are calculated based on your current resolution. DART wants to be minimal, unopinionated, and focused only on fixes so other mods can add the new stuff. It is customizable via a config file that allows you to move, scale, and inset UI elements to your liking (we are currently beta-testing a move from config file to MCM). - -## List of Fixes: -- Ensures that ultrawide users get served the correct XML file: 21:9 if it exists, then 16:9 if it exists. This should give you a somewhat-improved experience across the board (instead of old and neglected 4:3 templates that are inferior to what 16:9 users get). -- Circular minimap that can be repositioned and scaled. The clock can be moved as well. A combination of settings can give you a compass-only look. -- Un-squished markers and icons on the PDA, and properly-aligned highlights/indicators on both the PDA and minimap. -- Size adjustments to avoid partially cutoff inventory icons. Icons can be resized. -- Un-stretched ammo and companion wheels. -- Global fix for 2D scopes. This fix can replace the ones included in GAMMA. If authored correctly, scopes added by mods should automatically be detected and fixed. -- Fixed proportions and positions of HUD elements (BHS, faction ID patches, status icons, messages list, companion list). -- (BETA) Enlarged fonts for 3D PDA (adjustable). -- Mask fixes (ported from GIRTH with permission). -- Support for the Ammo Type HUD mod. - -## Installation: -Install with MO2. Choose "00 Dart Core (Required)" plus any/all fixes during installation. The safest place to install is at the bottom of load order, but in most cases priority won't matter. - -- GitHub: https://github.com/bellyillish/dart -- Discord: https://discord.com/channels/912320241713958912/1169311822139105380/1169311822139105380 -## Configuration: -Once installed, look for /gamedata/scripts/dart_config.script, which has an annotated list of possible configuration options. These values are tweaked for a vanilla GAMMA experience, and you may want to make your own adjustments if you're using a third-party UI mod. The new beta version is configured through MCM instead of a file. +A bunch of (mostly UI) fixes for GAMMA. Primarily aimed at ultrawide users, but also includes features that can be useful to everyone. Fixes are modular and independent from each other, so you can disable individual ones if you need to while keeping the others active. Everything is dynamic and monkey-patched to make it as compatible as possible with other mods. It's focused only on the fixes and lets other mods add the fun stuff. DART is happiest when you forget it's even there. + +DART also lets you customize various UI elements through MCM. You can move and scale the main HUD elements to your liking even if you're not an ultrawide user. + +- [The Fixes](the-fixes) +- [Other Notes/Tips](other-notes-tips) +- [Installation](installation) +- [Configuration](configuration) +- [Credits](credits) +- [Links](links) + + +## The Fixes + +### Dart Core +Sets the stage by making sure ultrawide users get the best possible template for *every* UI element. Without DART the game assumes you are a 4:3 user and gives you outdated, crappy templates that nobody maintains. With DART you at least get the much better 16:9 templates. It also includes a "safe zone" MCM option to globally inset all HUD elements. It is required because it also includes shared code that the rest of DART uses. + +### BHS HUD +Corrects the BHS HUD's width and position to your aspect ratio (i.e. makes him look less fat). You can also scale or move this element in MCM. + +### Companion List HUD +Corrects the position and width of the HUD element that shows health bars and distances of your companions. It positions it so it's no longer partially off screen, but you can also manually move or scale it in MCM. It works with the minimalist version that ships with GAMMA and the more detailed Anomaly version used by some UI skins. + +### Faction ID Patches HUD +Corrects the width and position of Faction ID patches when you hover over NPCs. It can also be moved or scaled in MCM. The Faction ID Patch mod includes its own (much more in-depth) settings to customize it. If you use both, DART will combine the two so they work together. + +### Status Icons HUD +Corrects the positions between and around the status icons. You can scale, move, or adjust the spacing between icons in MCM. + +### Messages List HUD +Corrects the size and position of News Manager messages. You can scale or move this element in MCM. Note that it's not possible to scale text the same way as other graphical elements, so the scale setting will only adjust the size of thumbnails and the overall space used by messages. + +### PDA Map Markers +Fixes the widths, positions and alignments of all icons in the PDA and minimap. At least as much as it can -- for example you may notice the diagonal arrows for level transitions will still look a little wonky (especially in 32:9). This module doesn't have any MCM settings. + +### PDA Font Sizes +Tries its best to make fonts more legible in the 3D PDA for ultrawide users. Since text can't be scaled, this is an imperfect but as-good-as-I-can-do solution. The game includes only a handful of predefined font sizes. This module allows you to uniformly bump up the font size for all text elements by up to 3 sizes. It also lets you choose a maximum size "cap" to prevent the largest fonts from getting *too* big. + +### Minimap & Compass +Fixes the broken layouts of the circular and square minimaps. You can scale, move, adjust the opacity, and realign the map to any side or corner of the screen in MCM. You can also move the clock (in the circular minimap only). This module is compatible with the "Compass Only" mod, but you may need to manually adjust its position in MCM depending on the alignment you choose. You can even emulate the compass-only look with the other minimaps and the right combination of settings. + +### Ammo & Companion Wheels +Fixes the widths and positions of the ammo and companion wheels. You can scale and move each in MCM. You can also choose to use the round ammo wheel instead of the triangular one in MCM. + +### 2D Scopes +Provides a universal fix for the width/shape of all 2D scopes and fixes any visual glitches (e.g. some scopes have broken layouts in ultrawide). Since fixes are applied on the fly, it works with all 2D scopes including ones added by mods. This module doesn't have any MCM settings. It doesn't (and can't) touch 3D scopes. + +### Inventory Icons +Lets you adjust the scale of and spacing between inventory icons in MCM. Also automatically tweaks the size of these icons to fill the available space and prevent them from getting cut off in the UI. Note that the spacing setting is experimental and can cause icons to get cut off anyway. Leaving it at 0 will minimize this. + +### Mask Overlays +Fixes the distortion of mask overlays in ultrawide. This fix comes as-is courtesy of the GIRTH mod. + +### Ammo Type HUD +This is for a relatively obscure but good little mod. If you haven't installed this mod on your own then you don't need this module. If you did, it will fix the position of the ammo type text so it doesn't overlap the BHS HUD. + -## Credits: +## Notes/Tips/Troubleshooting -- Special thanks to @nomotion who contributed to many of the HUD fixes and features, and joined me in banging my head against the wall from time to time. He also made a nifty automated release workflow in GitHub. +### If the map looks stretched vertically in the 3D PDA... +Unfortunately this is a bug in the game engine and can't be fixed at the mod level. If you're a 21:9 user (like me) you can probably get used to it pretty quickly. If you're a 32:9 user however it's a lot more annoying. Many 32:9 players use the 2D PDA instead. -- Thank you obviously to @b0nesy and his crew for GIRTH. You blazed a trail that provided a roadmap for a n00b like me. Start here: ⁠╟📎mods-posting⁠GIRTH - Ultrawide Fixes, and scroll through and appreciate the hard work, collaboration, and trial and error that went into it. +### If text is unreadable... +This is another game engine bug very similar to the one above. It is particularly bad on 32:9 as the text is squished horizontally to the point of illegibility. If DART's PDA font size fixes aren't enough, try activating the 2K or 4K Tactical Fonts that come with GAMMA (mods 309 & 310). + +### If you feel like you're playing in a fishbowl... +You need to adjust the FOV in "Settings" -> "Visual Settings" -> "Basic". There are 2 settings: "FOV" and "HUD FOV". Make the "FOV" smaller until it feels right -- there's no right answer, it's subjective. I don't know **exactly** what "HUD FOV" does but I've generally heard to leave it at 65. + +### If you have issues going through doorways or bumping into things... +See above about "FOV". + +### If your game freezes while loading a save after installing DART... +As of writing this (2024.12.04), the 11/30 modded EXEs cause many freezes, and this is one of them. If you've updated your modded EXEs on your own, replace them with an earlier version or revert to the ones that come with GAMMA. + +### If you see cutoff icons in other places beside the inventory... +There are a lot of things that DART doesn't fix yet because each needs its own fix written specifically for it. This particular issue is at or near the top of the list, but dealing with these icon grids is complicated. + +### If you want to use the square minimap or only the compass, but it's not working as expected... +Make sure you follow the directions in Discord for enabling these or else they won't work right: https://discord.com/channels/912320241713958912/976570969768476753/1152662325296382172 + +## Installation + +1. Go to [releases](https://github.com/bellyillish/dart/releases) and download the latest one at the top of the list. DO NOT CLONE OR DOWNLOAD THE SOURCE FILES DIRECTLY or you will have a bad time. +2. Install it with Mod Organizer 2 (included with GAMMA): https://anomalymodding.blogspot.com/2021/04/Mod-Organizer-2-setup-and-Amomaly-modding-guide.html +3. In most cases you can leave the checkboxes as-is when prompted (they should all be ticked except one). If you have another mod that touches one of the UI elements above and DART conflicts with it, untick the offending module. If you've installed the Ammo Type HUD mod, tick the box for that. +4. Priority won't matter most of the time as long as it's below the mods that come with GAMMA, but if you want to be extra safe keep it towards the bottom of the list. + + +## Configuration + +Head over to "Mod Configuration Menu" -> "DART" to change settings. They are organized by module. + + +## Credits + +- Thanks to @nomotion who contributed to many of the HUD fixes and features, and joined me in banging my head against the wall from time to time. He also made a nifty automated release workflow in GitHub. + +- Thanks obviously to @b0nesy and his crew for GIRTH. This was my first mod and I wouldn't have been able to do any of it without having GIRTH to reverse engineer and study. + +- Thanks obviously to @grokitach and the GAMMA crew. I've barely touched my Steam backlog in almost a year thanks to this awesome game. + + +## Links + +- Discord: https://discord.com/channels/912320241713958912/1169311822139105380/1169311822139105380