# Forge Bank Module

## Overview
The Bank module provides a comprehensive banking system for the Forge client. It includes features for managing player finances, transfers, and timesheet functionality.

## Dependencies
- forge_client_main

## Authors
- J. Schmidt
- Creedcoder
- IDSolutions

## Features

### Banking System
1. **Bank Initialization** (`fnc_initBank.sqf`)
   - Initializes the banking system
   - Sets up necessary configurations and account structures

2. **Bank Interface** (`fnc_openBank.sqf`)
   - Opens the banking user interface
   - Provides access to all banking functions

3. **Transaction Management**
   - **Deposit** (`fnc_deposit.sqf`)
     - Handles money deposits into bank accounts
   - **Withdraw** (`fnc_withdraw.sqf`)
     - Manages money withdrawals from bank accounts
   - **Transfer** (`fnc_transfer.sqf`)
     - Handles money transfers between players
   - **Submit** (`fnc_submit.sqf`)
     - Processes transaction submissions
   - **Refresh** (`fnc_refresh.sqf`)
     - Updates account information and balances

### User Interface
The module includes several UI components:
1. **Base Controls** (`BaseControls.hpp`)
   - Common UI elements and definitions
2. **Bank Dialog** (`RscBankDialog.hpp`)
   - Banking interface specific elements

### Interface Elements
The module defines several UI control IDs:
- Account Information Display
- Amount Input Fields
- Player Selection
- Transaction Buttons (Deposit, Withdraw, Transfer)
- Wallet and Bank Balance Displays
- Rating System
- Timesheet Integration

## 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 bank module:
1. Ensure the module is properly loaded in your mission
2. Access the bank through the provided UI
3. Perform transactions using the appropriate functions
4. Monitor account status and transactions

## 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. 