rewrite assigned item fix

This commit is contained in:
commy2 2015-04-10 18:31:43 +02:00
parent 5ff1d9863d
commit dc49f2c71e
2 changed files with 61 additions and 16 deletions

View File

@ -1,19 +1,62 @@
// by commy2
#include "script_component.hpp"
if (isNil "ACE_itemFix") then {
ACE_isMapEnabled = call {_config = missionConfigFile >> "showMap"; !isNumber _config || {getNumber _config == 1}};
ACE_isCompassEnabled = call {_config = missionConfigFile >> "showCompass"; !isNumber _config || {getNumber _config == 1}};
ACE_isWatchEnabled = call {_config = missionConfigFile >> "showWatch"; !isNumber _config || {getNumber _config == 1}};
ACE_isRadioEnabled = call {_config = missionConfigFile >> "showRadio"; !isNumber _config || {getNumber _config == 1}};
ACE_isGPSEnabled = call {_config = missionConfigFile >> "showGPS"; !isNumber _config || {getNumber _config == 1}};
ACE_isMapEnabled = call {_config = missionConfigFile >> "showMap"; !isNumber _config || {getNumber _config == 1}};
ACE_isCompassEnabled = call {_config = missionConfigFile >> "showCompass"; !isNumber _config || {getNumber _config == 1}};
ACE_isWatchEnabled = call {_config = missionConfigFile >> "showWatch"; !isNumber _config || {getNumber _config == 1}};
ACE_isRadioEnabled = call {_config = missionConfigFile >> "showRadio"; !isNumber _config || {getNumber _config == 1}};
ACE_isGPSEnabled = call {_config = missionConfigFile >> "showGPS"; !isNumber _config || {getNumber _config == 1}};
ACE_itemFix = ["ACE_itemFix", "onEachFrame", {
_items = assignedItems ACE_player;
showMap (ACE_isMapEnabled && {"ItemMap" in _items});
showCompass (ACE_isCompassEnabled && {"ItemCompass" in _items});
showWatch (ACE_isWatchEnabled && {"ItemWatch" in _items});
//showRadio (ACE_isRadioEnabled && {"ItemRadio" in _items});
showGPS (ACE_isGPSEnabled && {"ItemGPS" in _items || {cameraOn == getConnectedUAV ACE_player}}); //If player is activly controling a UAV, showGPS controls showing the map (m key)
}] call BIS_fnc_addStackedEventHandler;
};
GVAR(AssignedItems) = [];
GVAR(AssignedItemsInfo) = [];
["playerInventoryChanged", {
private ["_unit", "_assignedItems", "_shownItems"];
_unit = _this select 0;
_assignedItems = _this select 1 select 17;
_shownItems = [
ACE_isMapEnabled,
ACE_isCompassEnabled,
ACE_isWatchEnabled,
ACE_isRadioEnabled,
ACE_isGPSEnabled
];
{
if !(_x in GVAR(AssignedItems)) then {
GVAR(AssignedItems) pushBack _x;
GVAR(AssignedItemsInfo) pushBack toLower getText (configFile >> "CfgWeapons" >> _x >> "ACE_hideItemType")
};
private "_hideItemType";
_hideItemType = GVAR(AssignedItemsInfo) select (GVAR(AssignedItems) find _x);
switch (_hideItemType) do {
case ("map"): {
_shownItems set [0, false];
};
case ("compass"): {
_shownItems set [1, false];
};
case ("watch"): {
_shownItems set [2, false];
};
case ("radio"): {
_shownItems set [3, false];
};
case ("GPS"): {
_shownItems set [4, false];
};
};
} forEach _assignedItems;
//systemChat str _shownItems;
showMap (_shownItems select 0);
showCompass (_shownItems select 1);
showWatch (_shownItems select 2);
showRadio (_shownItems select 3);
showGPS (_shownItems select 4 || {cameraOn == getConnectedUAV _unit}); //If player is activly controling a UAV, showGPS controls showing the map (m key)
}] call FUNC(addEventHandler);

View File

@ -1,6 +1,8 @@
class CfgWeapons {
class ItemWatch;
class ACE_Altimeter:ItemWatch {
class ACE_Altimeter: ItemWatch {
ACE_hideItemType = "Watch";
author = "$STR_ACE_Common_ACETeam";
descriptionShort = "$STR_ACE_Parachute_AltimeterDescription";
displayName = "$STR_ACE_Parachute_AltimeterDisplayName";