From 2db018103c0600b56e1228d9693609fc4fb7db5d Mon Sep 17 00:00:00 2001 From: IndigoFox Date: Thu, 8 Feb 2024 15:04:22 -0800 Subject: [PATCH] move local diary mgmt to common module, clarify clientInit complete msg --- framework/CfgFunctions.hpp | 3 +-- .../functions}/fn_createOrUpdateDiaryRecord.sqf | 11 ++++++++++- framework/fbcb2_assets/functions/fn_initClient.sqf | 2 +- .../fbcb2_assets/functions/fn_updateAssetDiary.sqf | 2 +- .../fbcb2_main/functions/fn_addEnvironmentRecord.sqf | 2 +- .../fbcb2_main/functions/fn_addFrequenciesRecord.sqf | 4 ++-- .../functions/fn_addSignalColorsRecord.sqf | 2 +- framework/fbcb2_main/functions/fn_initClient.sqf | 8 +------- .../init/functions/fn_addRespawnChatHandler.sqf | 2 +- framework/init/functions/fn_initClient.sqf | 12 +++++++++++- framework/mapcopy/functions/fn_initClient.sqf | 11 ++++++++++- framework/reinsert/client/fn_initClient.sqf | 6 ++++-- framework/resupply/functions/fn_initClient.sqf | 2 +- framework/triageIcons/functions/fn_initClient.sqf | 3 ++- framework/vehicleFlags/functions/fn_initClient.sqf | 9 +++++++++ 15 files changed, 56 insertions(+), 23 deletions(-) rename framework/{fbcb2_main/util => common/functions}/fn_createOrUpdateDiaryRecord.sqf (80%) diff --git a/framework/CfgFunctions.hpp b/framework/CfgFunctions.hpp index 997f002..01d02b0 100644 --- a/framework/CfgFunctions.hpp +++ b/framework/CfgFunctions.hpp @@ -12,7 +12,6 @@ class CfgFunctions { class addRespawnChatHandler { postInit = 1; }; }; }; - class PREFIX { class ambience { @@ -38,6 +37,7 @@ class CfgFunctions { class addCBASettings { preInit = 1; }; class logMissionInfo {}; class addPlayerInfoToArray {}; + class createOrUpdateDiaryRecord {}; class getApprovedAssetsCfg {}; class getBattalionCfg {}; class getNameOfBase {}; @@ -84,7 +84,6 @@ class CfgFunctions { }; class util { file = "framework\fbcb2_main\util"; - class createOrUpdateDiaryRecord {}; class formatRadioElementForDiary {}; class generateElementFrequencyRecordText {}; }; diff --git a/framework/fbcb2_main/util/fn_createOrUpdateDiaryRecord.sqf b/framework/common/functions/fn_createOrUpdateDiaryRecord.sqf similarity index 80% rename from framework/fbcb2_main/util/fn_createOrUpdateDiaryRecord.sqf rename to framework/common/functions/fn_createOrUpdateDiaryRecord.sqf index 7f04abb..2b790d9 100644 --- a/framework/fbcb2_main/util/fn_createOrUpdateDiaryRecord.sqf +++ b/framework/common/functions/fn_createOrUpdateDiaryRecord.sqf @@ -3,12 +3,21 @@ if (!hasInterface) exitWith {}; params [ - ["_subjectID", GVAR(subjectStatusID), [""]], + ["_subjectID", "", [""]], ["_recordTitle", "", [""]], ["_recordText", "", [""]], ["_recordIcon", "", [""]] ]; +// Check if all parameters are provided +if ( + count _subjectID isEqualTo 0 || + count _recordTitle isEqualTo 0 || + count _recordText isEqualTo 0 +) exitWith { + [LEVEL_ERROR, QUOTE(COMPONENT), "Not all parameters provided"] call EFUNC(common,log); +}; + // Check if already created private _subjectRecords = GVAR(diaryRecords) getOrDefault [_subjectID, createHashMap, true]; private _existingRecord = _subjectRecords getOrDefault [_recordTitle, diaryRecordNull, true]; diff --git a/framework/fbcb2_assets/functions/fn_initClient.sqf b/framework/fbcb2_assets/functions/fn_initClient.sqf index 62dfbf3..c18b012 100644 --- a/framework/fbcb2_assets/functions/fn_initClient.sqf +++ b/framework/fbcb2_assets/functions/fn_initClient.sqf @@ -21,7 +21,7 @@ call FUNC(updateAssetDiary); [ LEVEL_DEBUG, QUOTE(COMPONENT), - "postInit complete", + "initClient complete", [] ] call EFUNC(common,log); diff --git a/framework/fbcb2_assets/functions/fn_updateAssetDiary.sqf b/framework/fbcb2_assets/functions/fn_updateAssetDiary.sqf index 72e516d..d2669d5 100644 --- a/framework/fbcb2_assets/functions/fn_updateAssetDiary.sqf +++ b/framework/fbcb2_assets/functions/fn_updateAssetDiary.sqf @@ -241,7 +241,7 @@ private _randomColors = [ ], _recordText joinString "
", _icon - ] call EFUNC(fbcb2_main,createOrUpdateDiaryRecord); + ] call EFUNC(common,createOrUpdateDiaryRecord); // "\A3\ui_f\data\igui\cfg\simpleTasks\types\car_ca.paa" } forEach _distinctVehiclesClassNames; diff --git a/framework/fbcb2_main/functions/fn_addEnvironmentRecord.sqf b/framework/fbcb2_main/functions/fn_addEnvironmentRecord.sqf index 3cc7dda..8aff10b 100644 --- a/framework/fbcb2_main/functions/fn_addEnvironmentRecord.sqf +++ b/framework/fbcb2_main/functions/fn_addEnvironmentRecord.sqf @@ -109,4 +109,4 @@ _text = _text joinString "
"; GVAR(subjectIntelID), _recordTitle, _text -] call FUNC(createOrUpdateDiaryRecord); \ No newline at end of file +] call EFUNC(common,createOrUpdateDiaryRecord); \ No newline at end of file diff --git a/framework/fbcb2_main/functions/fn_addFrequenciesRecord.sqf b/framework/fbcb2_main/functions/fn_addFrequenciesRecord.sqf index 9f5cccb..ae10cf0 100644 --- a/framework/fbcb2_main/functions/fn_addFrequenciesRecord.sqf +++ b/framework/fbcb2_main/functions/fn_addFrequenciesRecord.sqf @@ -62,7 +62,7 @@ reverse _battalionElementCfgs; GVAR(subjectFrequenciesID), _diaryTitleText#0, _diaryTitleText#1 - ] call FUNC(createOrUpdateDiaryRecord); + ] call EFUNC(common,createOrUpdateDiaryRecord); } forEach _battalionElementCfgs; // add the battalion command to the top of the list @@ -72,6 +72,6 @@ private _diaryTitleText = [_battalionInfoCfg >> "Command", false] call FUNC(gene GVAR(subjectFrequenciesID), _diaryTitleText#0, _diaryTitleText#1 -] call FUNC(createOrUpdateDiaryRecord); +] call EFUNC(common,createOrUpdateDiaryRecord); true; \ No newline at end of file diff --git a/framework/fbcb2_main/functions/fn_addSignalColorsRecord.sqf b/framework/fbcb2_main/functions/fn_addSignalColorsRecord.sqf index 078c72f..ae712de 100644 --- a/framework/fbcb2_main/functions/fn_addSignalColorsRecord.sqf +++ b/framework/fbcb2_main/functions/fn_addSignalColorsRecord.sqf @@ -56,4 +56,4 @@ _text = _text joinString "

"; GVAR(subjectIntelID), _recordTitle, _text -] call FUNC(createOrUpdateDiaryRecord); \ No newline at end of file +] call EFUNC(common,createOrUpdateDiaryRecord); \ No newline at end of file diff --git a/framework/fbcb2_main/functions/fn_initClient.sqf b/framework/fbcb2_main/functions/fn_initClient.sqf index b2f717b..e0cc5cb 100644 --- a/framework/fbcb2_main/functions/fn_initClient.sqf +++ b/framework/fbcb2_main/functions/fn_initClient.sqf @@ -25,12 +25,6 @@ player createDiarySubject[GVAR(subjectAssetsFixedWingID), "FBCB2 Planes"]; player createDiarySubject[GVAR(subjectAssetsRotaryID), "FBCB2 Helicopters"]; player createDiarySubject[GVAR(subjectAssetsGroundID), "FBCB2 Ground"]; -// store records in format: -// [subject, [ -// [title, diaryRecord] -// ]] -GVAR(diaryRecords) = createHashMap; - // run main inits [] call FUNC(addFrequenciesRecord); [] call FUNC(addSignalColorsRecord); @@ -47,7 +41,7 @@ GVAR(diaryRecords) = createHashMap; [ LEVEL_DEBUG, QUOTE(COMPONENT), - "postInit complete", + "initClient complete", [] ] call EFUNC(common,log); diff --git a/framework/init/functions/fn_addRespawnChatHandler.sqf b/framework/init/functions/fn_addRespawnChatHandler.sqf index b2d0007..6e4c22f 100644 --- a/framework/init/functions/fn_addRespawnChatHandler.sqf +++ b/framework/init/functions/fn_addRespawnChatHandler.sqf @@ -24,7 +24,7 @@ [ LEVEL_INFO, QUOTE(COMPONENT), - "Respawn chat handler registered", + "respawn chat handler registered", [player] call EFUNC(common,addPlayerInfoToArray) ] call EFUNC(common,log); diff --git a/framework/init/functions/fn_initClient.sqf b/framework/init/functions/fn_initClient.sqf index 14259f6..39fc06e 100644 --- a/framework/init/functions/fn_initClient.sqf +++ b/framework/init/functions/fn_initClient.sqf @@ -14,9 +14,17 @@ waitUntil {!isNil QGVARMAIN(complete)}; ["InitializePlayer", [player, true]] call BIS_fnc_dynamicGroups; +// Initialize a holder for managing local diary records +// store records in format: +// [subject, [ +// [title, diaryRecord] +// ]] +EGVAR(common,diaryRecords) = createHashMap; + // initialize other modules call EFUNC(mapcopy,initClient); +call EFUNC(rasptools,initClient); call EFUNC(reinsert,initClient); call EFUNC(resupply,initClient); call EFUNC(triageIcons,initClient); @@ -28,8 +36,10 @@ call EFUNC(fbcb2_assets,initClient); [ LEVEL_DEBUG, QUOTE(COMPONENT), - "postInit complete", + "initClient complete", [] ] call EFUNC(common,log); +localNamespace setVariable [QGVAR(complete), true]; + nil; \ No newline at end of file diff --git a/framework/mapcopy/functions/fn_initClient.sqf b/framework/mapcopy/functions/fn_initClient.sqf index c7eaa22..3287103 100644 --- a/framework/mapcopy/functions/fn_initClient.sqf +++ b/framework/mapcopy/functions/fn_initClient.sqf @@ -45,4 +45,13 @@ private _mapCopyAction = } else { format["You need a map to copy onto!"] call CBA_fnc_notify; }; -}] call CBA_fnc_addEventHandler; \ No newline at end of file +}] call CBA_fnc_addEventHandler; + +[ + LEVEL_DEBUG, + QUOTE(COMPONENT), + "initClient complete", + [] +] call EFUNC(common,log); + +localNamespace setVariable [QGVAR(complete), true]; \ No newline at end of file diff --git a/framework/reinsert/client/fn_initClient.sqf b/framework/reinsert/client/fn_initClient.sqf index df78cd0..e770796 100644 --- a/framework/reinsert/client/fn_initClient.sqf +++ b/framework/reinsert/client/fn_initClient.sqf @@ -47,6 +47,8 @@ if ((typeOf player) in ["B_Helipilot_F", "B_helicrew_F"]) then { [ LEVEL_DEBUG, QUOTE(COMPONENT), - "postInit complete", + "initClient complete", [] -] call EFUNC(common,log); \ No newline at end of file +] call EFUNC(common,log); + +localNamespace setVariable [QGVAR(complete), true]; \ No newline at end of file diff --git a/framework/resupply/functions/fn_initClient.sqf b/framework/resupply/functions/fn_initClient.sqf index b5601fd..1def6f7 100644 --- a/framework/resupply/functions/fn_initClient.sqf +++ b/framework/resupply/functions/fn_initClient.sqf @@ -7,7 +7,7 @@ call FUNC(addArsenalObjectSpawnBoxActions); [ LEVEL_DEBUG, QUOTE(COMPONENT), - "postInit complete", + "initClient complete", [] ] call EFUNC(common,log); diff --git a/framework/triageIcons/functions/fn_initClient.sqf b/framework/triageIcons/functions/fn_initClient.sqf index 79b48ec..7b22f9d 100644 --- a/framework/triageIcons/functions/fn_initClient.sqf +++ b/framework/triageIcons/functions/fn_initClient.sqf @@ -6,7 +6,8 @@ GVAR(drawTargets) = []; [ LEVEL_DEBUG, QUOTE(COMPONENT), - "postInit complete", + "initClient complete", [] ] call EFUNC(common,log); + localNamespace setVariable [QGVAR(complete), true]; \ No newline at end of file diff --git a/framework/vehicleFlags/functions/fn_initClient.sqf b/framework/vehicleFlags/functions/fn_initClient.sqf index bdc2ae6..dd2dbcc 100644 --- a/framework/vehicleFlags/functions/fn_initClient.sqf +++ b/framework/vehicleFlags/functions/fn_initClient.sqf @@ -98,4 +98,13 @@ private _flagCategoryCfgs = (_vehicleFlagsCfg >> "FlagCategories") call BIS_fnc_ } forEach _baseClassesToApplyActionsFor; +[ + LEVEL_DEBUG, + QUOTE(COMPONENT), + "initClient complete", + [] +] call EFUNC(common,log); + +localNamespace setVariable [QGVAR(complete), true]; + nil; \ No newline at end of file