# Forge Garage Module ## Overview The Garage module provides a comprehensive vehicle management system for the Forge client. It includes features for storing, spawning, and managing vehicles in a garage environment, with support for various vehicle types and states. ## Dependencies - forge_client_main ## Authors - J. Schmidt - Creedcoder - IDSolutions ## Features ### Garage System 1. **Garage Initialization** (`fnc_initGarage.sqf`) - Initializes the garage system - Sets up vehicle storage and management - Configures garage locations and spawn points - Manages vehicle state persistence 2. **Vehicle Management** - **Spawn Vehicle** (`fnc_spawnVehicle.sqf`) - Handles vehicle spawning from garage - Manages spawn locations and orientations - Preserves vehicle type information - Updates garage inventory - **Store Vehicle** (`fnc_storeVehicle.sqf`) - Manages vehicle storage in garage - Handles vehicle cleanup - Updates garage inventory - Preserves vehicle data - **Fetch Garage** (`fnc_fetchGarage.sqf`) - Retrieves garage vehicle information - Updates garage interface - Manages vehicle listings - Handles vehicle categorization - **Fetch Nearby** (`fnc_fetchNearby.sqf`) - Locates and manages nearby vehicles - Validates vehicle ownership - Handles vehicle state checks - Updates interface with nearby vehicles 3. **Vehicle Categories** - Cars (Light vehicles, transport) - Armor (Tanks, APCs) - Helicopters (All rotary-wing aircraft) - Planes (Fixed-wing aircraft) - Naval (Boats, ships) - Static (Weapons, emplacements) 4. **Vehicle States** - Available - In Use - Maintenance - Damaged - Fuel Status - Condition Tracking ### User Interface 1. **Garage Dialog** - Vehicle listing and management - Category filtering - Status indicators - Action buttons (Spawn/Store) - Vehicle details display 2. **Vehicle Information** - Vehicle name and type - Status indicators - Fuel level - Damage state - Maintenance status - Last used timestamp 3. **Controls** - Category filters - Vehicle actions - Status management - Quick access buttons ## 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 - `XEH_postInit_client.sqf`: Client-specific post-initialization - `XEH_preInit_server.sqf`: Server-specific pre-initialization ## Usage To use the garage module: 1. Ensure the module is properly loaded in your mission 2. Access the garage through the provided UI 3. Manage vehicles using the appropriate functions: ```sqf // Open garage interface [] call forge_client_garage_fnc_openGarage; // Store a vehicle [] call forge_client_garage_fnc_storeVehicle; // Spawn a vehicle [] call forge_client_garage_fnc_spawnVehicle; ``` 4. Monitor vehicle status and location ## 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 - Vehicle state persistence - Category-based organization - Status tracking system - Location management - Spawn point configuration - Vehicle cleanup handling - Interface synchronization - Event system integration - Error handling - Debug support - Data validation - State management