# Forge Phone Module ## Overview The Phone module provides a comprehensive mobile phone system for the Forge client. It includes features for messaging, email, contacts management, and a modern user interface with various applications. ## Dependencies - forge_client_main ## Authors - J. Schmidt - Creedcoder - IDSolutions ## Features ### Communication 1. **Messaging System** - Send and receive text messages - Message history - Offline message support - Message notifications - Contact-based messaging 2. **Email System** - Send and receive emails - Email history - Offline email support - Email notifications - Contact-based emailing 3. **Contact Management** - Add and remove contacts - Contact details (name, phone, email) - Contact list organization - Quick contact actions - Contact search ### User Interface 1. **Phone Interface** - Modern mobile phone design - Home screen with app icons - App navigation - Status bar with time - Interactive controls 2. **Applications** - Messages app - Email app - Contacts app - Camera app - Photos app - Settings app - Safari browser 3. **Controls** - Touch-based interaction - Button feedback - Visual indicators - Smooth transitions - Intuitive navigation ### System Features 1. **Phone Management** - Phone initialization - Action binding - Variable management - State persistence - Profile saving 2. **Data Management** - Contact storage - Message history - Email storage - Profile data - Settings persistence ## 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 phone module: ```sqf // Initialize phone [] call forge_client_phone_fnc_initPhone; // Add a contact [cursorObject] call forge_client_phone_fnc_addContact; // Send a message ["1234567890", "Hello World"] call forge_client_phone_fnc_sendMsg; // Send an email ["recipient@spearnet.mil", "Subject", "Message"] call forge_client_phone_fnc_sendEmail; ``` ## Integration The phone module integrates with other Forge client systems: 1. **Player System** - Player identification - Phone number assignment - Email assignment - Profile management 2. **Database System** - Message storage - Contact persistence - Email storage - Profile data 3. **Notification System** - Message alerts - Email notifications - System notifications - Status updates ## 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 - Real-time messaging - Secure data management - Contact synchronization - Message persistence - Email handling - UI responsiveness - Cross-module integration - Event system integration - State management - Profile persistence - Notification system - Input validation