/* * OmniNX Installer - Installation Logic */ #pragma once #include "version.h" #include #include // Installation modes typedef enum { INSTALL_MODE_UPDATE, // OmniNX detected - selective deletion INSTALL_MODE_CLEAN // No OmniNX - selective deletion from clean list } install_mode_t; // Main installation function int perform_installation(omninx_variant_t pack_variant, install_mode_t mode); // Update mode operations (install_update.c) int update_mode_cleanup(omninx_variant_t variant); int update_mode_install(omninx_variant_t variant); int cleanup_staging_directory(omninx_variant_t pack_variant); // Remove other OmniNX staging directories (Standard/Light/OC) that exist, except the one just installed int cleanup_other_staging_directories(omninx_variant_t installed_variant); // Clean install operations (install_clean.c) int clean_mode_backup(void); int clean_mode_wipe(void); int clean_mode_restore(void); int clean_mode_install(omninx_variant_t variant); // Shared helpers (install.c) - used by install_update.c and install_clean.c void install_set_color(u32 color); void install_check_and_clear_screen_if_needed(void); bool install_path_exists(const char *path); int install_count_directory_items(const char *path); void install_combine_path(char *result, size_t size, const char *base, const char *add); int delete_path_list(const char* paths[], const char* description); int delete_path_lists_grouped(const char *folder_display_name, ...); int folder_delete_single_with_progress(const char *path, const char *display_name); int folder_delete_progress_recursive(const char *path, int *deleted, int total, u32 start_x, u32 start_y, const char *display_name, int *last_percent); int folder_copy_with_progress_v2(const char *src, const char *dst, const char *display_name);