This commit fixes an issue in `fnc_handlePurchase.sqf` where the organization store was being accessed directly from the mission namespace. This has been updated to use the `EFUNC(org,verifyOrgStore)` function to ensure proper verification and access to the organization store. This change improves code maintainability and reduces the risk of errors due to incorrect store access.
This commit introduces several enhancements to the Forge client, including improved documentation for the Garage and Locker modules, updates to variable names for consistency, and additions to the .gitignore file.
The following changes were made:
- **Garage and Locker Modules:** Added comprehensive README.md files to the Garage and Locker modules, providing overviews, dependency information, author details, feature descriptions, event handler usage, debugging instructions, and version information.
- **Variable Name Consistency:** Updated variable names in `fnc_playerDBSave.sqf` and `fnc_firstLogin.sqf` to use the `FORGE_PayGrade` constant instead of `Paygrade` for consistency with the Forge naming conventions.
- **.gitignore:** Added `/api` to the .gitignore file to exclude the Forge API directory from version control.
This commit fixes an issue where interaction conditions were incorrectly using `companyGenerals` instead of `companyShareholders`. This change ensures that the correct group of players can interact with company assets like the CPOF, garage, and locker.
The following changes were made:
* Updated `fnc_initInteraction.sqf` to use `companyShareholders` in the interaction conditions for CPOF and garage access.
* Updated `CfgVehicles.hpp` to use `companyShareholders` in the interaction conditions for company garage and locker access.
This commit refactors how organization funds and reputation are handled, updates task completion logic to use the new organization functions, and modifies player saving to include organization data. Additionally, it introduces string serialization/deserialization and fixes a player save loop.
* **Organization Funds and Reputation:** Replaces direct server calls for handling funds and reputation with calls to the new organization functions (`EFUNC(org,addFunds)` and `EFUNC(org,addReputation)`). This centralizes fund and reputation management within the organization store.
* **Task Completion Logic:** Updates task completion functions (`fnc_destroy.sqf`, `fnc_attack.sqf`, `fnc_hostage.sqf`, `fnc_hvt.sqf`, `fnc_defuse.sqf`) to use the new organization functions for adding funds and reputation upon task success or failure. Also adds notifications to inform the player of reputation and fund changes.
* **Player Saving:** Modifies the player saving function (`fnc_playerDBSave.sqf`) to include the player's organization ID in the saved data.
* **String Serialization/Deserialization:** Adds `serializeString` and `deserializeString` PREP macros to `XEH_PREP.hpp` and uses them in `fnc_handleOrgLoad.sqf` and `fnc_create.sqf` to handle special characters in organization and member names.
* **Player Save Loop Fix:** Removes unnecessary brackets from the `call FUNC(playerDBSave)` in `fnc_playerSaveLoop.sqf`.
* **Organization Purchase Verification:** Adds organization ownership verification to `fnc_handlePurchase.sqf` to ensure only the owner can make purchases using organization funds.
* **Player Initialization:** Updates `fnc_initPlayer.sqf` to retrieve and set the player's organization upon initialization.
This commit refactors the organization store to utilize the new CRUD (Create, Read, Update, Delete) operations and simplifies several organization-related functions.
* **Organization Store CRUD Operations:** Implements a new interface for the organization store, providing methods for creating, reading, updating, and deleting organization data. This includes methods for adding and removing assets, managing funds and reputation, and handling member operations. The store now interfaces with the ArmaDragonflyClient database for persistence.
* **Function Simplification:** Simplifies several organization functions by leveraging the new CRUD operations within the organization store. This reduces code duplication and improves readability. Specifically:
* `fnc_addAsset.sqf`: Simplified to use the `addAsset` method.
* `fnc_removeAsset.sqf`: Simplified to use the `removeAsset` method.
* `fnc_create.sqf`: Simplified to use the `createOrg` method.
* `fnc_leave.sqf`: Simplified to use the `leaveOrg` method.
* `fnc_disband.sqf`: Simplified to use the `deleteOrg` method.
* `fnc_addFunds.sqf`: Simplified to use the `updateFunds` method.
* `fnc_addReputation.sqf`: Simplified to use the `updateReputation` method.
* `fnc_verifyOrgStore.sqf`: Improved to ensure the store is initialized.
* **XEH Updates:** Updated `XEH_PREP.hpp` files to reflect the changes in function calls.
* **Locker Fix:** Fixed an issue in `fnc_equipGear.sqf` where the `isNull` check was incorrect for certain gear types.
This commit refactors the organization store initialization and improves key handling within the organization store.
* **Organization Store Initialization:** Changes the way the organization store interface is initialized by using `createHashMapObject` with a single declaration.
* **Key Handling:** Improves the error message when an organization key is not found during the leave function, providing more context.
This commit refactors the organization store initialization and the leave function.
* **Organization Store:** Changes the way the organization store is initialized by using a declaration array.
* **Leave Function:** Improves the leave function by correcting a conditional statement to ensure proper handling of organization keys.
This commit introduces several changes related to database interactions and client-side functionality:
* **Database Response Handling:** Implements a mechanism to handle responses from server requests, specifically for database operations. This includes setting up a callback system to process results based on request IDs.
* **Store Functionality:** Corrects a typo in the `fnc_buyItem.sqf` script, changing `EFUNC(armory,addArmoryItem)` to `EFUNC(arsenal,addArmoryItem)`.
* **Inventory Management:** Improves the `fnc_moveInventory.sqf` script by correcting a conditional statement to ensure proper handling of inventory items.
* **Configuration Updates:** Updates the mod configuration (`CfgMods.hpp`) to use the correct path for the mod picture.
* **Client Initialization:** Adds a client registration call to the server during client post-initialization (`XEH_postInit_client.sqf`).
* **Workflow Update:** Updates the build workflow to use the latest Ubuntu runner.
* **Database Preparation:** Removes unnecessary preparations from `XEH_postInit.sqf` and `XEH_PREP.hpp`.