Merge branch 'master' of https://github.com/KoffeinFlummi/ACE3 into ModuleIcons

This commit is contained in:
bux578 2015-03-24 19:12:23 +01:00
commit 60c50e0daf
232 changed files with 3717 additions and 1249 deletions

View File

@ -6,7 +6,7 @@
displayName = "$STR_ACE_Attach_AttachDetach"; \ displayName = "$STR_ACE_Attach_AttachDetach"; \
condition = QUOTE(([ARR_3(_player, _target, '')] call FUNC(canAttach))); \ condition = QUOTE(([ARR_3(_player, _target, '')] call FUNC(canAttach))); \
statement = QUOTE( [ARR_2(_player, _target)] call FUNC(openAttachUI);); \ statement = QUOTE( [ARR_2(_player, _target)] call FUNC(openAttachUI);); \
exceptions[] = {"ACE_Drag_isNotDragging"}; \ exceptions[] = {"isNotDragging"}; \
showDisabled = 0; \ showDisabled = 0; \
priority = 0; \ priority = 0; \
icon = PATHTOF(UI\attach_ca.paa); \ icon = PATHTOF(UI\attach_ca.paa); \
@ -16,7 +16,7 @@
displayName = "$STR_ACE_Attach_Detach"; \ displayName = "$STR_ACE_Attach_Detach"; \
condition = QUOTE(([ARR_2(_player, _target)] call FUNC(canDetach))); \ condition = QUOTE(([ARR_2(_player, _target)] call FUNC(canDetach))); \
statement = QUOTE( [ARR_2(_player, _target)] call FUNC(detach) ); \ statement = QUOTE( [ARR_2(_player, _target)] call FUNC(detach) ); \
exceptions[] = {"ACE_Drag_isNotDragging"}; \ exceptions[] = {"isNotDragging"}; \
showDisabled = 0; \ showDisabled = 0; \
priority = 0; \ priority = 0; \
icon = PATHTOF(UI\detach_ca.paa); \ icon = PATHTOF(UI\detach_ca.paa); \
@ -57,7 +57,7 @@ class CfgVehicles {
displayName = "$STR_ACE_Attach_AttachDetach"; displayName = "$STR_ACE_Attach_AttachDetach";
condition = QUOTE(([ARR_3(_player, _player, '')] call FUNC(canAttach))); condition = QUOTE(([ARR_3(_player, _player, '')] call FUNC(canAttach)));
statement = QUOTE( [ARR_2(_player, _player)] call FUNC(openAttachUI); ); statement = QUOTE( [ARR_2(_player, _player)] call FUNC(openAttachUI); );
exceptions[] = {"ACE_Drag_isNotDragging"}; exceptions[] = {"isNotDragging"};
showDisabled = 0; showDisabled = 0;
priority = 5; priority = 5;
icon = PATHTOF(UI\attach_ca.paa); icon = PATHTOF(UI\attach_ca.paa);
@ -67,7 +67,7 @@ class CfgVehicles {
displayName = "$STR_ACE_Attach_Detach"; displayName = "$STR_ACE_Attach_Detach";
condition = QUOTE(([ARR_2(_player, _player)] call FUNC(canDetach))); condition = QUOTE(([ARR_2(_player, _player)] call FUNC(canDetach)));
statement = QUOTE( [ARR_2(_player, _player)] call FUNC(detach) ); statement = QUOTE( [ARR_2(_player, _player)] call FUNC(detach) );
exceptions[] = {"ACE_Drag_isNotDragging"}; exceptions[] = {"isNotDragging"};
showDisabled = 0; showDisabled = 0;
priority = 5; priority = 5;
icon = PATHTOF(UI\detach_ca.paa); icon = PATHTOF(UI\detach_ca.paa);

View File

@ -6,7 +6,7 @@ class CfgPatches {
weapons[] = {"ACE_IR_Strobe_Item"}; weapons[] = {"ACE_IR_Strobe_Item"};
requiredVersion = REQUIRED_VERSION; requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_interaction"}; requiredAddons[] = {"ace_interaction"};
author[] = {"KoffeinFlummi","eRazeri","CAA-Picard"}; author[] = {"KoffeinFlummi","eRazeri","esteldunedain"};
authorUrl = "https://github.com/KoffeinFlummi/"; authorUrl = "https://github.com/KoffeinFlummi/";
VERSION_CONFIG; VERSION_CONFIG;
}; };

View File

@ -1,5 +1,5 @@
/* /*
* Author: eRazeri and CAA-Picard * Author: eRazeri and esteldunedain
* Attach an item to the unit * Attach an item to the unit
* *
* Arguments: * Arguments:

View File

@ -1,5 +1,5 @@
/* /*
* Author: eRazeri and CAA-Picard * Author: eRazeri and esteldunedain
* Detach an item from a unit * Detach an item from a unit
* *
* Arguments: * Arguments:

View File

@ -39,7 +39,7 @@ class CfgVehicles {
distance = 4; distance = 4;
condition = QUOTE([ARR_2(_player, _target)] call FUNC(canStopEscorting)); condition = QUOTE([ARR_2(_player, _target)] call FUNC(canStopEscorting));
statement = QUOTE([ARR_3(_player,_target, false)] call FUNC(doEscortCaptive)); statement = QUOTE([ARR_3(_player,_target, false)] call FUNC(doEscortCaptive));
exceptions[] = {QGVAR(isNotEscorting)}; exceptions[] = {"isNotEscorting"};
showDisabled = 0; showDisabled = 0;
icon = QUOTE(PATHTOF(UI\captive_ca.paa)); icon = QUOTE(PATHTOF(UI\captive_ca.paa));
priority = 2.3; priority = 2.3;
@ -50,7 +50,7 @@ class CfgVehicles {
distance = 4; distance = 4;
condition = QUOTE([ARR_3(_player, _target, objNull)] call FUNC(canLoadCaptive)); condition = QUOTE([ARR_3(_player, _target, objNull)] call FUNC(canLoadCaptive));
statement = QUOTE([ARR_3(_player, _target, objNull)] call FUNC(doLoadCaptive)); statement = QUOTE([ARR_3(_player, _target, objNull)] call FUNC(doLoadCaptive));
exceptions[] = {QGVAR(isNotEscorting)}; exceptions[] = {"isNotEscorting"};
showDisabled = 0; showDisabled = 0;
icon = QUOTE(PATHTOF(UI\captive_ca.paa)); icon = QUOTE(PATHTOF(UI\captive_ca.paa));
priority = 2.2; priority = 2.2;
@ -74,7 +74,7 @@ class CfgVehicles {
displayName = "$STR_ACE_Captives_StopEscorting"; displayName = "$STR_ACE_Captives_StopEscorting";
condition = QUOTE([ARR_2(_player, objNull)] call FUNC(canStopEscorting)); condition = QUOTE([ARR_2(_player, objNull)] call FUNC(canStopEscorting));
statement = QUOTE([ARR_3(_player,objNull, false)] call FUNC(doEscortCaptive)); statement = QUOTE([ARR_3(_player,objNull, false)] call FUNC(doEscortCaptive));
exceptions[] = {QGVAR(isNotEscorting)}; exceptions[] = {"isNotEscorting"};
showDisabled = 0; showDisabled = 0;
priority = 2.3; priority = 2.3;
hotkey = "C"; hotkey = "C";
@ -91,7 +91,7 @@ class CfgVehicles {
displayName = "$STR_ACE_Captives_StopSurrendering"; displayName = "$STR_ACE_Captives_StopSurrendering";
condition = QUOTE([ARR_2(_player, false)] call FUNC(canSurrender)); condition = QUOTE([ARR_2(_player, false)] call FUNC(canSurrender));
statement = QUOTE([ARR_2(_player, false)] call FUNC(setSurrendered)); statement = QUOTE([ARR_2(_player, false)] call FUNC(setSurrendered));
exceptions[] = {QGVAR(isNotSurrendering)}; exceptions[] = {"isNotSurrendering"};
showDisabled = 0; showDisabled = 0;
priority = 0; priority = 0;
}; };
@ -107,7 +107,7 @@ class CfgVehicles {
distance = 4; \ distance = 4; \
condition = QUOTE([ARR_3(_player, objNull, _target)] call FUNC(canLoadCaptive)); \ condition = QUOTE([ARR_3(_player, objNull, _target)] call FUNC(canLoadCaptive)); \
statement = QUOTE([ARR_3(_player, objNull, _target)] call FUNC(doLoadCaptive)); \ statement = QUOTE([ARR_3(_player, objNull, _target)] call FUNC(doLoadCaptive)); \
exceptions[] = {QGVAR(isNotEscorting)}; \ exceptions[] = {"isNotEscorting"}; \
showDisabled = 0; \ showDisabled = 0; \
priority = 1.2; \ priority = 1.2; \
hotkey = "L"; \ hotkey = "L"; \

View File

@ -183,3 +183,4 @@ _vehicle setFuel _fuelLevel;
["displayTextPicture", FUNC(displayTextPicture)] call FUNC(addEventhandler); ["displayTextPicture", FUNC(displayTextPicture)] call FUNC(addEventhandler);
["notOnMap", {!visibleMap}] call FUNC(addCanInteractWithCondition); ["notOnMap", {!visibleMap}] call FUNC(addCanInteractWithCondition);
["isNotInside", {_this select 0 == _this select 1 || {vehicle (_this select 0) == _this select 0}}] call FUNC(addCanInteractWithCondition);

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard * Author: esteldunedain
* Converts ASL to Arma "Position" * Converts ASL to Arma "Position"
* *
* Arguments: * Arguments:

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard * Author: esteldunedain
* *
* Add line to draw on debug * Add line to draw on debug
* *

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard * Author: esteldunedain
* Adds a new setting at runtime, with all it's metadata. * Adds a new setting at runtime, with all it's metadata.
* If has only local effects. * If has only local effects.
* *

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard and Jaynus * Author: esteldunedain and Jaynus
* Returns the result of the function and caches it up to a given time or event * Returns the result of the function and caches it up to a given time or event
* *
* Arguments: * Arguments:

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard * Author: esteldunedain
* *
* Returns a orthonormal system of reference aligned with the supplied vector * Returns a orthonormal system of reference aligned with the supplied vector
* *

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard * Author: esteldunedain
* Deletes a cached result * Deletes a cached result
* *
* Arguments: * Arguments:

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard * Author: esteldunedain
* *
* Executes a code on the next frame * Executes a code on the next frame
* *

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard * Author: esteldunedain
* Returns the metadata of a setting if it exists * Returns the metadata of a setting if it exists
* *
* Arguments: * Arguments:

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard * Author: esteldunedain
* Load the user setable settings from the user profile. * Load the user setable settings from the user profile.
* Config < Server UserConfig < Mission Config < Client settings * Config < Server UserConfig < Mission Config < Client settings
* *

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard * Author: esteldunedain
* Load the parameters on the server. * Load the parameters on the server.
* Config < Server UserConfig < Mission Config * Config < Server UserConfig < Mission Config
* *

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard * Author: esteldunedain
* Converts Arma "Position" to ASL * Converts Arma "Position" to ASL
* *
* Arguments: * Arguments:

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard * Author: esteldunedain
* *
* Reads a setting value from a module, set it and force it. Logs if the setting is missing from the module. * Reads a setting value from a module, set it and force it. Logs if the setting is missing from the module.
* Must be called on the server, effect is global. * Must be called on the server, effect is global.

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard * Author: esteldunedain
* Removes a magazine from the unit that has an specific ammo count * Removes a magazine from the unit that has an specific ammo count
* *
* Argument: * Argument:

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard, based on Killzone-Kid code * Author: esteldunedain, based on Killzone-Kid code
* *
* Removes quotation marks to avoid exploits and optionally html tags from text to avoid conflicts with structured text. * Removes quotation marks to avoid exploits and optionally html tags from text to avoid conflicts with structured text.
* *

View File

@ -1,4 +1,4 @@
// by CAA-Picard // by esteldunedain
#include "script_component.hpp" #include "script_component.hpp"
if (isServer) then { if (isServer) then {

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard * Author: esteldunedain
* *
* Sets the value of an ACE_Parameter and makes it public. * Sets the value of an ACE_Parameter and makes it public.
* *

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard * Author: esteldunedain
* Change the value of an existing setting if it was not previously forced. Force if neccesary. * Change the value of an existing setting if it was not previously forced. Force if neccesary.
* If executed on clients it has local effect. * If executed on clients it has local effect.
* If executed on server it can have global effect if the last parameter is set to true. * If executed on server it can have global effect if the last parameter is set to true.

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard * Author: esteldunedain
* Load a setting from config if it was not previosuly forced. Force if neccesary. * Load a setting from config if it was not previosuly forced. Force if neccesary.
* *
* Arguments: * Arguments:

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard * Author: esteldunedain
* Schedules the publishment of an object variable to reduce network overhead * Schedules the publishment of an object variable to reduce network overhead
* *
* Arguments: * Arguments:

View File

@ -1,5 +1,5 @@
/* /*
Author: commy2, CAA-Picard Author: commy2, esteldunedain
Description: Description:
Converts number to hexadecimal number Converts number to hexadecimal number

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard * Author: esteldunedain
* *
* Executes a code once with a given game time delay, using a PFH * Executes a code once with a given game time delay, using a PFH
* *

View File

@ -7,7 +7,7 @@ class CfgVehicles {
displayName = $STR_ACE_Explosives_Menu; displayName = $STR_ACE_Explosives_Menu;
condition = QUOTE(!(_player getVariable [ARR_2('ace_explosives_PlantingExplosive',false)])); condition = QUOTE(!(_player getVariable [ARR_2('ace_explosives_PlantingExplosive',false)]));
statement = ""; statement = "";
exceptions[] = {"ACE_Interaction_isNotSwimming"}; exceptions[] = {"isNotSwimming"};
showDisabled = 1; showDisabled = 1;
priority = 4; priority = 4;
icon = PATHTOF(UI\Explosives_Menu_ca.paa); icon = PATHTOF(UI\Explosives_Menu_ca.paa);
@ -17,7 +17,7 @@ class CfgVehicles {
displayName = $STR_ACE_Explosives_Detonate; displayName = $STR_ACE_Explosives_Detonate;
condition = QUOTE([_player] call FUNC(canDetonate)); condition = QUOTE([_player] call FUNC(canDetonate));
statement = QUOTE([_player] call FUNC(openTransmitterUI);); statement = QUOTE([_player] call FUNC(openTransmitterUI););
exceptions[] = {"ACE_Interaction_isNotSwimming"}; exceptions[] = {"isNotSwimming"};
showDisabled = 1; showDisabled = 1;
icon = PATHTOF(UI\Explosives_Menu_ca.paa); icon = PATHTOF(UI\Explosives_Menu_ca.paa);
priority = 2; priority = 2;
@ -27,7 +27,7 @@ class CfgVehicles {
displayName = $STR_ACE_Explosives_Place; displayName = $STR_ACE_Explosives_Place;
condition = QUOTE((vehicle _player == _player) and {[_player] call FUNC(hasExplosives)}); condition = QUOTE((vehicle _player == _player) and {[_player] call FUNC(hasExplosives)});
statement = QUOTE([_player] call FUNC(openPlaceUI);); statement = QUOTE([_player] call FUNC(openPlaceUI););
exceptions[] = {"ACE_Interaction_isNotSwimming"}; exceptions[] = {"isNotSwimming"};
showDisabled = 1; showDisabled = 1;
icon = PATHTOF(UI\Place_Explosive_ca.paa); icon = PATHTOF(UI\Place_Explosive_ca.paa);
priority = 1; priority = 1;
@ -37,7 +37,7 @@ class CfgVehicles {
displayName = $STR_ACE_Explosives_Defuse; displayName = $STR_ACE_Explosives_Defuse;
condition = QUOTE([_player] call FUNC(canDefuse)); condition = QUOTE([_player] call FUNC(canDefuse));
statement = QUOTE([ARR_2(_player,EGVAR(Interaction,Target))] call FUNC(startDefuse);); statement = QUOTE([ARR_2(_player,EGVAR(Interaction,Target))] call FUNC(startDefuse););
exceptions[] = {"ACE_Interaction_isNotSwimming"}; exceptions[] = {"isNotSwimming"};
showDisabled = 0; showDisabled = 0;
icon = PATHTOF(UI\Defuse_ca.paa); icon = PATHTOF(UI\Defuse_ca.paa);
priority = 0.8; priority = 0.8;
@ -47,7 +47,7 @@ class CfgVehicles {
displayName = $STR_ACE_Explosives_cellphone_displayName; displayName = $STR_ACE_Explosives_cellphone_displayName;
condition = "('ACE_Cellphone' in (items ace_player))"; condition = "('ACE_Cellphone' in (items ace_player))";
statement = "closeDialog 0;createDialog 'Rsc_ACE_PhoneInterface';"; statement = "closeDialog 0;createDialog 'Rsc_ACE_PhoneInterface';";
exceptions[] = {"ACE_Interaction_isNotSwimming"}; exceptions[] = {"isNotSwimming"};
showDisabled = 0; showDisabled = 0;
icon = PATHTOF(Data\UI\Cellphone_UI.paa); icon = PATHTOF(Data\UI\Cellphone_UI.paa);
priority = 0.8; priority = 0.8;

View File

@ -3,16 +3,16 @@
<Project name="ACE"> <Project name="ACE">
<Package name="Explosives"> <Package name="Explosives">
<Key ID="STR_ACE_Explosives_Menu"> <Key ID="STR_ACE_Explosives_Menu">
<English>Explosives &gt;&gt;</English> <English>Explosives</English>
<German>Sprengstoffe &gt;&gt;</German> <German>Sprengstoffe</German>
<Spanish>Explosivos &gt;&gt;</Spanish> <Spanish>Explosivos</Spanish>
<Polish>Ładunki wybuchowe &gt;&gt;</Polish> <Polish>Ładunki wybuchowe</Polish>
<French>Explosifs &gt;&gt;</French> <French>Explosifs</French>
<Czech>Výbušniny &gt;&gt;</Czech> <Czech>Výbušniny</Czech>
<Italian>Esplosivi &gt;&gt;</Italian> <Italian>Esplosivi</Italian>
<Hungarian>Robbanóanyagok &gt;&gt;</Hungarian> <Hungarian>Robbanóanyagok</Hungarian>
<Portuguese>Explosivos &gt;&gt;</Portuguese> <Portuguese>Explosivos</Portuguese>
<Russian>Взрывчатка &gt;&gt;</Russian> <Russian>Взрывчатка</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_Place"> <Key ID="STR_ACE_Explosives_Place">
<English>Place &gt;&gt;</English> <English>Place &gt;&gt;</English>

View File

@ -6,7 +6,7 @@ class CfgPatches {
weapons[] = {}; weapons[] = {};
requiredVersion = REQUIRED_VERSION; requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_common"}; requiredAddons[] = {"ace_common"};
author[] = {"KoffeinFlummi", "CAA-Picard"}; author[] = {"KoffeinFlummi", "esteldunedain"};
authorUrl = "https://github.com/KoffeinFlummi/"; authorUrl = "https://github.com/KoffeinFlummi/";
VERSION_CONFIG; VERSION_CONFIG;
}; };

View File

@ -1,5 +1,5 @@
/* /*
* Author: KoffeinFlummi and CAA-Picard * Author: KoffeinFlummi and esteldunedain
* Calculates average g-forces and triggers g-effects * Calculates average g-forces and triggers g-effects
* *
* Argument: * Argument:

View File

@ -6,7 +6,7 @@ class CfgPatches {
weapons[] = {"ACE_EarPlugs"}; weapons[] = {"ACE_EarPlugs"};
requiredVersion = REQUIRED_VERSION; requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_common", "ace_interaction"}; requiredAddons[] = {"ace_common", "ace_interaction"};
author[] = {"KoffeinFlummi", "CAA-Picard", "HopeJ", "commy2"}; author[] = {"KoffeinFlummi", "esteldunedain", "HopeJ", "commy2"};
authorUrl = "https://github.com/KoffeinFlummi/"; authorUrl = "https://github.com/KoffeinFlummi/";
VERSION_CONFIG; VERSION_CONFIG;
}; };

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard * Author: esteldunedain
* Initializes the Map module. * Initializes the Map module.
* *
* Arguments: * Arguments:

View File

@ -1,5 +1,5 @@
/* /*
* Author: commy2 and CAA-Picard * Author: commy2 and esteldunedain
* Updates and applys the current deafness. Called every 0.1 sec from a PFEH. * Updates and applys the current deafness. Called every 0.1 sec from a PFEH.
* *
* Arguments: * Arguments:

View File

@ -1,10 +1,19 @@
//XEH_clientInit.sqf //XEH_clientInit.sqf
#include "script_component.hpp" #include "script_component.hpp"
_fnc = { // Install the render EH on the main display
_this call FUNC(render); addMissionEventHandler ["Draw3D", DFUNC(render)];
// This spawn is probably worth keeping, as pfh don't work natively on the briefing screen and IDK how reliable the hack we implemented for them is.
// The thread dies as soon as the mission start, so it's not really compiting for scheduler space.
[] spawn {
// Wait until the map display is detected
waitUntil {(!isNull findDisplay 12)};
// Install the render EH on the map screen
((findDisplay 12) displayCtrl 51) ctrlAddEventHandler ["Draw", DFUNC(render)];
}; };
addMissionEventHandler ["Draw3D", _fnc];
["ACE3", QGVAR(InteractKey), "Interact Key", ["ACE3", QGVAR(InteractKey), "Interact Key",
{_this call FUNC(keyDown)}, {_this call FUNC(keyDown)},

View File

@ -20,6 +20,7 @@ PREP(render);
PREP(renderBaseMenu); PREP(renderBaseMenu);
PREP(renderIcon); PREP(renderIcon);
PREP(renderMenu); PREP(renderMenu);
PREP(renderSelector);
PREP(splitPath); PREP(splitPath);
GVAR(keyDown) = false; GVAR(keyDown) = false;

View File

@ -6,7 +6,7 @@ class CfgPatches {
weapons[] = {}; weapons[] = {};
requiredVersion = REQUIRED_VERSION; requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_common"}; requiredAddons[] = {"ace_common"};
author[] = {"NouberNou", "CAA-Picard"}; author[] = {"NouberNou", "esteldunedain"};
authorUrl = ""; authorUrl = "";
VERSION_CONFIG; VERSION_CONFIG;
}; };

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard * Author: esteldunedain
* Insert an ACE action to a class, under a certain path * Insert an ACE action to a class, under a certain path
* Note: This function is NOT global. * Note: This function is NOT global.
* *

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard * Author: esteldunedain
* Insert an ACE action to an object, under a certain config path * Insert an ACE action to an object, under a certain config path
* Note: This function is NOT global. * Note: This function is NOT global.
* *

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard * Author: esteldunedain
* Collect a entire tree of active actions * Collect a entire tree of active actions
* *
* Argument: * Argument:

View File

@ -1,5 +1,5 @@
/* /*
* Author: NouberNou and CAA-Picard * Author: NouberNou and esteldunedain
* Compile the action menu from config for an object's class * Compile the action menu from config for an object's class
* *
* Argument: * Argument:

View File

@ -1,5 +1,5 @@
/* /*
* Author: NouberNou and CAA-Picard * Author: NouberNou and esteldunedain
* Compile the self action menu from config for an object's class * Compile the self action menu from config for an object's class
* *
* Argument: * Argument:
@ -86,8 +86,11 @@ _actions = [
"ACE_SelfActions", "ACE_SelfActions",
"Self Actions", "Self Actions",
"\a3\ui_f\data\IGUI\Cfg\Actions\eject_ca.paa", "\a3\ui_f\data\IGUI\Cfg\Actions\eject_ca.paa",
{}, {
{ true }, // Dummy statement so it's not collapsed when there's no available actions
true
},
{[ACE_player, objNull, ["isNotDragging", "isNotCarrying", "isNotSwimming", "notOnMap", "isNotEscorting", "isNotSurrendering"]] call EFUNC(common,canInteractWith)},
{}, {},
[], [],
"Spine3", "Spine3",

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard * Author: esteldunedain
* Creates an isolated ACE action * Creates an isolated ACE action
* Note: This function is NOT global. * Note: This function is NOT global.
* *

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard * Author: esteldunedain
* Return action point from path * Return action point from path
* Note: This function is NOT global. * Note: This function is NOT global.
* *

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard * Author: esteldunedain
* Check if the first path is a subpath of the other * Check if the first path is a subpath of the other
* *
* Argument: * Argument:

View File

@ -13,6 +13,9 @@
#include "script_component.hpp" #include "script_component.hpp"
if(!GVAR(keyDown)) then { if(!GVAR(keyDown)) then {
while {dialog} do {
closeDialog 0;
};
// Only interact with others if on foot // Only interact with others if on foot
if (vehicle ACE_player != ACE_player) exitWith {}; if (vehicle ACE_player != ACE_player) exitWith {};

View File

@ -13,6 +13,10 @@
#include "script_component.hpp" #include "script_component.hpp"
if(!GVAR(keyDownSelfAction)) then { if(!GVAR(keyDownSelfAction)) then {
while {dialog} do {
closeDialog 0;
};
GVAR(keyDownSelfAction) = true; GVAR(keyDownSelfAction) = true;
GVAR(keyDown) = false; GVAR(keyDown) = false;
GVAR(keyDownTime) = diag_tickTime; GVAR(keyDownTime) = diag_tickTime;

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard * Author: esteldunedain
* Removes an action from a class * Removes an action from a class
* *
* Argument: * Argument:

View File

@ -1,5 +1,5 @@
/* /*
* Author: commy2, NouberNou and CAA-Picard * Author: commy2, NouberNou and esteldunedain
* Removes an action from an object * Removes an action from an object
* *
* Argument: * Argument:

View File

@ -1,5 +1,5 @@
/* /*
* Author: NouberNou and CAA-Picard * Author: NouberNou and esteldunedain
* Render all available nearby interactions * Render all available nearby interactions
* *
* Argument: * Argument:
@ -12,6 +12,8 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
BEGIN_COUNTER(fnc_render);
private ["_cursorPos1", "_cursorPos2", "_cursorVec", "_p1", "_p2", "_p", "_v", "_cp", "_forEachIndex", "_renderTargets", "_x", "_cursorScreenPos", "_closestDistance", "_closestSelection", "_pos", "_sPos", "_disSq", "_closest", "_cTime", "_delta", "_foundTarget", "_misMatch", "_hoverPath", "_i"]; private ["_cursorPos1", "_cursorPos2", "_cursorVec", "_p1", "_p2", "_p", "_v", "_cp", "_forEachIndex", "_renderTargets", "_x", "_cursorScreenPos", "_closestDistance", "_closestSelection", "_pos", "_sPos", "_disSq", "_closest", "_cTime", "_delta", "_foundTarget", "_misMatch", "_hoverPath", "_i"];
_foundTarget = false; _foundTarget = false;
_cursorPos1 = positionCameraToWorld [0, 0, 0]; _cursorPos1 = positionCameraToWorld [0, 0, 0];
@ -97,7 +99,11 @@ if (GVAR(keyDown)) then {
{ {
_action = _x; _action = _x;
_pos = (((positionCameraToWorld [0, 0, 0]) call EFUNC(common,positionToASL)) vectorAdd GVAR(selfMenuOffset)) call EFUNC(common,ASLToPosition); _pos = if !(visibleMap) then {
(((positionCameraToWorld [0, 0, 0]) call EFUNC(common,positionToASL)) vectorAdd GVAR(selfMenuOffset)) call EFUNC(common,ASLToPosition)
} else {
[0.5, 0.5]
};
[_target, _action, _pos] call FUNC(renderBaseMenu); [_target, _action, _pos] call FUNC(renderBaseMenu);
} forEach _classActions; } forEach _classActions;
}; };
@ -107,7 +113,7 @@ if (GVAR(keyDown)) then {
if(GVAR(keyDown) || GVAR(keyDownSelfAction)) then { if(GVAR(keyDown) || GVAR(keyDownSelfAction)) then {
// Draw the red selector only when there's no cursor // Draw the red selector only when there's no cursor
if !(uiNamespace getVariable [QGVAR(cursorMenuOpened),false]) then { if !(uiNamespace getVariable [QGVAR(cursorMenuOpened),false]) then {
drawIcon3D ["\a3\ui_f\data\IGUI\Cfg\Cursors\selected_ca.paa", [1,0,0,1], _cursorPos2, 1, 1, 0, "", 0.5, 0.025, "TahomaB"]; [[0.5,0.5], "\a3\ui_f\data\IGUI\Cfg\Cursors\selected_ca.paa"] call FUNC(renderSelector);
}; };
_cursorScreenPos = [worldToScreen _cursorPos2, GVAR(cursorPos)] select (uiNamespace getVariable [QGVAR(cursorMenuOpened),false]); _cursorScreenPos = [worldToScreen _cursorPos2, GVAR(cursorPos)] select (uiNamespace getVariable [QGVAR(cursorMenuOpened),false]);
@ -115,15 +121,12 @@ if(GVAR(keyDown) || GVAR(keyDownSelfAction)) then {
_closestDistance = 1000000; _closestDistance = 1000000;
_closestSelection = -1; _closestSelection = -1;
{ {
_pos = _x select 1; _sPos = _x select 1;
_sPos = worldToScreen _pos;
if(count _sPos > 0) then {
_disSq = (((_cursorScreenPos select 0) - (_sPos select 0))^2 + ((_cursorScreenPos select 1) - (_sPos select 1))^2); _disSq = (((_cursorScreenPos select 0) - (_sPos select 0))^2 + ((_cursorScreenPos select 1) - (_sPos select 1))^2);
if(_disSq < 0.0125 && _disSq < _closestDistance) then { if(_disSq < 0.0125 && _disSq < _closestDistance) then {
_closestDistance = _disSq; _closestDistance = _disSq;
_closestSelection = _forEachIndex; _closestSelection = _forEachIndex;
}; };
};
} forEach GVAR(currentOptions); } forEach GVAR(currentOptions);
@ -131,15 +134,14 @@ if(GVAR(keyDown) || GVAR(keyDownSelfAction)) then {
_closest = GVAR(currentOptions) select _closestSelection; _closest = GVAR(currentOptions) select _closestSelection;
_pos = _closest select 1; _sPos = _closest select 1;
_cTime = diag_tickTime; _cTime = diag_tickTime;
_delta = _cTime - GVAR(lastTime); _delta = _cTime - GVAR(lastTime);
GVAR(lastTime) = _cTime; GVAR(lastTime) = _cTime;
GVAR(rotationAngle) = GVAR(rotationAngle) + (180*_delta);
if(GVAR(rotationAngle) > 360) then { GVAR(rotationAngle) = (GVAR(rotationAngle) + (270*_delta)) mod 360;
GVAR(rotationAngle) = GVAR(rotationAngle) - 360; [_sPos, format [QUOTE(PATHTOF(ui\selector%1.paa)), floor (((abs GVAR(rotationAngle)) mod 90) / 6)]] call FUNC(renderSelector);
};
drawIcon3D ["\a3\ui_f\data\IGUI\Cfg\Cursors\selectover_ca.paa", [1,0,0,.75], _pos, 0.6*SafeZoneW, 0.6*SafeZoneW, GVAR(rotationAngle), "", 0.5, 0.025, "TahomaB"];
_foundTarget = true; _foundTarget = true;
GVAR(actionSelected) = true; GVAR(actionSelected) = true;
GVAR(selectedAction) = (_closest select 0) select 1; GVAR(selectedAction) = (_closest select 0) select 1;
@ -207,3 +209,5 @@ for "_i" from GVAR(iconCount) to (count GVAR(iconCtrls))-1 do {
}; };
GVAR(iconCtrls) resize GVAR(iconCount); GVAR(iconCtrls) resize GVAR(iconCount);
GVAR(iconCount) = 0; GVAR(iconCount) = 0;
END_COUNTER(fnc_render);

View File

@ -1,11 +1,11 @@
/* /*
* Author: NouberNou and CAA-Picard * Author: NouberNou and esteldunedain
* Render the interaction menu for a base action * Render the interaction menu for a base action
* *
* Argument: * Argument:
* 0: Object <OBJECT> * 0: Object <OBJECT>
* 1: Action node <ARRAY> * 1: Action node <ARRAY>
* 2: 3D position <ARRAY> (Optional) * 2: 3D position or 2D position <ARRAY> (Optional)
* *
* Return value: * Return value:
* Was the menu rendered <BOOL> * Was the menu rendered <BOOL>
@ -14,6 +14,8 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
BEGIN_COUNTER(fnc_renderBaseMenu)
private ["_distance","_pos","_weaponDir","_ref","_cameraPos","_sPos","_activeActionTree"]; private ["_distance","_pos","_weaponDir","_ref","_cameraPos","_sPos","_activeActionTree"];
EXPLODE_2_PVT(_this,_object,_baseActionNode); EXPLODE_2_PVT(_this,_object,_baseActionNode);
@ -41,15 +43,16 @@ if((count _this) > 2) then {
_pos = _pos vectorAdd ((visiblePositionASL _object) vectorDiff (getPosASL _object)); _pos = _pos vectorAdd ((visiblePositionASL _object) vectorDiff (getPosASL _object));
}; };
_cameraToActionVec = (_pos call EFUNC(common,positionToASL)) vectorDiff ((positionCameraToWorld [0,0,0]) call EFUNC(common,positionToASL));
GVAR(refSystem) = _cameraToActionVec call EFUNC(common,createOrthonormalReference);
// For non-self actions, exit if the action is too far away // For non-self actions, exit if the action is too far away
if (GVAR(keyDown) && if (GVAR(keyDown) &&
{(ACE_player modelToWorld (ACE_player selectionPosition "pilot")) distance _pos >= _distance}) exitWith {false}; {(ACE_player modelToWorld (ACE_player selectionPosition "pilot")) distance _pos >= _distance}) exitWith {false};
// Exit if the action is behind you // Exit if the action is behind you
_sPos = worldToScreen _pos; _sPos = if (count _pos != 2) then {
worldToScreen _pos
} else {
_pos
};
if(count _sPos == 0) exitWith {false}; if(count _sPos == 0) exitWith {false};
// Exit if the action is off screen // Exit if the action is off screen
@ -57,6 +60,8 @@ if ((_sPos select 0) < safeZoneXAbs || (_sPos select 0) > safeZoneXAbs + safeZon
if ((_sPos select 1) < safeZoneY || (_sPos select 1) > safeZoneY + safeZoneH) exitWith {false}; if ((_sPos select 1) < safeZoneY || (_sPos select 1) > safeZoneY + safeZoneH) exitWith {false};
BEGIN_COUNTER(fnc_collectActiveActionTree)
// Collect active tree // Collect active tree
private "_uid"; private "_uid";
_uid = format [QGVAR(ATCache_%1), _actionData select 0]; _uid = format [QGVAR(ATCache_%1), _actionData select 0];
@ -66,6 +71,8 @@ _activeActionTree = [
_object, _uid, 1.0, "interactMenuClosed" _object, _uid, 1.0, "interactMenuClosed"
] call EFUNC(common,cachedCall); ] call EFUNC(common,cachedCall);
END_COUNTER(fnc_collectActiveActionTree)
/* /*
diag_log "Printing: _activeActionTree"; diag_log "Printing: _activeActionTree";
_fnc_print = { _fnc_print = {
@ -83,6 +90,12 @@ if (count _activeActionTree == 0) exitWith {false};
//EXPLODE_2_PVT(_activeActionTree,_actionData,_actionChildren); //EXPLODE_2_PVT(_activeActionTree,_actionData,_actionChildren);
[[], _activeActionTree, _pos, [180,360]] call FUNC(renderMenu); BEGIN_COUNTER(fnc_renderMenus);
[[], _activeActionTree, _sPos, [180,360]] call FUNC(renderMenu);
END_COUNTER(fnc_renderMenus);
END_COUNTER(fnc_renderBaseMenu)
true true

View File

@ -1,11 +1,11 @@
/* /*
* Author: NouberNou and CAA-Picard * Author: NouberNou and esteldunedain
* Render a single interaction icon * Render a single interaction icon
* *
* Argument: * Argument:
* 0: Text <STRING> * 0: Text <STRING>
* 1: Color <STRING> * 1: Color <STRING>
* 2: 3d position ASL <ARRAY> * 2: 2d position <ARRAY>
* 3: ? * 3: ?
* 4: ? * 4: ?
* 5: ? * 5: ?
@ -18,20 +18,16 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
#define DEFAULT_ICON QUOTE(\z\ace\addons\interaction\ui\dot_ca.paa) #define DEFAULT_ICON QUOTE(\z\ace\addons\interaction\ui\dot_ca.paa)
private ["_color", "_pos", "_sPos", "_ctrl", "_icon"]; private ["_color", "_sPos", "_ctrl", "_icon"];
_text = _this select 0; _text = _this select 0;
_color = _this select 1; _color = _this select 1;
_pos = _this select 2; _sPos = _this select 2;
_icon = _this select 6; _icon = _this select 6;
//systemChat format ["Icon %1 - %2,%3,%4", _text, _pos select 0, _pos select 1, _pos select 2]; //systemChat format ["Icon %1 - %2,%3", _text, _sPos select 0, _sPos select 1];
_sPos = worldToScreen _pos;
if(count _sPos > 0) then {
if(GVAR(iconCount) > (count GVAR(iconCtrls))-1) then { if(GVAR(iconCount) > (count GVAR(iconCtrls))-1) then {
_displayNum = [46,91919] select (uiNamespace getVariable [QGVAR(cursorMenuOpened),false]); _displayNum = [[46, 12] select visibleMap,91919] select (uiNamespace getVariable [QGVAR(cursorMenuOpened),false]);
//systemChat format ["Displaynum: %1", _displayNum];
GVAR(iconCtrls) pushBack ((findDisplay _displayNum) ctrlCreate ["RscStructuredText", 54021+GVAR(iconCount)]); GVAR(iconCtrls) pushBack ((findDisplay _displayNum) ctrlCreate ["RscStructuredText", 54021+GVAR(iconCount)]);
}; };
_ctrl = GVAR(iconCtrls) select GVAR(iconCount); _ctrl = GVAR(iconCtrls) select GVAR(iconCount);
@ -39,9 +35,8 @@ if(count _sPos > 0) then {
if(_icon == "") then { if(_icon == "") then {
_icon = DEFAULT_ICON; _icon = DEFAULT_ICON;
}; };
_text = format ["<img image='%1' color='%2' align='center'/><br/><t color ='%3' size='0.75' align='center'>%4</t>", _icon, _color, _color, _text]; _text = format ["<img image='%1' color='%2' align='center'/><br/><t color='%3' size='0.80' align='center'>%4</t>", _icon, _color, _color, _text];
_ctrl ctrlSetStructuredText (parseText _text); _ctrl ctrlSetStructuredText (parseText _text);
_ctrl ctrlSetPosition [(_sPos select 0)-(0.2*SafeZoneW), (_sPos select 1)-(0.0095*SafeZoneW), 0.4*SafeZoneW, 0.035*SafeZoneW]; _ctrl ctrlSetPosition [(_sPos select 0)-(0.125*SafeZoneW), (_sPos select 1)-(0.0095*SafeZoneW), 0.25*SafeZoneW, 0.1*SafeZoneW];
//_ctrl ctrlSetBackgroundColor [1, 0, 0, 0.1]; //_ctrl ctrlSetBackgroundColor [1, 0, 0, 0.1];
_ctrl ctrlCommit 0; _ctrl ctrlCommit 0;
};

View File

@ -1,11 +1,11 @@
/* /*
* Author: NouberNou and CAA-Picard * Author: NouberNou and esteldunedain
* Render an interaction menu and it's children recursively * Render an interaction menu and it's children recursively
* *
* Argument: * Argument:
* 0: Parent path <ARRAY> * 0: Parent path <ARRAY>
* 1: Action data <ARRAY> * 1: Action data <ARRAY>
* 2: 3D position <ARRAY> * 2: 2D position <ARRAY>
* 3: Angle range available for rendering <ARRAY> * 3: Angle range available for rendering <ARRAY>
* *
* Return value: * Return value:
@ -17,12 +17,14 @@
private ["_menuInSelectedPath", "_path", "_menuDepth", "_currentRenderDepth", "_x", "_offset", "_newPos", "_forEachIndex"]; private ["_menuInSelectedPath", "_path", "_menuDepth", "_currentRenderDepth", "_x", "_offset", "_newPos", "_forEachIndex"];
EXPLODE_4_PVT(_this,_parentPath,_action,_pos,_angles); EXPLODE_4_PVT(_this,_parentPath,_action,_sPos,_angles);
EXPLODE_3_PVT(_action,_actionData,_activeChildren,_actionObject); EXPLODE_3_PVT(_action,_actionData,_activeChildren,_actionObject);
EXPLODE_2_PVT(_angles,_centerAngle,_maxAngleSpan); EXPLODE_2_PVT(_angles,_centerAngle,_maxAngleSpan);
_menuDepth = (count GVAR(menuDepthPath)); _menuDepth = (count GVAR(menuDepthPath));
//BEGIN_COUNTER(constructing_paths);
// Store path to action // Store path to action
_path = +_parentPath; _path = +_parentPath;
_path pushBack [_actionData select 0,_actionObject]; _path pushBack [_actionData select 0,_actionObject];
@ -38,24 +40,39 @@ _menuInSelectedPath = true;
}; };
} forEach _path; } forEach _path;
//END_COUNTER(constructing_paths);
//BEGIN_COUNTER(constructing_colors);
// Render icon // Render icon
// ARGB Color (First Hex Pair is transparancy) // ARGB Color (First Hex Pair is transparancy)
_color = "#FFFFFFFF"; _color = "#FFFFFFFF";
if(!_menuInSelectedPath) then { //_menuDepth > 0 && if(!_menuInSelectedPath) then {
if (_menuDepth > 0) then { if (_menuDepth > 0) then {
_color = format ["#%1FFFFFF", [255 * ((((count _path) - 1)/_menuDepth) max 0.25)] call EFUNC(common,toHex)]; _color = format ["#%1FFFFFF", [255 * ((((count _path) - 1)/_menuDepth) max 0.25)] call EFUNC(common,toHex)];
} else { } else {
_color = format ["#%1FFFFFF", [255 * 0.75] call EFUNC(common,toHex)]; _color = format ["#%1FFFFFF", [255 * 0.75] call EFUNC(common,toHex)];
}; };
}; };
[_actionData select 1, _color, _pos, 1, 1, 0, _actionData select 2, 0.5, 0.025, "TahomaB"] call FUNC(renderIcon);
//END_COUNTER(constructing_colors);
//BEGIN_COUNTER(fnc_renderIcons);
[_actionData select 1, _color, _sPos, 1, 1, 0, _actionData select 2, 0.5, 0.025, "TahomaB"] call FUNC(renderIcon);
//END_COUNTER(fnc_renderIcons);
//BEGIN_COUNTER(currentOptions);
// Add the action to current options // Add the action to current options
GVAR(currentOptions) pushBack [_this, _pos, _path]; GVAR(currentOptions) pushBack [_this, _sPos, _path];
//END_COUNTER(currentOptions);
// Exit without rendering children if it isn't // Exit without rendering children if it isn't
if !(_menuInSelectedPath) exitWith {true}; if !(_menuInSelectedPath) exitWith {true};
//BEGIN_COUNTER(children);
private ["_numChildren","_angleSpan","_angle","_angleInterval","_scale","_offset"]; private ["_numChildren","_angleSpan","_angle","_angleInterval","_scale","_offset"];
_numChildren = count _activeChildren; _numChildren = count _activeChildren;
_angleSpan = _maxAngleSpan min (55 * ((_numChildren) - 1)); _angleSpan = _maxAngleSpan min (55 * ((_numChildren) - 1));
@ -68,14 +85,14 @@ if (_angleSpan < 360) then {
_angleInterval = _angleSpan / (_numChildren - 1); _angleInterval = _angleSpan / (_numChildren - 1);
}; };
} else { } else {
_angleSpan / (_numChildren); _angleInterval = _angleSpan / (_numChildren);
}; };
if (_numChildren == 1) then { if (_numChildren == 1) then {
_angleInterval = 60; _angleInterval = 55;
}; };
// Scale menu based on the amount of children // Scale menu based on the amount of children
_scale = GVAR(menuScale) * (((0.8 * (0.46 / sin (0.5 * _angleInterval))) min 1.4) max 0.5); _scale = 0.17 * (((0.8 * (0.46 / sin (0.5 * _angleInterval))) min 1.1) max 0.5);
// Animate menu scale // Animate menu scale
if (_menuInSelectedPath && (_menuDepth == count _path)) then { if (_menuInSelectedPath && (_menuDepth == count _path)) then {
_scale = _scale * (0.3 + 0.7 * (((diag_tickTime - GVAR(expandedTime)) * 8) min 1)); _scale = _scale * (0.3 + 0.7 * (((diag_tickTime - GVAR(expandedTime)) * 8) min 1));
@ -83,17 +100,18 @@ if (_menuInSelectedPath && (_menuDepth == count _path)) then {
_target = _actionObject; _target = _actionObject;
_player = ACE_player; _player = ACE_player;
//END_COUNTER(children);
_angle = _centerAngle - _angleSpan / 2; _angle = _centerAngle - _angleSpan / 2;
{ {
//BEGIN_COUNTER(children);
private ["_offset","_newPos"]; private ["_offset","_newPos"];
_offset = ((GVAR(refSystem) select 1) vectorMultiply (-_scale * cos _angle)) vectorAdd _newPos = [(_sPos select 0) -_scale * cos _angle,
((GVAR(refSystem) select 2) vectorMultiply (-_scale * sin _angle)); (_sPos select 1) +_scale * (sin _angle) * 4/3];
_newPos = ((_pos call EFUNC(common,positionToASL)) vectorAdd _offset) call EFUNC(common,ASLToPosition);
//drawLine3D [_pos, _newPos, [1,0,0,0.8]]; //drawLine3D [_pos, _newPos, [1,0,0,0.8]];
//END_COUNTER(children);
[_path, _x, _newPos, [_angle, 140]] call FUNC(renderMenu); [_path, _x, _newPos, [_angle, 150]] call FUNC(renderMenu);
_angle = _angle + _angleInterval; _angle = _angle + _angleInterval;
} forEach _activeChildren; } forEach _activeChildren;

View File

@ -0,0 +1,30 @@
/*
* Author: esteldunedain
* Render a single interaction icon
*
* Argument:
* 0: 2d position <ARRAY>
* 1: Icon <STRING>
*
* Return value:
* None
*
* Public: No
*/
#include "script_component.hpp"
EXPLODE_2_PVT(_this,_sPos,_icon);
if(GVAR(iconCount) > (count GVAR(iconCtrls))-1) then {
_displayNum = [[46, 12] select visibleMap,91919] select (uiNamespace getVariable [QGVAR(cursorMenuOpened),false]);
GVAR(iconCtrls) pushBack ((findDisplay _displayNum) ctrlCreate ["RscStructuredText", 54021+GVAR(iconCount)]);
};
private "_ctrl";
_ctrl = GVAR(iconCtrls) select GVAR(iconCount);
GVAR(iconCount) = GVAR(iconCount) + 1;
_ctrl ctrlSetStructuredText (parseText format ["<img image='%1' color='#FF0000' size='1.6' align='center'/>", _icon]);
_ctrl ctrlSetPosition [(_sPos select 0)-(0.05*SafeZoneW), (_sPos select 1)-(0.014*SafeZoneW), 0.1*SafeZoneW, 0.035*SafeZoneW];
//_ctrl ctrlSetBackgroundColor [1, 0, 0, 0.1];
_ctrl ctrlCommit 0;

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard * Author: esteldunedain
* Take full path and split it between parent path and action name * Take full path and split it between parent path and action name
* *
* Argument: * Argument:

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -405,6 +405,7 @@ class CfgVehicles {
icon = ""; // @todo icon = ""; // @todo
enableInside = 1; enableInside = 1;
hotkey = "E"; hotkey = "E";
exceptions[] = {"notOnMap"};
}; };
}; };
}; };

