diff --git a/addons/uh60_fms/functions/fnc_updateWaypointInfo.sqf b/addons/uh60_fms/functions/fnc_updateWaypointInfo.sqf index faab888b..924d037d 100644 --- a/addons/uh60_fms/functions/fnc_updateWaypointInfo.sqf +++ b/addons/uh60_fms/functions/fnc_updateWaypointInfo.sqf @@ -73,16 +73,18 @@ if (vtx_uh60_fms_renderWaypointsOnTAC) then { // //43 44 - if (!isNil {VTX_JVMF_MESSAGES # VTX_JVMF_SELECTED_IDX}) then { - (VTX_JVMF_MESSAGES # VTX_JVMF_SELECTED_IDX) params ["_ID", "_sender", "_recipient", "_type", "_text", "_data", "_replies"]; - if (_type == 2) then { - _data params ["_position"]; - [_position, 43, 44] call _positionToMfd; + if (count VTX_JVMF_MESSAGES > 0) then { + if (!isNil {VTX_JVMF_MESSAGES # VTX_JVMF_SELECTED_IDX}) then { + (VTX_JVMF_MESSAGES # VTX_JVMF_SELECTED_IDX) params ["_ID", "_sender", "_recipient", "_type", "_text", "_data", "_replies"]; + if (_type == 2) then { + _data params ["_position"]; + [_position, 43, 44] call _positionToMfd; + } else { + [43, 44] call _clearPos; + }; } else { [43, 44] call _clearPos; }; - } else { - [43, 44] call _clearPos; }; }; diff --git a/addons/uh60_jvmf/CfgEventHandlers.hpp b/addons/uh60_jvmf/CfgEventHandlers.hpp index 93e3311c..0d3301d6 100644 --- a/addons/uh60_jvmf/CfgEventHandlers.hpp +++ b/addons/uh60_jvmf/CfgEventHandlers.hpp @@ -9,3 +9,9 @@ class Extended_PreInit_EventHandlers { init = QUOTE(call COMPILE_FILE(XEH_preInit)); }; }; + +class Extended_PostInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_postInit)); + }; +}; diff --git a/addons/uh60_jvmf/XEH_PREP.hpp b/addons/uh60_jvmf/XEH_PREP.hpp index 92e8b5ad..b6f18042 100644 --- a/addons/uh60_jvmf/XEH_PREP.hpp +++ b/addons/uh60_jvmf/XEH_PREP.hpp @@ -10,3 +10,4 @@ PREP(submitMessage); PREP(openMessage); PREP(prepareInboxDialog); PREP(ctabToJvmf); +PREP(deleteMessage); \ No newline at end of file diff --git a/addons/uh60_jvmf/XEH_postInit.sqf b/addons/uh60_jvmf/XEH_postInit.sqf new file mode 100644 index 00000000..53a84e39 --- /dev/null +++ b/addons/uh60_jvmf/XEH_postInit.sqf @@ -0,0 +1,5 @@ +#include "script_component.hpp" + +if (!vtx_uh60_jvmf_defaults) then { + VTX_JVMF_MESSAGES = []; +}; \ No newline at end of file diff --git a/addons/uh60_jvmf/XEH_preInit.sqf b/addons/uh60_jvmf/XEH_preInit.sqf index 7aebae77..e3c94f59 100644 --- a/addons/uh60_jvmf/XEH_preInit.sqf +++ b/addons/uh60_jvmf/XEH_preInit.sqf @@ -9,6 +9,13 @@ ADDON = false; * 1 - 5-line CAS * 2 - location */ +[ + "vtx_uh60_jvmf_defaults" + ,"CHECKBOX" + ,["Enable JVMF Default Messages", "The JVMF Default messages provide an example of usage of the JVMF"] + ,["UH-60M", "JVMF"] + ,true +] call CBA_fnc_addSetting; vtx_uh60_jvmf_importedCtabMarkersList = []; VTX_JVMF_MESSAGES = [ diff --git a/addons/uh60_jvmf/XEH_preStart.sqf b/addons/uh60_jvmf/XEH_preStart.sqf index 02288857..38801385 100644 --- a/addons/uh60_jvmf/XEH_preStart.sqf +++ b/addons/uh60_jvmf/XEH_preStart.sqf @@ -1,3 +1,3 @@ #include "script_component.hpp" -#include "XEH_PREP.hpp" +#include "XEH_PREP.hpp" \ No newline at end of file diff --git a/addons/uh60_jvmf/functions/fnc_deleteMessage.sqf b/addons/uh60_jvmf/functions/fnc_deleteMessage.sqf new file mode 100644 index 00000000..9cf59174 --- /dev/null +++ b/addons/uh60_jvmf/functions/fnc_deleteMessage.sqf @@ -0,0 +1,37 @@ +/* + * vtx_uh60_jvmf_fnc_deleteMessage + * + * Deletes JVMF at selected index + * + * params: vehicle + * + * returns: nothing + * + */ + +params ["_vehicle"]; + +if (count VTX_JVMF_MESSAGES == 0) exitWith {}; + +//this function deletes a JVMF at the selected index +VTX_JVMF_MESSAGES deleteAt VTX_JVMF_SELECTED_IDX; + +//reset JVMF index after deleting the messages at the index +if (VTX_JVMF_SELECTED_IDX != 0) then { + VTX_JVMF_SELECTED_IDX = VTX_JVMF_SELECTED_IDX - 1; +} else { + VTX_JVMF_SELECTED_IDX = 0; +}; + +if(vtx_uh60_ui_showDebugMessages) then { + systemChat format ["Deleted Message at index: %1 and new index is %2.", VTX_JVMF_SELECTED_IDX, VTX_JVMF_SELECTED_IDX]; +}; + +//redraw JVMF if there are more messages remaining, otherwise manually clear the JVMF +if (count VTX_JVMF_MESSAGES > 0) exitWith { + [_vehicle] call vtx_uh60_jvmf_fnc_drawJVMF; +}; + +for "_i" from 30 to 42 do { + [_vehicle, _i, ""] call vtx_uh60_mfd_fnc_setUserText; +}; diff --git a/addons/uh60_jvmf/functions/fnc_drawJVMF.sqf b/addons/uh60_jvmf/functions/fnc_drawJVMF.sqf index 83c111af..8dcf7c66 100644 --- a/addons/uh60_jvmf/functions/fnc_drawJVMF.sqf +++ b/addons/uh60_jvmf/functions/fnc_drawJVMF.sqf @@ -6,6 +6,11 @@ */ params ["_vehicle"]; +//Do not draw JVMF is there are no JVMF Messages +if (count VTX_JVMF_MESSAGES == 0) exitWith { + _vehicle setUserMFDValue [16, -1]; //-1 sets as empty +}; + private _fixString = { params ["_str", "_length"]; private _str = _str select [0,_length]; diff --git a/addons/uh60_mfd/config/MFD/pages/jvmf/jvmf_empty.hpp b/addons/uh60_mfd/config/MFD/pages/jvmf/jvmf_empty.hpp new file mode 100644 index 00000000..f17d0abd --- /dev/null +++ b/addons/uh60_mfd/config/MFD/pages/jvmf/jvmf_empty.hpp @@ -0,0 +1,4 @@ +class jvmf_border {}; +class reply_wrapper {}; +class type_wrapper {}; +class blue_labels {}; \ No newline at end of file diff --git a/addons/uh60_mfd/config/MFD/pages/jvmf_draw.hpp b/addons/uh60_mfd/config/MFD/pages/jvmf_draw.hpp index df47878f..3615a81d 100644 --- a/addons/uh60_mfd/config/MFD/pages/jvmf_draw.hpp +++ b/addons/uh60_mfd/config/MFD/pages/jvmf_draw.hpp @@ -22,6 +22,8 @@ TEXT_LEFT_SCALED(JVMF_MESSAGE_NEW,0.01,0.17,"NEW",0.04) TEXT_LEFT_SCALED(JVMF_MESSAGE_NEW2,0.01,0.17+0.04,"MSG",0.04) TEXT_LEFT_SCALED(JVMF_MESSAGE_CYCLE,0.01,0.36,"CYCLE",0.04) TEXT_LEFT_SCALED(JVMF_MESSAGE_INBOX,0.01,0.36+0.04,"PAGE",0.04) +TEXT_LEFT_SCALED(JVMF_MESSAGE_DEL,0.01,0.72,"DEL",0.04) +TEXT_LEFT_SCALED(JVMF_MESSAGE_DEL2,0.01,0.72+0.04,"MSG",0.04) TEXT_MID_SCALED(JVMF_REPLY_ACK,0.35,JVMF_LINE_HEIGHT * 0.3,"ACK",0.04) class wilco_wrap { @@ -53,6 +55,11 @@ class cantco_wrap { }; \ }; +class jvmf_type_empty { + condition=COND_ISNUMBER(JVMF_TYPE,-1); + #include "jvmf\jvmf_empty.hpp" +}; + class jvmf_type_0 { condition=COND_ISNUMBER(JVMF_TYPE,0); #include "jvmf\jvmf_freetext.hpp" diff --git a/addons/uh60_mfd/config/interaction.hpp b/addons/uh60_mfd/config/interaction.hpp index 53ace99c..2ec05ebb 100644 --- a/addons/uh60_mfd/config/interaction.hpp +++ b/addons/uh60_mfd/config/interaction.hpp @@ -109,6 +109,7 @@ class tac { class jvmf { condition= USERVAL(MFD_PAGE_INDEX,MFD_PAGE_JVMF); + MFD_BTN(MFD_20,QUOTE(Del Message)) buttonUp="[vehicle player] call vtx_uh60_jvmf_fnc_deleteMessage;"; }; MFD_BTN(MFD_24,QUOTE(New message)) buttonUp="createDialog 'vtx_uh60_jvmf_writeDialog';"; }; MFD_BTN(MFD_23,QUOTE(Prev MSG)) buttonUp="[vehicle player,'cycle', -1] call vtx_uh60_jvmf_fnc_mfdInteraction;"; }; MFD_BTN(MFD_22,QUOTE(Next MSG)) buttonUp="[vehicle player,'cycle', 1] call vtx_uh60_jvmf_fnc_mfdInteraction;"; };