#include "..\script_component.hpp" /* * Function: forge_server_db_fnc_saveGameState * Author: J. Schmidt * * Description: * Collects and saves the current game state to mission or profile namespace * * Arguments: * 0: _nameSpace - Namespace to save to (mission, profile) (default: mission) * * Return Value: * Success */ params [["_nameSpace", "mission", [""]]]; if (isNil "companyFunds") then { companyFunds = 0 }; if (isNil "companyRating") then { companyRating = 0 }; if (isNil "companyGenerals") then { companyGenerals = [] }; if (isNil "companyGarageUnlocks") then { companyGarageUnlocks = [] }; private _default_armory_unlocks = [[],[],[],[]]; private _default_garage_unlocks = [[],[],[],[],[],[]]; private _companyState = createHashMapFromArray [ ["key", "CompanyState"], ["funds", companyFunds], ["rating", companyRating], ["operations", companyGenerals], ["garage_unlocks", companyGarageUnlocks] ]; if (_nameSpace == "mission") then { ["companyStore", "CompanyState", _companyState] call FUNC(saveToMission); } else { ["companyStore", "CompanyState", _companyState] call FUNC(saveToProfile); }; { if (alive _x) then { private _playerState = createHashMapFromArray [ ["key", getPlayerUID _x], ["armory_unlocks", GETVAR(_x,FORGE_Armory_Unlocks,_default_armory_unlocks)], ["garage_unlocks", GETVAR(_x,FORGE_Garage_Unlocks,_default_garage_unlocks)], ["locker", GETVAR(_x,FORGE_Locker,[])], ["garage", GETVAR(_x,FORGE_Garage,[])], ["cash", GETVAR(_x,FORGE_Cash,0)], ["bank", GETVAR(_x,FORGE_Bank,0)], ["number", GETVAR(_x,FORGE_Phone_Number,"unknown")], ["email", GETVAR(_x,FORGE_Email,"unknown@spearnet.mil")], ["paygrade", GETVAR(_x,FORGE_Paygrade,"E1")], ["reputation", rating _x], ["loadout", getUnitLoadout _x], ["holster", GETVAR(_x,FORGE_Holster_Weapon,true)], ["position", getPosASLVisual _x], ["direction", getDirVisual _x] ]; if (isNull objectParent _x) then { _playerState set ["currentWeapon", currentMuzzle _x]; _playerState set ["stance", stance _x]; }; if (_nameSpace == "mission") then { ["playerStore", getPlayerUID _x, _playerState] call FUNC(saveToMission); } else { ["playerStore", getPlayerUID _x, _playerState] call FUNC(saveToProfile); }; }; } forEach playableUnits; true