View File

@ -1,4 +1,4 @@
// by commy2 and CAA-Picard // by commy2 and esteldunedain
#include "script_component.hpp" #include "script_component.hpp"

View File

@ -6,7 +6,7 @@ class CfgPatches {
weapons[] = {}; weapons[] = {};
requiredVersion = REQUIRED_VERSION; requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_interact_menu"}; requiredAddons[] = {"ace_interact_menu"};
author[] = {"commy2", "KoffeinFlummi", "CAA-Picard", "bux578"}; author[] = {"commy2", "KoffeinFlummi", "esteldunedain", "bux578"};
authorUrl = "https://github.com/commy2/"; authorUrl = "https://github.com/commy2/";
VERSION_CONFIG; VERSION_CONFIG;
}; };

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard * Author: esteldunedain
* Mount unit actions inside passenger submenu * Mount unit actions inside passenger submenu
* *
* Argument: * Argument:

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard * Author: esteldunedain
* Create one action per passenger * Create one action per passenger
* *
* Argument: * Argument:

View File

@ -3,28 +3,28 @@
<Project name="ACE"> <Project name="ACE">
<Package name="Interaction"> <Package name="Interaction">
<Key ID="STR_ACE_Interaction_MainAction"> <Key ID="STR_ACE_Interaction_MainAction">
<English>Interactions &gt;&gt;</English> <English>Interactions</English>
</Key> </Key>
<Key ID="STR_ACE_Interaction_Torso"> <Key ID="STR_ACE_Interaction_Torso">
<English>Torso &gt;&gt;</English> <English>Torso</English>
</Key> </Key>
<Key ID="STR_ACE_Interaction_Head"> <Key ID="STR_ACE_Interaction_Head">
<English>Head &gt;&gt;</English> <English>Head</English>
</Key> </Key>
<Key ID="STR_ACE_Interaction_ArmLeft"> <Key ID="STR_ACE_Interaction_ArmLeft">
<English>Left Arm &gt;&gt;</English> <English>Left Arm</English>
</Key> </Key>
<Key ID="STR_ACE_Interaction_ArmRight"> <Key ID="STR_ACE_Interaction_ArmRight">
<English>Right Arm &gt;&gt;</English> <English>Right Arm</English>
</Key> </Key>
<Key ID="STR_ACE_Interaction_LegLeft"> <Key ID="STR_ACE_Interaction_LegLeft">
<English>Left Leg &gt;&gt;</English> <English>Left Leg</English>
</Key> </Key>
<Key ID="STR_ACE_Interaction_LegRight"> <Key ID="STR_ACE_Interaction_LegRight">
<English>Right Leg &gt;&gt;</English> <English>Right Leg</English>
</Key> </Key>
<Key ID="STR_ACE_Interaction_Weapon"> <Key ID="STR_ACE_Interaction_Weapon">
<English>Weapon &gt;&gt;</English> <English>Weapon</English>
</Key> </Key>
<Key ID="STR_ACE_Interaction_InteractionMenu"> <Key ID="STR_ACE_Interaction_InteractionMenu">
<English>Interaction Menu</English> <English>Interaction Menu</English>
@ -183,16 +183,16 @@
<Italian>&lt;&lt; Indietro</Italian> <Italian>&lt;&lt; Indietro</Italian>
</Key> </Key>
<Key ID="STR_ACE_Interaction_Gestures"> <Key ID="STR_ACE_Interaction_Gestures">
<English>Gestures &gt;&gt;</English> <English>Gestures</English>
<German>Gesten &gt;&gt;</German> <German>Gesten</German>
<Spanish>Gestos &gt;&gt;</Spanish> <Spanish>Gestos</Spanish>
<Polish>Gesty &gt;&gt;</Polish> <Polish>Gesty</Polish>
<Czech>Gesta &gt;&gt;</Czech> <Czech>Gesta</Czech>
<French>Signaux &gt;&gt;</French> <French>Signaux</French>
<Russian>Жесты &gt;&gt;</Russian> <Russian>Жесты</Russian>
<Hungarian>Kézjelek &gt;&gt;</Hungarian> <Hungarian>Kézjelek</Hungarian>
<Portuguese>Gestos &gt;&gt;</Portuguese> <Portuguese>Gestos</Portuguese>
<Italian>Segnali gestuali &gt;&gt;</Italian> <Italian>Segnali gestuali</Italian>
</Key> </Key>
<Key ID="STR_ACE_Interaction_Gestures_Attack"> <Key ID="STR_ACE_Interaction_Gestures_Attack">
<English>Attack</English> <English>Attack</English>
@ -435,16 +435,16 @@
<Italian>A Terra!</Italian> <Italian>A Terra!</Italian>
</Key> </Key>
<Key ID="STR_ACE_Interaction_TeamManagement"> <Key ID="STR_ACE_Interaction_TeamManagement">
<English>Team Management &gt;&gt;</English> <English>Team&lt;br/&gt;Management</English>
<German>Team Management &gt;&gt;</German> <German>Team&lt;br/&gt;Management</German>
<Spanish>Gestión de equipo &gt;&gt;</Spanish> <Spanish>Gestión&lt;br/&gt;de equipo</Spanish>
<French>Gestion d'équipe &gt;&gt;</French> <French>Gestion&lt;br/&gt;d'équipe</French>
<Polish>Zarządzanie oddziałem &gt;&gt;</Polish> <Polish>Zarządzanie&lt;br/&gt;oddziałem</Polish>
<Czech>Správa týmu &gt;&gt;</Czech> <Czech>Správa&lt;br/&gt;týmu</Czech>
<Russian>Управление группой &gt;&gt;</Russian> <Russian>Управление&lt;br/&gt;группой</Russian>
<Portuguese>Gerenciamento de Equipe &gt;&gt;</Portuguese> <Portuguese>Gerenciamento&lt;br/&gt;de Equipe</Portuguese>
<Italian>Organizzazione Squadra &gt;&gt;</Italian> <Italian>Organizzazione&lt;br/&gt;Squadra</Italian>
<Hungarian>Csapat kezelés &gt;&gt;</Hungarian> <Hungarian>Csapat&lt;br/&gt;kezelés</Hungarian>
</Key> </Key>
<Key ID="STR_ACE_Interaction_TeamRED"> <Key ID="STR_ACE_Interaction_TeamRED">
<English>Red</English> <English>Red</English>
@ -495,52 +495,52 @@
<Hungarian>Sárga</Hungarian> <Hungarian>Sárga</Hungarian>
</Key> </Key>
<Key ID="STR_ACE_Interaction_JoinTeamRed"> <Key ID="STR_ACE_Interaction_JoinTeamRed">
<English>Join Team Red</English> <English>Join Team&lt;br/&gt;Red</English>
<German>Team Rot beitreten</German> <German>Team Rot&lt;br/&gt;beitreten</German>
<Spanish>Unirse al equipo rojo</Spanish> <Spanish>Unirse al&lt;br/&gt;equipo rojo</Spanish>
<French>Rejoindre Rouge</French> <French>Rejoindre&lt;br/&gt;Rouge</French>
<Polish>Dołącz do drużyny czerwonej</Polish> <Polish>Dołącz do drużyny&lt;br/&gt;czerwonej</Polish>
<Czech>Připojit do Červeného Týmu</Czech> <Czech>Připojit do&lt;br/&gt;Červeného Týmu</Czech>
<Russian>Присоединиться к красной группе</Russian> <Russian>Присоединиться&lt;br/&gt;к красной группе</Russian>
<Portuguese>Unir-se à Equipe Vermelha</Portuguese> <Portuguese>Unir-se à&lt;br/&gt;Equipe Vermelha</Portuguese>
<Italian>Entra nella Squadra Rossa</Italian> <Italian>Entra nella&lt;br/&gt;Squadra Rossa</Italian>
<Hungarian>Csatlakozás a piros csapathoz</Hungarian> <Hungarian>Csatlakozás a&lt;br/&gt;piros csapathoz</Hungarian>
</Key> </Key>
<Key ID="STR_ACE_Interaction_JoinTeamGreen"> <Key ID="STR_ACE_Interaction_JoinTeamGreen">
<English>Join Team Green</English> <English>Join Team&lt;br/&gt;Green</English>
<German>Team Grün beitreten</German> <German>Team Grün&lt;br/&gt;beitreten</German>
<Spanish>Unirse al equipo verde</Spanish> <Spanish>Unirse al&lt;br/&gt;equipo verde</Spanish>
<French>Rejoindre Verte</French> <French>Rejoindre&lt;br/&gt;Verte</French>
<Polish>Dołącz do drużyny zielonej</Polish> <Polish>Dołącz do&lt;br/&gt;drużyny zielonej</Polish>
<Czech>Připojit do Zeleného Týmu</Czech> <Czech>Připojit do&lt;br/&gt;Zeleného Týmu</Czech>
<Russian>Присоединиться к зеленой группе</Russian> <Russian>Присоединиться&lt;br/&gt;к зеленой группе</Russian>
<Portuguese>Unir-se à Equipe Verde</Portuguese> <Portuguese>Unir-se à&lt;br/&gt;Equipe Verde</Portuguese>
<Italian>Entra nella Squadra Verde</Italian> <Italian>Entra nella&lt;br/&gt;Squadra Verde</Italian>
<Hungarian>Csatlakozás a zöld csapathoz</Hungarian> <Hungarian>Csatlakozás a&lt;br/&gt;zöld csapathoz</Hungarian>
</Key> </Key>
<Key ID="STR_ACE_Interaction_JoinTeamBlue"> <Key ID="STR_ACE_Interaction_JoinTeamBlue">
<English>Join Team Blue</English> <English>Join Team&lt;br/&gt;Blue</English>
<German>Team Blau beitreten</German> <German>Team Blau&lt;br/&gt;beitreten</German>
<Spanish>Unirse al equipo azul</Spanish> <Spanish>Unirse al&lt;br/&gt;equipo azul</Spanish>
<French>Rejoindre Bleue</French> <French>Rejoindre&lt;br/&gt;Bleue</French>
<Polish>Dołącz do drużyny niebieskiej</Polish> <Polish>Dołącz do&lt;br/&gt;drużyny niebieskiej</Polish>
<Czech>Připojit do Modrého Týmu</Czech> <Czech>Připojit do&lt;br/&gt;Modrého Týmu</Czech>
<Russian>Присоединиться к синей группе</Russian> <Russian>Присоединиться&lt;br/&gt;к синей группе</Russian>
<Portuguese>Unir-se à Equipe Azul</Portuguese> <Portuguese>Unir-se à&lt;br/&gt;Equipe Azul</Portuguese>
<Italian>Entra nella Squadra Blu</Italian> <Italian>Entra nella&lt;br/&gt;Squadra Blu</Italian>
<Hungarian>Csatlakozás a kék csapathoz</Hungarian> <Hungarian>Csatlakozás a&lt;br/&gt;kék csapathoz</Hungarian>
</Key> </Key>
<Key ID="STR_ACE_Interaction_JoinTeamYellow"> <Key ID="STR_ACE_Interaction_JoinTeamYellow">
<English>Join Team Yellow</English> <English>Join Team&lt;br/&gt;Yellow</English>
<German>Team Gelb beitreten</German> <German>Team Gelb&lt;br/&gt;beitreten</German>
<Spanish>Unirse al equipo amarillo</Spanish> <Spanish>Unirse al&lt;br/&gt;equipo amarillo</Spanish>
<French>Rejoindre Jaune</French> <French>Rejoindre&lt;br/&gt;Jaune</French>
<Polish>Dołącz do drużyny żółtej</Polish> <Polish>Dołącz do&lt;br/&gt;drużyny żółtej</Polish>
<Czech>Připojit do Žlutého Týmu</Czech> <Czech>Připojit do&lt;br/&gt;Žlutého Týmu</Czech>
<Russian>Присоединиться к желтой группе</Russian> <Russian>Присоединиться&lt;br/&gt;к желтой группе</Russian>
<Portuguese>Unir-se à Equipe Amarela</Portuguese> <Portuguese>Unir-se à&lt;br/&gt;Equipe Amarela</Portuguese>
<Italian>Entra nella Squadra Gialla</Italian> <Italian>Entra nella&lt;br/&gt;Squadra Gialla</Italian>
<Hungarian>Csatlakozás a sárga csapathoz</Hungarian> <Hungarian>Csatlakozás a&lt;br/&gt;sárga csapathoz</Hungarian>
</Key> </Key>
<Key ID="STR_ACE_Interaction_JoinedTeam"> <Key ID="STR_ACE_Interaction_JoinedTeam">
<English>You joined Team %1</English> <English>You joined Team %1</English>
@ -626,14 +626,14 @@
<Czech>Mimo dosah</Czech> <Czech>Mimo dosah</Czech>
</Key> </Key>
<Key ID="STR_ACE_Interaction_Equipment"> <Key ID="STR_ACE_Interaction_Equipment">
<English>Equipment &gt;&gt;</English> <English>Equipment</English>
<German>Ausrüstung &gt;&gt;</German> <German>Ausrüstung</German>
<Spanish>Equipamiento &gt;&gt;</Spanish> <Spanish>Equipamiento</Spanish>
<French>Équipment &gt;&gt;</French> <French>Équipment</French>
<Polish>Ekwipunek &gt;&gt;</Polish> <Polish>Ekwipunek</Polish>
<Czech>Vybavení &gt;&gt;</Czech> <Czech>Vybavení</Czech>
<Hungarian>Felszerelés &gt;&gt;</Hungarian> <Hungarian>Felszerelés</Hungarian>
<Russian>Снаряжение &gt;&gt;</Russian> <Russian>Снаряжение</Russian>
</Key> </Key>
<Key ID="STR_ACE_Interaction_Push"> <Key ID="STR_ACE_Interaction_Push">
<English>Push</English> <English>Push</English>
@ -654,7 +654,7 @@
<Spanish>Interactuar</Spanish> <Spanish>Interactuar</Spanish>
</Key> </Key>
<Key ID="STR_ACE_Interaction_Passengers"> <Key ID="STR_ACE_Interaction_Passengers">
<English>Passengers &gt;&gt;</English> <English>Passengers</English>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -6,7 +6,7 @@ class CfgPatches {
weapons[] = {"ACE_Kestrel"}; weapons[] = {"ACE_Kestrel"};
requiredVersion = REQUIRED_VERSION; requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_common","ace_interaction"}; requiredAddons[] = {"ace_common","ace_interaction"};
author[] = {"Falke","commy2","KoffeinFlummi","CAA-Picard"}; author[] = {"Falke","commy2","KoffeinFlummi","esteldunedain"};
authorUrl = "https://github.com/KoffeinFlummi/"; authorUrl = "https://github.com/KoffeinFlummi/";
VERSION_CONFIG; VERSION_CONFIG;
}; };

