wip
This commit is contained in:
@@ -1,225 +0,0 @@
|
||||
milsim_vehicleflag_options = [
|
||||
["Chevron IDs", [
|
||||
["flag_chevron_id1", createHashMapFromArray [
|
||||
["Title", "Flag 1"],
|
||||
["Texture", "textures\flag_number\flag_id_1_co.paa"]
|
||||
]],
|
||||
["flag_chevron_id2", createHashMapFromArray [
|
||||
["Title", "Flag 2"],
|
||||
["Texture", "textures\flag_number\flag_id_2_co.paa"]
|
||||
]],
|
||||
["flag_chevron_id3", createHashMapFromArray [
|
||||
["Title", "Flag 3"],
|
||||
["Texture", "textures\flag_number\flag_id_3_co.paa"]
|
||||
]],
|
||||
["flag_chevron_id4", createHashMapFromArray [
|
||||
["Title", "Flag 4"],
|
||||
["Texture", "textures\flag_number\flag_id_4_co.paa"]
|
||||
]],
|
||||
["flag_chevron_id5", createHashMapFromArray [
|
||||
["Title", "Flag 5"],
|
||||
["Texture", "textures\flag_number\flag_id_5_co.paa"]
|
||||
]],
|
||||
["flag_chevron_id6", createHashMapFromArray [
|
||||
["Title", "Flag 6"],
|
||||
["Texture", "textures\flag_number\flag_id_6_co.paa"]
|
||||
]],
|
||||
["flag_chevron_id7", createHashMapFromArray [
|
||||
["Title", "Flag 7"],
|
||||
["Texture", "textures\flag_number\flag_id_7_co.paa"]
|
||||
]],
|
||||
["flag_chevron_id8", createHashMapFromArray [
|
||||
["Title", "Flag 8"],
|
||||
["Texture", "textures\flag_number\flag_id_8_co.paa"]
|
||||
]],
|
||||
["flag_chevron_id9", createHashMapFromArray [
|
||||
["Title", "Flag 9"],
|
||||
["Texture", "textures\flag_number\flag_id_9_co.paa"]
|
||||
]],
|
||||
["flag_chevron_id10", createHashMapFromArray [
|
||||
["Title", "Flag 10"],
|
||||
["Texture", "textures\flag_number\flag_id_10_co.paa"]
|
||||
]],
|
||||
["flag_chevron_hq", createHashMapFromArray [
|
||||
["Title", "Flag HQ"],
|
||||
["Texture", "textures\flag_number\flag_id_hq_co.paa"]
|
||||
]]
|
||||
]],
|
||||
["Simple Shapes", [
|
||||
["flag_simpleshape_greenoctagon", createHashMapFromArray [
|
||||
["Title", "Green Octagon"],
|
||||
["Texture", "textures\simple_shape\flag_simpleshape_greenoctagon_co.paa"]
|
||||
]],
|
||||
["flag_simpleshape_bluecircle", createHashMapFromArray [
|
||||
["Title", "Blue Circle"],
|
||||
["Texture", "textures\simple_shape\flag_simpleshape_bluecircle_co.paa"]
|
||||
]],
|
||||
["flag_simpleshape_orangesquare", createHashMapFromArray [
|
||||
["Title", "Orange Square"],
|
||||
["Texture", "textures\simple_shape\flag_simpleshape_orangesquare_co.paa"]
|
||||
]],
|
||||
["flag_simpleshape_pinktriangle", createHashMapFromArray[
|
||||
["Title", "Pink Triangle"],
|
||||
["Texture", "textures\simple_shape\flag_simpleshape_pinktriangle_co.paa"]
|
||||
]],
|
||||
["flag_simpleshape_redpentagon", createHashMapFromArray [
|
||||
["Title", "Red Pentagon"],
|
||||
["Texture", "textures\simple_shape\flag_simpleshape_redpentagon_co.paa"]
|
||||
]]
|
||||
]],
|
||||
["Miscellaneous", [
|
||||
["flag_17th_emblem", createHashMapFromArray [
|
||||
["Title", "17th Emblem"],
|
||||
["Texture", "textures\flags_misc\flag_17th_emblem_co.paa"]
|
||||
]],
|
||||
["flag_redcross", createHashMapFromArray [
|
||||
["Title", "Red Cross"],
|
||||
["Texture", "textures\flags_misc\flag_redcross_co.paa"]
|
||||
]]
|
||||
]]
|
||||
];
|
||||
|
||||
|
||||
private _appliedParentClasses = [
|
||||
"LandVehicle",
|
||||
"Helicopter"
|
||||
];
|
||||
|
||||
private _modelsWithoutFlagProxies = [
|
||||
"TF373_SOAR_MH47G_Base", // MH-47G Chinook
|
||||
"RHS_MELB_base", // MELB AH-6M/MH-6M/H-6M Little Bird
|
||||
"USAF_C17", // C17 Globemaster III
|
||||
"USAF_C130J", // C130J Super Hercules
|
||||
"USAF_AC130U", // AC130 Spooky II
|
||||
"ej_UH60M_base", // UH-60M Black Hawk + DAP variants
|
||||
"rhsusf_fmtv_base" // M1083A1P2 variants + SOV SOCOM variants
|
||||
];
|
||||
|
||||
{
|
||||
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
|
||||
{
|
||||
params ["_target", "_player", "_params"];
|
||||
private _modelsWithoutFlagProxies = _params select 1;
|
||||
|
||||
// check if hierarchy includes any of the models without flag proxies
|
||||
private _excluded = false;
|
||||
{
|
||||
if (_excluded) exitWith {false};
|
||||
_excluded = _target isKindOf _x;
|
||||
} forEach _modelsWithoutFlagProxies;
|
||||
if (_excluded) exitWith {false};
|
||||
|
||||
|
||||
// check if vehicle is alive
|
||||
alive _target;
|
||||
}, // condition
|
||||
{
|
||||
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 = [];
|
||||
{
|
||||
_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;
|
||||
}, // child code
|
||||
[_flagActionID, _modelsWithoutFlagProxies], // 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
|
||||
{
|
||||
params ["_target", "_player", "_params"];
|
||||
alive _target && getForcedFlagTexture _target != "";
|
||||
}, // 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;
|
||||
Reference in New Issue
Block a user