From 5114ae334f5f36f81d2ba2d2d6832847ffa9ded5 Mon Sep 17 00:00:00 2001 From: IndigoFox Date: Tue, 13 Feb 2024 11:02:42 -0800 Subject: [PATCH] add basic mission_settings check w notify in 3den preview --- framework/CfgFunctions.hpp | 7 ++-- .../init/functions/fn_addAARChatHandler.sqf | 2 + .../functions/fn_addRespawnChatHandler.sqf | 2 + .../functions/fn_checkMissionSettings.sqf | 41 +++++++++++++++++++ framework/init/functions/fn_initClient.sqf | 11 ++++- framework/init/functions/fn_setDefaults.sqf | 2 + 6 files changed, 61 insertions(+), 4 deletions(-) create mode 100644 framework/init/functions/fn_checkMissionSettings.sqf diff --git a/framework/CfgFunctions.hpp b/framework/CfgFunctions.hpp index 2146dc0..48fee2b 100644 --- a/framework/CfgFunctions.hpp +++ b/framework/CfgFunctions.hpp @@ -5,9 +5,10 @@ class DOUBLES(PREFIX,init) { file = "framework\init\functions"; class initServer { postInit = 1;}; class initClient { postInit = 1;}; - class setDefaults { postInit = 1; }; - class addAARChatHandler { postInit = 1; }; - class addRespawnChatHandler { postInit = 1; }; + class setDefaults {}; + class addAARChatHandler {}; + class addRespawnChatHandler {}; + class checkMissionSettings {}; }; }; diff --git a/framework/init/functions/fn_addAARChatHandler.sqf b/framework/init/functions/fn_addAARChatHandler.sqf index 10f3979..88d5703 100644 --- a/framework/init/functions/fn_addAARChatHandler.sqf +++ b/framework/init/functions/fn_addAARChatHandler.sqf @@ -1,5 +1,7 @@ #include "..\script_component.hpp" +if (!hasInterface) exitWith {}; + [ "saveaar", { diff --git a/framework/init/functions/fn_addRespawnChatHandler.sqf b/framework/init/functions/fn_addRespawnChatHandler.sqf index 6e4c22f..3a08fbf 100644 --- a/framework/init/functions/fn_addRespawnChatHandler.sqf +++ b/framework/init/functions/fn_addRespawnChatHandler.sqf @@ -1,5 +1,7 @@ #include "..\script_component.hpp" +if (!hasInterface) exitWith {}; + [ "respawn", { diff --git a/framework/init/functions/fn_checkMissionSettings.sqf b/framework/init/functions/fn_checkMissionSettings.sqf new file mode 100644 index 0000000..fa017d5 --- /dev/null +++ b/framework/init/functions/fn_checkMissionSettings.sqf @@ -0,0 +1,41 @@ +#include "..\script_component.hpp" + +if (!hasInterface || !is3DENPreview) exitWith {}; + +private _warningText = []; + +if (getText(missionConfigFile >> "author") in ["MISSION AUTHOR", ""]) then { + _warningText pushBack "mission_settings\author is blank or default!"; +}; +if (getText(missionConfigFile >> "onLoadName") in ["THIS APPEARS ON TOP OF THE LOADING SCREEN IMAGE", ""]) then { + _warningText pushBack "mission_settings\onLoadName is blank or default!"; +}; + +if (getText(missionConfigFile >> "briefingName") in ["THIS IS THE NAME ON THE #MISSIONS LIST", ""]) then { + _warningText pushBack "mission_settings\briefingName is blank or default!"; +}; +if (getText(missionConfigFile >> "overviewText") in ["THIS IS WHERE YOU DESCRIBE THE MISSION IN THE #MISSION LIST", ""]) then { + _warningText pushBack "mission_settings\overviewText is blank or default!"; +}; + +if (getText(missionConfigFile >> "missionSeries") in ["MY SERIES NAME", ""]) then { + _warningText pushBack "mission_settings\missionSeries is blank or default!"; +}; + +if (count GVARMAIN(baseObjects) isEqualTo 0) then { + _warningText pushBack "No respawn points placed!"; +}; + +if (count _warningText > 0) then { + [{ + if (isNull (call BIS_fnc_displayMission)) exitWith {}; + + (_this#0) spawn { + [_this joinString "
", "Issues found!", true, false] call BIS_fnc_guiMessage; + }; + [_this#1] call CBA_fnc_removePerFrameHandler; + + }, 1, _warningText] call CBA_fnc_addPerFrameHandler; +}; + +nil; \ No newline at end of file diff --git a/framework/init/functions/fn_initClient.sqf b/framework/init/functions/fn_initClient.sqf index 81eef3a..fc9f0d5 100644 --- a/framework/init/functions/fn_initClient.sqf +++ b/framework/init/functions/fn_initClient.sqf @@ -1,6 +1,6 @@ #include "..\script_component.hpp" -if ( !hasInterface ) exitWith {}; +if (!hasInterface) exitWith {}; ["milsim_logText", { params [["_strArray", [""], [[]]]]; @@ -14,6 +14,13 @@ waitUntil {!isNil QGVARMAIN(complete)}; ["InitializePlayer", [player, true]] call BIS_fnc_dynamicGroups; +// run primary init functions +call FUNC(addAARChatHandler); +call FUNC(addRespawnChatHandler); +call FUNC(setDefaults); +call FUNC(checkMissionSettings); + + // Initialize a holder for managing local diary records // store records in format: // [subject, [ @@ -34,6 +41,8 @@ call EFUNC(fbcb2_main,initClient); call EFUNC(fbcb2_assets,initClient); +call FUNC(checkMissionSettings); + [ LEVEL_DEBUG, QUOTE(COMPONENT), diff --git a/framework/init/functions/fn_setDefaults.sqf b/framework/init/functions/fn_setDefaults.sqf index 45a18d3..6bd43f8 100644 --- a/framework/init/functions/fn_setDefaults.sqf +++ b/framework/init/functions/fn_setDefaults.sqf @@ -1,5 +1,7 @@ #include "..\script_component.hpp" +if (!hasInterface) exitWith {}; + enableSaving[false, false]; enableRadio false;