View File

@ -1,4 +1,4 @@
// by commy2 and CAA-Picard // by commy2 and esteldunedain
#include "script_component.hpp" #include "script_component.hpp"
EXPLODE_3_PVT(_this,_unit,_range,_isGreen); EXPLODE_3_PVT(_this,_unit,_range,_isGreen);

View File

@ -17,6 +17,7 @@
PARAMS_1(_interactionType); PARAMS_1(_interactionType);
//Ignore self-interaction menu
if (_interactionType != 0) exitWith {}; if (_interactionType != 0) exitWith {};
//for performance only do stuff it they have a wirecutter item //for performance only do stuff it they have a wirecutter item
@ -32,7 +33,10 @@ if (!("ACE_wirecutter" in (items ace_player))) exitWith {};
{deleteVehicle _x;} forEach _addedHelpers; {deleteVehicle _x;} forEach _addedHelpers;
[_pfID] call CBA_fnc_removePerFrameHandler; [_pfID] call CBA_fnc_removePerFrameHandler;
} else { } else {
//If play moved >5 meters from last pos, then rescan // Prevent Rare Error when ending mission with interact key down:
if (isNull ace_player) exitWith {};
//If player moved >5 meters from last pos, then rescan
if (((getPosASL ace_player) distance _setPosition) > 5) then { if (((getPosASL ace_player) distance _setPosition) > 5) then {
_fncStatement = { _fncStatement = {

View File

@ -6,7 +6,7 @@ class CfgPatches {
weapons[] = {}; weapons[] = {};
requiredVersion = REQUIRED_VERSION; requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_interaction"}; requiredAddons[] = {"ace_interaction"};
author[] = {"commy2","CAA-Picard"}; author[] = {"commy2","esteldunedain"};
authorUrl = "https://github.com/commy2/"; authorUrl = "https://github.com/commy2/";
VERSION_CONFIG; VERSION_CONFIG;
}; };

View File

@ -3,16 +3,16 @@
<Project name="ACE"> <Project name="ACE">
<Package name="MagazineRepack"> <Package name="MagazineRepack">
<Key ID="STR_ACE_MagazineRepack_RepackMagazines"> <Key ID="STR_ACE_MagazineRepack_RepackMagazines">
<English>Repack Magazines</English> <English>Repack&lt;br/&gt;Magazines</English>
<German>Magazine umpacken</German> <German>Magazine&lt;br/&gt;umpacken</German>
<Spanish>Reorganizar cargadores</Spanish> <Spanish>Reorganizar&lt;br/&gt;cargadores</Spanish>
<French>Réorganiser chargeurs</French> <French>Réorganiser&lt;br/&gt;chargeurs</French>
<Polish>Przepakuj magazynki</Polish> <Polish>Przepakuj&lt;br/&gt;magazynki</Polish>
<Czech>Přepáskovat Zásobníky</Czech> <Czech>Přepáskovat&lt;br/&gt;Zásobníky</Czech>
<Italian>Ricarica Caricatori</Italian> <Italian>Ricarica&lt;br/&gt;Caricatori</Italian>
<Portuguese>Reorganizar Carregadores</Portuguese> <Portuguese>Reorganizar&lt;br/&gt;Carregadores</Portuguese>
<Hungarian>Újratárazás</Hungarian> <Hungarian>Újratárazás<&lt;br/&gt;Hungarian>
<Russian>Перепаковать магазины</Russian> <Russian>Перепаковать&lt;br/&gt;магазины</Russian>
</Key> </Key>
<Key ID="STR_ACE_MagazineRepack_SelectMagazineMenu"> <Key ID="STR_ACE_MagazineRepack_SelectMagazineMenu">
<English>Select Magazine Menu</English> <English>Select Magazine Menu</English>

View File

@ -6,7 +6,7 @@ class CfgPatches {
weapons[] = {}; weapons[] = {};
requiredVersion = REQUIRED_VERSION; requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_common", "ace_interaction"}; requiredAddons[] = {"ace_common", "ace_interaction"};
author[] = {"KoffeinFlummi","Rocko","CAA-Picard"}; author[] = {"KoffeinFlummi","Rocko","esteldunedain"};
authorUrl = "https://github.com/KoffeinFlummi/"; authorUrl = "https://github.com/KoffeinFlummi/";
VERSION_CONFIG; VERSION_CONFIG;
}; };

View File

@ -1,5 +1,5 @@
/* /*
* Author: Rocko and CAA-Picard * Author: Rocko and esteldunedain
* Calculates the current map illumination for a given unit * Calculates the current map illumination for a given unit
* *
* Arguments: * Arguments:

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard * Author: esteldunedain
* Initializes the Map module. * Initializes the Map module.
* *
* Arguments: * Arguments:

View File

@ -1,5 +1,5 @@
/* /*
* Author: Rocko and CAA-Picard * Author: Rocko and esteldunedain
* On map draw, updates the effects * On map draw, updates the effects
* *
* Arguments: * Arguments:

View File

@ -7,7 +7,7 @@ class CfgVehicles {
displayName = "$STR_ACE_MapTools_MapTools_Menu"; displayName = "$STR_ACE_MapTools_MapTools_Menu";
condition = QUOTE((call FUNC(canUseMapTools) || {call FUNC(canUseMapGPS)})); condition = QUOTE((call FUNC(canUseMapTools) || {call FUNC(canUseMapGPS)}));
statement = ""; statement = "";
exceptions[] = {"ACE_Drag_isNotDragging", QEGVAR(common,notOnMap)}; exceptions[] = {"isNotDragging", "notOnMap"};
showDisabled = 0; showDisabled = 0;
priority = 100; priority = 100;
enableInside = 1; enableInside = 1;
@ -16,7 +16,7 @@ class CfgVehicles {
displayName = "$STR_ACE_MapTools_MapToolsHide"; displayName = "$STR_ACE_MapTools_MapToolsHide";
condition = QUOTE((call FUNC(canUseMapTools) && {GVAR(mapTool_Shown) != 0})); condition = QUOTE((call FUNC(canUseMapTools) && {GVAR(mapTool_Shown) != 0}));
statement = QUOTE(GVAR(mapTool_Shown) = 0; [] call FUNC(updateMapToolMarkers)); statement = QUOTE(GVAR(mapTool_Shown) = 0; [] call FUNC(updateMapToolMarkers));
exceptions[] = {"ACE_Drag_isNotDragging", QEGVAR(common,notOnMap)}; exceptions[] = {"isNotDragging", "notOnMap"};
showDisabled = 1; showDisabled = 1;
priority = 5; priority = 5;
enableInside = 1; enableInside = 1;
@ -25,7 +25,7 @@ class CfgVehicles {
displayName = "$STR_ACE_MapTools_MapToolsShowNormal"; displayName = "$STR_ACE_MapTools_MapToolsShowNormal";
condition = QUOTE((call FUNC(canUseMapTools) && {GVAR(mapTool_Shown) != 1})); condition = QUOTE((call FUNC(canUseMapTools) && {GVAR(mapTool_Shown) != 1}));
statement = QUOTE(GVAR(mapTool_Shown) = 1; [] call FUNC(updateMapToolMarkers)); statement = QUOTE(GVAR(mapTool_Shown) = 1; [] call FUNC(updateMapToolMarkers));
exceptions[] = {"ACE_Drag_isNotDragging", QEGVAR(common,notOnMap)}; exceptions[] = {"isNotDragging", "notOnMap"};
showDisabled = 1; showDisabled = 1;
priority = 4; priority = 4;
enableInside = 1; enableInside = 1;
@ -34,7 +34,7 @@ class CfgVehicles {
displayName = "$STR_ACE_MapTools_MapToolsShowSmall"; displayName = "$STR_ACE_MapTools_MapToolsShowSmall";
condition = QUOTE((call FUNC(canUseMapTools) && {GVAR(mapTool_Shown) != 2})); condition = QUOTE((call FUNC(canUseMapTools) && {GVAR(mapTool_Shown) != 2}));
statement = QUOTE(GVAR(mapTool_Shown) = 2; [] call FUNC(updateMapToolMarkers)); statement = QUOTE(GVAR(mapTool_Shown) = 2; [] call FUNC(updateMapToolMarkers));
exceptions[] = {"ACE_Drag_isNotDragging", QEGVAR(common,notOnMap)}; exceptions[] = {"isNotDragging", "notOnMap"};
showDisabled = 1; showDisabled = 1;
priority = 3; priority = 3;
enableInside = 1; enableInside = 1;
@ -43,7 +43,7 @@ class CfgVehicles {
displayName = "$STR_ACE_MapTools_MapToolsAlignNorth"; displayName = "$STR_ACE_MapTools_MapToolsAlignNorth";
condition = QUOTE((call FUNC(canUseMapTools) && {GVAR(mapTool_Shown) != 0})); condition = QUOTE((call FUNC(canUseMapTools) && {GVAR(mapTool_Shown) != 0}));
statement = QUOTE(GVAR(mapTool_angle) = 0; [] call FUNC(updateMapToolMarkers)); statement = QUOTE(GVAR(mapTool_angle) = 0; [] call FUNC(updateMapToolMarkers));
exceptions[] = {"ACE_Drag_isNotDragging", QEGVAR(common,notOnMap)}; exceptions[] = {"isNotDragging", "notOnMap"};
showDisabled = 1; showDisabled = 1;
priority = 2; priority = 2;
enableInside = 1; enableInside = 1;
@ -52,7 +52,7 @@ class CfgVehicles {
displayName = "$STR_ACE_MapTools_MapToolsAlignCompass"; displayName = "$STR_ACE_MapTools_MapToolsAlignCompass";
condition = QUOTE((call FUNC(canUseMapTools) && {GVAR(mapTool_Shown) != 0} && {('ItemCompass' in assigneditems ACE_player) || {'ItemCompass' in assigneditems ACE_player}})); condition = QUOTE((call FUNC(canUseMapTools) && {GVAR(mapTool_Shown) != 0} && {('ItemCompass' in assigneditems ACE_player) || {'ItemCompass' in assigneditems ACE_player}}));
statement = QUOTE(GVAR(mapTool_angle) = getDir ACE_player; [] call FUNC(updateMapToolMarkers)); statement = QUOTE(GVAR(mapTool_angle) = getDir ACE_player; [] call FUNC(updateMapToolMarkers));
exceptions[] = {"ACE_Drag_isNotDragging", QEGVAR(common,notOnMap)}; exceptions[] = {"isNotDragging", "notOnMap"};
showDisabled = 1; showDisabled = 1;
priority = 1; priority = 1;
enableInside = 1; enableInside = 1;
@ -61,7 +61,7 @@ class CfgVehicles {
displayName = "$STR_ACE_MapTools_MapGpsShow"; displayName = "$STR_ACE_MapTools_MapGpsShow";
condition = QUOTE((call FUNC(canUseMapGPS) && {!GVAR(mapGpsShow)})); condition = QUOTE((call FUNC(canUseMapGPS) && {!GVAR(mapGpsShow)}));
statement = QUOTE(GVAR(mapGpsShow) = true; [GVAR(mapGpsShow)] call FUNC(openMapGps)); statement = QUOTE(GVAR(mapGpsShow) = true; [GVAR(mapGpsShow)] call FUNC(openMapGps));
exceptions[] = {"ACE_Drag_isNotDragging", QEGVAR(common,notOnMap)}; exceptions[] = {"isNotDragging", "notOnMap"};
showDisabled = 0; showDisabled = 0;
priority = 0; priority = 0;
enableInside = 1; enableInside = 1;
@ -70,7 +70,7 @@ class CfgVehicles {
displayName = "$STR_ACE_MapTools_MapGpsHide"; displayName = "$STR_ACE_MapTools_MapGpsHide";
condition = QUOTE((call FUNC(canUseMapGPS) && {GVAR(mapGpsShow)})); condition = QUOTE((call FUNC(canUseMapGPS) && {GVAR(mapGpsShow)}));
statement = QUOTE(GVAR(mapGpsShow) = false; [GVAR(mapGpsShow)] call FUNC(openMapGps)); statement = QUOTE(GVAR(mapGpsShow) = false; [GVAR(mapGpsShow)] call FUNC(openMapGps));
exceptions[] = {"ACE_Drag_isNotDragging", QEGVAR(common,notOnMap)}; exceptions[] = {"isNotDragging", "notOnMap"};
showDisabled = 0; showDisabled = 0;
priority = 0; priority = 0;
enableInside = 1; enableInside = 1;

View File

@ -1,4 +1,4 @@
// by CAA-Picard // by esteldunedain
#include "script_component.hpp" #include "script_component.hpp"

View File

@ -6,7 +6,7 @@ class CfgPatches {
weapons[] = {"ACE_MapTools"}; weapons[] = {"ACE_MapTools"};
requiredVersion = REQUIRED_VERSION; requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_common", "ace_interaction"}; requiredAddons[] = {"ace_common", "ace_interaction"};
author[] = {"CAA-Picard"}; author[] = {"esteldunedain"};
authorUrl = "https://github.com/esteldunedain/"; authorUrl = "https://github.com/esteldunedain/";
VERSION_CONFIG; VERSION_CONFIG;
}; };

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard * Author: esteldunedain
* *
* Add the line marker * Add the line marker
* *

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard * Author: esteldunedain
* *
* Returns the equivalent of 100m in screen coordinates * Returns the equivalent of 100m in screen coordinates
* *

View File

@ -1,4 +1,4 @@
// by CAA-Picard // by esteldunedain
#include "script_component.hpp" #include "script_component.hpp"

View File

@ -1,4 +1,4 @@
// by CAA-Picard // by esteldunedain
#include "script_component.hpp" #include "script_component.hpp"

View File

@ -1,4 +1,4 @@
// by CAA-Picard // by esteldunedain
#include "script_component.hpp" #include "script_component.hpp"

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard * Author: esteldunedain
* *
* Cancel the drawing of the current line marker * Cancel the drawing of the current line marker
* *

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard * Author: esteldunedain
* *
* Copy recieved markers to map * Copy recieved markers to map
* *

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard * Author: esteldunedain
* *
* Send Map markers to other player * Send Map markers to other player
* *

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard * Author: esteldunedain
* *
* Send request to remote player * Send request to remote player
* *

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard * Author: esteldunedain
* *
* Handle key down on map. * Handle key down on map.
* *

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard * Author: esteldunedain
* *
* Handle mouse buttons. * Handle mouse buttons.
* *

View File

@ -1,5 +1,5 @@
/* /*
* Author: CAA-Picard * Author: esteldunedain
* *
* Handle mouse movement over the map tool. * Handle mouse movement over the map tool.
* *

Some files were not shown because too many files have changed in this diff Show More