# Forge Misc Module ## Overview The Misc module provides a collection of utility functions and features for the Forge client. It includes a notification system, string handling, number formatting, and various helper functions used throughout the client. ## Dependencies - forge_client_main ## Authors - J. Schmidt - Creedcoder - IDSolutions ## Features ### Notification System 1. **Notification Display** (`fnc_notify.sqf`) - Creates customizable notifications - Supports multiple notification types: - Error (red) - Warning (amber) - Success (green) - Info (blue) - Custom colors - Configurable display options: - Text content - Display duration - Display side (left/right) - Animation speed - Material Design color scheme - Sound effects - Stacking support - Fade animations ### String Handling 1. **String Serialization** (`fnc_serializeString.sqf`) - Converts strings to serialized format - Handles special characters - Supports data transfer 2. **String Deserialization** (`fnc_deserializeString.sqf`) - Converts serialized strings back to original format - Restores special characters - Processes received data ### Number Formatting 1. **Number Format** (`fnc_formatNumber.sqf`) - Formats numbers for display - Adds thousand separators - Handles decimal places - Currency formatting support ### Utility Functions 1. **System Time** (`fnc_getSystemTime.sqf`) - Gets current system time - Timestamp generation - Time-based operations 2. **Equipment Checks** - **Binocular Check** (`fnc_isAssignableBinocular.sqf`) - Validates binocular equipment - Checks compatibility - Equipment type verification - **Weapon Type Check** (`fnc_isWeaponType.sqf`) - Validates weapon types - Equipment categorization - Type verification 3. **Cargo Management** (`fnc_cargoToPairs.sqf`) - Converts cargo to paired format - Inventory management - Equipment organization ## Event Handlers The module uses several event handlers for initialization and execution: - `XEH_preInit.sqf`: Pre-initialization setup - `XEH_postInit.sqf`: Post-initialization tasks - `XEH_preStart.sqf`: Pre-start configuration ## Usage To use the misc module functions: ```sqf // Create a notification ["Hello World!", "default", 3, "right"] call forge_client_misc_fnc_notify; // Format a number [1000000] call forge_client_misc_fnc_formatNumber; // Returns "1,000,000" // Get system time [] call forge_client_misc_fnc_getSystemTime; // Check weapon type ["arifle_MX_F"] call forge_client_misc_fnc_isWeaponType; ``` ## Configuration The module can be configured through the main Forge client configuration: ```cpp // Notification colors (Material Design) #define COLOR_RED [0.957, 0.263, 0.212, 1] #define COLOR_GREEN [0.298, 0.686, 0.314, 1] #define COLOR_BLUE [0.129, 0.588, 0.953, 1] #define COLOR_AMBER [1, 0.757, 0.027, 1] // Notification settings #define NOTIFICATION_DEFAULT_DURATION 3 #define NOTIFICATION_MAX_STACK 3 #define NOTIFICATION_MARGIN 0.01 ``` ## Debugging Debug mode can be enabled by uncommenting the following in `script_component.hpp`: ```cpp #define DEBUG_MODE_FULL ``` ## Version Information Version information is managed through the main Forge client system configuration. ## Technical Details - Material Design color scheme - Responsive notification system - String serialization/deserialization - Number formatting utilities - Equipment validation - Time management - Cargo handling - Event system integration - Error handling - User feedback - Cross-module compatibility