Compare commits

..

6 Commits

3 changed files with 116 additions and 103 deletions

View File

@@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project badly attempts [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [3.1.1] - 2024-01-04
### Changed
- Spelling Fixes
- Update class binding for vehicle flag interaction
## [3.1.0] - 2023-12-17
### Added

View File

@@ -80,111 +80,118 @@ milsim_vehicleflag_options = [
];
private _appliedParentClasses = [
"LandVehicle",
"Helicopter"
];
["AllVehicles", "InitPost", {
private _flagActionID = "SetVehicleFlag";
private _flagMasterAction = [
_flagActionID, // id
"Set Vehicle Flag", // displayed title
"\A3\ui_f\data\map\markers\flags\nato_ca.paa", // flag icon
{true}, // statement
{true}, // condition
{
params ["_target", "_player", "_params"];
private _flagActionID = _params#0;
private _actions = [];
{
private _parentClass = _x;
[_parentClass, "InitPost", {
private _flagActionID = "SetVehicleFlag";
private _flagMasterAction = [
_flagActionID, // id
"Set Vehicle Flag", // displayed title
"\A3\ui_f\data\map\markers\flags\nato_ca.paa", // flag icon
{true}, // statement
{true}, // condition
{
_x params ["_flagCategory", "_flagOptions"];
// diag_log format ["NewFlagCategory: %1 %2", _flagCategory, _flagOptions];
params ["_target", "_player", "_params"];
private _flagActionID = _params#0;
private _actions = [];
{
_x params ["_flagCategory", "_flagOptions"];
// diag_log format ["NewFlagCategory: %1 %2", _flagCategory, _flagOptions];
private _flagCategoryOption = [
_flagActionID + "_" + _flagCategory, // id
_flagCategory, // displayed title
(_flagOptions#0#1) get "Texture", // flag icon
{true}, // statement
{
params ["_target", "_player", "_params"];
alive _target;
// true;
}, // condition
{
params ["_target", "_player", "_params"];
_params params ["_flagActionID", "_flagCategoryID", "_flagOptions"];
private _categoryOptions = [];
private _flagCategoryOption = [
_flagActionID + "_" + _flagCategory, // id
_flagCategory, // displayed title
(_flagOptions#0#1) get "Texture", // flag icon
{true}, // statement
{
_x params ["_flagOptionID", "_flagOptionData"];
// diag_log format ["NewFlagOption: %1 %2", _flagOptionID, _flagOptionData];
private _newFlagOption = [
_flagActionID + "_" + _flagCategory + "_" + _flagOptionID, // id
_flagOptionData get "Title", // displayed title
_flagOptionData get "Texture", // flag icon
{
params ["_target", "_player", "_params"];
_target forceFlagTexture (_params select 2);
}, // statement
{
params ["_target", "_player", "_params"];
alive _target;
// true;
}, // condition
nil, // child code
[_flagActionID, _flagCategoryID, getMissionPath (_flagOptionData get "Texture")], // params
nil, // position
4, // distance
[false, false, false, false, false] // other params
] call ace_interact_menu_fnc_createAction;
_categoryOptions pushBack [_newFlagOption, [], _target];
} forEach _flagOptions;
_categoryOptions;
}, // child code
[_flagActionID, _flagCategoryID, _flagOptions], // params
nil, // position
4, // distance
[false, false, false, false, false], // other params
nil // modifier function code
] call ace_interact_menu_fnc_createAction;
params ["_target", "_player", "_params"];
alive _target;
// true;
}, // condition
{
params ["_target", "_player", "_params"];
_params params ["_flagActionID", "_flagCategoryID", "_flagOptions"];
private _categoryOptions = [];
{
_x params ["_flagOptionID", "_flagOptionData"];
// diag_log format ["NewFlagOption: %1 %2", _flagOptionID, _flagOptionData];
private _newFlagOption = [
_flagActionID + "_" + _flagCategory + "_" + _flagOptionID, // id
_flagOptionData get "Title", // displayed title
_flagOptionData get "Texture", // flag icon
{
params ["_target", "_player", "_params"];
_target forceFlagTexture (_params select 2);
}, // statement
{
params ["_target", "_player", "_params"];
alive _target;
// true;
}, // condition
nil, // child code
[_flagActionID, _flagCategoryID, getMissionPath (_flagOptionData get "Texture")], // params
nil, // position
4, // distance
[false, false, false, false, false] // other params
] call ace_interact_menu_fnc_createAction;
_categoryOptions pushBack [_newFlagOption, [], _target];
} forEach _flagOptions;
_categoryOptions;
}, // child code
[_flagActionID, _flagCategoryID, _flagOptions], // params
nil, // position
4, // distance
[false, false, false, false, false], // other params
nil // modifier function code
] call ace_interact_menu_fnc_createAction;
_actions pushBack [_flagCategoryOption, [], _target];
} forEach milsim_vehicleflag_options;
_actions pushBack [_flagCategoryOption, [], _target];
} forEach milsim_vehicleflag_options;
_actions;
}, // child code
[_flagActionID], // params
nil, // position
4, // distance
[false, false, false, false, false], // other params
nil // modifier function code
] call ace_interact_menu_fnc_createAction;
_actions;
}, // child code
[_flagActionID], // params
nil, // position
4, // distance
[false, false, false, false, false], // other params
nil // modifier function code
] call ace_interact_menu_fnc_createAction;
// add action to add flag
[
(_this select 0), // object
0, // action 0 or self-action 1
["ACE_MainActions"], // parent
_flagMasterAction // action
] call ace_interact_menu_fnc_addActionToObject;
// add action to remove flag
private _removeFlagAction = [
_flagActionID + "_removeflag", // id
"Remove Flag", // displayed title
"\A3\ui_f\data\map\markers\flags\nato_ca.paa", // flag icon
{
params ["_target", "_player", "_params"];
_target forceFlagTexture "";
}, // statement
{true}, // condition
nil // child code
] call ace_interact_menu_fnc_createAction;
[
(_this select 0), // object
0, // action 0 or self-action 1
["ACE_MainActions", _flagActionID], // parent
_removeFlagAction // action
] call ace_interact_menu_fnc_addActionToObject;
// add action to add flag
[
(_this select 0), // object
0, // action 0 or self-action 1
["ACE_MainActions"], // parent
_flagMasterAction // action
] call ace_interact_menu_fnc_addActionToObject;
}, true, [], true] call CBA_fnc_addClassEventHandler;
// add action to remove flag
private _removeFlagAction = [
_flagActionID + "_removeflag", // id
"Remove Flag", // displayed title
"\A3\ui_f\data\map\markers\flags\nato_ca.paa", // flag icon
{
params ["_target", "_player", "_params"];
_target forceFlagTexture "";
}, // statement
{true}, // condition
nil // child code
] call ace_interact_menu_fnc_createAction;
[
(_this select 0), // object
0, // action 0 or self-action 1
["ACE_MainActions", _flagActionID], // parent
_removeFlagAction // action
] call ace_interact_menu_fnc_addActionToObject;
}, true, [], true] call CBA_fnc_addClassEventHandler;
} forEach _appliedParentClasses;
nil;

View File

@@ -6,7 +6,7 @@
"milsim_sideChat",
"CHECKBOX",
"Side Chat Text Enabled",
["17th Battallion", "Side Chat"],
["17th Battalion", "Side Chat"],
false,
true,
{
@@ -25,7 +25,7 @@
"milsim_server_cps_enable",
"CHECKBOX",
"CPS Metrics Enabled",
["17th Battallion", "Server Metrics"],
["17th Battalion", "Server Metrics"],
true,
true,
{
@@ -40,7 +40,7 @@
"milsim_server_cps_interval",
"TIME",
"Metrics Interval",
["17th Battallion", "Server Metrics"],
["17th Battalion", "Server Metrics"],
[60,300,120],
true,
{
@@ -71,7 +71,7 @@
"milsim_client_cps_enable",
"CHECKBOX",
"CPS Metrics Enabled",
["17th Battallion", "Client Metrics"],
["17th Battalion", "Client Metrics"],
true,
true,
{
@@ -86,7 +86,7 @@
"milsim_client_cps_interval",
"TIME",
"CPS Metrics Interval",
["17th Battallion", "Client Metrics"],
["17th Battalion", "Client Metrics"],
[60,300,120],
true,
{