# Forge Briefing Module ## Overview The Briefing module provides a comprehensive presentation and lecture system for the Forge client. It includes features for creating interactive slideshows, managing presentations, and delivering lectures with synchronized audio and visual elements. ## Dependencies - forge_client_main ## Authors - J. Schmidt - Creedcoder - IDSolutions ## Features ### Presentation System 1. **Slide Show Management** (`fnc_initSlideShow.sqf`) - Initializes interactive slide shows - Configures display screens and controllers - Sets up image sequences and timing - Manages presentation flow and transitions 2. **Presentation Controls** - **Start Slide Show** (`fnc_startSlideShow.sqf`) - Initiates the presentation sequence - Synchronizes audio and visual elements - Manages presentation state - **Next Image** (`fnc_nextImage.sqf`) - Advances to the next slide - Updates display screens - Maintains presentation state - **Previous Image** (`fnc_prevImage.sqf`) - Returns to the previous slide - Updates display screens - Maintains presentation state - **End Slide Show** (`fnc_endSlideShow.sqf`) - Terminates the presentation - Cleans up resources - Resets presentation state 3. **Lecture System** - **Spawn Lecture** (`fnc_spawnLecture.sqf`) - Initiates AI-driven lectures - Manages speaker animations - Controls presentation timing - **Spawn Presentation** (`fnc_spawnPresentation.sqf`) - Creates automated presentations - Manages slide timing - Controls visual transitions ### Presentation Features 1. **Interactive Controls** - Manual slide navigation - Auto-scroll capability - Presentation state management - Speaker control integration 2. **Visual Elements** - Multiple display screen support - Synchronized image transitions - Customizable timing - Power-of-2 image optimization 3. **Audio Integration** - Speaker synchronization - Topic-based conversations - Sentence-specific playback - Multi-speaker support ## 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 briefing module: 1. Ensure the module is properly loaded in your mission 2. Set up presentation screens and controllers 3. Configure slide shows or lectures: ```sqf // Initialize a slide show [Screen01, [Controller01], ["images/folder/image.paa"]] call forge_client_briefing_fnc_initSlideShow; // Start a lecture [player, "topic", "sentence"] call forge_client_briefing_fnc_spawnLecture; // Create a presentation [screen, [["texture.paa", 5]]] call forge_client_briefing_fnc_spawnPresentation; ``` 4. Control the presentation using the provided functions ## 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 - Support for multiple display screens - Synchronized audio-visual presentations - Interactive control system - AI-driven lecture capabilities - Power-of-2 image optimization - State management for presentations - Multi-speaker support - Customizable timing controls - Resource cleanup on completion - Error handling and validation